-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: Add some additional GH project automation (#13629)
Follow up to #13608, after some tweaks and a rebase! * When a PR is opened in draft mode, move to "In Progress" on the board * When a PR is opened for review, move to "In Review" on the board * When a PR is closed but not merged, move it directly to "Done" (instead of "Ready for Release") Note that for now, this only applies to PRs that are on the board themselves, not to PRs linked to an issue.
- Loading branch information
Showing
1 changed file
with
98 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
name: "Automation: Update GH Project" | ||
on: | ||
pull_request: | ||
types: | ||
- closed | ||
- opened | ||
- reopened | ||
- ready_for_review | ||
- converted_to_draft | ||
|
||
jobs: | ||
# Check if PR is in project | ||
check_project: | ||
name: Check if PR is in project | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check if PR is in project | ||
continue-on-error: true | ||
id: check_project | ||
uses: github/update-project-action@f980378bc179626af5b4e20ec05ec39c7f7a6f6d | ||
with: | ||
github_token: ${{ secrets.GH_PROJECT_AUTOMATION }} | ||
organization: getsentry | ||
project_number: 31 | ||
content_id: ${{ github.event.pull_request.node_id }} | ||
field: Status | ||
operation: read | ||
|
||
- name: If project field is read, set is_in_project to 1 | ||
if: steps.check_project.outputs.field_read_value | ||
id: is_in_project | ||
run: echo "is_in_project=1" >> "$GITHUB_OUTPUT" | ||
|
||
outputs: | ||
is_in_project: ${{ steps.is_in_project.outputs.is_in_project || '0' }} | ||
|
||
# When a PR is a draft, it should go into "In Progress" | ||
mark_as_in_progress: | ||
name: "Mark as In Progress" | ||
needs: check_project | ||
if: | | ||
needs.check_project.outputs.is_in_project == '1' | ||
&& (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'converted_to_draft') | ||
&& github.event.pull_request.draft == true | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Update status to in_progress | ||
uses: github/update-project-action@f980378bc179626af5b4e20ec05ec39c7f7a6f6d | ||
with: | ||
github_token: ${{ secrets.GH_PROJECT_AUTOMATION }} | ||
organization: getsentry | ||
project_number: 31 | ||
content_id: ${{ github.event.pull_request.node_id }} | ||
field: Status | ||
value: "🏗 In Progress" | ||
|
||
# When a PR is not a draft, it should go into "In Review" | ||
mark_as_in_review: | ||
name: "Mark as In Review" | ||
needs: check_project | ||
if: | | ||
needs.check_project.outputs.is_in_project == '1' | ||
&& (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'ready_for_review') | ||
&& github.event.pull_request.draft == false | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Update status to in_review | ||
id: update_status | ||
uses: github/update-project-action@f980378bc179626af5b4e20ec05ec39c7f7a6f6d | ||
with: | ||
github_token: ${{ secrets.GH_PROJECT_AUTOMATION }} | ||
organization: getsentry | ||
project_number: 31 | ||
content_id: ${{ github.event.pull_request.node_id }} | ||
field: Status | ||
value: "👀 In Review" | ||
|
||
# By default, closed PRs go into "Ready for Release" | ||
# But if they are closed without merging, they should go into "Done" | ||
mark_as_done: | ||
name: "Mark as Done" | ||
needs: check_project | ||
if: | | ||
needs.check_project.outputs.is_in_project == '1' | ||
&& github.event.action == 'closed' && github.event.pull_request.merged == false | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Update status to done | ||
id: update_status | ||
uses: github/update-project-action@f980378bc179626af5b4e20ec05ec39c7f7a6f6d | ||
with: | ||
github_token: ${{ secrets.GH_PROJECT_AUTOMATION }} | ||
organization: getsentry | ||
project_number: 31 | ||
content_id: ${{ github.event.pull_request.node_id }} | ||
field: Status | ||
value: "✅ Done" | ||
|