虽然此代码可以很好地向我的存储库添加部署 ssh-key...
print 'Connecting to Bitbucket...'
bitbucket_access = base64.b64encode(userbb + ":" + passwordbb)
bitbucket_headers = {"Content-Type":"application/json", "Authorization":"Basic " + bitbucket_access}
bitbucket_request_url = "https://bitbucket.org/api/1.0/repositories/<username>/%s/deploy-keys" % project_name
bitbucket_request_req = urllib2.Request(bitbucket_request_url)
for key,value in bitbucket_headers.items():
bitbucket_request_req.add_header(key,value)
request_data = json.dumps({"key":public_key, "label":subproject})
request_response = urllib2.urlopen(bitbucket_request_req, request_data)
...我不能做同样的事情来创建服务挂钩。
print 'Connecting to Bitbucket...'
bitbucket_access = base64.b64encode(userbb + ":" + passwordbb)
bitbucket_headers = {"Content-Type":"application/json", "Authorization":"Basic " + bitbucket_access}
bitbucket_request_url = "https://bitbucket.org/api/1.0/repositories/<username>/%s/services" % project_name
bitbucket_request_req = urllib2.Request(bitbucket_request_url)
for key,value in bitbucket_headers.items():
bitbucket_request_req.add_header(key,value)
request_data = json.dumps({"type":"POST","URL":webhook})
request_response = urllib2.urlopen(bitbucket_request_req, request_data)
因为它给了我 404
urllib2.HTTPError: HTTP Error 404: NOT FOUND
但是我可以像这样使用 curl 手动创建一个 webhook:
curl -X POST -u ${USERNAME}:${PASSWORD} https://bitbucket.org/api/1.0/repositories/<username>/<repository>/services --data 'type=POST&URL=https%3A%2F%2Fmydomain.com%2Fwebhook'
那么如何使用 python urllib2 在 Bitbucket API 中成功地将 webhook URL 添加到我的存储库?