Skip to content

feat: implement issue recommendation system for contributor progression #112

feat: implement issue recommendation system for contributor progression

feat: implement issue recommendation system for contributor progression #112

Workflow file for this run

name: Bot - On Comment
# ──────────────────────────────────────────────────────────────────────
# Workflow: Bot - On Comment
#
# Purpose:
# Runs when a NEW comment is created on an issue. Dispatches to
# bot-on-comment.js which parses slash commands (e.g. /assign) from
# the comment body and runs the appropriate handler.
#
# Currently supported commands:
# /assign — Assign the commenter to the issue (see commands/assign.js
# for eligibility checks: skill prerequisites, assignment
# limits, required status labels).
#
# Security:
# - Checks out the default branch (never the PR branch) to prevent
# running untrusted code with the write token.
# - The if-guard ensures this only fires on issue comments, not on
# PR review comments (which have a different payload shape).
#
# Concurrency:
# Serialized per issue number (cancel-in-progress: false) to prevent
# race conditions when multiple /assign comments arrive in quick
# succession on the same issue.
# ──────────────────────────────────────────────────────────────────────
on:
issue_comment:
types:
- created
permissions:
issues: write # Required to add assignees, labels, reactions, and post comments
contents: read # Required to checkout the default branch for bot scripts
jobs:
on-comment:
# Only run on issue comments (not PR review comments which also trigger issue_comment)
if: github.event.issue.pull_request == null
runs-on: hiero-client-sdk-linux-large
# Serialize per issue — never cancel a running /assign to prevent partial state
concurrency:
group: on-comment-${{ github.event.issue.number }}
cancel-in-progress: false
steps:
- name: Harden Runner
uses: step-security/harden-runner@fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594 # v2.16.0
with:
egress-policy: audit
- name: Checkout Repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.repository.default_branch }}
- name: Run On-Comment Handler
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |
const script = require('./.github/scripts/bot-on-comment.js');
await script({ github, context });