アプリケーションを簡単にデプロイするためのスクリプトを書いています。アプリケーションのコードは、プライベートのBitBucketリポジトリに保存されます。
コミットのZipファイルをダウンロードできるようにしたいと思います。私は次のコードで認証しようとしました:
https://user:[email protected]/user/repo/get/commit.Zip
ただし、タスクを完了する代わりに、BitBucketのログインページにリダイレクトします。
個人的に、これを実現するためにスクリプトにパスワードを入れたくありませんでした。そのため、公開鍵をbitbucketアカウントに追加した後、次のコマンドを実行するのがコツです。
git archive --remote=ssh://[email protected]/your_bitbucket_username/your_repository.git --format=Zip --output="name_of_your_desired_Zip_file.Zip" master
私のシステムには複数のキーがあります。もしそうするなら、bitbucket接続に特定のキーを使用することを指定する〜/ .sshディレクトリ内に設定ファイルを作成したいと思うでしょう。
〜/ .ssh/config
Host bitbucket.org
StrictHostKeyChecking no
IdentityFile /home/me/.ssh/my_private_key
コマンドラインからprivateBitbucketリポジトリの圧縮されたコピーをダウンロードするには、次を使用します。
curl --digest --user <username>:<password> https://bitbucket.org/<username>/<repository>/get/<branchname>.Zip -o <branchname>.Zip
ここで、<username>
と<password>
はBitbucketアカウント名とパスワード、<repository>
はレポジトリ名、<branchname>
はブランチです。特定のコミットをダウンロードする場合は、<branchname>.
の代わりにコミットのSHA-1ハッシュを使用します
--digest
フラグはセキュリティのためであり、強く推奨されます。ユーザー名とパスワードがnotで送信されるように認証を実行します晴れ。 -o
フラグは、端末画面にストリーミングするのではなく、curlコマンドの出力をファイルとしてディスクに送信します。
注: Bitbucketの認証スキームはwget.
と互換性がないため、curl.
を使用する必要があります。
publicBitbucketリポジトリの場合、コマンドは次のとおりです。
curl https://bitbucket.org/<username>/<repository>/get/<branchname>.Zip -o <branchname>.Zip
または、認証が必要ないため、パブリックリポジトリにwget
を使用することもできます。
wget https://bitbucket.org/<username>/<repository>/get/<branchname>.Zip
.Zip
形式に加えて、.gz
および.bz2
フレーバーのリポジトリをダウンロードできます。上記のコードの.Zip
を.gz
または.bz2
に置き換えるだけで、選択した圧縮形式でリポジトリをダウンロードできます。
--digestフラグはセキュリティのためであり、強くお勧めします。ユーザー名とパスワードが平文で送信されないように認証を実行します。
これは真実ではありません。
BitbucketはTLSのみを使用しているため、クリアテキストで何も送信されることはありません。その結果、ダイジェストは基本認証よりも利点がありません。実際、ダイジェストがサーバーで開始されることを考慮すると、サーバーが提供するナンスを要求する追加のサーバーラウンドトリップが発生します。
ダイジェストの使用は冗長であり、数年前に暗号化されていないHTTPアクセスの提供を停止して以来廃止されており、--digest
@GrowlTigerの提案どおり。
実際、5月1日にダイジェストを完全にオフにしようとしています。その後、curl --digest
は機能しなくなります。
より多くの情報を見つけることができます: https://blog.bitbucket.org/2015/04/03/fare-thee-well-digest-access-authentication/
Bitbucketのプライベートリポジトリから単一のファイルをダウンロードしたい人のために、私は上記を試しましたが、何も動作しませんでした。最後に、以下のコマンドで動作させました:
wget --user=<user> --password=<password> https://bitbucket.org/<user>/<repo>/raw/master/<filename>
GrowlTigersの答えは素晴らしいです、ただの更新です:wgetでは、今でも動作するようです:
wget --user=<username> --password='<password>' https://bitbucket.org/<user>/<repo>/get/<filename>.tar.gz
使用しているツールは、URLの基本認証資格情報をサポートしていますか? PHP Bitbucketプライベートリポジトリのダウンロード用)のダイジェスト認証付きのCurlリクエスト は、
curl --user user:pass https://bitbucket.org/user/repo/get/commit.Zip >commit.Zip
動作します。
Bitbucketの新しいバージョンでこれが機能することがわかりました
repository_list=" a b c"
for repository in ${repository_list}
do
echo "Getting: ${repository}"
curl --user userid:password \
http://bitjira.xxx.com:7990/rest/api/latest/projects/WP/repos/${repository}/archive?format=Zip \
-o ${repository}.Zip
done