@zekker6/slack-gitlab-mr-reminder
v1.3.10
Published
Send reminders about gitlab merge requests to slack
Downloads
3
Readme
slack-gitlab-mr-reminder
This node module can be used to send slack reminders for overdue gitlab merge requests. The criteria for this can be configured, but default is that:
- WIP merge requests not updated for longer than 7 day.
- Normal merge requests not updated for longer than 0 day (24 hours).
Installation
npm install @zekker6/slack-gitlab-mr-reminder
Example - running as an application
Install the module globally
npm install -g @zekker6/slack-gitlab-mr-reminder
Call slack-gitlab-mr-reminder
with a suitable yml
config, gitlab access token and slack webhook. See example.yml for an example of config.
GITLAB_ACCESS_TOKEN='...' SLACK_WEBHOOK_URL='...' slack-gitlab-mr-reminder examples/config.yml
This will only run once and send a reminder. You will likely want to run this everyday for which a cron would be suitable:
0 9 * * * GITLAB_ACCESS_TOKEN='...' SLACK_WEBHOOK_URL='...' slack-gitlab-mr-reminder /absolute/path/to/config.yml
This will send out reminders every day at 9AM
Example - module
You may use the functionality as a module:
var SlackGitlabMRReminder = require('slack-gitlab-mr-reminder');
const reminder = new SlackGitlabMRReminder({
mr: {
wip_mr_days_threshold: 7,
normal_mr_days_threshold: Infinity,
},
slack: {
webhook_url: 'https://hooks.slack.com/services/...',
channel: 'merge-requests',
},
gitlab: {
access_token: '...',
group: 'mygroup'
}
});
reminder.remind();
Example - docker
Launch with cron
# To configure via config file
docker run -v config.yml:/opt/config.yml --rm zekker6/slack-gitlab-mr-reminder:{TAG}
# Configuration via env parameters
docker run -e ... --rm zekker6/slack-gitlab-mr-reminder:{TAG}
One-time start
docker run --rm zekker6/slack-gitlab-mr-reminder:{TAG} remind
Supported env variables: |Var|Default|Description| |---|---|---| | REMINDER_CRON_SCHEDULE | '* * * * *' | Cron expression to configure reminder starts | | REMINDER_CONFIG_PATH | /opt/config.yml | Path to mounted config file | | GITLAB_ACCESS_TOKEN | None | Gitlab access token | | GITLAB_GROUP | None | Gitlab group name | | GITLAB_EXTERNAL_URL | None | Gitlab installation url | | GITLAB_WIP_MR_DAYS_THRESHOLD | 7 | Value in days representing threshold of notifying about stale MR | | GITLAB_NORMAL_MR_DAYS_THRESHOLD | 0 | Value in days representing threshold of notifying about stale MR | | SLACK_WEBHOOK_URL | None | Slack webhook to send notifications | | SLACK_CHANNEL | None | Slack channel name |
Options
gitlab.group
- The name of the group to watch for merge requests - Requiredgitlab.external_url
- The url of the gitlab installation - Defaults to https://gitlab.com (the public gitlab)slack.channel
- The slack channel to post to - Requiredslack.name
- Name of the slack poster - Defaults toGitLab Reminder
slack.message
- Message to send at the top of the slack message - Defaults toMerge requests are overdue:
It is possible to run app by using either config file or env variables. Browse examples in examples folder: here