summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorAntoine du Hamel <duhamelantoine1995@gmail.com>2023-03-23 10:38:17 +0100
committerGitHub <noreply@github.com>2023-03-23 09:38:17 +0000
commit820030491f1d12253a100fc892e9d929e00f0082 (patch)
tree6b674c58f197e51524b592bc73dc34081baf3483 /.github/workflows
parent002b30eaa513e057330d2642401518a21d23fa97 (diff)
downloadnode-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.yml28
-rw-r--r--.github/workflows/notify-on-push.yml66
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 }}