You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行创建GitLab项目?求对应GitHub脚本的curl命令

移植到GitLab的Curl命令及脚本修改方案

GitLab的API在认证方式、端点和部分参数命名上和GitHub有差异,我帮你把原来的仓库创建脚本改成适配GitLab的版本:

修改后的Bash脚本(GitLab版本)

#!/bin/bash
# Create new GitLab repo from the command line.
# usage=> ./create_gitlab.sh "name" "account" "token"
GITLABUSER=$2
TOKEN=$3
NAME=$1
DESC="Blog of ${1}"
# 若使用自托管GitLab,替换为你的实例地址,比如https://your-gitlab-instance.com/api/v4/projects
curl -s -H "PRIVATE-TOKEN: ${TOKEN}" https://gitlab.com/api/v4/projects -d "{\"name\": \"${NAME}\", \"description\": \"${DESC}\", \"visibility\": \"public\", \"issues_enabled\": true, \"packages_enabled\": true, \"wiki_enabled\": false, \"pages_enabled\": true}"
# echo "done"

关键差异说明

  • 认证方式:GitLab API用PRIVATE-TOKEN请求头做认证,替代了GitHub的Basic Auth(-u参数)
  • API端点:GitLab创建项目的接口是/api/v4/projects,GitHub则是/user/repos
  • 参数映射:
    • GitHub的private: false → GitLab的visibility: "public"(可选值还有private、internal)
    • GitHub的has_issues: true → GitLab的issues_enabled: true
    • GitHub的has_downloads: true → GitLab的packages_enabled: true(如果仅需要允许源码下载,GitLab默认开启,这个参数主要控制包仓库;若要完全对齐原逻辑可以保留)
    • GitHub的has_wiki: false → GitLab的wiki_enabled: false
    • GitHub的has_pages: true → GitLab的pages_enabled: true

对应的Ruby方法修改

把原来调用GitHub脚本的逻辑换成新的GitLab脚本即可:

def create_gitlab_repo()
  # new project repo on GitLab
  system("cd scripts && chmod +x ./create_gitlab.sh")
  system("cd scripts && ./create_gitlab.sh #{self.username} #{Rails.configuration['gitlabusername']} #{ENV['gitlab_token']}")
end

注意:如果是自托管GitLab,记得替换curl命令里的API域名;同时要确保你的GitLab Token拥有api权限(创建项目必须具备该权限)。

内容的提问来源于stack exchange,提问作者Hfyuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:43:07