使用CLI在gitlab中创建一个repo

Bri*_*SFT 25 git ssh gitlab

我们gitlab在我们的办公室设置了一个设置,我们每周有大约100-150个项目在那里创建,而Admin希望保持创建回购和分配团队的控制权,对任何人来说似乎都有相当多的任务.每周创造许多回购.

有没有办法create repo on Gitlab using CLI- 我不介意我必须使用ssh它.

Mic*_*ihs 18

gitlab-cli不再维护,作者引用了Gitlab模块来代替 - 它还包括一个CLI工具.

对于您的特定请求 - 即在命令行上创建项目,请使用以下命令:

gitlab create_project "YOUR_PROJECT_NAME" "{namespace_id: 'YOUR_NUMERIC_GROUP_ID'}"

请务必使用该选项namespace_id而不是group_id!如果你不确定你的GROUP_ID是什么,你可以使用

gitlab groups | grep YOUR_GROUP_NAME

找出来.

可以从API文档中推断出每个命令的参数.任何非标量值参数都必须以内联YAML语法编码(如上所述).


Chi*_*and 12

由于您只想创建一个仓库,因此不需要第三方应用程序.您可以直接向gitlab发送帖子请求,这将创建回购.

转到个人资料中的帐户标签,您会找到一个私人令牌.收到.

现在打开终端并使用私有令牌(例如foo)和您的回购名称(比如说bar)运行此命令.

curl -H "Content-Type:application/json" https://gitlab.com/api/v3/projects?private_token=foo -d "{ \"name\": \"bar\" }"
Run Code Online (Sandbox Code Playgroud)

为方便起见,如果您不想每次都运行此命令,则可以创建shell脚本.

#!/bin/sh

curl -H "Content-Type:application/json" https://gitlab.com/api/v3/projects?private_token=foo -d "{ \"name\": \"$1\" }"
Run Code Online (Sandbox Code Playgroud)

将其保存到文件gcr.sh并使用可执行文件chmod +x gcr.sh.

现在要创建一个repo名称bar,运行

$ ./gcr.sh bar
Run Code Online (Sandbox Code Playgroud)


Acu*_*nus 7

与ChillarAnandeigenfield之前的答案相比,虽然这个答案也使用了 REST API with curl,但它还:

  1. 通过在标头中而不是在 URL 中提供令牌来对 GitLab 进行授权
  2. curl如果出现错误,则以非零代码退出(通过-f
  3. 使用path参数代替name参数,从而避免使用不同路径的风险

首先,获取有权访问该范围的令牌api

REPO_NAME=foo1
GITLAB_TOKEN=xxxxxxxxxxxxxxxxxxxx  # Enter your own.

curl -f -X POST \
  -H "PRIVATE-TOKEN: ${GITLAB_TOKEN}" -H "Content-Type:application/json" \
  "https://gitlab.com/api/v4/projects" -d "{\"path\": \"${REPO}\", \"visibility\": \"private\"}"
Run Code Online (Sandbox Code Playgroud)

该答案仅与以用户身份创建存储库相关。作为管理员创建存储库的请求是不同的。

顺便说一句,显式创建存储库是可选的,因为已知 GitLab 能够在第一次推送时创建存储库。(图片来源:Elan R.


Sha*_*mal 6

现在 gitlab 支持仅通过提供 URL 来创建新的存储库。如果您的 gitlab 用户名是那么shahidcodes您可以执行以下步骤 -

git init # init a repo if you don't have already
git remote add origin https://gitlab.com./<your_username>/<new_repo_name>
git push -u origin master
Run Code Online (Sandbox Code Playgroud)

您将看到以下来自 git 输出的消息

remote: The private project shahidcodes/new_repo_name was successfully created.
remote:
remote: To configure the remote, run:
remote:   git remote add origin https://gitlab.com/shahidcodes/new_repo_name.git
remote:
remote: To view the project, visit:
remote:   https://gitlab.com/shahidcodes/new_repo_name
remote:
remote:
remote:
To https://gitlab.com/shahidcodes/new_repo_name
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Run Code Online (Sandbox Code Playgroud)

默认情况下,GitLab 将创建一个私有存储库。而且似乎没有办法将其配置为创建公共。


tha*_*era 1

您可以使用gitlab-cli并使用 shell 脚本自动化该过程。我在 gitlab 5.x 中使用过这个,但根据该网站,它可能不适用于 gitlab 6。