Как запросить коммиты в данном репозитории (Lib: shurcooL / githubv4) - PullRequest
1 голос
/ 04 мая 2020

Я пытаюсь преобразовать этот запрос в структуру:

{
  repository(owner: "google", name: "gson") {
    name
    refs(first: 100, refPrefix: "refs/heads/") {
      edges {
        node {
          name
          target {
            ... on Commit {
              id
              history(first: 2) {
                totalCount
                edges {
                  node {
                    ... on Commit {
                      committer {
                        date
                        email
                        name
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

Я получил это от github api: Как эффективно найти количество коммитов для хранилища?

Я проверил его на проводнике Github, чтобы убедиться, что он работает, как и должен. То, что я пытаюсь сделать, это получить "TotalCount" коммитов для каждого участника в конкретном c репозитории. Я не совсем уверен, как я должен делать это точно. Я уже получил это:

type repositoryInfo struct {
    Repository struct {
        Refs struct {
            TotalCount githubv4.Int //number of branches
            Nodes []ref
            PageInfo pageInfo
        }`graphql:"refs(refPrefix:$prefix,first:$refFirst,after:$refAfter,orderBy:$orderBy)"`
    } `graphql:"repository(owner:$login,name:$repositoryName)"`
}

type ref struct {
    Name githubv4.String
    Prefix githubv4.String

    Target struct {
        AbbreviatedOid githubv4.String
        ID githubv4.GitObjectID
        //History struct {
        //  TotalCount githubv4.Int
        //}`graphql:"history(first:0)"`
    }`graphql:"... on Commit"`
}

Но я получаю это сообщение об ошибке:

Fragment on Commit can't be spread inside Ref

Однако я не могу найти какую-либо полезную документацию. Кто-нибудь может сказать мне, что я делаю не так, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...