#python #api #gitlab
#питон #API #gitlab #python
Вопрос:
API GitLab для доступа ко всем деталям, связанным с открытыми запросами на слияние, с использованием Python.
Я пытаюсь сделать пользовательский интерфейс похожим на показанный ниже.
Ответ №1:
https://docs.gitlab.com/ee/api/graphql/reference/index.html#mergerequest
Простая демонстрация прямого доступа к API GraphQL:
import requests
cursor = None
while True:
response = requests.post("https://gitlab.com/api/graphql",
json={
"query": """
query ($projectId: ID!, $cursor: String) {
project(fullPath: $projectId) {
mergeRequests(state: opened, after: $cursor) {
nodes {
approved
author {
name
}
createdAt
id
sourceBranch
title
updatedAt
}
pageInfo {
endCursor
}
}
}
}""",
"variables": {
"projectId": "gitlab-org/gitlab",
"cursor": cursor
}
})
response.raise_for_status()
response = response.json()
if "errors" in response:
raise RuntimeError(response["errors"])
for merge_request in response["data"]["project"]["mergeRequests"]["nodes"]:
print(merge_request)
cursor = response["data"]["project"]["mergeRequests"]["pageInfo"][
"endCursor"]
if cursor is None:
break
Замените исходное использование requests
на любую клиентскую библиотеку GraphQL, которую вы выберете. Замените gitlab.com
и gitlab-org/gitlab
экземпляром и проектом GitLab, которые вы используете. Протестируйте запрос и прочитайте интерактивную документацию по адресу https://gitlab.com/-/graphql-explorer (опять же, замена gitlab.com
на соответствующий экземпляр; переменные запроса можно перетащить вверх из-под области ввода запроса).