Создать новое РЕПО на Bitbucket из терминала Git Bash?



можно ли создать новый репозиторий в Bitbucket с помощью командной строки Git? Я пробовал следующее:



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


Я получаю это сообщение:




клонирование в голый репозиторий ' new_project.ГИТ...

фатально:https://[email protected]/username/new_project.git/info/refs Не найдено: вы запустили git update-server-info на сервере?




было бы неплохо сделать это, не заходя в веб-приложение.

594   8  

8 ответов:

вы можете использовать Bitbucket REST API и cURL. Например:

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

создать новый репозиторий с именем REPO_NAME.

посмотреть используйте Bitbucket REST API для получения дополнительной информации.

обновление

для Bitbucket V2 в частности, см. разместить новое РЕПО

в последнее время, мы можем просто использовать bitbucket-cli.

установите его с помощью pip

pip install bitbucket-cli

затем создайте РЕПО с помощью

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

обратите внимание, что это создает частный git РЕПО, вы можете использовать --public для публичного доступа и --scm hg если вы используете Mercurial. Аргумент Username может быть добавлен через --username YOUR_USER_NAME.

здесь @это hannesr!--5--> немного подправил, чтобы принять ввод из подсказок:

# 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.

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" }'

Я сделал быстрый сценарий оболочки, который заботится о создании локального git в текущем рабочем каталоге, выполняя "начальную фиксацию", а затем создает РЕПО bitbucket (используя метод mareks curl), а затем, наконец, делает все, что необходимо, чтобы подтолкнуть начальную фиксацию к bitbucket.

(обратите внимание, что это только для частных репозиториев, но это легко изменить, как описано Патриком)

используйте его так:

fillbucket <user> <password> <reponame>

код на http://bitbucket.org/hannesr/fillbucket

здесь 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/ -d '{\"is_private\": \"true\", \"scm\": \"git\", \"project\": \"KEY_OF_PROJECT\"}' | jq '.links.clone[].href'; }; f"

Примечание : вы должны обновление константы с информация.

таким образом, ваш пароль не хранится в код .bash_history.

Он должен быть один-лайнер, чтобы поместиться внутри вашего .

использование

git create <repository_name>

это либо возврат null или вновь созданные адреса репозитория.

вы можете удалить часть jq, если вы не можете / не хотите ее устанавливать.

сладости

Success Message

Ура!

EDIT: мне пришлось заменить Content-Type: application/json С Content-Type: application/x-www-form-urlencoded потому что как-то - d флаг теперь устанавливает заголовок к последнему, даже если вы указываете, что вы отправка json.

cURL руководство говорит:

(HTTP) отправляет указанные данные в запросе POST на HTTP-сервер так же, как это делает браузер, когда пользователь заполняет HTML-форму и нажимает кнопку отправки. Это приведет к тому, что curl передаст данные на сервер с помощью приложения типа содержимого / x-www-form-urlencoded. Сравните с -F, --form.

верхний ответ с cURL не работал хорошо для меня, поэтому я закончил тем, что сделал это в Python с Bitbucket-API. Вот документация на репозитория.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': ...})

@hannester я раздвоил и немного изменил ваш скрипт.

У вас был неверный удаленный url (вы оставили свое имя пользователя в скрипте). Изменил его на включенный Имя пользователя и пароль в файле скрипта.

и переименован, с инструкциями о том, как добавить в Path:

https://bitbucket.org/oscarmorrison/newgit

Comments

    Ничего не найдено.