Защищенная ветка GraphQL API

Я использую GITHUB API V3 в одном из моих проектов, сейчас мы переходим на GraraphQL API V4. Я хочу перечислить все ветки репо и проверить, является ли это защищенной веткой. В GITHUB API V3 есть API веток, в котором будут перечислены все ветки вместе с защищенным ключом, чтобы его было легко проверить. Теперь в GraphQL я могу получить список всех веток, но не могу проверить, защищена ли ветка или нет.

   refs(first: 100, refPrefix: "refs/heads/") {
        nodes {
            name
        }
    }

Кто-нибудь может помочь с этим, как действовать?

Если бы этого не удалось достичь refs тогда есть способ перечислить только все защищенные ветки

2 ответа

Решение

Я выяснил логику получения защищенной ветки

{
    viewer {
        repository(owner: "parithiban", name: "git-slack-bot") {
            branchProtectionRules(first: 5) {
                nodes {
                    pattern
                    requiredApprovingReviewCount
                    matchingRefs(first: 100) {
                        nodes {
                            name
                        }
                    }
                }
            }
        }
    }
}

Принятый ответ не работает, потому что звонитrepository()сownerаргумент. Он уже привязан к вошедшему в систему пользователю, поэтому вы получаете эту ошибку:

      "errors": [
   ...
   "message": "Field 'repository' doesn't accept argument 'owner'"
]

Удалите самые внешние фигурные скобки и словоviewer, и это сработает.

Другие вопросы по тегам