くりにっき

フルスタックキュアエンジニアです

tanuki_reminderを作った

tanuki_reminderとは

マージされていないMRの一覧を指定した時間にチャットに通知するリマインダーで、 Pull Reminders のGitLabクローンです。

f:id:sue445:20191117012728p:plain

Pull Remindersが便利なのでGitLabでも使いたくて作りました。

gitlab.com

名前の由来

Pull Panda がパンダなので動物つながりでGitLabなのでタヌキにしました

余談ですがtanuki呼びは公式設定です

f:id:sue445:20191117084501p:plain

https://gitlab.com/gitlab-org/omnibus-gitlab/blob/12.3.4+ee.0/files/gitlab-ctl-commands/upgrade.rb#L178-197

技術的なこと

使い方

.gitlab-ci.yml に下記のようなジョブを書いてschedulerに登録するだけで使えます。

include:
  - remote: https://gitlab.com/sue445/tanuki_reminder/raw/master/ci-templates/slack_reminder.yml

slack_reminder:
  variables:
    # GITLAB_ACCESS_TOKEN: "" # [required]
    # INCLUDE_WIP: "false"    # [optional] put `true` or `false`
    # MERGE_REQUEST_COUNT: 10 # [optional]
    # SLACK_WEBHOOK_URL: ""   # [required]
    # SLACK_CHANNEL: ""       # [optional]
include:
  - remote: https://gitlab.com/sue445/tanuki_reminder/raw/master/ci-templates/chatwork_reminder.yml

chatwork_reminder:
  variables:
    # GITLAB_ACCESS_TOKEN: "" # [required]
    # INCLUDE_WIP: "false"    # [optional] put `true` or `false`
    # MERGE_REQUEST_COUNT: 10 # [optional]
    # CHATWORK_API_KEY: ""    # [required]
    # CHATWORK_ROOM_ID: ""    # [required]

通知対象のリポジトリにリマインダージョブを書いてもいいですが、通知専用のリポジトリを作ってschedulerに通知対象のリポジトリを複数登録するのが運用的に楽だと思います。

基本的にはGitLab CI上で動かすことを想定していますが、ビルド済のバイナリやDockerイメージでも配布しているのでGitLab CI以外でも使えると思います。