name: Auto Assign on 'take' Comment
on:
issue_comment:
types: [created]
permissions:
issues: write
jobs:
assign:
runs-on:
group: databrickslabs-protected-runner-group
labels: linux-ubuntu-latest
if: (!github.event.issue.pull_request) && contains(github.event.comment.body, 'take')
concurrency:
group: ${{ github.actor }}-auto-assign-issue
cancel-in-progress: true
steps:
- name: Auto assign if comment includes 'take'
uses: actions/github-script@v7
with:
script: |
const body = context.payload.comment.body.trim();
const author = context.payload.comment.user.login;
const issue = context.payload.issue;
// Check if comment is 'take'
if (body !== 'take') {
console.log("Comment is not exactly 'take'; skipping.");
return;
}
// Check if already assigned
const alreadyAssigned = issue.assignees.find(a => a.login === author);
if (alreadyAssigned) {
console.log(`${author} is already assigned; skipping.`);
return;
}
// Check if there is any other assignee
if (issue.assignees.length > 0) {
console.log("Issue already has an assignee; skipping assignment.");
return;
}
// Assign to commenter
await github.rest.issues.addAssignees({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
assignees: [author],
});
console.log(`Assigned ${author} to issue #${issue.number}`);