postcommit is a web-based activity stream for your Git repositories — or any other information you'd like to push out to your developers.
Whenever there's a new push to one of your Git repositories, the central server is sent details of the changes; it then pushes that information out to any interested clients, for whom it shows up as a new message in their activity stream.
Developers can also send release-based messages to the stream — if they've just broken a build, for example.
postcommit is, for now at least, impermanent; users receive only those updates that have happened since they requested the page, and updates aren't stored anywhere for posterity. This may change, though.
The backend is built in node, and uses socket.io to communicate with clients; there are no other dependencies.
To send a message to the server, simply request — e.g. via
curl — a URL like the following:
This is most usefully done in a Git
post-update hook, but can realistically be done from anywhere.
There's lots to do, but the obvious things are:
- Potentially convert message-receiving code to socket.io from node's http
- General frontend styling
- "Mentions" of people using
@, with a separate list of activity that mentioned you
- Frontend for requesting code review
- Some better error handling on the frontend, including trying to reacquire a stream when it goes away
- Lots better error handling in the backend — it's currently pretty easy to crash the server with malformed input
- Authentication? Though the intended use-case is internal networks, it would probably be useful