Создать новое РЕПО на 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 на сервере?
было бы неплохо сделать это, не заходя в веб-приложение.
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.установите его с помощью
pippip 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>
здесь 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, если вы не можете / не хотите ее устанавливать.
сладости
Ура!
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-apiPython:
>>> from bitbucket.bitbucket import Bitbucket >>> bb = Bitbucket(username, password) >>> bb.repository.create('awesome-repo', scm='git', private=True) (True, {u'scm': ...})
@hannester я раздвоил и немного изменил ваш скрипт.
У вас был неверный удаленный url (вы оставили свое имя пользователя в скрипте). Изменил его на включенный Имя пользователя и пароль в файле скрипта.
и переименован, с инструкциями о том, как добавить в Path:

Comments