我有一个bitbucket团队,有几个存储库,但我忘记了用户密码登录.我有团队的用户密码凭据,我可以通过该凭据访问和克隆存储库.有没有办法在这种情况下找出名称或链接到存储库?任何API或git命令都可以.我已经在bitbucket网站上搜索过但无法找到任何信息.
我创建了一个 ASP.NET MVC 应用程序,它可以在 Bitbucket 上授权用户。我使用CSharp.Bitbucket 库来获取令牌秘密和令牌值。
该OAuth的教程说,与令牌,我可以进行API调用。
我知道我可以像这样使用基本授权调用 API:
string url = "https://bitbucket.org/api/1.0/user/";
var request = WebRequest.Create(url) as HttpWebRequest;
string credentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes("username" + ":" + "password"));
request.Headers.Add("Authorization", "Basic " + credentials);
using (var response = request.GetResponse() as HttpWebResponse)
{
var reader = new StreamReader(response.GetResponseStream());
string json = reader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
但是如何使用访问令牌调用 API?
非常感谢!
我的bitbucket帐户上有一个团队myteam,其中包含一个名为的项目mainproject.每当我想在里面创建一个存储库时,我只需要执行这个命令行:
$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/repo1" -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks"}'
Run Code Online (Sandbox Code Playgroud)
这有效.但是,当我创建第二个项目时会出现问题secondproject.我该如何告诉API存储库应该属于哪个项目?
我尝试在数据(-d)中指定项目信息:
$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/repo2" -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks", "project": {"name": "secondproject"} }'
Run Code Online (Sandbox Code Playgroud)
或者使用关键参数:
$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/repo2" -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks", "project": {"key": "SEC"} }'
Run Code Online (Sandbox Code Playgroud)
这将在项目中创建存储库repo2 mainproject.
我尝试使用uuid,但同样的情况发生,repo在mainproject中创建.
我尝试将项目名称放在链接中:
$ curl -X POST -v -u myaccount:passwd "https://api.bitbucket.org/2.0/repositories/myteam/secondproject/repo1" -d '{"scm": "git", "is_private": …Run Code Online (Sandbox Code Playgroud) 是否可以使用 Bitbucket API 2.0 获取所有用户存储库,包括私有存储库?当我使用https://api.bitbucket.org/2.0/repositories/ {username} 时,我只公开了。
看起来要获取更改的最新哈希值,例如:
const hash = body.push.changes[0].new.target.hash;
Run Code Online (Sandbox Code Playgroud)
但是,考虑到数组访问,这似乎有点尴尬-它将始终是第一个元素吗?
这是我正在查看的文档:https : //confluence.atlassian.com/bitbucket/event-payloads-740262817.html
推送的有效负载示例为:https : //gist.github.com/ORESoftware/1ef3abe66dba23039ddd90fef1093318
当对存储库进行更改/推送时,我真的对如何访问最新的哈希感到困惑。
是否可以使用他们的 REST API v1.0 通过日期时间过滤器获得对 Bitbucket 的提交?我阅读了 Bitbucket API 的整个文档,但找不到任何相关内容。我在问也许我确实错过了什么。谢谢!
我用来从 bitbucket 获取提交的 API /rest/api/1.0/projects/{0}/repos/{1}/commits
正如标题所述,我想从本机Java桌面应用程序访问bitbucket API.Bitbucket要求应用程序使用OAuth2,为此我发现Oltu应该完成这项工作.
但是,我对OAuth的了解非常有限,所以我很早就陷入了困境.这是我到目前为止所做的:
第1步:我使用我的Bitbucket帐户注册了OAuth Consumer,其中包含以下详细信息:
Name: jerseytestapp
Description:
CallbackURL: http://localhost:8080/
URL:
Run Code Online (Sandbox Code Playgroud)
问题1:我可以自动执行此步骤吗?
第2步:我运行以下Java代码:
package jerseytest;
import org.apache.oltu.oauth2.client.request.OAuthClientRequest;
import org.apache.oltu.oauth2.common.exception.OAuthSystemException;
public class BitbucketJersey {
public static void main(String[] args) {
OAuthClientRequest request;
try {
request = OAuthClientRequest
.authorizationLocation("https://bitbucket.org/site/oauth2/authorize")
.setClientId("jerseytestapp")
.setRedirectURI("http://localhost:8080")
.buildQueryMessage();
System.out.println(request.getLocationUri());
} catch (OAuthSystemException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
第3步:我收到了以下locationURI并在Firefox中打开
https://bitbucket.org/site/oauth2/authorize?redirect_uri=http%3A%2F%2Flocalhost%3A8080&client_id=jerseytestapp
Run Code Online (Sandbox Code Playgroud)
问题2:我是否需要使用浏览器或者是否可以从java应用程序执行此操作?
我在Firefox中收到以下答案消息:
Invalid client_id
This integration is misconfigured. Contact the vendor for assistance.
Run Code Online (Sandbox Code Playgroud)
问题3:正确的后续步骤是什么,以及我的方法有什么问题?
我已经开始在大堂ci设置一个新的团队,可以登录Bitbucket用户.
fly set-team -n main \
--basic-auth-username myuser \
--basic-auth-password xxxx \
--generic-oauth-display-name bitbucket \
--generic-oauth-client-id xxxx \
--generic-oauth-client-secret xxxx \
--generic-oauth-auth-url https://bitbucket.org/site/oauth2/authorize \
--generic-oauth-token-url https://bitbucket.org/site/oauth2/access_token
Run Code Online (Sandbox Code Playgroud)
成功设置它的关键是,bitbucket中的OAuth使用者的回调网址只需要大厅ci网站(/auth/oauth/callback在回调网址中没有)
现在我发现了一个问题.任何用户(甚至是bitbucket云中新注册的免费用户)都可以登录我的大厅ci服务器.
经过一番研究,我得到了这个
通用oAuth
--generic-oauth-*标志配置通用oAuth提供程序,默认情况下不会对单个用户登录执行任何其他验证.它应该只以这种方式与内部auth系统一起使用.例如,如果它用于配置Google或Twitter oAuth,它将允许互联网上的每个人创建管道.它会非常慷慨.如果需要验证,请确保使用--generic-oauth-scope标志.
那么有没有办法阻止未经授权的bitbucket云用户登录,这应该只限于我的组织?与github的选项相同--github-auth-organization=ORG
我尝试添加--generic-oauth-scope concourse.main但总是得到错误:
failed to verify token
Run Code Online (Sandbox Code Playgroud)
我还阅读了关于Bitbucket Cloud的OAuth - Scopes并尝试使用大多数范围,例如
--generic-oauth-scope account
Run Code Online (Sandbox Code Playgroud)
仍然得到相同的错误.
我应该把什么放在范围内?
需要 Rest API 来同步 Bitbucket(云)中的分支,而无需合并拉取请求。在 API 文档中找不到。有没有用于同步分支的 REST API?
请帮助解决上述查询(高优先级)。
我了解如何为 BitBucket 创建应用程序密码,如Atlassian 的应用程序密码信息和此 SO 答案中所述。
但是,什么需要哪些权限呢?具体来说,就我而言,我将其用于我的存储库的命令行 git。
我立即猜测我需要检查Repositories下的读取和写入。管理和删除怎么样?那么项目的读写又如何呢?
在 BitBucket 的社区上发现这个问题:如何使用应用程序密码。向下滚动,OP 说他们发现他们需要存储库和项目的权限- 但仍然不确定这是否正确。
我在哪里可以准确找到这些权限所代表的内容以及简单 git push/pull/tag/... 所需的权限?