使用CLI在Gitlab中创建一个repo

b0zn9rqh  于 2023-08-01  发布在  Git
关注(0)|答案(9)|浏览(125)

我们的办公室有一个gitlab的设置,我们每周有大约100-150个项目要在那里创建,而管理员希望保持对创建仓库和分配团队的控制,对于任何人来说,每周创建这么多仓库似乎都是一项艰巨的任务。
有没有办法**create repo on Gitlab using CLI**-我不介意如果我必须使用ssh

jvidinwx

jvidinwx1#

gitlab-cli不再维护,作者引用了Gitlab模块来代替-它还包括CLI工具。
对于您的特定请求-即在命令行上创建项目,请使用以下命令:
第一个月
请确保使用选项namespace_id而不是group_id!如果不确定GROUP_ID是什么,可以使用
gitlab groups | grep YOUR_GROUP_NAME
去找出答案
每个命令的参数都可以从API documentation中推断出来。任何非标量值参数都必须以内联YAML语法编码(如上所述)。

kcrjzv8t

kcrjzv8t2#

因为你只是想创建一个仓库,所以不需要第三方应用程序。您可以直接向gitlab API发送post请求,这将创建repo。
转到您的个人资料中的account tab,您将找到一个私人令牌。收到
现在打开terminal并使用私有令牌(比如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使其可执行。
现在要创建一个存储库名称bar,请运行

$ ./gcr.sh bar

kb5ga3dv

kb5ga3dv3#

ChillarAnandeigenfield之前的答案相比,尽管这个答案也使用了curl的REST API,但它也:
1.通过在头部(而不是URL)中提供令牌来针对GitLab进行授权
1.使curl在错误的情况下以非零代码退出(通过-f
1.使用path参数而不是name参数,从而避免使用不同路径的风险
首先,obtain a token,可以访问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\"}"

字符串
这个答案只与以用户身份创建存储库有关。以管理员身份创建存储库的请求是不同的。
另外,显式创建repo是可选的,因为GitLab已知能够在第一次推送时创建repo。(credit:Elan R.

fiei3ece

fiei3ece4#

现在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会创建一个私有repo。而且似乎没有办法将其配置为创建公共。

7rtdyuoh

7rtdyuoh5#

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

slhcrj9b

slhcrj9b6#

下面是我的~/.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

h7appiyu

h7appiyu7#

1.总结

易于用途:

2.免责声明

这个答案与2019年8月有关。在未来,它的数据可能会过时。

3. lab(推荐)

3.1.关于我们

lab - CLI工具,简化了GitLab存储库的一些操作。lab是Gitlab的hub扩展。

3.2.用法

首次运行后,实验室将提供输入令牌。创建个人访问令牌,范围api →粘贴到终端→回车。
然后运行lab project create

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

字符串

3.3.结果

x1c 0d1x的数据

3.4.为什么推荐

提供以下选项:

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


4. gitlab-cli

4.1.关于我们

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

4.2.用法

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

gitlab-cli project create KiraGitLabCLI

4.3.结果


4.4.注意事项

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

5.外部链接

1.GitLab CLI客户端

  1. Instructions, how to create GitHub repository from command line(俄语)
e5nqia27

e5nqia278#

请参见glabglab repo create命令
引用doc:

# 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

字符串

acruukt9

acruukt99#

export GITLAB_API_TOKEN=______添加到.bashrc或相关文件中,然后运行:

curl --request POST -H "PRIVATE-TOKEN: ${GITLAB_API_TOKEN}" \
  -H "Content-Type:application/json" \
  "https://gitlab.com/api/v4/projects" \
  -d "{ \"name\":\"test\", \"description\":\"Description.\" }"

字符串

相关问题