From 9fb74bc74ea0955699534cd68267ed9528f18e4e Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Mon, 4 Dec 2023 09:38:28 -0800 Subject: ci: experiment with more issue/PR workflow automation --- .github/workflows/automation.yml | 15 -------- ...automation_remove_question_label_on_comment.yml | 15 ++++++++ .../automation_request_changes_message.yml | 41 ++++++++++++++++++++++ .github/workflows/automation_request_review.yml | 24 +++++++++++++ 4 files changed, 80 insertions(+), 15 deletions(-) delete mode 100644 .github/workflows/automation.yml create mode 100644 .github/workflows/automation_remove_question_label_on_comment.yml create mode 100644 .github/workflows/automation_request_changes_message.yml create mode 100644 .github/workflows/automation_request_review.yml (limited to '.github') diff --git a/.github/workflows/automation.yml b/.github/workflows/automation.yml deleted file mode 100644 index ad3afed..0000000 --- a/.github/workflows/automation.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Remove Label - -on: [issue_comment] - -jobs: - # Remove the "question" label when a new comment is added. - # This lets me ask a question, tag the issue with "question", and filter out all "question"-tagged - # issues in my "needs triage" filter. - remove_question: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions-ecosystem/action-remove-labels@v1 - with: - labels: question diff --git a/.github/workflows/automation_remove_question_label_on_comment.yml b/.github/workflows/automation_remove_question_label_on_comment.yml new file mode 100644 index 0000000..60c7dba --- /dev/null +++ b/.github/workflows/automation_remove_question_label_on_comment.yml @@ -0,0 +1,15 @@ +name: Remove Question Label on Issue Comment + +on: [issue_comment] + +jobs: + # Remove the "question" label when a new comment is added. + # This lets me ask a question, tag the issue with "question", and filter out all "question"-tagged + # issues in my "needs triage" filter. + remove_question: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-ecosystem/action-remove-labels@v1 + with: + labels: question diff --git a/.github/workflows/automation_request_changes_message.yml b/.github/workflows/automation_request_changes_message.yml new file mode 100644 index 0000000..4484853 --- /dev/null +++ b/.github/workflows/automation_request_changes_message.yml @@ -0,0 +1,41 @@ +name: PR Request Changes Message +on: + pull_request_review: + types: [submitted] + +jobs: + comment: + runs-on: ubuntu-latest + steps: + - name: Check Previous Reviews + id: check + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const pr = context.payload.pull_request; + const review = context.payload.review; + const reviews = await github.rest.pulls.listReviews({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: pr.number, + }); + const changesRequestedReviews = reviews.data.filter((review) => review.state === 'CHANGES_REQUESTED'); + const firstTimeChangesRequested = changesRequestedReviews.length === 1; + return firstTimeChangesRequested; + + - name: Comment on PR + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const runPreviousCheckStep = steps.check.outputs.result + const pr = context.payload.pull_request; + if (runPreviousCheckStep === 'true') { + github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: pr.number, + body: 'Please make sure to **re-request review** after making any changes or answering any questions' + }); + } diff --git a/.github/workflows/automation_request_review.yml b/.github/workflows/automation_request_review.yml new file mode 100644 index 0000000..998e64a --- /dev/null +++ b/.github/workflows/automation_request_review.yml @@ -0,0 +1,24 @@ +name: Request Review +on: + pull_request: + types: [opened, ready_for_review] + +jobs: + # Request review automatically when PRs are opened + request_review: + runs-on: ubuntu-latest + steps: + - name: Request Review + uses: actions/github-script@v7 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + const pr = context.payload.pull_request; + if (!pr.draft) { + github.rest.pulls.requestReviewers({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: pr.number, + reviewers: ['stevearc'] + }); + } -- cgit v1.2.3-70-g09d2