LoginSignup
16
0

More than 1 year has passed since last update.

初めに

2022年10月19日以降、GitLab のFree プランのユーザ制限が5人までとなりました...><
(詳しくはこちらを確認ください:bow:)

弊社ではGitLab, GitHub の両方を使っており、今回のGitLab のプラン変更に伴い
社内でいろいろ議論があった結果、GitLabで管理しているプロジェクトを全てGitHub に移行することにしました。

そこでGitHub とGitLab の違いで出たのが、wiki 更新のSlack 通知がGitHub では画面ぽちぽちで設定できない...ということが発覚しました :innocent:
調べてみるとGitHub Actions でなら通知可能なことがわかったのでその設定方法を記事にまとめました。

同じような問題等でGitHub wiki の追加/更新をSlack で知りたいという方がいたらご参考になれば幸いです。

完成系

  • wiki を新規追加/更新したかをSlack から判断可能
    • 追加: Wiki created: wiki
    • 更新: Wiki edited: wiki
  • Go To Detail ボタンをクリックでWiki の差分ページへ遷移します
  • ※ wiki の削除通知は実装できていません...
    • ワークフロー実行トリガーを How-to で設定しているgollumだと発火しない...orz
    • 設定の仕方わかる方教えてください:bow:

スクリーンショット 2022-12-02 19.08.41.png
※ 私の場合はIncoming Webhook の設定からName(github actions) とIcon(github ロゴの画像) を変更しています。

How-to

1. .github/workflows/wiki.ymlを作成する

ワークフロー実行のトリガーを gollum を使用しています。
このイベントはデフォルトブランチに追加していないのイベントが発火しないのでPR 作成して通知がこない...なぜだ...
ということにならないように注意しましょう:sunglasses:w

.github/workflows/wiki.yml
name: wiki

on:
  gollum:

jobs:
  notify-slack:
    runs-on: [self-hosted]

    steps:
      - uses: actions/checkout@v3
        with:
          repository: ${{ github.event.repository.full_name }}.wiki
          ref: ${{ github.event.pages[0].sha }}
          fetch-depth: 2

      - name: Slack
        env:
          ACTION: ${{ github.event.pages[0].action }}
          TITLE: ${{ github.event.pages[0].title }}
          HTML_URL: ${{ github.event.pages[0].html_url }}
          WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
        run: |
          url=${HTML_URL}/_compare/$(git rev-parse HEAD^)...$(git rev-parse HEAD)
          curl -X POST ${WEBHOOK_URL} \
               -H 'Content-type: application/json' \
               -d "{ \
                    \"blocks\": [{ \
                      \"type\": \"section\", \
                      \"text\":{ \
                        \"type\": \"mrkdwn\", \
                        \"text\": \"Wiki ${ACTION}: ${TITLE}\" \
                      }, \
                      \"accessory\": { \
                        \"type\": \"button\", \
                        \"text\": { \
                          \"type\": \"plain_text\", \
                          \"text\": \"Go to Detail\", \
                          \"emoji\": true \
                        }, \
                        \"value\": \"click_me_123\", \
                        \"url\": \"${url}\", \
                        \"action_id\": \"button-action\" \
                      } \
                    }] \
                  }"

(Slack 通知のbody 設定はこちらから独自に設定できます)

2. GitHub Seacret に SLACK_WEBHOOK の環境変数をセットする

  • こちらを参考に追加します
    • Repository secrets に SLACK_WEBHOOK が追加されていらばOK です

Actions_secrets.png

Slack 通知を確認してみよう

  • wiki を更新したらGitHub Actions が実行されます.
    • wiki の左側に黄色であれば、How-to で設定が正常に適用されています。これがチェックが入った緑色になれば通知が完了しています。

Actions_·_CyberAgent-Infosys_caad-delivery-pc.png

  • ↓画像のように通知ができていればOKです:raised_hands:

スクリーンショット 2022-12-02 19.08.41.png

参考記事

16
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
0