我有一个名为myaccount
的Bitbucket帐户。我是一个名为ateam
的团队的开发者,该团队不属于我。我不是这个团队的管理员。开发人员将其权限设置为在ateam
中创建存储库。我可以在ateam
到bitbucket
网站的用户界面中手动创建存储库。但是我无法使用bitbucket的API:
$ curl -X POST -v -u myaccount:mypasswd https://api.bitbucket.org/2.0/repositories/ateam/rep1 -H "Content-Type: application/json" -d '{"is_private": true}'
Enter host password for user 'myaccount':
* Trying 104.192.143.5...
* Connected to api.bitbucket.org (104.192.143.5) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: *.bitbucket.org
* Server certificate: DigiCert SHA2 High Assurance Server CA
* Server certificate: DigiCert High Assurance EV Root CA
* Server auth using Basic with user 'myaccount'
> POST /2.0/repositories/histeam/rep2 HTTP/1.1
> Host: api.bitbucket.org
> Authorization: Basic YWxleGFuZHJlLW5hZGluOmJpdGJ1Y2tldDEy
> User-Agent: curl/7.43.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 20
>
* upload completely sent off: 20 out of 20 bytes
< HTTP/1.1 403 FORBIDDEN
< Server: nginx/1.6.2
< Vary: Authorization, Cookie
< Content-Type: application/json; charset=utf-8
< Strict-Transport-Security: max-age=31536000
< Date: Thu, 14 Jul 2016 09:59:27 GMT
< X-Served-By: app-111
< X-Static-Version: 53f44cd8792e
< ETag: "2517d8a35dee8cb8cd9e5f0c889915ba"
< X-Render-Time: 0.0265378952026
< X-Accepted-OAuth-Scopes: repository:admin
< Connection: keep-alive
< X-Version: 53f44cd8792e
< X-Request-Count: 317
< X-Frame-Options: SAMEORIGIN
< Content-Length: 35
<
* Connection #0 to host api.bitbucket.org left intact
{"error": {"message": "Forbidden"}}
我禁止访问。
现在ateam
的所有者让我成为了该团队的管理员。从那时起,我可以使用与上面相同的命令在ateam
中创建一个存储库:
$ curl -X POST -v -u myaccount:mypasswd https://api.bitbucket.org/2.0/repositories/ateam/rep1 -H "Content-Type: application/json" -d '{"is_private": true}'
关键是我需要使用API作为开发人员创建存储库,而不是管理员。它使用网站的GUI但不通过API工作:尽管有权创建存储库,开发人员仍然禁止使用API。我们这里有错误吗?如果没有,我错过了什么吗?
编辑1
以下是开发人员对该团队的权限的屏幕截图。可以看出,他们应该能够创建一个存储库。
答案 0 :(得分:1)
Bitbucket开发者在这里。我同意这是一个错误。我实际上对此负责:(。所以,为此道歉。
我做了一个修复,它将在下一次部署(可能是本周二)中部署。
亲切的问候。