{"id":30047349,"url":"https://github.com/ibarryyan/issue2file","last_synced_at":"2026-05-15T20:03:00.135Z","repository":{"id":307111844,"uuid":"1027177011","full_name":"ibarryyan/issue2file","owner":"ibarryyan","description":"You know , for github issue!","archived":false,"fork":false,"pushed_at":"2025-12-23T03:38:52.000Z","size":371,"stargazers_count":59,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-24T18:14:44.094Z","etag":null,"topics":["github","githubtools","go","golang","issu","issues","tool"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ibarryyan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-27T13:31:25.000Z","updated_at":"2025-12-23T03:38:56.000Z","dependencies_parsed_at":"2025-07-29T15:20:24.725Z","dependency_job_id":null,"html_url":"https://github.com/ibarryyan/issue2file","commit_stats":null,"previous_names":["ibarryyan/issue2file"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ibarryyan/issue2file","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibarryyan%2Fissue2file","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibarryyan%2Fissue2file/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibarryyan%2Fissue2file/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibarryyan%2Fissue2file/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibarryyan","download_url":"https://codeload.github.com/ibarryyan/issue2file/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibarryyan%2Fissue2file/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33077941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","githubtools","go","golang","issu","issues","tool"],"created_at":"2025-08-07T09:39:34.761Z","updated_at":"2026-05-15T20:03:00.130Z","avatar_url":"https://github.com/ibarryyan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Issue2File\n\n\u003ca href=\"\"\u003e\u003cimg src=\"https://img.shields.io/badge/creator-%E9%97%AB%E5%90%8C%E5%AD%A6-blue\" alt=\"\"\u003e\u003c/a\u003e\n[![](https://img.shields.io/github/stars/ibarryyan/issue2file.svg?style=flat)](https://github.com/ibarryyan/issue2file/stargazers)\n\u003ca href=\"\"\u003e\u003cimg src=\"https://img.shields.io/badge/%E5%85%AC%E4%BC%97%E5%8F%B7-%E6%89%AF%E7%BC%96%E7%A8%8B%E7%9A%84%E6%B7%A1-brightgreen\" alt=\"\"\u003e\u003c/a\u003e\n\n一个用Go语言编写的GitHub Issue导出工具，可以将指定GitHub仓库的所有Issue以Markdown格式保存到本地，并支持AI分析总结、生成图表功能。\n\n\u003cp style=\"text-align: center;\"\u003e\n\u003cimg src=\"docs/img.png\" width=\"600\"  /\u003e\n\u003c/p\u003e\n\n## 功能特性\n\n- 支持从当前Git仓库自动获取GitHub仓库信息\n- 支持直接指定GitHub仓库地址\n- 将所有Issue（包括已关闭的）导出为Markdown文件\n- 包含Issue的完整信息：标题、状态、创建者、时间、标签、指派人等\n- 支持GitHub API认证，避免API限制\n- 支持使用AI生成Issues分析总结报告\n- 支持生成图表\n\n## 安装\n\n### 从源码编译\n\n```bash\ngit clone https://github.com/ibarryyan/issue2file\ncd issue2file\ngo mod tidy\ngo build -o issue2file\n```\n\n### 直接运行\n\n```bash\ngo run .\n```\n\n## 使用方法\n\n### 基本用法\n\n```bash\n# 从当前目录的Git仓库获取Issues\n./issue2file .\n\n# 从指定仓库获取Issues（简短格式）\n./issue2file owner/repo\n\n# 从完整URL获取Issues\n./issue2file https://github.com/owner/repo\n```\n\n### 高级选项\n\n```bash\n# 使用AI生成Issues分析总结\n./issue2file owner/repo --ai\n\n# 指定输出目录\n./issue2file owner/repo --output ./my-issues\n\n# 指定AI分析总结文件名\n./issue2file owner/repo --ai --filename issues-analysis.md\n\n# 使用配置文件\n./issue2file -config=./config.cnf owner/repo\n```\n\n### 配置文件\n\n你可以使用TOML格式的配置文件（.cnf后缀）来设置所有选项：\n\n```toml\n# GitHub和AI令牌\ngithub_token = \"your_github_token\"\nai_token = \"your_ai_token\"\n\n# 功能开关\ncomments = true\nai_summary = false\ncharts = false\n\n# 输出设置\noutput_dir = \"output_directory\"\nsummary_file = \"summary.md\"\n```\n\n项目中提供了一个示例配置文件 `config.example.conf`，你可以复制并修改它：\n\n```bash\ncp config.example.conf config.cnf\n# 编辑 config.cnf 文件设置你的配置\n```\n\n### 设置GitHub Token（推荐）\n\n为了避免GitHub API的限制，建议设置GitHub Personal Access Token：\n\n```bash\nexport GITHUB_TOKEN=your_github_token_here\n```\n\n### 设置AI API Token（使用AI功能时需要）\n\n如果要使用AI分析功能，需要设置AI API Token：\n\n```bash\nexport AI_TOKEN=your_ai_token_here\n```\n\n## GitHub Token 获取方法\n\n1. 登录GitHub，进入 Settings \u003e Developer settings \u003e Personal access tokens\n2. 点击 \"Generate new token\"\n3. 选择适当的权限（至少需要 `public_repo` 权限）\n4. 复制生成的token并设置为环境变量\n\n## 输出格式\n\n工具会在当前目录创建一个名为 `issues_owner_repo` 的文件夹，其中包含所有Issue的Markdown文件。\n\n每个Issue文件的命名格式为：`issue_编号_标题.md`\n\n文件内容包括：\n- Issue基本信息（编号、状态、创建者、时间等）\n- 标签和指派人信息\n- Issue的完整描述内容\n- GitHub链接\n\n如果启用了AI分析功能，还会生成一个总结文件（默认为`summary.md`），包含：\n- AI生成的Issues分析总结\n- Issues列表概览\n\n## 示例\n\n```bash\n$ ./issue2file xxx/xxx\n正在获取仓库 xxx/xxx 的issues...\n已保存 issue #1: Welcome to xxx\n已保存 issue #2: Feature request: xxx\n...\n完成！共保存了 150 个issues到目录: issues_xxx_xxx\n```\n\n使用AI分析：\n\n```bash\n$ ./issue2file xxx/xxx --ai true \n正在获取仓库 xxx/xxx 的issues...\n已保存 issue #1: Welcome to xxx\n...\n正在使用AI生成分析总结...\n完成！共保存了 150 个issues到目录: issues_xxx_xxx\nAI分析总结已保存到: issues_xxx_xxx/summary.md\n```\n\n## 常见问题\n\n### Q: API限制怎么办？\nA: 设置GITHUB_TOKEN环境变量，可以大大提高API限制。\n\n### Q: 如何获取GitHub Token？\nA: \n1. 登录GitHub\n2. 进入 Settings \u003e Developer settings \u003e Personal access tokens\n3. 生成新token，至少需要 `public_repo` 权限\n\n### Q: 支持私有仓库吗？\nA: 支持，但需要设置有相应权限的GitHub Token。\n\n### Q: 程序运行很慢？\nA: 大型仓库的Issue数量可能很多，请耐心等待。程序会显示进度。\n\n### Q: AI分析功能需要什么条件？\nA: 需要设置AI_TOKEN环境变量，并使用`--ai-summary`参数启用该功能。\n\n## 注意事项\n\n- 如果不设置GitHub Token，API调用会有限制（每小时60次）\n- 大型仓库可能有很多Issue，导出时间较长\n- 确保有足够的磁盘空间存储导出的文件\n- AI分析功能需要网络连接和有效的API Token\n\n## TODO \n\n- [x] 优化AI接入，引入Langchain支持更多模型\n- [x] 优化日志打印\n- [x] 优化AI分析issue质量和准确率\n- [x] prompt工程化\n\n## 欢迎关注我\n\n\u003cimg src=\"docs/wechat.jpg\" width=\"300\"/\u003e\n\n有问题或建议可以提交[issue](https://github.com/ibarryyan/issue2file/issues/new)，也可以微信公众号进行留言\n\n## 请作者喝杯咖啡\n\n\u003cimg src=\"docs/wxds.png\" width=\"300\"/\u003e\n\n## 致谢\n\n感谢[JetBrains](https://www.jetbrains.com)提供的IDE支持\n\n## 许可证\n\n[MIT License](LICENSE)\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=ibarryyan/issue2file\u0026type=Date)](https://www.star-history.com/#ibarryyan/issue2file\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibarryyan%2Fissue2file","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibarryyan%2Fissue2file","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibarryyan%2Fissue2file/lists"}