diff --git a/.github/issue-resolution/scripts/apply-decisions.mjs b/.github/issue-resolution/scripts/apply-decisions.mjs index 7eaa508a3..1f5bdd801 100644 --- a/.github/issue-resolution/scripts/apply-decisions.mjs +++ b/.github/issue-resolution/scripts/apply-decisions.mjs @@ -132,11 +132,36 @@ async function setNumberField(itemId, fieldId, value) { }); } +async function setSingleSelectField(itemId, fieldId, optionId) { + const mutation = ` + mutation($projectId: ID!, $itemId: ID!, $fieldId: ID!, $optionId: String!) { + updateProjectV2ItemFieldValue(input: { + projectId: $projectId, + itemId: $itemId, + fieldId: $fieldId, + value: { singleSelectOptionId: $optionId } + }) { + projectV2Item { id } + } + } + `; + + return graphql(mutation, { + projectId: process.env.PROJECT_ID, + itemId, + fieldId, + optionId + }); +} + async function addToProjectWithFields(owner, repo, d) { const issueNodeId = await getIssueNodeId(owner, repo, d.issue_number); const itemId = await addToProject(issueNodeId); if (itemId) { + if (process.env.PROJECT_STATUS_FIELD_ID && process.env.PROJECT_STATUS_OPTION_NEEDS_REVIEW_ID) { + await setSingleSelectField(itemId, process.env.PROJECT_STATUS_FIELD_ID, process.env.PROJECT_STATUS_OPTION_NEEDS_REVIEW_ID); + } if (process.env.PROJECT_CONFIDENCE_FIELD_ID) { await setNumberField(itemId, process.env.PROJECT_CONFIDENCE_FIELD_ID, d.model.confidence); } @@ -146,12 +171,7 @@ async function addToProjectWithFields(owner, repo, d) { if (process.env.PROJECT_EVIDENCE_FIELD_ID) { await setTextField(itemId, process.env.PROJECT_EVIDENCE_FIELD_ID, d.issue_url); } - // Linked pull requests field is a built-in type that can't be set via API - // GitHub auto-populates it from issue cross-references - if (process.env.PROJECT_REPO_FIELD_ID) { - await setTextField(itemId, process.env.PROJECT_REPO_FIELD_ID, d.repository); - } - console.log(` → Added to project board`); + console.log(` → Added to project board (Status: Needs Review)`); } } diff --git a/.github/workflows/issue-resolution-triage.yml b/.github/workflows/issue-resolution-triage.yml index 0147f6127..f60d6d170 100644 --- a/.github/workflows/issue-resolution-triage.yml +++ b/.github/workflows/issue-resolution-triage.yml @@ -30,16 +30,14 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} PROJECT_PAT: ${{ secrets.PROJECT_PAT }} DRY_RUN: "true" - MAX_ISSUES: "100" + MAX_ISSUES: "10" REPO: ${{ github.repository }} PROJECT_ID: "PVT_kwDOBfz4Jc4BVeWR" PROJECT_STATUS_FIELD_ID: "PVTSSF_lADOBfz4Jc4BVeWRzhQ56sU" + PROJECT_STATUS_OPTION_NEEDS_REVIEW_ID: "a55a2be9" PROJECT_CONFIDENCE_FIELD_ID: "PVTF_lADOBfz4Jc4BVeWRzhQ57x4" PROJECT_REASON_FIELD_ID: "PVTF_lADOBfz4Jc4BVeWRzhQ5-Lg" PROJECT_EVIDENCE_FIELD_ID: "PVTF_lADOBfz4Jc4BVeWRzhQ5-Pw" - PROJECT_LINKED_PR_FIELD_ID: "PVTF_lADOBfz4Jc4BVeWRzhQ56sc" - PROJECT_REPO_FIELD_ID: "PVTF_lADOBfz4Jc4BVeWRzhQ56sk" - PROJECT_STATUS_OPTION_NEEDS_REVIEW_ID: "a55a2be9" defaults: run: