diff --git a/.github/issue-resolution/scripts/apply-decisions.mjs b/.github/issue-resolution/scripts/apply-decisions.mjs index ee7f2599b..462bb3577 100644 --- a/.github/issue-resolution/scripts/apply-decisions.mjs +++ b/.github/issue-resolution/scripts/apply-decisions.mjs @@ -103,16 +103,18 @@ for (const d of decisions) { const [owner, repo] = d.repository.split("/"); if (d.final_decision === "AUTO_CLOSE") { - if (dryRun) continue; + if (dryRun) { + await addLabel(owner, repo, d.issue_number, ["resolution-candidate"]); + const issueNodeId = await getIssueNodeId(owner, repo, d.issue_number); + const itemId = await addToProject(issueNodeId); + await setTextField(itemId, process.env.PROJECT_REASON_FIELD_ID, `DRY_RUN:${d.model.reason_code}`); + await setTextField(itemId, process.env.PROJECT_CONFIDENCE_FIELD_ID, String(d.model.confidence)); + console.log(`[DRY RUN] Would auto-close #${d.issue_number}`); + continue; + } await addLabel(owner, repo, d.issue_number, ["auto-closed-resolved"]); - await addComment( - owner, - repo, - d.issue_number, - d.model.close_comment || - "This appears resolved based on linked evidence, so we’re closing it automatically. Reply if this still reproduces and we’ll reopen." - ); + await addComment(owner, repo, d.issue_number, d.model.close_comment); await closeIssue(owner, repo, d.issue_number); } diff --git a/.github/workflows/issue-resolution-triage.yml b/.github/workflows/issue-resolution-triage.yml index ce265b42a..3d0593c28 100644 --- a/.github/workflows/issue-resolution-triage.yml +++ b/.github/workflows/issue-resolution-triage.yml @@ -20,22 +20,23 @@ permissions: pull-requests: read models: read +# todo: remove hardcoded values jobs: triage: runs-on: ubuntu-latest env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DRY_RUN: ${{ inputs.dry_run || 'true' }} - MAX_ISSUES: ${{ inputs.max_issues || '100' }} + DRY_RUN: "true"" + MAX_ISSUES: "10" REPO: ${{ github.repository }} - PROJECT_ID: ${{ vars.ISSUE_REVIEW_PROJECT_ID }} - PROJECT_STATUS_FIELD_ID: ${{ vars.PROJECT_STATUS_FIELD_ID }} - PROJECT_CONFIDENCE_FIELD_ID: ${{ vars.PROJECT_CONFIDENCE_FIELD_ID }} - PROJECT_REASON_FIELD_ID: ${{ vars.PROJECT_REASON_FIELD_ID }} - PROJECT_EVIDENCE_FIELD_ID: ${{ vars.PROJECT_EVIDENCE_FIELD_ID }} - PROJECT_LINKED_PR_FIELD_ID: ${{ vars.PROJECT_LINKED_PR_FIELD_ID }} - PROJECT_REPO_FIELD_ID: ${{ vars.PROJECT_REPO_FIELD_ID }} - PROJECT_STATUS_OPTION_NEEDS_REVIEW_ID: ${{ vars.PROJECT_STATUS_OPTION_NEEDS_REVIEW_ID }} + PROJECT_ID: "PVT_kwDOBfz4Jc4BVeWR" + PROJECT_STATUS_FIELD_ID: "PVTSSF_lADOBfz4Jc4BVeWRzhQ56sU" + 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" steps: - uses: actions/checkout@v4