towncrier

command module
v0.0.0-...-a1e463d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2015 License: AGPL-3.0 Imports: 13 Imported by: 0

README

Towncrier

Send notifications/alerts via HTTP. Supports many backends for sending notifications (email, phone, whatever you want), but all clients needs to do is to send it via HTTP (one of the lowest common demoninator).

Other "frontends" (UDP, whatever) maybe possible, but not yet implemented.

Note: if you're viewing this on Github, the official repository is available at https://gitlab.com/shuhao/towncrier. The Github repository serves as a mirror. I try my best to keep these two in sync, but the gitlab version may be more recent.

Detailed documentations available here: WIP

Current Features

  • Send email notifications via HTTP
  • Send notifications to different subscribers using channels
  • Batch notifications by cron expressions associated with channels
  • Supports pluggable backends.

Example use case

  • Centralized location to send emails (only need to run 1 email server somewhere).
  • Aggregate cron/alert/status emails and send it to people.
  • Enable easy notification sending from software running on platforms/computers you do not control (Windows, OS X).
  • A dashboard to past notifications in a central place.

Sending notifications to Towncrier

Sending notifications for towncriers to send out is designed to be the easiest thing, available on all platforms. Example scripts in different environments are provided under the directory example_clients. However, if it is missing your platform, the API is as follows:

POST /<PathPrefix>/notifications/<channel> HTTP/1.1
Authorization: Token token=<your defined token>
X-Towncrier-Subject: subject line
X-Towncrier-Tags: tag1,tag2
X-Towncrier-Priority: normal

Notification content goes here.

All notification content will be sent as plain-text.

Detailed documentations available here: WIP

Development Setup

System Requirements
  • Unix-like systems are recommended, although only Linux is officially supported.
  • Go 1.5 is needed.
  • For deployment, Linux is recommended although cross compilation should be relatively easy.
Setup
  1. Install godep and goose.
  2. Clone the repository into $GOPATH/src/gitlab.com/shuhao/towncrier.
  3. godep go test ./...
  4. script/devserver

License

AGPLv3

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/facebookgo/grace/gracehttp
Package gracehttp provides easy to use graceful restart functionality for HTTP server.
Package gracehttp provides easy to use graceful restart functionality for HTTP server.
_workspace/src/github.com/facebookgo/grace/gracenet
Package gracenet provides a family of Listen functions that either open a fresh connection or provide an inherited connection from when the process was started.
Package gracenet provides a family of Listen functions that either open a fresh connection or provide an inherited connection from when the process was started.
_workspace/src/github.com/facebookgo/httpdown
Package httpdown provides http.ConnState enabled graceful termination of http.Server.
Package httpdown provides http.ConnState enabled graceful termination of http.Server.
_workspace/src/github.com/facebookgo/stats
Package stats defines a lightweight interface for collecting statistics.
Package stats defines a lightweight interface for collecting statistics.
_workspace/src/github.com/go-sql-driver/mysql
Go MySQL Driver - A MySQL-Driver for Go's database/sql package The driver should be used via the database/sql package: import "database/sql" import _ "github.com/go-sql-driver/mysql" db, err := sql.Open("mysql", "user:password@/dbname") See https://github.com/go-sql-driver/mysql#usage for details
Go MySQL Driver - A MySQL-Driver for Go's database/sql package The driver should be used via the database/sql package: import "database/sql" import _ "github.com/go-sql-driver/mysql" db, err := sql.Open("mysql", "user:password@/dbname") See https://github.com/go-sql-driver/mysql#usage for details
_workspace/src/github.com/gorhill/cronexpr
Package cronexpr parses cron time expressions.
Package cronexpr parses cron time expressions.
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/kylelemons/go-gypsy/yaml
Gypsy is a simplified YAML parser written in Go.
Gypsy is a simplified YAML parser written in Go.
_workspace/src/github.com/lib/pq
Package pq is a pure Go Postgres driver for the database/sql package.
Package pq is a pure Go Postgres driver for the database/sql package.
_workspace/src/github.com/lib/pq/listen_example
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
Below you will find a self-contained Go program which uses the LISTEN / NOTIFY mechanism to avoid polling the database while waiting for more work to arrive.
_workspace/src/github.com/lib/pq/oid
Package oid contains OID constants as defined by the Postgres server.
Package oid contains OID constants as defined by the Postgres server.
_workspace/src/github.com/mattn/go-sqlite3
Package sqlite3 provides interface to SQLite3 databases.
Package sqlite3 provides interface to SQLite3 databases.
_workspace/src/github.com/ziutek/mymysql/godrv
MySQL driver for Go database/sql package
MySQL driver for Go database/sql package
_workspace/src/github.com/ziutek/mymysql/mysql
MySQL Client API written entirely in Go without any external dependences.
MySQL Client API written entirely in Go without any external dependences.
_workspace/src/github.com/ziutek/mymysql/native
Thread unsafe engine for MyMySQL
Thread unsafe engine for MyMySQL
_workspace/src/gopkg.in/check.v1
Package check is a rich testing extension for Go's testing package.
Package check is a rich testing extension for Go's testing package.
_workspace/src/gopkg.in/gorp.v1
Package gorp provides a simple way to marshal Go structs to and from SQL databases.
Package gorp provides a simple way to marshal Go structs to and from SQL databases.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL