使用REST API和python请求将POST HOOK添加到bitbucket存储库

时间:2015-04-15 18:09:22

标签: python python-requests bitbucket-api

我正在尝试将POST挂钩添加到bitbucket存储库中,但每次尝试都会收到404结果。

我在做:

payload = {'type': 'POST', 'URL': announce_post_hook}
content_type = {"Content-Type": "application/json"}
request_url = 'https://api.bitbucket.org/1.0/repositories/{repo_owner}/{repo_slug}/services/'                       
request_url = request_url.format(repo_owner=repo_owner, remote_url=remote_url)
requests.post(request_url, auth=(repo_user, repo_pass), data=json.dumps(payload), headers=content_type)

我也尝试过使用此网址:

https://bitbucket.org/api/1.0/repositories/{repo_owner}/{repo_slug}/services/

因为是api的不同部分列出的那个(例如我使用api.bitbucket.org而不是bitbucket.org/api/来设置部署密钥。)

如果我尝试使用curl来做,如:

curl -X POST -u user:pass https://api.bitbucket.org/1.0/repositories/repowner/reposlug/services/ --data "type=POST&URL=https://hooks.urladdress.com"

然后它会起作用。但是尝试通过像其他api调用中的python请求来执行此操作将失败...

任何人都知道发生了什么事吗?它只是回应没有找到资源,这似乎不对(因为它通过卷曲工作)

发现this问题的问题非常类似,但那里没有答案......

1 个答案:

答案 0 :(得分:0)

为了将来参考,如果其他人遇到同样的问题,显然这个特定端点不接受json编码数据。

所以请求需要

requests.post(request_url, auth=(repo_user, repo_pass), data='type=POST&URL=hooks.url.com')