From 60be73071f0397f55ee2c823a5bbc84f760380b5 Mon Sep 17 00:00:00 2001 From: Ekaterina Gerasimova Date: Tue, 16 Nov 2021 10:10:36 +0000 Subject: [PATCH] Update issue triage automation for P1 and need info Move P1 issues to app and crypto team boards. Move unlabelled issues without X-Needs-Info out of column on Triage board. --- .github/workflows/triage-move-unlabelled.yml | 35 +++++++++++++ .github/workflows/triage-priority-bugs.yml | 55 ++++++++++++++++++++ changelog.d/5153.misc | 1 + 3 files changed, 91 insertions(+) create mode 100644 .github/workflows/triage-move-unlabelled.yml create mode 100644 .github/workflows/triage-priority-bugs.yml create mode 100644 changelog.d/5153.misc diff --git a/.github/workflows/triage-move-unlabelled.yml b/.github/workflows/triage-move-unlabelled.yml new file mode 100644 index 0000000000..94bd049b91 --- /dev/null +++ b/.github/workflows/triage-move-unlabelled.yml @@ -0,0 +1,35 @@ +name: Move unlabelled from needs info columns to triaged + +on: + issues: + types: [unlabeled] + +jobs: + Move_Unabeled_Issue_On_Project_Board: + name: Move no longer X-Needs-Info issues to Triaged + runs-on: ubuntu-latest + if: > + ${{ + !contains(github.event.issue.labels.*.name, 'X-Needs-Info') }} + env: + BOARD_NAME: "Issue triage" + OWNER: ${{ github.repository_owner }} + REPO: ${{ github.event.repository.name }} + ISSUE: ${{ github.event.issue.number }} + steps: + - name: Check if issue is already in "${{ env.BOARD_NAME }}" + run: | + if curl -i -H 'Content-Type: application/json' -H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" -X POST -d '{"query": "query($issue: Int!, $owner: String!, $repo: String!) { repository(owner: $owner, name: $repo) { issue(number: $issue) { projectCards { nodes { project { name } } } } } } ", "variables" : "{ \"issue\": '${ISSUE}', \"owner\": \"'${OWNER}'\", \"repo\": \"'${REPO}'\" }" }' https://api.github.com/graphql | grep "\b$BOARD_NAME\b"; then + echo "Issue is already in Project '$BOARD_NAME', proceeding"; + echo "ALREADY_IN_BOARD=true" >> $GITHUB_ENV + else + echo "Issue is not in project '$BOARD_NAME', cancelling this workflow" + echo "ALREADY_IN_BOARD=false" >> $GITHUB_ENV + fi + - name: Move issue + uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488 + if: ${{ env.ALREADY_IN_BOARD == 'true' }} + with: + project: Issue triage + column: Triaged + repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }} diff --git a/.github/workflows/triage-priority-bugs.yml b/.github/workflows/triage-priority-bugs.yml new file mode 100644 index 0000000000..c2147d2f68 --- /dev/null +++ b/.github/workflows/triage-priority-bugs.yml @@ -0,0 +1,55 @@ +name: Move P1 issues into the P1 column for the App Team and Crypto team + +on: + issues: + types: [labeled, unlabeled] + +jobs: + p1_issues_to_team_workboard: + runs-on: ubuntu-latest + if: > + (!contains(github.event.issue.labels.*.name, 'A-E2EE') && + !contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') && + !contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') && + !contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') && + !contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification') && + !contains(github.event.issue.labels.*.name, 'A-Spaces') && + !contains(github.event.issue.labels.*.name, 'A-Spaces-Settings') && + !contains(github.event.issue.labels.*.name, 'A-Subspaces')) && + (contains(github.event.issue.labels.*.name, 'T-Defect') && + contains(github.event.issue.labels.*.name, 'S-Critical') && + (contains(github.event.issue.labels.*.name, 'O-Frequent') || + contains(github.event.issue.labels.*.name, 'O-Occasional')) || + contains(github.event.issue.labels.*.name, 'S-Major') && + contains(github.event.issue.labels.*.name, 'O-Frequent') || + contains(github.event.issue.labels.*.name, 'A11y') && + contains(github.event.issue.labels.*.name, 'O-Frequent')) + steps: + - uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488 + with: + project: iOS App Team + column: P1 + repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }} + + P1_issues_to_crypto_team_workboard: + runs-on: ubuntu-latest + if: > + (contains(github.event.issue.labels.*.name, 'A-E2EE') || + contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') || + contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') || + contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') || + contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification')) && + (contains(github.event.issue.labels.*.name, 'T-Defect') && + contains(github.event.issue.labels.*.name, 'S-Critical') && + (contains(github.event.issue.labels.*.name, 'O-Frequent') || + contains(github.event.issue.labels.*.name, 'O-Occasional')) || + contains(github.event.issue.labels.*.name, 'S-Major') && + contains(github.event.issue.labels.*.name, 'O-Frequent') || + contains(github.event.issue.labels.*.name, 'A11y') && + contains(github.event.issue.labels.*.name, 'O-Frequent')) + steps: + - uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488 + with: + project: Crypto Team + column: Ready + repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }} diff --git a/changelog.d/5153.misc b/changelog.d/5153.misc new file mode 100644 index 0000000000..5cfb4f32e3 --- /dev/null +++ b/changelog.d/5153.misc @@ -0,0 +1 @@ +Update automation for issue triage