你可以使用Python包PyGithub来完成它。
from github import Github
token = Github('personal token key here')
repo = token.get_repo('repo-owner/repo-name')
issues = repo.get_issues(state='all')
for issue in issues:
print(issue.url)
这里我获取了URL,如果你想获取内容,只需更改'.URL'部分即可。 然后将问题链接或内容导出到CSV文件。
gh
GitHub CLI现在集成了jq
,使用--jq <expression>
可使用jq表达式过滤JSON输出,如GitHub CLI手册中所述:https://cli.github.com/manual/gh_issue_list。
TSV
转储。
gh issue list --limit 10 --state all --json title,body --jq '["title","body"], (.[] | [.title,.body]) | @tsv' > issues-$(date '+%Y-%m-%d').tsv
CSV
转储
令人惊讶的是,000D
Unicode 字符需要使用 tr $'\x{0D}' ' '
进行过滤。
gh issue list --limit 10 --state all --json title,body --jq '["title","body"], (.[] | [.title,.body]) | @csv' | tr $'\x{0D}' ' ' > issues-$(date '+%Y-%m-%d').csv
导出拉取请求可以将问题导出为CSV文件,该文件可以在Excel中打开。它还支持GitLab和Bitbucket。
从其文档中可以看到:
导出sshaw/git-link和sshaw/itunes_store_transporter中的打开PR和问题:
epr sshaw/git-link sshaw/itunes_store_transporter > pr.csv
导出padrino/padrino-framework中未由sshaw创建的打开拉取请求:
epr -x pr -c '!sshaw' padrino/padrino-framework > pr.csv
它有几个选项可用于过滤要导出的内容。
下载最新的hub可执行文件(例如Windows 64位)https://github.com/github/hub/releases/并解压它(hub.exe在.../bin目录中)。
创建一个Github个人访问令牌https://github.com/settings/tokens,并将令牌文本字符串复制到剪贴板。
创建一个文本文件(例如在记事本中),用作输入文件到hub.exe...第一行是您的Github用户名,第二行粘贴个人访问令牌,后跟换行符(这样输入到hub时两行都会被处理)。这里我假设该文件是存储在仓库基目录下的infile.txt。
运行Git Bash...并记得cd(更改目录)到感兴趣的仓库!然后输入以下命令:
<path_to_hub_folder>/bin/hub.exe issue -s all -f "%U|%t|%S|%cI|%uI|%L%n" < infile.txt > outfile.csv
然后使用“|”作为列分隔符打开文件。(并考虑在Github上删除个人访问令牌)。