57 lines
1.7 KiB
YAML
57 lines
1.7 KiB
YAML
name: Mark PR as draft when changes are requested
|
|
|
|
on:
|
|
pull_request_review:
|
|
types: [submitted]
|
|
|
|
pull_request:
|
|
types: [labeled]
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
mark-draft:
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
(
|
|
github.event_name == 'pull_request_review' &&
|
|
github.event.review.state == 'changes_requested'
|
|
) || (
|
|
github.event_name == 'pull_request' &&
|
|
github.event.label.name == 'pr:please address review comments'
|
|
)
|
|
steps:
|
|
- name: Add label on requested changes
|
|
if: github.event_name == 'pull_request_review'
|
|
env:
|
|
GH_TOKEN: ${{ secrets.MARK_AS_DRAFT_TOKEN }}
|
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
REPO: ${{ github.repository }}
|
|
run: |
|
|
gh issue edit "$PR_NUMBER" \
|
|
--repo "$REPO" \
|
|
--add-label "pr:please address review comments"
|
|
|
|
- name: Mark PR as draft
|
|
env:
|
|
GH_TOKEN: ${{ secrets.MARK_AS_DRAFT_TOKEN }}
|
|
PR_URL: ${{ github.event.pull_request.html_url }}
|
|
run: gh pr ready "$PR_URL" --undo || true
|
|
ready-for-review:
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'pull_request' && github.event.action == 'ready_for_review'
|
|
steps:
|
|
- name: Update labels for review
|
|
env:
|
|
GH_TOKEN: ${{ secrets.MARK_AS_DRAFT_TOKEN }}
|
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
REPO: ${{ github.repository }}
|
|
run: |
|
|
gh issue edit "$PR_NUMBER" \
|
|
--repo "$REPO" \
|
|
--remove-label "pr:please address review comments" || true
|
|
|
|
gh issue edit "$PR_NUMBER" \
|
|
--repo "$REPO" \
|
|
--add-label "pr:needs review"
|