简体   繁体   English

GitHub的GraphQL API:如何获得对特定公共回购所做的所有提交?

[英]GitHub's GraphQL API: How can I get all of the commits I've contributed to a particular public repo?

I'm trying to query GitHub's GraphQL API (v4). 我正在尝试查询GitHub的GraphQL API(v4)。 What GraphQL query for this API can be used to get all of the commits I've contributed to a particular public repo? 此API的哪些GraphQL查询可用于获取我为特定公共回购贡献的所有提交?

I figured out the solution. 我想出了解决方案。 (The solution shown below is for getting relevant commits from master , but can easily be adapted for other qualifiedName values.) (下面显示的解决方案用于从master获得相关的提交,但是可以轻松地将其修改为其他qualifiedName值。)

First, perform an initial query to obtain user ID: 首先,执行初始查询以获取用户ID:

query {
  viewer {
    id
  }
}

Then the following query can be used to get all contributed commits to a particular repository: 然后,可以使用以下查询将所有贡献提交到特定存储库:

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
                        }
                    }
                }
            }
        }
    }
}

The query variables take the following form: 查询变量采用以下形式:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM