一个用Go语言编写的GitHub Issue导出工具,可以将指定GitHub仓库的所有Issue以Markdown格式保存到本地,并支持AI分析总结、生成图表功能。
- 支持从当前Git仓库自动获取GitHub仓库信息
- 支持直接指定GitHub仓库地址
- 将所有Issue(包括已关闭的)导出为Markdown文件
- 包含Issue的完整信息:标题、状态、创建者、时间、标签、指派人等
- 支持GitHub API认证,避免API限制
- 支持使用AI生成Issues分析总结报告
- 支持生成图表
git clone https://github.com/ibarryyan/issue2file
cd issue2file
go mod tidy
go build -o issue2file
go run .
# 从当前目录的Git仓库获取Issues
./issue2file .
# 从指定仓库获取Issues(简短格式)
./issue2file owner/repo
# 从完整URL获取Issues
./issue2file https://github.com/owner/repo
# 使用AI生成Issues分析总结
./issue2file owner/repo --ai
# 指定输出目录
./issue2file owner/repo --output ./my-issues
# 指定AI分析总结文件名
./issue2file owner/repo --ai --filename issues-analysis.md
# 使用配置文件
./issue2file -config=./config.cnf owner/repo
你可以使用TOML格式的配置文件(.cnf后缀)来设置所有选项:
# GitHub和AI令牌
github_token = "your_github_token"
ai_token = "your_ai_token"
# 功能开关
comments = true
ai_summary = false
charts = false
# 输出设置
output_dir = "output_directory"
summary_file = "summary.md"
项目中提供了一个示例配置文件 config.example.conf
,你可以复制并修改它:
cp config.example.conf config.cnf
# 编辑 config.cnf 文件设置你的配置
为了避免GitHub API的限制,建议设置GitHub Personal Access Token:
export GITHUB_TOKEN=your_github_token_here
如果要使用AI分析功能,需要设置AI API Token:
export AI_TOKEN=your_ai_token_here
- 登录GitHub,进入 Settings > Developer settings > Personal access tokens
- 点击 "Generate new token"
- 选择适当的权限(至少需要
public_repo
权限) - 复制生成的token并设置为环境变量
工具会在当前目录创建一个名为 issues_owner_repo
的文件夹,其中包含所有Issue的Markdown文件。
每个Issue文件的命名格式为:issue_编号_标题.md
文件内容包括:
- Issue基本信息(编号、状态、创建者、时间等)
- 标签和指派人信息
- Issue的完整描述内容
- GitHub链接
如果启用了AI分析功能,还会生成一个总结文件(默认为summary.md
),包含:
- AI生成的Issues分析总结
- Issues列表概览
$ ./issue2file xxx/xxx
正在获取仓库 xxx/xxx 的issues...
已保存 issue #1: Welcome to xxx
已保存 issue #2: Feature request: xxx
...
完成!共保存了 150 个issues到目录: issues_xxx_xxx
使用AI分析:
$ ./issue2file xxx/xxx --ai true
正在获取仓库 xxx/xxx 的issues...
已保存 issue #1: Welcome to xxx
...
正在使用AI生成分析总结...
完成!共保存了 150 个issues到目录: issues_xxx_xxx
AI分析总结已保存到: issues_xxx_xxx/summary.md
A: 设置GITHUB_TOKEN环境变量,可以大大提高API限制。
A:
- 登录GitHub
- 进入 Settings > Developer settings > Personal access tokens
- 生成新token,至少需要
public_repo
权限
A: 支持,但需要设置有相应权限的GitHub Token。
A: 大型仓库的Issue数量可能很多,请耐心等待。程序会显示进度。
A: 需要设置AI_TOKEN环境变量,并使用--ai-summary
参数启用该功能。
- 如果不设置GitHub Token,API调用会有限制(每小时60次)
- 大型仓库可能有很多Issue,导出时间较长
- 确保有足够的磁盘空间存储导出的文件
- AI分析功能需要网络连接和有效的API Token
- 优化AI接入,引入Langchain支持更多模型
- 优化日志打印
- 优化AI分析issue质量和准确率
有问题或建议可以提交issue,也可以微信公众号进行留言
感谢JetBrains提供的IDE支持