在 github api 上关闭拉取请求时出现 404
404 when closing pull request on github api
我有以下代码用于与 github api 上的拉取请求交互。
def merge(pull):
url = "https://api.github.com/repos/{}/{}/pulls/{}/merge".format(os.environ.get("GITHUB_USERNAME"), os.environ.get("GITHUB_REPO"), pull['number'])
response = requests.put(url, auth=get_auth(), data={})
if response.status_code == 200:
#Merge was successful
return True
else:
#Something went wrong. Oh well.
return response.status_code
def close(pull):
url = "https://api.github.com/repos/{}/{}/pulls/{}".format(os.environ.get("GITHUB_USERNAME"), os.environ.get("GITHUB_REPO"), pull['number'])
payload = {"state" : "closed"}
response = requests.put(url, auth=get_auth(), data=payload)
if response.status_code == 200:
#Close was successful
return True
else:
#Something went wrong. Oh well.
return response.status_code
现在合并工作正常,当我 运行 它与拉取请求合并时,拉取请求被合并,感觉很好。
但是 close 给了我一个 404。这很奇怪,因为 merge 可以清楚地找到拉取请求,并且还表明我显然已经正确设置了权限,所以我可以关闭请求。
我还确认我可以通过登录 github 并按 'close pull request' 按钮手动关闭请求。
为什么 github 给我关闭函数的 404 而不是合并函数?这两个函数有什么不同?
答案是 'update a pull request' api 调用应该是 POST 请求,而不是放置请求。
改变
response = requests.put(url, auth=get_auth(), data=payload)
至
response = requests.post(url, auth=get_auth(), data=payload)
已解决问题。
我有以下代码用于与 github api 上的拉取请求交互。
def merge(pull):
url = "https://api.github.com/repos/{}/{}/pulls/{}/merge".format(os.environ.get("GITHUB_USERNAME"), os.environ.get("GITHUB_REPO"), pull['number'])
response = requests.put(url, auth=get_auth(), data={})
if response.status_code == 200:
#Merge was successful
return True
else:
#Something went wrong. Oh well.
return response.status_code
def close(pull):
url = "https://api.github.com/repos/{}/{}/pulls/{}".format(os.environ.get("GITHUB_USERNAME"), os.environ.get("GITHUB_REPO"), pull['number'])
payload = {"state" : "closed"}
response = requests.put(url, auth=get_auth(), data=payload)
if response.status_code == 200:
#Close was successful
return True
else:
#Something went wrong. Oh well.
return response.status_code
现在合并工作正常,当我 运行 它与拉取请求合并时,拉取请求被合并,感觉很好。
但是 close 给了我一个 404。这很奇怪,因为 merge 可以清楚地找到拉取请求,并且还表明我显然已经正确设置了权限,所以我可以关闭请求。
我还确认我可以通过登录 github 并按 'close pull request' 按钮手动关闭请求。
为什么 github 给我关闭函数的 404 而不是合并函数?这两个函数有什么不同?
答案是 'update a pull request' api 调用应该是 POST 请求,而不是放置请求。
改变
response = requests.put(url, auth=get_auth(), data=payload)
至
response = requests.post(url, auth=get_auth(), data=payload)
已解决问题。