В ролях репозиторий с API GitHub
Я пытаюсь создать репозиторий, используя GithubAPI. Это делается с помощью запроса PUT/user/starred/:owner/:repo
, Я попытался реализовать эту функцию в python, используя библиотеку запросов, но она не работает. Вот минимальный рабочий пример:
Константа определяется как GITHUB_API = api.github.com
, GITHUB_USER = the username of the owner of the repo to be starred
, а также GITHUB_REPO = the name of the repo to be starred
url = urljoin(GITHUB_API, (user + '/starred/' + GITHUB_USER + '/' + GITHUB_REPO))
r = requests.put(url,auth=(user,password))
print r.text
Этот код приводит к ошибке, которая гласит:
{"message":"Not Found","documentation_url":"https://developer.github.com/v3"}
Я думаю, что мне не хватает чего-то фундаментального в процессе выдачи запроса PUT.
1 ответ
Проблема здесь в параметрах, которые вы передаете urljoin()
, Первый параметр должен быть абсолютным URL, а второй параметр - относительным URL. urljoin()
затем создает абсолютный URL из этого.
Кроме того, "пользователь" в этом случае должен быть буквальной частью URL, а не именем пользователя.
В этом случае я бы отказался от urljoin()
-функция полностью, и вместо этого используйте простую подстановку строк:
url = 'https://api.github.com/user/starred/{owner}/{repo}'.format(
owner=GITHUB_USER,
repo=GITHUB_REPO
)