go - Github REST API ... go-github 似乎缺少 PyGithub 中的功能?
问题描述
我有一个可以访问 Github REST API (v3) 的工作脚本,以 (a) 提交搜索查询并获取结果,然后 (b) 遍历搜索结果以下载单个源代码文件以进行更多处理。
原始脚本使用 Python + PyGithub,我正在尝试将其移植到 Go + go-github。
这是 Python 的一个片段:
g = Github(base_url=GITHUB_ENTERPRISE_URL, login_or_token=token)
def search_github(keywords):
result = g.search_code(keywords)
for repo in result:
response = requests.get(repo.download_url)
matched = re.findall(regular_expression, response.text)
for match in matched:
print(match)
go-github 等价的g.search_code(keywords)
效果很好,...但我找不到任何与repo.download_url
. 这是 go-github 为代码搜索结果提供的内容,......没有“下载网址”。
// CodeResult represents a single search result.
type CodeResult struct {
Name *string `json:"name,omitempty"`
Path *string `json:"path,omitempty"`
SHA *string `json:"sha,omitempty"`
HTMLURL *string `json:"html_url,omitempty"`
Repository *Repository `json:"repository,omitempty"`
TextMatches []*TextMatch `json:"text_matches,omitempty"`
}
如果 go-github 库是 Github REST API 的不完整实现,我会感到惊讶,......但我找不到如何获取与搜索结果关联的“下载 url”,所以我可以下载实际的源代码文件?
即使经过大量谷歌搜索,我也找不到任何使用 go-github 并实际下载搜索结果文件的示例 Go 代码。
我被困住了。任何指针表示赞赏。
去-github:https ://github.com/google/go-github
PyGithub:https ://github.com/PyGithub/PyGithub
Github REST API:https ://docs.github.com/en/rest
解决方案
GitHub API 搜索代码应该为找到的每个项目返回一个“ html_url
”字段,例如:
"html_url": "https://github.com/jquery/jquery/blob/825ac3773694e0cd23ee74895fd5aeb535b27da4/src/attributes/classes.js",
仅此一项就足以下载找到的项目。
推荐阅读
- python - None 是不可调用的 KivyMD
- python-3.x - 如何使用 python 在 aws lex 中导出/下载聊天对话?
- node.js - 使用 node 和 mongodb 进行多字段搜索
- reactjs - 在 react-select 的每个选项中添加一个菜单组件
- terraform - “worker_groups_launch_template”块内的“launch_template_id”和“launch_template_version”
- sorting - 使用 train_test_split 后以正确的顺序获得预测结果?
- .net - 我正在使用 Xander UI 制作一个选项卡式浏览器。我还制作了一个按钮来添加标签。但是我知道如何编码
- mysql - 发生连接重置
- python - 为什么 setup.py 中没有发布日期或时间戳
- php - 如何使用日期/时间获取 php 中另一个位置的等效时区(UTC)?