使用CLI在gitlab中创建一个repo

时间:2013-10-25 08:46:04

标签: git ssh gitlab

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

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

7 个答案:

答案 0 :(得分: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 documentation推断出每个命令的参数。任何非标量值参数都必须以内联YAML语法编码(如上所述)。

答案 1 :(得分:11)

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

转到个人资料中的account tab,您会找到一个私人令牌。复制那个。

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

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

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

#!/bin/sh

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

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

现在创建一个仓库名称bar,运行

$ ./gcr.sh bar

答案 2 :(得分:2)

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

答案 3 :(得分:0)

这是我〜/ .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 的人。

答案 4 :(得分:0)

1。摘要

易于使用:


2。免责声明

此答案与2019年8月有关。将来,其数据可能已过时。


3。实验室(推荐)

3.1。关于

lab — CLI工具,使使用GitLab存储库的某些操作变得简单。实验室相当于GitHub的hub扩展名的Gitlab。

3.2。用法

首次运行后,实验室将提供输入令牌的权限。 Create a personal access token具有期望的范围api→将其粘贴到终端→→ Enter

然后运行lab project create

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

3.3。结果

lab

3.4。为什么推荐

可用选项:

  1. --public-将存储库设为公开而非私有
  2. -d--description-创建描述

lab description


4。 gitlab-cli

4.1。关于

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

4.2。用法

Create your GitLab personal access tokengitlab-cli login YOUR_TOKEN→运行gitlab-cli project create命令:

gitlab-cli project create KiraGitLabCLI

4.3。结果

gitlab-cli

4.4。注意

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


5。外部链接

  1. GitLab CLI clients
  2. Instructions, how to create GitHub repository from command line(俄语)

答案 5 :(得分:0)

ChillarAnandeigenfield的先前答案相比,该答案也将REST API与curl一起使用,但它也:

  1. 通过在标头(而不是URL)中提供令牌来授权GitLab
  2. 在发生错误的情况下(通过curl使-f以非零代码退出
  3. 使用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\"}"

此答案仅与将存储库创建为user有关。将存储库创建为admin的请求是不同的。

顺便说一句,显式创建存储库是可选的,因为众所周知GitLab能够创建存储库on first push。 (信用:Elan R。

答案 6 :(得分:0)

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