This is a Discord bot that provides an application command for Discord users to link their Github user and automatically apply a contributor role to those users that have contributed to the configured repositories.
Go to the Bot section and create a bot there.
When generating the application invite URL, enable the scopes
- bot
- Manage Roles
- applications.commands
The generated URL should end with permissions=268435456&scope=bot%20applications.commands
Add a role named "Contributor" to servers that the bot will join and make sure the bot's role is higher than the "Contributor" role.
- Generate a client secret
- Set "Authorization callback URL" to the base URL of your bot with the path
/login/oauth2/code/github
Optional: Generate personal access token
If you would like the bot to install a webhook into each Github repository, allocate a personal access token with the scope
admin:repo_hook
It can be given a very short expiration since it is only needed during initial setup and any time more repositories are added to the configuration.
Version: 4.x
Database: discord-github-melder
INFO Database can be created from mongo CLI with
use discord-github-melder
Create user for the bot application's access, such as:
db.createUser({
user: "dev",
pwd: "dev",
roles: ["readWrite"]
})
ghcr.io/itzg/discord-github-melder-bot:{tag}
8080
: For HTTP requests
WARNING Be sure to securely declare application IDs and tokens
Variable | Required | Description |
---|---|---|
GITHUB_CLIENT_ID | Yes | Github OAuth2 client ID |
GITHUB_CLIENT_SECRET | Yes | Github OAuth2 client secret |
MONGO_HOST | Yes | |
MONGO_USERNAME | Yes | A user with read/write, create collection/index permissions |
MONGO_PASSWORD | Yes | |
APP_DISCORD_APPLICATION_ID | Yes | From https://discord.com/developers/applications/{id}/information |
APP_DISCORD_BOT_TOKEN | Yes | From https://discord.com/developers/applications/{id}/bot |
APP_GITHUB_REPOS | Yes | Comma-separated list of {org}/{name} |
APP_BASE_URL | Yes | Publicly accessible URL that is routed to this container. |
APP_GITHUB_ACCESS_TOKEN | No | Personal access token used at startup to install missing webhook declarations. |
APP_GITHUB_WEBHOOK_SECRET | No | If set, the installed webhook will use the given secret for signing calls. |
LOGGING_LEVEL_APP | No | Change application logging level, such as debug |
There are more optional, lower priority properties declared here.