获取所有存储库查询 Github v4 API
Posted
技术标签:
【中文标题】获取所有存储库查询 Github v4 API【英文标题】:Getting all repositories query Github v4 API 【发布时间】:2021-08-29 01:03:54 【问题描述】:我正在尝试使用 Github v4 API 获取我的所有存储库,但我找不到任何名为 repositories
的查询。我找到了类似的方法:
export const query = gql`
query repositories()
search(query: "user:userName", type: REPOSITORY, first: 50)
repositoryCount
edges
node
... on Repository
name
但这不是我想要的,因为我必须提供我应该通过另一个查询获得的用户名(我不想自己输入)
有没有办法只使用一个查询来获取我的所有存储库?我认为这应该很容易,但我找不到方法。
【问题讨论】:
【参考方案1】:我找到了查询:
export const query = gql`
query repositories
viewer
login
repositories(first: 30)
edges
node
name
【讨论】:
【参考方案2】:有不同的方法来实现这一点。您可以在查询中定义参数,然后传递它们。在下面的示例中,将 usersName
设置为您的用户名,将 first
设置为 50 或任何需要的值,请记住,GitHub API 上的 first
存在限制(值必须介于 1 到 100 之间),您可以找到 @ 987654321@.
在本例中,如果userName
不匹配任何条目,则返回错误。
export const query = gql`
query repositories ($userName: String!, $first: Int)
user(login: $userName)
repositories(first: $first)
nodes
name
`;
您可以在示例中使用search
并将变量传递给查询。但是,这样查询将返回来自用户的存储库,这些用户的名称或用户名匹配或包含提供的searchText
的子字符串。如果与searchText
不匹配,此查询将不会返回错误。
export const query = gql`
query ($searchText: String!)
search(query: $searchText, type: USER, first: 1)
nodes
... on User
repositories(first: 50)
nodes
name
`;
如果您只对自己的存储库感兴趣,那么也可以使用您自己的答案。
【讨论】:
以上是关于获取所有存储库查询 Github v4 API的主要内容,如果未能解决你的问题,请参考以下文章
GitHub 的 GraphQL API:如何获取我对特定公共存储库所做的所有提交?
使用 GitHub GraphQL API v4 查询单个存储库中的所有提交
GitHub API v4 Graphql:获取当前授权用户组织及其存储库
通过 Github API 从 Github 存储库中获取所有文件名