首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Github API -获取用户的私有存储库

Github API -获取用户的私有存储库
EN

Stack Overflow用户
提问于 2021-06-30 19:14:15
回答 2查看 595关注 0票数 0

我已经创建了一个脚本,可以自动备份硬盘上的GitHub存储库。

我使用我的Github用户名与一个个人访问令牌相结合,以获得对Github的授权。现在,我在他们的文档中读到了一些关于如何从API (公共和私有)中获取我的所有存储库的内容,但是我似乎只能获得公开的.

我的剧本:script.sh

根据我在第78行中所能理解的,url应该返回我所有的“拥有”存储库(其中应该包括我的私人存储库)。

代码语言:javascript
复制
repositories=$(curl -XGET -s https://"${GITHUB_USERNAME}":"${GITHUB_TOKEN}"@api.github.com/users/"${GITHUB_USERNAME}"/repos?per_page="${repository_count}" | jq -c --raw-output ".[] | {name, ssh_url}")

我已经启用了所有存储库范围,这应该使我“完全控制私有存储库(和公共存储库)”。

我现在没有主意了..。我做错什么了吗?

注意:我试图以用户身份获得私有存储库,而不是作为组织

注意:${GITHUB_USERNAME}和${GITHUB_TOKEN}是我在脚本中当然已填写的变量

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-30 19:33:57

您正在调用/users端点,但是查看为经过身份验证的用户列出存储库,您应该调用/user/repos

默认情况下,这将返回当前通过身份验证的用户的所有存储库,包括公共存储库和私有存储库。您还需要正确地处理分页(除非您确实知道不到100个存储库)。

我能够使用以下脚本获取所有存储库的列表:

代码语言:javascript
复制
#!/bin/sh
#
# you must set GH_API_USER and GH_API_TOKEN in your environment

tmpfile=$(mktemp curlXXXXXX)
trap "rm -f $tmpfile" EXIT

page=0
while :; do
    let page++
    curl -sf -o $tmpfile \
        -u "$GH_API_USER:$GH_API_TOKEN" \
        "https://api.github.com/user/repos?per_page=100&page=$page&visibility=all"

    count=$(jq length $tmpfile)
    if [[ $count = 0 ]]; then
        break
    fi

    jq '.[]|.full_name' $tmpfile
done
票数 1
EN

Stack Overflow用户

发布于 2022-09-07 07:25:57

visibility=all是这里的关键,伙计们。我花了几个小时,但最终没有得到我想要的。在文档中也提到了- https://docs.github.com/en/rest/repos/repos#list-repositories-for-the-authenticated-user

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68200480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档