From 9a895e7a9fda75edbdc3474088c8011aec9cdbbb Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Tue, 26 May 2026 11:38:43 +0200 Subject: [PATCH 1/2] Add auto-assign-pr action --- .github/workflows/auto-assign-pr.yml | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 .github/workflows/auto-assign-pr.yml diff --git a/.github/workflows/auto-assign-pr.yml b/.github/workflows/auto-assign-pr.yml new file mode 100644 index 00000000000..1c3c2ba7122 --- /dev/null +++ b/.github/workflows/auto-assign-pr.yml @@ -0,0 +1,39 @@ +name: Auto-assign PR to Technical Writers + +on: + pull_request: + types: [opened] + +jobs: + auto-assign: + runs-on: ubuntu-latest + permissions: + pull-requests: write + + steps: + - name: Assign PR to creator if on Technical Writers team + uses: actions/github-script@v7 + with: + script: | + const creator = context.payload.pull_request.user.login; + const prNumber = context.payload.pull_request.number; + const assignees = context.payload.pull_request.assignees; + + if (assignees.length > 0) return; + + try { + await github.rest.teams.getMembershipForUserInOrg({ + org: context.repo.owner, + team_slug: 'technical-writers', + username: creator + }); + + await github.rest.issues.addAssignees({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + assignees: [creator] + }); + } catch (error) { + // Not on team, skip assignment + } From 7711a774054f6c764e370c8fc8c1b3dd48800839 Mon Sep 17 00:00:00 2001 From: Dana Breseman Date: Thu, 28 May 2026 10:19:43 +0200 Subject: [PATCH 2/2] Add logging --- .github/workflows/auto-assign-pr.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-assign-pr.yml b/.github/workflows/auto-assign-pr.yml index 1c3c2ba7122..5ee03c281c9 100644 --- a/.github/workflows/auto-assign-pr.yml +++ b/.github/workflows/auto-assign-pr.yml @@ -19,21 +19,31 @@ jobs: const prNumber = context.payload.pull_request.number; const assignees = context.payload.pull_request.assignees; - if (assignees.length > 0) return; + console.log(`Processing PR #${prNumber} by ${creator}`); + console.log(`Current assignees: ${assignees.length > 0 ? assignees.map(a => a.login).join(', ') : 'none'}`); + + if (assignees.length > 0) { + console.log('PR already has assignees, skipping auto-assignment'); + return; + } try { + console.log(`Checking if ${creator} is on technical-writers team...`); await github.rest.teams.getMembershipForUserInOrg({ org: context.repo.owner, team_slug: 'technical-writers', username: creator }); + console.log(`${creator} is on technical-writers team, assigning PR...`); await github.rest.issues.addAssignees({ owner: context.repo.owner, repo: context.repo.repo, issue_number: prNumber, assignees: [creator] }); + console.log(`Successfully assigned PR #${prNumber} to ${creator}`); } catch (error) { - // Not on team, skip assignment + console.log(`${creator} is not on technical-writers team, skipping assignment`); + console.log(`Error details: ${error.message}`); }