Git Slackin'
Get notified better when using Github Pull Requests and Slack.
Features and commands listed below
Setup
- Clone the repo
- Install dependencies
npm i
- Create a config file
- Name it
development.json
- Base it off of
config/example.json
- Name it
- Create a
user_list.json
with all the users you want involved- Base it off of
example_user_list.json
- Ensure that any repositories registered are cased appropriately, they are case sensitive
- Note: future goal is for this to live in a DB and for users to sign themselves up
- Base it off of
- Run service
npm start
- If running on a local machine use
ngrok
to make endpoint available to the internet
- If running on a local machine use
- Create a Webhook for your repo
- Please include all Pull Request related events (not all used yet)
- Start making Pull Requests!
Config Details
Configure development.json
with the following information:
- github_token: A personal access token. You can create one here
- You will require permissions
repo:*
andadmin:repo_hook:*
- github_secret: A random string that will be used in conjunction with your webhook to push notifications
- slack: A Slack application xoxb OAuth Access Token. You'll need to create a new app here.
- slack_manager_ids: Slack Id of someone to direct message on boot. This can be retrieved from slack by viewing a profile, selecting the
...
and "Copy member id" for the appropriate user - slack_announce_channel_id: The channel you wish to announce things to. The easiest way to find the correct room is to use the slack browser, navigate to the channel you want and taking the last string. Example:
https://app.slack.com/client/<clientId>/<slack_announce_channel_id>
Current Features
- Announces itself to admin and channel (if provided)
- Request reviews and send messages when opening a PR
- Git-slackin will pick 2 random, requestable users from the
user_list.json
- Assigns them and requests a review from them on Github (Note: These actions happen on the behalf of the user whose personal access token is in the config)
- Notifies the requested reviewers via a DM with a link to the PR
- This happens if someone uses the Github UI to request a review as well.
- Notifies the PR Opener who has been requested
- Git-slackin will pick 2 random, requestable users from the
- Get notified when your PR is reviewed
- Git-Slackin will message the opener of the PR informing them of who submitted a review, and in what state (approved, commented, requested changes)
- Don't bother people when then are not requestable
- Allow users to change their requestability
- Respond to some DM commands
Commands (via Slack DMs)
Note All commands are case insensitive
Everyone Commands
Get Command List
- Say
help
- Lists the commands
Bench Yourself
- Say
stop
- This means you will not be requested by Git Slackin'
Unbench Yourself
- Say
start
- You will now be requestable by Git Slackin'
Notifcations
Turn on
- Say
notify
orunmute
Turn off
- Say
silence
, ormute
Am I requestable?
- Say
status
- Get your github and slack usernames and your requestability status
Admin/Manager commands
What's everyone's state?
- Say
overview
- Lists benched and available users, like the boot message
Shut it all down
- Say
shutdown
- Exits the git slackin' process.