Python GitHub "Status Check" POST 未找到错误! (404)
Python GitHub "Status Check" POST Not Found Error! (404)
此 :“如何在 github 存储库中执行状态检查?”..
参考以下文章:
https://help.github.com/en/github/administering-a-repository/enabling-required-status-checks
https://developer.github.com/v3/guides/building-a-ci-server/#working-with-statuses
所以,要更新状态检查,我需要创建一个(同时用状态更新它);根据:https://developer.github.com/v3/repos/statuses/#create-a-status ... 发出 POST
至:
/repos/:owner/:repo/statuses/:sha
但是,每当我尝试 post 将有效负载发送到端点 url 时,我都会收到 404 (response.status_code: 404
)。
注意:我正在构建 url,使用来自 GitHub 网络挂钩本身的信息,即
content['repository']['owner']['login']
content['repository']['name']
content['pull_request']['head']['sha']
JSON 负载:
payload = { "state": "pending", "description": "The build succeeded!", "context": "continuous-integration/audit-compliance"}
请求:
headers = {'Content-Type': 'application/json',
'Authorization': "token "+gittokn}
url = https://github.com/api/v3/repos/<OWNER>/<REPO>/statuses/<PR-HEAD-SHA>
response = requests.post(url, headers=headers, json=payload, verify=False)
响应:
{'message': 'Not Found', 'documentation_url': 'https://developer.github.com/enterprise/2.18/v3/repos/statuses/#create-a-status'}
与Curl:
curl -Is --user USER:PASS https://github.com/api/v3/repos/<OWNER>/<REPO>/statuses/<PR-HEAD-SHA> | head -1
HTTP/1.1 200 OK
curl -Is --user USER:PASS https://api.github.com/repos/<OWNER>/<REPO>/statuses/<PR-HEAD-SHA> | head -1
# no result
我哪里错了?
可以根据要求提供额外信息; TIA.
看到示例中的 url 没有 v3 前缀,下面的模板应该适合您:
https://api.github.com/repos/ORGNAME/REPONAME/statuses/<SHA>
更新的答案
https://github.com/api/v3/repos///状态/
.. 工作正常。
GitHub 令牌的权限设置有问题; Github 确实需要修复他们的异常处理; 404不是!
此
参考以下文章:
https://help.github.com/en/github/administering-a-repository/enabling-required-status-checks https://developer.github.com/v3/guides/building-a-ci-server/#working-with-statuses
所以,要更新状态检查,我需要创建一个(同时用状态更新它);根据:https://developer.github.com/v3/repos/statuses/#create-a-status ... 发出 POST
至:
/repos/:owner/:repo/statuses/:sha
但是,每当我尝试 post 将有效负载发送到端点 url 时,我都会收到 404 (response.status_code: 404
)。
注意:我正在构建 url,使用来自 GitHub 网络挂钩本身的信息,即
content['repository']['owner']['login']
content['repository']['name']
content['pull_request']['head']['sha']
JSON 负载:
payload = { "state": "pending", "description": "The build succeeded!", "context": "continuous-integration/audit-compliance"}
请求:
headers = {'Content-Type': 'application/json',
'Authorization': "token "+gittokn}
url = https://github.com/api/v3/repos/<OWNER>/<REPO>/statuses/<PR-HEAD-SHA>
response = requests.post(url, headers=headers, json=payload, verify=False)
响应:
{'message': 'Not Found', 'documentation_url': 'https://developer.github.com/enterprise/2.18/v3/repos/statuses/#create-a-status'}
与Curl:
curl -Is --user USER:PASS https://github.com/api/v3/repos/<OWNER>/<REPO>/statuses/<PR-HEAD-SHA> | head -1
HTTP/1.1 200 OK
curl -Is --user USER:PASS https://api.github.com/repos/<OWNER>/<REPO>/statuses/<PR-HEAD-SHA> | head -1
# no result
我哪里错了?
可以根据要求提供额外信息; TIA.
看到示例中的 url 没有 v3 前缀,下面的模板应该适合您:
https://api.github.com/repos/ORGNAME/REPONAME/statuses/<SHA>
更新的答案
https://github.com/api/v3/repos///状态/ .. 工作正常。
GitHub 令牌的权限设置有问题; Github 确实需要修复他们的异常处理; 404不是!