Я смотрел на Github API, и он позволяет вам получать все приглашения в репозиторий через конечную точку API (см. https://developer.github.com/v3/repos/invitations/#list -invitations-for-a-repository ). Это работает нормально, как это:
from requests.auth import HTTPBasicAuth
import requests
login = 'xxx'
password = 'yyy'
url = 'https://api.github.com/user/repository_invitations'
repository_invites = requests.get(
url, auth=HTTPBasicAuth(login, password)).json()
print('response: ' + str(repository_invites))
Я могу затем получить каждый запрос его url
, как это:
for repository_invite in repository_invites:
print('url: ' + repository_invite.get('url'))
, который возвращает что-то вроде:
url: https://api.github.com/user/repository_invitations/123456789
Github также упоминает, что вы можете принять приглашение на https://developer.github.com/v3/repos/invitations/#accept -a-хранилище-приглашение , в котором упоминается
PATCH / user / repository_invitations /: приглашение_id
Чего я не понимаю, так это как я могу сказать Github, как принять это. Эта конечная точка, кажется, используется как для удаления, так и для принятия приглашения. Github говорит о PATCH
на https://developer.github.com/v3/#http -verbs , в котором упоминается, что вы можете использовать либо POST
, либо отправить PATCH
запрос, но не как. Итак, вопрос в том, как мне узнать, что я должен отправить в вызове PATCH
? Я попробовал это например:
result = requests.patch(repository_invite.get('url'), json.dumps({'accept': True}))
print('result: ' + str(result.json()))
, который возвращает:
result: {'message': 'Invalid request.\n\n"accept" is not a permitted key.', 'documentation_url': 'https://developer.github.com/v3'}