From db1499beb1294da3c1cc42a2dcf7104cee9ab81c Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Tue, 2 Jan 2024 13:16:59 -0500 Subject: [PATCH 1/6] Add workflow that adds PRs to GH project with In Progress status Signed-off-by: Timothy Johnson --- .github/workflows/update-project.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/update-project.yml diff --git a/.github/workflows/update-project.yml b/.github/workflows/update-project.yml new file mode 100644 index 0000000000..7387d48ea2 --- /dev/null +++ b/.github/workflows/update-project.yml @@ -0,0 +1,25 @@ +name: Update GitHub project + +on: + pull_request: + types: + - opened + +jobs: + update-project: + name: Add PR to project + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@v0.5.0 + id: add-to-project + with: + project-url: https://github.com/orgs/zowe/projects/21 + github-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} + + - uses: titoportas/update-project-fields@v0.1.0 + with: + project-url: https://github.com/orgs/zowe/projects/21 + github-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} + item-id: ${{ steps.add-to-project.outputs.itemId }} + field-keys: Status + field-values: In Progress From f4bc5df81377753c9c43cf9fe514314912393582 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Thu, 4 Jan 2024 15:36:54 -0500 Subject: [PATCH 2/6] Assign author to PR if they have write access Signed-off-by: Timothy Johnson --- .github/workflows/update-project.yml | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/.github/workflows/update-project.yml b/.github/workflows/update-project.yml index 7387d48ea2..321be008d0 100644 --- a/.github/workflows/update-project.yml +++ b/.github/workflows/update-project.yml @@ -5,21 +5,39 @@ on: types: - opened +env: + PROJECT_NUMBER: "21" + jobs: update-project: - name: Add PR to project + name: PR opened runs-on: ubuntu-latest steps: - - uses: actions/add-to-project@v0.5.0 + - name: Add PR to project + uses: actions/add-to-project@v0.5.0 id: add-to-project with: - project-url: https://github.com/orgs/zowe/projects/21 + project-url: https://github.com/orgs/zowe/projects/${{ env.PROJECT_NUMBER }} github-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} - - uses: titoportas/update-project-fields@v0.1.0 + - name: Move to In Progress + uses: titoportas/update-project-fields@v0.1.0 with: - project-url: https://github.com/orgs/zowe/projects/21 + project-url: https://github.com/orgs/zowe/projects/${{ env.PROJECT_NUMBER }} github-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} item-id: ${{ steps.add-to-project.outputs.itemId }} field-keys: Status field-values: In Progress + + - name: Check author permissions + id: check-author-permissions + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + response=$(curl -fs -H "Authorization: Token $GITHUB_TOKEN" \ + https://api.github.com/repos/${{ github.repository }}/collaborators/${{ github.event.pull_request.user.login }}/permission) + echo "hasWrite=$(echo $response | jq -r '.user.permissions.push')" >> "$GITHUB_OUTPUT" + + - name: Assign author to PR + if: ${{ steps.check-author-permissions.outputs.hasWrite == 'true' }} + run: gh pr edit ${{ github.event.pull_request.number }} --add-assignee ${{ github.event.pull_request.user.login }} From 5e5ec8756491b7e60e16c5df2a8aa4e42c936dfa Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Fri, 5 Jan 2024 14:39:45 -0500 Subject: [PATCH 3/6] Rewrite update-project workflow to use shared action Signed-off-by: Timothy Johnson --- .github/workflows/update-project.yml | 42 ++++++---------------------- 1 file changed, 8 insertions(+), 34 deletions(-) diff --git a/.github/workflows/update-project.yml b/.github/workflows/update-project.yml index 321be008d0..604710b9cc 100644 --- a/.github/workflows/update-project.yml +++ b/.github/workflows/update-project.yml @@ -1,43 +1,17 @@ name: Update GitHub project on: - pull_request: - types: - - opened - -env: - PROJECT_NUMBER: "21" + pull_request_target: + types: [opened, reopened] jobs: update-project: - name: PR opened + name: Add PR to project runs-on: ubuntu-latest steps: - - name: Add PR to project - uses: actions/add-to-project@v0.5.0 - id: add-to-project - with: - project-url: https://github.com/orgs/zowe/projects/${{ env.PROJECT_NUMBER }} - github-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} - - - name: Move to In Progress - uses: titoportas/update-project-fields@v0.1.0 + - uses: zowe-actions/shared-actions/project-move-item@actions/project-move-item with: - project-url: https://github.com/orgs/zowe/projects/${{ env.PROJECT_NUMBER }} - github-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} - item-id: ${{ steps.add-to-project.outputs.itemId }} - field-keys: Status - field-values: In Progress - - - name: Check author permissions - id: check-author-permissions - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - response=$(curl -fs -H "Authorization: Token $GITHUB_TOKEN" \ - https://api.github.com/repos/${{ github.repository }}/collaborators/${{ github.event.pull_request.user.login }}/permission) - echo "hasWrite=$(echo $response | jq -r '.user.permissions.push')" >> "$GITHUB_OUTPUT" - - - name: Assign author to PR - if: ${{ steps.check-author-permissions.outputs.hasWrite == 'true' }} - run: gh pr edit ${{ github.event.pull_request.number }} --add-assignee ${{ github.event.pull_request.user.login }} + assign-author: true + item-status: In Progress + project-number: 21 + project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} From 8e3b83a6da2ee393d656a0ddc5912d0b80d78a3c Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Fri, 5 Jan 2024 17:48:05 -0500 Subject: [PATCH 4/6] Run project-move-item action when issues are labeled Signed-off-by: Timothy Johnson --- .github/workflows/update-project.yml | 42 +++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update-project.yml b/.github/workflows/update-project.yml index 604710b9cc..cac1e4a486 100644 --- a/.github/workflows/update-project.yml +++ b/.github/workflows/update-project.yml @@ -1,17 +1,51 @@ -name: Update GitHub project +name: Update GitHub Project on: + issues: + types: [labeled] pull_request_target: types: [opened, reopened] +env: + PROJECT_NUMBER: 21 + jobs: update-project: - name: Add PR to project + name: Move project item runs-on: ubuntu-latest steps: - - uses: zowe-actions/shared-actions/project-move-item@actions/project-move-item + - uses: zowe-actions/shared-actions/project-move-item@main + if: ${{ github.event.pull_request }} with: assign-author: true item-status: In Progress - project-number: 21 + project-number: ${{ env.PROJECT_NUMBER }} + project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} + + - uses: zowe-actions/shared-actions/project-move-item@main + if: ${{ github.event.issue && github.event.label.name == 'priority-high' }} + with: + item-status: High Priority + project-number: ${{ env.PROJECT_NUMBER }} + project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} + + - uses: zowe-actions/shared-actions/project-move-item@main + if: ${{ github.event.issue && github.event.label.name == 'priority-medium' }} + with: + item-status: Medium Priority + project-number: ${{ env.PROJECT_NUMBER }} + project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} + + - uses: zowe-actions/shared-actions/project-move-item@main + if: ${{ github.event.issue && github.event.label.name == 'priority-low' }} + with: + item-status: Low Priority + project-number: ${{ env.PROJECT_NUMBER }} + project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} + + - uses: zowe-actions/shared-actions/project-move-item@main + if: ${{ github.event.issue && github.event.label.name == 'Epic' }} + with: + item-status: Epics + project-number: ${{ env.PROJECT_NUMBER }} project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} From aee0d8b6ce96ff824e774d68b0a2a10297b7137c Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Mon, 8 Jan 2024 15:20:12 -0500 Subject: [PATCH 5/6] Move project item when PR draft state changes Signed-off-by: Timothy Johnson --- .github/workflows/update-project.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-project.yml b/.github/workflows/update-project.yml index cac1e4a486..c6da6c4055 100644 --- a/.github/workflows/update-project.yml +++ b/.github/workflows/update-project.yml @@ -4,7 +4,7 @@ on: issues: types: [labeled] pull_request_target: - types: [opened, reopened] + types: [opened, reopened, converted_to_draft, ready_for_review] env: PROJECT_NUMBER: 21 @@ -18,7 +18,7 @@ jobs: if: ${{ github.event.pull_request }} with: assign-author: true - item-status: In Progress + item-status: ${{ github.event.action == 'ready_for_review' && 'Review/QA' || 'In Progress' }} project-number: ${{ env.PROJECT_NUMBER }} project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} From 42694e27e2d732dade3a336bb99e3e2fd6173da2 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Tue, 9 Jan 2024 09:36:07 -0500 Subject: [PATCH 6/6] Update workflow to simplify steps Signed-off-by: Timothy Johnson --- .github/workflows/update-project.yml | 34 +++++++--------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/.github/workflows/update-project.yml b/.github/workflows/update-project.yml index c6da6c4055..6694587767 100644 --- a/.github/workflows/update-project.yml +++ b/.github/workflows/update-project.yml @@ -8,6 +8,9 @@ on: env: PROJECT_NUMBER: 21 + ISSUE_STATUSES: '{"priority-high": "High Priority", "priority-medium": "Medium Priority", "priority-low": "Low Priority", "Epic": "Epics"}' + PR_STATUS_DRAFT: 'In Progress' + PR_STATUS_READY: 'Review/QA' jobs: update-project: @@ -15,37 +18,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: zowe-actions/shared-actions/project-move-item@main - if: ${{ github.event.pull_request }} - with: - assign-author: true - item-status: ${{ github.event.action == 'ready_for_review' && 'Review/QA' || 'In Progress' }} - project-number: ${{ env.PROJECT_NUMBER }} - project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} - - - uses: zowe-actions/shared-actions/project-move-item@main - if: ${{ github.event.issue && github.event.label.name == 'priority-high' }} + if: ${{ github.event.issue && fromJSON(env.ISSUE_STATUSES)[github.event.label.name] }} with: - item-status: High Priority + item-status: ${{ fromJSON(env.ISSUE_STATUSES)[github.event.label.name] }} project-number: ${{ env.PROJECT_NUMBER }} project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} - uses: zowe-actions/shared-actions/project-move-item@main - if: ${{ github.event.issue && github.event.label.name == 'priority-medium' }} - with: - item-status: Medium Priority - project-number: ${{ env.PROJECT_NUMBER }} - project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} - - - uses: zowe-actions/shared-actions/project-move-item@main - if: ${{ github.event.issue && github.event.label.name == 'priority-low' }} - with: - item-status: Low Priority - project-number: ${{ env.PROJECT_NUMBER }} - project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }} - - - uses: zowe-actions/shared-actions/project-move-item@main - if: ${{ github.event.issue && github.event.label.name == 'Epic' }} + if: ${{ github.event.pull_request }} with: - item-status: Epics + assign-author: true + item-status: ${{ github.event.action == 'ready_for_review' && env.PR_STATUS_READY || env.PR_STATUS_DRAFT }} project-number: ${{ env.PROJECT_NUMBER }} project-token: ${{ secrets.ZOWE_ROBOT_TOKEN }}