25

我们在我们的办公室有一个gitlab设置,我们每周有大约 100-150 个项目要在那里创建,而管理员希望保持对创建 repos 和分配团队的控制,这似乎对任何人来说都是一项艰巨的任务每周创建那么多回购。

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

4

8 回答 8

19

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 语法编码(如上)。

于 2015-07-10T10:06:04.840 回答
16

由于您只是想创建一个存储库,因此不需要第三方应用程序。您可以直接向 gitlab API 发送一个 post 请求,该 API 将创建 repo。

转到您个人资料中的帐户选项卡,您将找到一个私人令牌。收到。

现在打开终端并使用私有令牌(例如foo)和您的存储库名称(例如bar)运行此命令。

curl -H "Content-Type:application/json" https://gitlab.com/api/v4/projects?private_token=foo -d "{ \"name\": \"bar\" }"

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

#!/bin/sh

curl -H "Content-Type:application/json" https://gitlab.com/api/v4/projects?private_token=foo -d "{ \"name\": \"$1\" }"

将此保存到文件gcr.sh并使用chmod +x gcr.sh.

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

$ ./gcr.sh bar
于 2016-03-22T09:29:36.373 回答
4

与ChillarAnandeigenfield之前的答案相比,虽然这个答案也使用了 REST API 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\"}"

此答案仅与以user身份创建存储库有关。作为管理员创建存储库的请求是不同的。

顺便说一句,显式创建 repo 是可选的,因为众所周知 GitLab 能够在第一次 push时创建 repo 。(信用:Elan R.

于 2020-11-03T04:24:26.510 回答
2

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

于 2013-10-26T05:53:29.147 回答
1

这是我的 ~/.bashrc

gitlify() {
    [ $# -eq 0 ] && return 1
    repo_name=$1
    username=smeagol
    token=01234567890

    curl -H "Content-Type:application/json" https://gitlab.com/api/v4/projects?private_token=$token -d "{\"name\": \"$repo_name\"}"
    if [ $? -eq 0 ];then
        git init
        git add .
        git commit -m "first blood"
        git remote add origin git@gitlab.com:$username/$repo_name.git
        git push -u origin master
    else
        echo "error create gitlab repo $repo_name"
    fi
}

您必须首先为您的用户名设置一个令牌。放置此 bash 函数后,您可以通过以下方式使用它:

mkdir /tmp/firstblood
echo '#hello world' > /tmp/firstblood/README.md
cd /tmp/firstblood
gitlify fallenangel

此片段仅适用于 gitlab.com。我还有一个我为 github.com 命名gitify。

于 2018-09-01T13:01:34.550 回答
1

一、总结

便于使用:


2. 免责声明

这个答案与 2019 年 8 月相关。将来,它的数据可能已经过时了。


3.实验室(推荐)

3.1。关于

lab — CLI 工具,使 GitLab 存储库的一些操作变得简单。lab 是 Gitlab 相当于 GitHub 的集线器扩展。

3.2. 用法

首次运行后,实验室将提供输入令牌。创建具有所需范围的个人访问令牌api→ 将其粘贴到终端 → Enter

然后运行lab project create

lab project create -n KiraLab --public -d "Kira lab demo project"

3.3. 结果

实验室

3.4. 为什么推荐

可用选项:

  1. --public— 使存储库公开,而不是私有
  2. -d, --description— 创建描述

实验室描述


4.gitlab-cli

4.1。关于

用于 GitLab 存储库操作的跨平台 Go 编写的命令行实用程序。

4.2. 用法

创建您的 GitLab 个人访问令牌gitlab-cli login YOUR_TOKEN→ 运行gitlab-cli project create命令:

gitlab-cli project create KiraGitLabCLI

4.3. 结果

gitlab-cli

4.4. 笔记

请不要混淆这个 Go 项目和来自@thameera answer的 Ruby gitlab-cli工具。


5. 外部链接

  1. GitLab CLI 客户端
  2. 说明,如何从命令行创建 GitHub 存储库(俄语)
于 2019-08-29T10:22:53.727 回答
1

现在 gitlab 支持通过提供 URL 来创建新的 repo。如果您的 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

您将看到来自 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'.

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

于 2021-02-27T00:57:37.980 回答
0

glab和命令glab repo create

引用文档:

# create a repository under your account using the current directory name
$ glab repo create

# create a repository with a specific name
$ glab repo create my-project
于 2022-02-28T03:34:37.333 回答