Auto Assign Issues and PRs #178
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Auto Assign Issues and PRs | |
on: | |
pull_request_target: | |
types: [opened, reopened] # Use pull_request_target for higher permissions | |
pull_request: | |
types: [opened, reopened] # Trigger on opened and reopened PRs | |
issues: | |
types: [opened] # Trigger on issue open events | |
permissions: | |
issues: write | |
pull-requests: write | |
jobs: | |
auto-assign: | |
runs-on: ubuntu-latest | |
steps: | |
# Step to add logging for debugging | |
- name: Log context for debugging | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
console.log("Event Payload:"); | |
console.log(JSON.stringify(context.payload, null, 2)); // Log the entire payload for debugging | |
- name: Assign the issue or PR | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const assignee = context.payload.sender.login; // Get the username of the contributor | |
console.log("Attempting to assign to:", assignee); // Log the assignee for debugging | |
try { | |
if (context.eventName === 'pull_request_target' || context.eventName === 'pull_request') { | |
// Assign the pull request to the contributor | |
const pullRequestNumber = context.payload.pull_request.number; | |
await github.rest.issues.addAssignees({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
issue_number: pullRequestNumber, | |
assignees: [assignee] | |
}); | |
console.log(`PR #${pullRequestNumber} successfully assigned to ${assignee}`); | |
} else if (context.eventName === 'issues') { | |
// Assign the issue to the contributor | |
const issueNumber = context.payload.issue.number; | |
await github.rest.issues.addAssignees({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
issue_number: issueNumber, | |
assignees: [assignee] | |
}); | |
console.log(`Issue #${issueNumber} successfully assigned to ${assignee}`); | |
} | |
} catch (error) { | |
console.error("Error during assignment:", error); | |
} | |