

github actionsでwebhookurlを用いてslack通知しようとすると発生する403エラーを解決したい。

もともとpushやmergeをトリガーにgit errorを検知することでslack通知を送るプログラムを考えていたため以下のようなコードの構成にしました。

[code]

    name: Slack Notification
    
    on:
      push:
        branches:
          - '*'
    
    jobs:
      slack_notification:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout repository
            uses: actions/checkout@v2
    
          - name: Detect Merge Conflict
            id: conflict_check
            run: |
              git fetch origin develop
              git merge-base --is-ancestor HEAD origin/develop
              CONFLICT=$?
              echo "::set-output name=conflict::$CONFLICT"
    
          - name: Send Slack notification
            uses: rtCamp/action-slack-notify@v2.0.0
            env:
              SLACK_CHANNEL: "test"
              SLACK_MESSAGE: "Pushed to branch by ${{ github.actor }}. Merge conflict: ${{ steps.conflict_check.outputs.conflict }}"
              SLACK_WEBHOOK: ${{ var.WEBHOOKURL }}
    
[/code]

発生したエラーは以下のようになります。

１．merge conflictを意図的に発生させたもの(本当はここでエラー検知した時もslack通知したい)

[code]

    Run # Fetch the current develop branch
      # Fetch the current develop branch
      git fetch origin develop
      # Check if the current commit is ancestor of the master branch
      git merge-base --is-ancestor HEAD origin/develop
      CONFLICT=$?
      # Save the exit code (merge conflict information) to the output of this step
      echo "::set-output name=conflict::$CONFLICT"
      shell: /usr/bin/bash -e {0}
    From https://github.com/Spacee-Inc/deploy
     * branch            develop    -> FETCH_HEAD
     * [new branch]      develop    -> origin/develop
    Error: Process completed with exit code 1.
    
[/code]

２．処理が正常終了してもslack通知がいかなくて非推奨警告が来る。

[code]

    slack_notification
    The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
    
[/code]


CC BY-SA 4.0
2023-07-06T00:50:22.457
95492
2023-07-06T01:41:47.443
2023-07-06T01:18:45.187
3060
36855
question
github slack github-actions
github actionsでwebhookurlを用いてslack通知しようとすると403エラーが出る


SLACK_WEBHOOK に正しい値を設定できていないです。`var.WEBHOOKURL`
を参照していますが、存在していなくて空文字になっていそうです。

  * 秘匿値を利用したいのであれば `secrets.WEBHOOKURL`
  * 構成変数を利用したいのであれば `vars.WEBHOOKURL`（var ではなくて var **s** ）
  * 環境変数を利用したいのであれば `env.WEBHOOKURL`

です。いずれの場合も値の設定も忘れず行うようにしてください。詳しくはドキュメントを参照してください：

  * <https://docs.github.com/ja/actions/security-guides/encrypted-secrets>
  * <https://docs.github.com/ja/actions/learn-github-actions/variables>

`::set-output` の deprecation warning は warning なだけでこのメッセージが出ているならまだ動くので、Slack
通知が来ないこととは関係ないはずです。それはそれとして対応した方が良いのですが。

また SLACK_MESSAGE についても <https://github.com/rtCamp/action-slack-
notify#environment-variables> によると "It is advised not to override this."
とのことです。


CC BY-SA 4.0
2023-07-06T01:41:47.443
95493
2023-07-06T01:41:47.443
19110
95492
answer