Skip to content

Commit

Permalink
feat: add core feature alert gh action (#8948)
Browse files Browse the repository at this point in the history
Adds a GH action that notifies us that core features were changed. The
action listens on paths in the source code where our client api and
frontend api are located. If there is a change to these files, we add a
comment to the PR to review carefully and add principals and CTO as
reviewers.
  • Loading branch information
FredrikOseberg authored Dec 10, 2024
1 parent 9de96c8 commit dfcb196
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions .github/workflows/core-feature-alert.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Core Feature Alert

on:
pull_request:
types:
- opened
- synchronize
paths:
- src/lib/features/client-feature-toggles/*
- src/lib/features/frontend-api/*

jobs:
notify-core-changes:
runs-on: ubuntu-latest

steps:
- name: Fetch PR Creator's Username
id: pr-creator
run: echo "PR_CREATOR=${{ github.event.pull_request.user.login }}" >> $GITHUB_ENV

- name: Post a notification about core feature changes if not already commented
uses: actions/github-script@v6
with:
script: |
const prCreator = process.env.PR_CREATOR;
const commentBody = `@${prCreator}, core features have been modified in this pull request. Please review carefully!`;
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
});
const alreadyCommented = comments.some(comment => comment.body === commentBody);
if (!alreadyCommented) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: commentBody,
});
console.log('Posted a new comment.');
} else {
console.log('Comment already exists, skipping.');
}
- name: Add reviewers to the PR if they are not the creator
uses: actions/github-script@v6
with:
script: |
const prCreator = process.env.PR_CREATOR;
const allReviewers = ['FredrikOseberg', 'gastonfournier', 'chriswk', 'ivarconr'];
const reviewersToAdd = allReviewers.filter(reviewer => reviewer !== prCreator);
if (reviewersToAdd.length > 0) {
github.rest.pulls.requestReviewers({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
reviewers: reviewersToAdd,
});
console.log(`Added reviewers: ${reviewersToAdd.join(', ')}`);
} else {
console.log(`No reviewers to add as all match the PR creator.`);
}

0 comments on commit dfcb196

Please sign in to comment.