【问题标题】:Getting all repositories query Github v4 API获取所有存储库查询 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
                }
            }
        }
    }
}

但这不是我想要的,因为我必须提供我应该通过另一个查询获得的用户名(我不想自己输入)

有没有办法只使用一个查询来获取我的所有存储库?我认为这应该很容易,但我找不到方法。

【问题讨论】:

    标签: github graphql repository github-api


    【解决方案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
                        }
                      }
                    }
                  }
              }
          }
      `;
      

      如果您只对自己的存储库感兴趣,那么也可以使用您自己的答案。

      【讨论】:

        猜你喜欢
        • 2019-08-20
        • 2018-03-26
        • 2018-09-24
        • 2020-11-20
        • 1970-01-01
        • 1970-01-01
        • 2014-09-21
        • 2013-12-11
        相关资源
        最近更新 更多