https://github.com/dimfeld/promulgator
Bot providing integration between Slack and Jira
https://github.com/dimfeld/promulgator
Last synced: about 1 year ago
JSON representation
Bot providing integration between Slack and Jira
- Host: GitHub
- URL: https://github.com/dimfeld/promulgator
- Owner: dimfeld
- License: mit
- Created: 2016-02-01T18:54:35.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-03-29T04:29:59.000Z (over 10 years ago)
- Last Synced: 2025-04-02T17:23:38.206Z (over 1 year ago)
- Language: Go
- Size: 45.9 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A bot that will provide two-way integration between Slack and Jira. Currently it provides one-way integration from Jira to Slack.
## Features
* Take webhooks from Jira and post new comments to a Slack channel.
## Usage
### Bot Configuration
All configuration is done through environment variables. The Config object in `model/model.go` has the full set of options, with documentation. These are the essentials:
* `JIRA_URL` -- The URL of the associated Jira instance, including username and password in HTTP Basic Auth format (i.e. `https://username:password@jiraserver`).
* `JIRA_WEBHOOK_KEY` -- The key to use to verify incoming Jira webhooks.
* `SLACK_KEY` -- The token provided by Slack's bot integration.
* `SLACK_USER` -- Post updates as this user. This should generally match the name of the bot.
* `SLACK_DEFAULT_CHANNEL` -- Post updates to this channel. The bot must be a member of the channel.
* `WEBHOOK_BIND` -- Bind to this address/port to receive web hooks.
### Jira Configuration
Set up a Jira webhook to `http://SERVER:PORT/jirahook?key=JIRA_WEBHOOK_KEY`. The webhook should trigger on issue updates.
### Slack Configuration
Set up a Slack bot integration. The bot's username should be the value of `SLACK_USER` and the provided API token should be the value of `SLACK_KEY`. The bot should be invited into the desired channel, and the
channel's name (with the `#` at the beginning) should be configured as `SLACK_DEFAULT_CHANNEL`.
## Building
This project uses the `glide` dependency management tool. Use `glide install` and then build normally, ensuring that `GO15VENDOREXPERIMENT=1` is in your environment if using Go 1.5.
For quick builds you don't have to do this, but the versions of dependencies may
not be the same as those that I have built against.
## Upcoming Features
I'm working on this in my spare time, so can't make any promises on when these will be done. This list is in rough order of priority.
* Allow commenting on and assigning Jira issues from Slack. Slash commands first, RTM with @jira support later.
* Allow resolving and closing issues from Slack. Jira's workflow system makes this complex and potentially different for every installation.
* Attempted autocorrelation between Jira and Slack users
* Handle events from Jira for issues created, resolved, etc. The Slack integration does this right now so it's not too important for me.
* Option to post an blurb with issue details whenever an issue is referenced.
* Handle webhooks from Git servers to resolve issues based on pushed commits.
* Support HTTPS for webhooks
* Move to three-tier system for output where incoming actions are completely isolated from outgoing actions.