Вы не можете ничего вернуть в этой мутации, поскольку она не относится к типу Void
. Вам нужно определить мутацию следующим образом:
mutation DeleteBranch($branchRef: ID!) {
deleteRef(input: {refId: $branchRef}) {
__typename
clientMutationId
}
}
В explorer вы можете определить запросы и мутации и выбрать, какой из них будет выполняться при нажатии кнопки. Полный пример в проводнике:
query GetBranchID {
repository(name: "test-repo", owner: "bertrandmartel") {
refs(refPrefix: "refs/heads/", first: 100) {
nodes {
id
name
}
}
}
}
mutation DeleteBranch($branchRef: ID!) {
deleteRef(input: {refId: $branchRef}) {
__typename
clientMutationId
}
}
с переменными:
{
"branchRef": "MDM6UmVmMjQ5MDU0NzQ0Om1hc3Rlcg=="
}
В проводнике можно выполнить следующие действия:
- выполнить
GetBranchID
query - copy вставить ссылку в переменную
branchRef
- выполнить
DeleteBranch
Без проводника, вот как это будет выглядеть при использовании python:
import requests
repo_name = "YOUR_REPO"
repo_owner = "YOUR_USERNAME"
token = "YOUR_TOKEN"
query = """
query {
repository(name: \"""" + repo_name + """\", owner: \"""" + repo_owner + """\") {
refs(refPrefix: "refs/heads/", first: 100) {
nodes {
id
name
}
}
}
}
"""
resp = requests.post('https://api.github.com/graphql',
json={ "query": query},
headers= {"Authorization": f"Token {token}"}
)
body = resp.json()
for i in body["data"]["repository"]["refs"]["nodes"]:
print(i["name"], i["id"])
chosenBranchId = input("Enter a branch ID: ")
query = """
mutation {
deleteRef(input: {refId: \"""" + chosenBranchId + """\"}) {
__typename
clientMutationId
}
}
"""
resp = requests.post('https://api.github.com/graphql',
json={ "query": query},
headers= {"Authorization": f"Token {token}"}
)
print(resp.json())