web-dev-qa-db-ja.com

Git BashターミナルからBitbucketに新しいリポジトリを作成しますか?

コマンドラインGitを使用してBitbucketに新しいリポジトリを作成することはできますか?私は次を試しました:

git clone --bare https://[email protected]/username/new_project.git

私はこのメッセージを受け取ります:

ベアリポジトリ「new_project.git」にクローンを作成しています...
致命的:https://[email protected]/username/new_project.git/info/refs見つかりません:サーバーでgit update-server-infoを実行しましたか?

Webアプリにアクセスせずにこれを行うと便利です。

69
Patrick

Bitbucket REST APIおよびcURLを使用できます。例:

curl --user login:pass https://api.bitbucket.org/1.0/repositories/ \
--data name=REPO_NAME

REPO_NAMEという名前の新しいリポジトリを作成します。

詳細については、 Bitbucket REST APIs を使用してください]を参照してください。

更新

特にBitbucket V2については、 POST a new repo をご覧ください。

87
Marek

最近では、 bitbucket-cli のみを使用できます。

pip を使用してインストールします

pip install bitbucket-cli

次に、を使用してレポを作成します

bitbucket create --private --protocol ssh --scm git YOUR_REPO_NAME

これによりプライベートgitリポジトリが作成されます。パブリックアクセスには--publicを使用でき、Mercurialを使用する場合は--scm hgを使用できます。ユーザー名の引数は、--username YOUR_USER_NAMEを介して追加できます。

47
Stephen

@ hannesrのスクリプト は、プロンプトからの入力を受け入れるために少し調整されています。

# startbitbucket - creates remote bitbucket repo and adds it as git remote to cwd
function startbitbucket {
    echo 'Username?'
    read username
    echo 'Password?'
    read -s password  # -s flag hides password text
    echo 'Repo name?'
    read reponame

    curl --user $username:$password \
         https://api.bitbucket.org/1.0/repositories/ \
         --data name=$reponame \
         --data is_private='true'
    git remote add Origin [email protected]:$username/$reponame.git
    git Push -u Origin --all
    git Push -u Origin --tags
}

これを.bashrcまたは.bash_aliasesに配置する必要があります。

11
pztrick

https://confluence.atlassian.com/bitbucket/repository-resource-423626331.html

$ curl -X POST -v -u username:password -H "Content-Type: application/json" \
  https://api.bitbucket.org/2.0/repositories/teamsinspace/new-repository4 \
  -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'
10
mcfw

現在の作業ディレクトリでローカルgitを作成し、「初期コミット」を実行してからBitbucketリポジトリを作成し(Mareks curlメソッドを使用)、最後に初期をプッシュするために必要なすべてを実行するクイックシェルスクリプトを作成しましたbitbucketにコミットします。

(これはプライベートリポジトリ専用ですが、Patrickの説明に従って簡単に変更できます)

次のように使用します。

fillbucket <user> <password> <reponame>

コードはオンです http://bitbucket.org/hannesr/fillbucket

2
hannesr

one-liner copy/paste candyは次のとおりです。

# This is Git's per-user configuration file.
[alias]
  create = "!f() { curl -X POST -u YOUR_EMAIL_ADDRESS -H 'Content-Type: application/x-www-form-urlencoded' https://api.bitbucket.org/2.0/repositories/YOUR_USERNAME_OR_TEAM_NAME/$1 -d '{\"is_private\": \"true\", \"scm\": \"git\", \"project\": \"KEY_OF_PROJECT\"}' | jq '.links.clone[].href'; }; f"

NOTE:update定数情報を使用する必要があります。

この方法では、パスワードは.bash_historyに保存されません。

~/.gitconfigファイル内に収まるように、1行にする必要があります。

使用法

git create <repository_name>

これは、nullまたは新しく作成されたリポジトリアドレスを返します。

Jq部分をインストールできない場合、またはインストールしない場合は、jq部分を削除できます。

甘さ

Success Message

乾杯!

EDIT:私はContent-Type: application/jsonContent-Type: application/x-www-form-urlencodedに置き換えなければなりませんでした。なぜなら、-dフラグは、たとえjsonを送信することを指定します。

cURLマニュアルには次のように書かれています:

(HTTP)指定されたデータをPOSTリクエストでHTTPサーバーに送信します。ユーザーがHTMLフォームに入力して送信ボタンを押したときにブラウザーが行うのと同じ方法です。これにより、 curlがcontent-type application/x-www-form-urlencodedを使用してデータをサーバーに渡すようにします。

1
Lowinput

CURLの一番の答えは私にはうまくいきませんでしたので、Python with Bitbucket-APIrepository.create() 呼び出しに関するドキュメントは次のとおりです。

インストール:

pip install bitbucket-api

Python:

>>> from bitbucket.bitbucket import Bitbucket
>>> bb = Bitbucket(username, password)
>>> bb.repository.create('awesome-repo', scm='git', private=True)
(True, {u'scm': ...})
1
gak

@ pztrick上記スクリプト を少し変更しました。この新しいスクリプトは同じように機能しますが、新しい2.0 APIを使用します。

function startbitbucket {
    echo 'Username?'
    read username
    echo 'Password?'
    read -s password  # -s flag hides password text
    echo 'Repo name?'
    read reponame

    curl -X POST -v -u $username:$password  -H "Content-Type: application/json" \
  https://api.bitbucket.org/2.0/repositories/$username/$reponame \
  -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'

    git remote add Origin [email protected]:$username/$reponame.git
    git Push -u Origin --all
    git Push -u Origin --tags
}

これを.bashrcまたは.bash_aliasesファイルに配置できます(元のスクリプトと同様)。

これはプライベートリポジトリとしても作成されることに注意してください。 "is_private": "true"を "is_private": "false"に変更して、パブリックリポジトリにすることができます。

0
user1159415