diff options
author | Antoine du Hamel <duhamelantoine1995@gmail.com> | 2023-03-23 10:38:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-23 09:38:17 +0000 |
commit | 820030491f1d12253a100fc892e9d929e00f0082 (patch) | |
tree | 6b674c58f197e51524b592bc73dc34081baf3483 /.github/workflows | |
parent | 002b30eaa513e057330d2642401518a21d23fa97 (diff) | |
download | node-new-820030491f1d12253a100fc892e9d929e00f0082.tar.gz |
tools: notify on Slack when invalid commit lands
PR-URL: https://github.com/nodejs/node/pull/47178
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Tierney Cyren <hello@bnb.im>
Reviewed-By: Akhil Marsonya <akhil.marsonya27@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/notify-force-push.yml | 28 | ||||
-rw-r--r-- | .github/workflows/notify-on-push.yml | 66 |
2 files changed, 66 insertions, 28 deletions
diff --git a/.github/workflows/notify-force-push.yml b/.github/workflows/notify-force-push.yml deleted file mode 100644 index 69aacc8524..0000000000 --- a/.github/workflows/notify-force-push.yml +++ /dev/null @@ -1,28 +0,0 @@ -on: - push: - branches: - - main - -name: Notify on Force Push -permissions: - contents: read - -jobs: - slackNotification: - name: Slack Notification - if: github.repository == 'nodejs/node' && github.event.forced - runs-on: ubuntu-latest - steps: - - name: Slack Notification - uses: rtCamp/action-slack-notify@12e36fc18b0689399306c2e0b3e0f2978b7f1ee7 - env: - SLACK_COLOR: '#DE512A' - SLACK_ICON: https://github.com/nodejs.png?size=48 - SLACK_TITLE: ${{ github.actor }} force-pushed to ${{ github.ref }} - SLACK_MESSAGE: | - A commit was force-pushed to <https://github.com/${{ github.repository }}/tree/${{ github.repository.default_branch }}|${{ github.repository }}@${{ github.repository.default_branch }}> by <https://github.com/${{ github.actor }}|${{ github.actor }}> - - Before: <https://github.com/${{ github.repository }}/commit/${{ github.event.before }}|${{ github.event.before }}> - After: <https://github.com/${{ github.repository }}/commit/${{ github.event.after }}|${{ github.event.after }}> - SLACK_USERNAME: nodejs-bot - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} diff --git a/.github/workflows/notify-on-push.yml b/.github/workflows/notify-on-push.yml new file mode 100644 index 0000000000..dd415a4a38 --- /dev/null +++ b/.github/workflows/notify-on-push.yml @@ -0,0 +1,66 @@ +on: + push: + branches: + - main + +name: Notify on Push +permissions: + contents: read + +jobs: + notifyOnForcePush: + name: Notify on Force Push on `main` + if: github.repository == 'nodejs/node' && github.event.forced + runs-on: ubuntu-latest + steps: + - name: Slack Notification + uses: rtCamp/action-slack-notify@12e36fc18b0689399306c2e0b3e0f2978b7f1ee7 + env: + SLACK_COLOR: '#DE512A' + SLACK_ICON: https://github.com/nodejs.png?size=48 + SLACK_TITLE: ${{ github.actor }} force-pushed to ${{ github.ref }} + SLACK_MESSAGE: | + A commit was force-pushed to <https://github.com/${{ github.repository }}/tree/${{ github.repository.default_branch }}|${{ github.repository }}@${{ github.repository.default_branch }}> by <https://github.com/${{ github.actor }}|${{ github.actor }}> + + Before: <https://github.com/${{ github.repository }}/commit/${{ github.event.before }}|${{ github.event.before }}> + After: <https://github.com/${{ github.repository }}/commit/${{ github.event.after }}|${{ github.event.after }}> + SLACK_USERNAME: nodejs-bot + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + + notifyOnMissingMetadata: + name: Notify on Push on `main` that lacks metadata + if: github.repository == 'nodejs/node' + runs-on: ubuntu-latest + steps: + - name: Check commit message + run: npx -q core-validate-commit ${{ github.event.commits[0].id }} || echo "INVALID_COMMIT_MESSAGE=1" >> $GITHUB_ENV + - name: Retrieve PR number if possible + if: ${{ env.INVALID_COMMIT_MESSAGE }} + run: | + node <<<'EOF' + const invalidCommitMessageMatch = /\s\(\#\d+\)$/.exec(process.env.COMMIT_MESSAGE); + if (match == null) process.exit(1) + console.log(`PR_ID=${match[0]}`) + EOF >> $GITHUB_ENV || true + env: + COMMIT_MESSAGE: ${{ github.event.commits[0].message }} + - name: Comment on the Pull Request + if: ${{ env.PR_ID }} + run: gh pr comment ${{ env.PR_ID }} --repo "${{ github.repository }}" --body "$BODY" + env: + BODY: | + A commit referencing this Pull Request was pushed to `main` by @${{ github.actor }} without the expected commit metadata added to its message. + - name: Slack Notification + if: ${{ env.INVALID_COMMIT_MESSAGE }} + uses: rtCamp/action-slack-notify@12e36fc18b0689399306c2e0b3e0f2978b7f1ee7 + env: + SLACK_COLOR: '#DE512A' + SLACK_ICON: https://github.com/nodejs.png?size=48 + SLACK_TITLE: Invalid commit was pushed to ${{ github.repository.default_branch }} + SLACK_MESSAGE: | + A commit lacking the expected metadata was pushed to <https://github.com/${{ github.repository }}/tree/${{ github.repository.default_branch }}|${{ github.repository }}@${{ github.repository.default_branch }}> by <https://github.com/${{ github.actor }}|${{ github.actor }}>. + + Before: <https://github.com/${{ github.repository }}/commit/${{ github.event.before }}|${{ github.event.before }}> + After: <https://github.com/${{ github.repository }}/commit/${{ github.event.after }}|${{ github.event.after }}> + SLACK_USERNAME: nodejs-bot + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} |