GitHub 的 GraphQL API:如何获取我对特定公共存储库所做的所有提交?

Posted

技术标签:

【中文标题】GitHub 的 GraphQL API:如何获取我对特定公共存储库所做的所有提交?【英文标题】:GitHub's GraphQL API: How can I get all of the commits I've contributed to a particular public repo? 【发布时间】:2019-07-12 10:18:55 【问题描述】:

我正在尝试查询 GitHub 的 GraphQL API (v4)。此 API 的哪个 GraphQL 查询可用于获取我对特定公共存储库所做的所有提交?

【问题讨论】:

【参考方案1】:

我想出了解决办法。 (下面显示的解决方案是用于从master 获取相关提交,但可以很容易地适应其他qualifiedName 值。)

首先,执行初始查询以获取用户 ID:

query 
  viewer 
    id
  

然后可以使用以下查询来获取对特定存储库的所有贡献提交:

query($repository_owner:String!, $repository_name:String!, $user_id:ID!) 
    repository(owner: $repository_owner, name: $repository_name) 
        ref(qualifiedName: "master") 
            target 
                ... on Commit 
                    history(author: id: $user_id) 
                        totalCount
                        nodes 
                            id
                            authoredDate
                            message
                        
                    
                
            
        
    

查询变量采用以下形式:


  "repository_owner": "REPOSITORY_OWNER_STRING",
  "repository_name": "REPOSITORY_NAME_STRING",
  "user_id": "USER_ID_FROM_STEP_1"

【讨论】:

以上是关于GitHub 的 GraphQL API:如何获取我对特定公共存储库所做的所有提交?的主要内容,如果未能解决你的问题,请参考以下文章

GitHub 的 GraphQL API:如何获取我对特定公共存储库所做的所有提交?

Github GraphQL API:如何收集特定用户的存储库?

使用graphql github api通过Id获取提交信息

如何将 Github API v4 (graphql) 与 javascript XMLHttpRequest 一起使用

如何使用 java 访问 github graphql API

如何使用 GraphQL API 搜索 GitHub Projects Beta