forked from primer/view_components
-
Notifications
You must be signed in to change notification settings - Fork 1
42 lines (40 loc) · 1.9 KB
/
Copy pathrelease_conductor.yml
File metadata and controls
42 lines (40 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
name: Assign Release Conductor
on:
pull_request:
jobs:
pagerduty:
if: github.event_name == 'pull_request' && github.event.pull_request.head.ref == 'changeset-release/main'
name: Lookup who is oncall from pagerduty
uses: primer/.github/.github/workflows/pagerduty_oncall.yml@v2.2.0
with:
schedule-id: ${{ vars.PAGERDUTY_RELEASE_CONDUCTOR_SCHEDULE }}
secrets:
token: ${{ secrets.PAGERDUTY_TOKEN_SHARED }}
update-assignee:
name: Update assignee and review requests
runs-on: ubuntu-latest
needs: pagerduty
steps:
- run: echo ${{ needs.pagerduty.outputs.user }} is the Release conductor
- name: Get App Token
uses: actions/create-github-app-token@v2
id: app-token
with:
app-id: ${{ vars.PRIMER_APP_ID_SHARED }}
owner: primer
private-key: ${{ secrets.PRIMER_APP_PRIVATE_KEY_SHARED }}
- uses: actions/checkout@v5
- name: Get Release PR
id: release-pr
run: |
echo "assignees=$(gh pr view ${{ github.event.number }} --json assignees --jq ".assignees[].login" | tr '\n' ',' | sed 's/,$//')" >> $GITHUB_OUTPUT
echo "reviews=$(gh pr view ${{ github.event.number }} --json reviewRequests --jq ".reviewRequests[].login" | tr '\n' ',' | sed 's/,$//')" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
- name: Reset Assignees & Reviewers
if: ${{ ! contains( steps.release-pr.outputs.assignees, needs.pagerduty.outputs.user ) }}
run: |
gh pr edit ${{ github.event.number }} --remove-reviewer "${{ steps.release-pr.outputs.reviews }}" --remove-assignee "${{ steps.release-pr.outputs.assignees }}"
gh pr edit ${{ github.event.number }} --add-reviewer ${{ needs.pagerduty.outputs.user }} --add-assignee ${{ needs.pagerduty.outputs.user }}
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}