diff --git a/.github/workflows/autolabler.yml b/.github/workflows/autolabler.yml new file mode 100644 index 00000000..7c47d7fe --- /dev/null +++ b/.github/workflows/autolabler.yml @@ -0,0 +1,45 @@ +name: Auto Label Issues and PRs + +on: + pull_request_target: + types: [opened] + issues: + types: [opened] + +permissions: + issues: write + pull-requests: write + +jobs: + add-labels: + runs-on: ubuntu-latest + steps: + - name: Add labels to PR + if: github.event_name == 'pull_request_target' + uses: actions/github-script@v7 + with: + script: | + const prNumber = context.payload.pull_request.number; + + await github.rest.issues.addLabels({ + ...context.repo, + issue_number: prNumber, + labels: ["recode", "level 1"] + }); + + console.log(`Added labels [recode, level 1] to PR #${prNumber}`); + + - name: Add labels to Issue + if: github.event_name == 'issues' + uses: actions/github-script@v7 + with: + script: | + const issueNumber = context.payload.issue.number; + + await github.rest.issues.addLabels({ + ...context.repo, + issue_number: issueNumber, + labels: ["recode", "level 1"] + }); + + console.log(`Added labels [recode, level 1] to Issue #${issueNumber}`); diff --git a/.github/workflows/pr-issue-sync.yml b/.github/workflows/pr-issue-sync.yml index a0df7fc5..e3162538 100644 --- a/.github/workflows/pr-issue-sync.yml +++ b/.github/workflows/pr-issue-sync.yml @@ -1,7 +1,7 @@ name: Sync PR data from Linked Issues on: - pull_request: + pull_request_target: types: [opened, edited, synchronize] jobs: @@ -17,6 +17,7 @@ jobs: id: extract uses: actions/github-script@v7 with: + github-token: ${{ secrets.GITHUB_TOKEN }} script: | const body = context.payload.pull_request.body || ""; const issuePattern = /#(\d+)/g; @@ -32,8 +33,7 @@ jobs: uses: actions/github-script@v7 with: script: | - const issuesInput = core.getInput("issues") || "[]"; - const issues = JSON.parse(issuesInput); + const issues = JSON.parse(`${{ steps.extract.outputs.issues }}`); const prNumber = context.payload.pull_request.number; let combinedLabels = [];