Разрешения на репо для списка Github GraphQL для команды

#github #graphql #github-api #github-graphql

Вопрос:

Я действительно изо всех сил пытаюсь извлечь что-нибудь разумное из API GitHub GraphQL… Я хочу получить список репозиториев и уровни разрешений для команды. До сих пор у меня было

 Q= """query {
  organization(login: "MY_ORG") {
      team(slug:"MY_TEAM") {
          name
          repositories(first:3){
              nodes {
                  name
              }
              edges {
                  permission
              }
          }
      }
  }
}"""
 

который возвращает

 {'data': {'organization': {'team': {'name': 'MY_TEAM',
'repositories': {'nodes': [{'name': 'REPO1'},
  {'name': 'REPO2'},
  {'name': 'REPO3'}],
 'edges': [{'permission': 'ADMIN'},
  {'permission': 'ADMIN'},
  {'permission': 'ADMIN'}]}}}}}
 

Но я не вижу никакого способа перечислить разрешение и имя репозитория вместе, так как нет способа перейти от teamrepositoryedge к узлу репозитория или наоборот :/

Я чувствую, что упускаю что-то очевидное и просто не вижу этого.

Ответ №1:

В конце концов обнаружил, что на краю есть узел, который просто не задокументирован, как другие 🙁

 query {
organization(login: "MY_ORG") {
    team(slug:"MY_TEAM"){
        name
        repositories(first:3){
            edges {
                permission
                node {
                    name
                }
            }
        }
    }
}
}

{'data': {'organization': {'team': {'name': 'MY_TEAM',
'repositories': {'edges': [{'permission': 'ADMIN',
   'node': {'name': 'REPO1'}},
  {'permission': 'ADMIN', 'node': {'name': 'REPO2'}},
  {'permission': 'ADMIN', 'node': {'name': 'REPO3'}}]}}}}}