ci: add AI issue analysis bot workflow and skill#398
Conversation
There was a problem hiding this comment.
Pull request overview
Adds an AI-powered GitHub Issue analysis workflow (based on MistEO/ai-issue-analysis) and accompanying documentation/skill guidance so issues can be automatically triaged and commented on with structured analysis.
Changes:
- Introduce a new GitHub Actions workflow to analyze issues on open/reopen, keyword mention in comments, or manual dispatch.
- Add repository documentation describing setup (secrets), triggers, and expected outputs.
- Add a
.claudeskill definition providing a structured playbook for issue/log analysis tailored to this repo.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
docs/ai-issue-analysis-bot.md |
Documents the bot, triggers, required secret, and usage guidance. |
.github/workflows/ai-issue-analysis.yml |
Implements the automation workflow that runs the external analysis action and posts results. |
.claude/skills/generic-issue-log-analysis/SKILL.md |
Defines the analysis “skill”/playbook the bot can follow, including repo-specific hints and output format. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # - .claude/skills/generic-issue-log-analysis/SKILL.md | ||
| - name: Analyze issue with AI | ||
| id: analysis | ||
| uses: MistEO/ai-issue-analysis@main |
There was a problem hiding this comment.
Using MistEO/ai-issue-analysis@main pins the workflow to a moving branch, which is a supply-chain risk and can cause unexpected behavior changes. Pin this action to an immutable ref (a tagged release or a specific commit SHA) and update it intentionally when needed.
| uses: MistEO/ai-issue-analysis@main | |
| uses: MistEO/ai-issue-analysis@0123456789abcdef0123456789abcdef01234567 |
| - name: 查看完整输入输出 | ||
| if: always() | ||
| env: | ||
| ANALYSIS_PROMPT: ${{ steps.analysis.outputs.analysis-prompt }} | ||
| ISSUE_NUMBER: ${{ steps.analysis.outputs.issue-number }} | ||
| COMMENT_ID: ${{ steps.analysis.outputs.comment-id }} | ||
| COMMENT_URL: ${{ steps.analysis.outputs.comment-url }} | ||
| COPILOT_OUTPUT: ${{ steps.analysis.outputs.copilot-output }} | ||
| FINAL_CONCLUSION: ${{ steps.analysis.outputs.final-conclusion }} | ||
| run: | | ||
| printf '%s\n' "$ANALYSIS_PROMPT" | ||
| echo "issue_number=$ISSUE_NUMBER" | ||
| echo "comment_id=$COMMENT_ID" | ||
| echo "comment_url=$COMMENT_URL" | ||
| printf '%s\n' "$COPILOT_OUTPUT" | ||
| printf '%s\n' "$FINAL_CONCLUSION" |
There was a problem hiding this comment.
The workflow currently prints the full analysis prompt and Copilot raw output to the Actions log. In public repos (and for many org/repo permission models), workflow logs can be broadly readable, and issue text/attachments can contain tokens, emails, or other sensitive data. Please avoid emitting raw prompt/output to stdout; prefer redaction/truncation, or write details only to an artifact with a short retention period and clear access expectations.
No description provided.