From dd2671511f55be8d04062146c0de741c7a88dabc Mon Sep 17 00:00:00 2001 From: Felipe Knorr Kuhn Date: Thu, 22 Jan 2026 21:40:07 -0800 Subject: [PATCH] Ignore draft PRs for review and add issues automatically --- .github/workflows/project-review-status.yml | 38 ++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/.github/workflows/project-review-status.yml b/.github/workflows/project-review-status.yml index 730208e78..983fadd07 100644 --- a/.github/workflows/project-review-status.yml +++ b/.github/workflows/project-review-status.yml @@ -1,21 +1,51 @@ -# Workflow: Automatically set project status to "Review Needed" when a reviewer is requested -name: Set Project Status on Review Request +# Workflow: Automate project board management +# - Add newly created issues to project #8 +# - Set status to "Review Needed" when a reviewer is requested on a non-draft PR +name: Project Board Automation -# Trigger: Runs whenever a reviewer is requested on a pull request +# Triggers: Review requested on PRs, or new issues opened on: pull_request: types: [review_requested] + issues: + types: [opened] jobs: update-project-status: runs-on: ubuntu-latest steps: - - name: Update Project Status to Review Needed + - name: Update Project Board uses: actions/github-script@v7 with: # Use the PAT stored in repository secrets (has project write access) github-token: ${{ secrets.PROJECT_TOKEN }} script: | + // Skip draft PRs + if (context.eventName === 'pull_request' && context.payload.pull_request.draft) { + console.log('PR is a draft, skipping Review Needed status...'); + return; + } + + // Handle new issues - add to project + if (context.eventName === 'issues') { + const addMutation = ` + mutation($projectId: ID!, $contentId: ID!) { + addProjectV2ItemById(input: {projectId: $projectId, contentId: $contentId}) { + item { id } + } + } + `; + + await github.graphql(addMutation, { + projectId: "${{ secrets.PROJECT_ID }}", + contentId: context.payload.issue.node_id + }); + + console.log('Successfully added issue to project #8'); + return; + } + + // Handle PR review_requested - update status to "Review Needed" // GraphQL query to find the PR's project items // This fetches all projects the PR is linked to const query = `