name: bot-help on: issue_comment: types: [created] jobs: help: if: github.event.comment.user.login != 'openchamber-bot[bot]' && (github.event.comment.body == '@openchamber-bot help' || startsWith(github.event.comment.body, '@openchamber-bot help ')) runs-on: ubuntu-latest permissions: issues: write steps: - name: Generate bot app token id: app-token uses: actions/create-github-app-token@fee1f7d63c2ff003460e3d139729b119787bc349 # v2.2.2 with: app-id: ${{ secrets.OC_REVIEW_APP_ID }} private-key: ${{ secrets.OC_REVIEW_APP_PRIVATE_KEY }} - name: Acknowledge help command id: reaction env: GH_TOKEN: ${{ steps.app-token.outputs.token }} COMMENT_ID: ${{ github.event.comment.id }} run: | reaction_id="$(gh api \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ "repos/${GITHUB_REPOSITORY}/issues/comments/${COMMENT_ID}/reactions" \ -f content='eyes' \ --jq '.id')" echo "reaction_id=$reaction_id" >> "$GITHUB_OUTPUT" - name: Post help env: GH_TOKEN: ${{ steps.app-token.outputs.token }} GH_REPO: ${{ github.repository }} COMMENT_BODY: ${{ github.event.comment.body }} COMMENT_ID: ${{ github.event.comment.id }} ISSUE_NUMBER: ${{ github.event.issue.number }} EYES_REACTION_ID: ${{ steps.reaction.outputs.reaction_id }} run: | first_line="${COMMENT_BODY%%$'\n'*}" case "$first_line" in "@openchamber-bot help"|"@openchamber-bot help "*) ;; *) echo "Unsupported help command: $first_line" >&2 exit 1 ;; esac gh issue comment "$ISSUE_NUMBER" --body "

OpenChamber Bot Commands

Use one command at the start of a comment. Any text after the command is passed as maintainer focus. - @openchamber-bot review [focus] — review a pull request. - @openchamber-bot summarize [focus] — summarize an issue or pull request discussion. - @openchamber-bot triage [focus] — triage an issue. - @openchamber-bot reproduce [focus] — attempt to reproduce an issue. - @openchamber-bot help — show this help message.

Examples

- @openchamber-bot review please check the latest fix - @openchamber-bot summarize focus on unresolved blockers - @openchamber-bot triage this looks like a Windows desktop regression - @openchamber-bot reproduce try the steps from the latest reporter comment" if [ -n "$EYES_REACTION_ID" ]; then gh api \ --method DELETE \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ "repos/${GITHUB_REPOSITORY}/issues/comments/${COMMENT_ID}/reactions/${EYES_REACTION_ID}" fi gh api \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ "repos/${GITHUB_REPOSITORY}/issues/comments/${COMMENT_ID}/reactions" \ -f content='+1' >/dev/null