Assignees does automatically code review requests on GitHub (currently). This project is based on the hackathon-starter ❤️ and it is a side project developed in a couple days for our needs (and also for fun).
The application is available at: https://app.assignees.io/.
See the next section if you want to host it yourself.
This project provides a command line tool to perform various operations. You can run it via Yarn:
$ yarn run assignees
In development environment, you should run the command above within a app
Docker container:
$ docker-compose run --rm app yarn run assignees
yarn run v0.19.1
$ node bin/assignees
Usage: assignees [options] [command]
Commands:
feature:add [username] [feature] add feature to user
feature:remove [username] [feature] remove feature to user
feature:list [username...] list enabled features of user
pr:process [options] [repositoryId] [number] [author] process pull request
Options:
-h, --help output usage information
-V, --version output the version number
This project provides a Docker Compose configuration to quickly build and start it. Clone the project, then run:
$ docker-compose up -d app
The application will shortly be accessible at: http://assignees.localdev:3000/.
Important: you must configure your local DNS to be able to use
assignees.localdev
in the URL. You can edit your /etc/hosts
file, but it is
recommended to install and configure
Dnsmasq. This link is a good
tutorial.
The docker-compose.yml
contains my credentials (for an application that does
not exist anymore at the time of writing by the way). You should register a new
OAuth application on your own.
It is also recommended to use ngrok if you plan to test webhooks from your development environment.
This project is configured with environment variables. Here is the list:
ADMIN_IDS
: a comma-separated (without space) list of GitHub user identifiers (not usernames) to grant admin rights to certain users;APP_DOMAIN
: the domain that points to this application (for redirecting traffic from Heroku*.herokuapp.com
domain for instance);GITHUB_ID
: the GitHub ID you get when you register a GitHub (OAuth) application;GITHUB_SECRET
: the GitHub secret tied to the previous GitHub ID;GITHUB_APP_ID
: the identifier of the application you had to register on GitHub;GITHUB_WEBHOOK_SECRET
: a randomly generated value (like a password) used to sign and verify GitHub webhooks requests.GITHUB_WEBHOOK_URL
: the webhook URL that will be registered on each project enabled by Assignees (e.g.https://app.assignees.io/events
);MONGODB_URI
: the MongoDB data source name (e.g.mongodb://user:pass@server/db
). This variable is automatically set if you use the mLab add-on on Heroku. Alternatively, you can use theMONGOLAB_URI
environment variable;SESSION_SECRET
: a randomly generated value to prevent session tampering.
Also, setting NODE_ENV
to production
looks like a good idea.
N.B. because of the Yarn incompatibility on Heroku, I set
NODE_MODULES_CACHE
to false
and NPM_CONFIG_PRODUCTION
to true
.
To monitor the application at an early stage, it is possible to use New Relic APM. These extra environment variables could be useful (at least on Heroku):
NEW_RELIC_APP_NAME
;NEW_RELIC_LICENSE_KEY
;NEW_RELIC_LOG
(automatically set by Heroku when enabling the add-on);NEW_RELIC_NO_CONFIG_FILE
should be set totrue
;NEW_RELIC_SKIP_NATIVE_METRICS
should be set totrue
.
Note: this commit
has disabled New Relic on this project. You can re-enable it by yourself by
requiring the newrelic
package in both the package.json
file and the code.
You may want to change the name of the project, the contact email address, or
the Piwik tracking code by editing the views/global-mixins.pug
template.
$ [docker-compose run --rm app] yarn run test
Assignees is released under the MIT License. See the bundled LICENSE file for details.