Phabview is a bot that gets Phabricator revision updates from webhook and translates them to nice, readable notifications in your company messaging app.
PhabView will notify your users in DM when there are:
- New updates on a revision they created (reviews, comments)
- New revisions where their review is requested
- Updates on revisions on which they have engaged as reviewers
Subscribers will also be notified about all of the above.
Currently only rocketchat is supported.
Contributions for any other messaging apps are welcome!
Go here in your Phabricator instance and create a 'Firehose' webhook:
https://{my_phabricator}/herald/webhook/
You need Admin permissions to do so. After creation,
grab the hmac_key and add it to your envs as PHABRICATOR_WEBHOOK_HMAC_KEY
Or you can use your own user to experiment. Go to the address below and create an API Token:
https://{my_phabricator}/settings/user/{username}/page/apitokens/
Add the following envs:
- PHABRICATOR_HOST
- PHABRICATOR_USERNAME
- PHABRICATOR_TOKEN
Currently only rocketchat is available.
Login to your Rocketchat Instance as an admin user, and create a bot user here:
Administration > Workspace > Users
Add the following envs:
- ROCKETCHAT_HOST
- ROCKETCHAT_USER_ID
- ROCKET_CHAT_USER_TOKEN
PhabView is designed to notify in DMs.
If you want all of your users to receive phabricator updates, set NOTIFY_ANY_USER
to True
Otherwise, you can go with an opt-in method an add interested users' usernames in NOTIFIABLE_USERS
env like this:
NOTIFIABLE_USERS="mary,emma,jack"
Note: PhabView currently assumes same usernames for Phabricator and Rocketchat.
You can find the docker images provided for the project here.
-
Install Rye as package manager:
curl -sSf https://rye.astral.sh/get | bash
-
Install dependencies with
rye sync
-
Add a .env file with any envs needed in
config.py
-
Start the project:
python src/phabview/main.py