web-dev-qa-db-ja.com

トークンでBitbucketリポジトリを操作するには?

私はこのドキュメントに従って、bitbucketからトークン値とトークンシークレットを取得しました。
https://confluence.atlassian.com/display/BITBUCKET/OAuth+on+Bitbucket

その後、そのトークンを使用して、指定されたレポにプッシュ/プルします。

Githubでは、次のようにトークンを使用できます: https://help.github.com/articles/git-automation-with-oauth-tokens#step-2-clone-a-repository

私の質問は、bitbucket(Mercurial/git)でこの種のhttp認証をどのように使用できるかです。

17
Gábor Domonkos

これは BitBucketページの言及

最近、OAuth 2を導入し、それらを HTTP Basic Authクレデンシャル として使用する機能も追加しました。

アクセストークンを使用したリポジトリの複製

アドオンは複製に使用する独自のSSHキーをアップロードできないため、アクセストークンを基本的なHTTP認証の資格情報として使用して、HTTPS経由で安全に複製できます。

git clone https://x-token-auth:{access_token}@bitbucket.org/user/repo.git

リテラル文字列x-token-authユーザー名の代わりとして必要です。

私たちのプロセスはGitHubに似ていますが、少し異なります。違いは、GitHubが実際のトークンをユーザー名フィールドに入力することです。

詳しくは、「 Bitbucket Cloud上のOAuth 」を参照してください コメント内nick graziano による。

11
VonC

Bitbucket Cpanelで[設定]-> [アクセス管理(サイドバー)]-> [アプリパスワード]から作成したアプリパスワードを使用しました。これを行った後、ユーザー名と新しいアプリパスワードを使用して、次のようにリポジトリを複製しました。

https://[your_user_name]:[app_password]@bitbucket.org/[your_user_name]/[repo_name].git
27
Psymatix

まず最初にOAuth 2つのトークンを使用してリポジトリのクローンを作成できます

このページからはわかりませんが、OAuth 1アクセストークンを使用しようとする人がいます。残念ながらGitとMercurialはOAuth 1をサポートしていないため、そのようにリポジトリを複製することはできません。

これは、OAuth 1は、リクエストに一意の署名が必要であるためです。トークン自体は、gitおよびhgがサポートしていない暗号署名プロセスの入力変数の1つにすぎません。

現在、実際にOAuth 2のサポートを追加しました。これは、その名前にもかかわらず、非常に異なるプロトコルであり、暗号化署名が含まれていません。その結果、OAuth = 2つのトークンを使用して、https経由でクローンを作成できます。

これは、新しいOAuth 2アクセス/ベアラートークンを作成し、それを使用して私のプライベートリポジトリの1つを複製するための私のダンプです。

$ curl https://bitbucket.org/site/oauth2/access_token \
  -d grant_type=client_credentials \
  -u dqN7QFLwJEcHsHadYw:pzvZG25WEDqbm9aeUVRHtQRHgTRgDr9t
{
  "access_token": "He1rBW1eYAzmT3ePJcvYDtkIcF1Pb1izZHo8oqpKMEL5ivsku71qkjfumVgR2bWsCiRM7XeEmbVffxU92w==",
  "scopes": "repository email",
  "expires_in": 3600,
  "refresh_token": "pfcnxSpXNPAeTcYhcQ",
  "token_type": "bearer"
}
$ git clone "https://x-token-auth:JU5dAtlMD30BisLpDkIap7T18Ry9v6p0Xif4owkQUyen_rLx5_B3PjjeqhLhpde0ezR1wyGLeqYE2HA49A==@bitbucket.org/evzijst/crypt"
Cloning into 'crypt'...
remote: Counting objects: 26, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 26 (delta 8), reused 0 (delta 0)
Unpacking objects: 100% (26/26), done.
Checking connectivity... done.

OAuth 2つのトークンが1時間で期限切れになります。その後、トークンは機能しなくなります。アクセストークンの取得方法によっては、更新トークンがある場合があります。この更新トークンを使用できます期限切れを回避するために、クローンを作成する直前に新しいアクセストークンを発行する。

10
Erik van Zijst

tokenでBitbucketリポジトリを操作するには:

  1. まず、bitbucketアカウント設定のアクセス管理セクションで「Oauth」を作成します。これはあなたに「鍵」と「秘密」を与えます。これで完了です。

  2. これらのキーとシークレットを使用して、Bitbucketにトークンを要求します。私の場合、https://bitbucket.org/site/oauth2/access_tokenにhttpリクエストを送信しました。 Curlまたは次のようないくつかのAjaxライブラリでそれを行うことができます。

    curl -X POST -u "yourKeyHere:yourSecretHere"  https://bitbucket.org/site/oauth2/access_token -d  grant_type=client_credentials
    

    または、私のhttpリクエストは次のようになり(ノードでスーパーエージェントを使用)、Content-Typeapplication/x-www-form-urlencodedに設定すると、postmanを使用できます。

    request.post("https://yourKeyHere:[email protected]/site/oauth2/      access_token").send('grant_type=client_credentials');`
    

    結果は次のようになります:

    {
       "access_token": "blah blah blah HXAhrfr8YeIqGTpkyFio=",
       "scopes": "pipeline snippet issue pullrequest project team account",
       "expires_in": 3600,
       "refresh_token": "hsadgsadvkQ",
       "token_type": "bearer"
    }
    
  3. これで「access_token」が作成されたので、それを使用してプライベートリポジトリを複製します。しかし、リポジトリのURLは次のようにする必要があります(トークンを角括弧で囲みます)。

    https://x-token-auth:{tokenHere}@bitbucket.org/yourRepoOwnerHere/RepoNameHere.git
    
7
Vahid PG