176 lines
7.1 KiB
YAML
176 lines
7.1 KiB
YAML
name: HyperChat Auto Comment Issue 2.0
|
||
|
||
on:
|
||
issues:
|
||
types: [opened]
|
||
|
||
jobs:
|
||
hyperchat-auto-comment:
|
||
runs-on: ubuntu-latest
|
||
permissions:
|
||
contents: read
|
||
issues: write
|
||
pull-requests: read
|
||
|
||
steps:
|
||
- name: Checkout repository
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 1
|
||
|
||
- name: Setup Node.js
|
||
uses: actions/setup-node@v4
|
||
with:
|
||
node-version: '20'
|
||
cache: 'npm'
|
||
|
||
- name: Install GitHub CLI
|
||
run: |
|
||
# 安装 GitHub CLI
|
||
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
|
||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
|
||
sudo apt update
|
||
sudo apt install gh -y
|
||
|
||
- name: Authenticate GitHub CLI
|
||
run: |
|
||
echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token
|
||
|
||
- name: Get Issue Information
|
||
id: issue_info
|
||
run: |
|
||
# 获取Issue详细信息
|
||
ISSUE_INFO=$(gh issue view ${{ github.event.issue.number }} --json title,body,author,labels,url --repo ${{ github.repository }})
|
||
echo "ISSUE_DATA<<EOF" >> $GITHUB_OUTPUT
|
||
echo "$ISSUE_INFO" >> $GITHUB_OUTPUT
|
||
echo "EOF" >> $GITHUB_OUTPUT
|
||
|
||
- name: Run HyperChat Analysis and Comment
|
||
run: |
|
||
# 创建分析提示
|
||
ANALYSIS_PROMPT="你是 HyperChat 项目的专业 Issue 分析助手。请先仔细阅读项目的 CLAUDE.md 文件,学习项目的详细信息,然后使用 gh 命令分析并回复下面的 GitHub Issue。
|
||
|
||
## 第一步:学习项目信息
|
||
请先使用以下命令读取项目文档:
|
||
\`cat CLAUDE.md\`
|
||
|
||
仔细学习文档中的:
|
||
- 项目概述和架构
|
||
- 开发逻辑和最佳实践
|
||
- 包结构和构建命令
|
||
- 已完成功能和待办事项
|
||
- 常见问题解决方案
|
||
|
||
## 第二步:分析Issue信息
|
||
- **Repository**: ${{ github.repository }}
|
||
- **Issue Number**: ${{ github.event.issue.number }}
|
||
- **Issue Title**: ${{ github.event.issue.title }}
|
||
- **Issue Author**: ${{ github.event.issue.user.login }}
|
||
- **Issue URL**: ${{ github.event.issue.html_url }}
|
||
|
||
**Issue 内容**:
|
||
${{ github.event.issue.body }}
|
||
|
||
## 第三步:深度分析任务
|
||
基于 CLAUDE.md 中学到的项目知识,完成以下分析:
|
||
1. **问题分类**:确定Issue类型(Bug报告/功能请求/使用问题/文档问题/开发指导等)
|
||
2. **影响评估**:评估问题的严重程度和影响范围(参考项目架构)
|
||
3. **技术分析**:基于项目的技术栈和架构提供专业判断
|
||
4. **解决建议**:参考项目的开发最佳实践和已有功能提供具体建议
|
||
5. **资源指引**:指向相关的文档、代码文件或构建命令
|
||
|
||
## 第四步:执行回复和标签
|
||
使用以下命令完成任务:
|
||
- 首先回复Issue:\`gh issue comment ${{ github.event.issue.number }} --repo ${{ github.repository }} --body \"你的专业回复内容\"\`
|
||
- 然后添加相关标签:\`gh issue edit ${{ github.event.issue.number }} --repo ${{ github.repository }} --add-label \"标签1,标签2,标签3\"\`
|
||
|
||
## 增强回复格式模板
|
||
🤖 **HyperChat AI 助手自动回复**
|
||
|
||
感谢你提交这个 Issue!我已经基于项目文档深入分析了你的问题:
|
||
|
||
**📋 问题分析**
|
||
- **类型**:[具体类型]
|
||
- **影响范围**:[基于项目架构的具体范围]
|
||
- **严重程度**:[评估等级]
|
||
|
||
**🔍 技术分析**
|
||
[基于CLAUDE.md中的技术栈、架构和开发逻辑的深度分析]
|
||
|
||
**💡 解决建议**
|
||
[参考项目最佳实践和已有功能的具体建议]
|
||
|
||
**📚 相关资源**
|
||
- 🛠️ [开发指南](https://github.com/${{ github.repository }}/blob/dev2/CLAUDE.md)
|
||
- 📖 [项目文档](https://github.com/${{ github.repository }}/blob/dev2/README.md)
|
||
- [其他相关文件或命令,基于分析结果]
|
||
|
||
**🚀 下一步行动**
|
||
[基于项目当前状态和开发流程的具体指导]
|
||
|
||
如需进一步帮助,请提供更多技术细节!
|
||
|
||
---
|
||
*此回复基于项目文档智能生成,由 HyperChat AI 助手提供*
|
||
|
||
## 可用标签参考
|
||
**问题类型标签**:
|
||
- bug:Bug报告
|
||
- enhancement:功能请求
|
||
- question:使用问题
|
||
- documentation:文档问题
|
||
- help wanted:需要帮助
|
||
- good first issue:适合新手
|
||
|
||
**影响范围标签**:
|
||
- frontend:前端相关
|
||
- backend:后端相关
|
||
- cli:CLI工具相关
|
||
- electron:桌面应用相关
|
||
- web:Web应用相关
|
||
- shared:共享代码相关
|
||
|
||
**严重程度标签**:
|
||
- priority:low:低优先级
|
||
- priority:medium:中优先级
|
||
- priority:high:高优先级
|
||
- priority:critical:紧急
|
||
|
||
**其他标签**:
|
||
- duplicate:重复问题
|
||
- wontfix:不会修复
|
||
- invalid:无效问题
|
||
- auto-analyzed:自动分析
|
||
|
||
## 执行要求
|
||
**重要**:请严格按照以下步骤执行:
|
||
1. **第一步**:先执行 \`cat CLAUDE.md\` 学习项目详细信息
|
||
2. **第二步**:基于学到的知识分析Issue
|
||
3. **第三步**:执行 \`gh issue comment\` 命令发布专业回复
|
||
4. **第四步**:执行 \`gh issue edit --add-label\` 命令添加2-4个最相关标签
|
||
5. **必须**:确保所有命令都能成功执行,回复内容要体现对项目的深度理解"
|
||
|
||
# 使用 HyperChat 进行分析和回复
|
||
npx @dadigua/hyperchat@latest "$ANALYSIS_PROMPT"
|
||
env:
|
||
# GitHub Token for gh CLI (already authenticated above)
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
|
||
# HyperChat 配置
|
||
HyperChat_API_URL: ${{ secrets.HyperChat_API_URL }}
|
||
HyperChat_API_KEY: ${{ secrets.HyperChat_API_KEY }}
|
||
HyperChat_AI_Provider: ${{ secrets.HyperChat_AI_Provider }}
|
||
HyperChat_AI_Model: ${{ secrets.HyperChat_AI_Model }}
|
||
|
||
|
||
- name: Fallback Comment on Failure
|
||
if: failure()
|
||
run: |
|
||
gh issue comment ${{ github.event.issue.number }} --repo ${{ github.repository }} --body "🤖 **HyperChat AI 助手**
|
||
|
||
抱歉,自动分析系统遇到了问题,无法生成智能回复。
|
||
|
||
请耐心等待项目维护者的人工回复,或者在 [讨论区](https://github.com/${{ github.repository }}/discussions) 寻求帮助。
|
||
|
||
---
|
||
*此消息由自动化系统生成*" |