04. 从零建好第一个 GitLab 项目:权限、变量、CI 配置入门

「GitLab」系列已发布: 00. GitLab 不只是代码托管:一套 DevOps 平台的 6 大核心能力 | 01. GitLab 怎么装最省心?Omnibus/Docker/K8s 三种姿势 | 02. 装完 GitLab 先配啥?管理员视角的初始化设置清单 | 03. GitLab 角色搞不清?Member/Maintainer/Owner 权限全解 | 04. 从零建好第一个 GitLab 项目:权限、变量、CI 配置入门(本文) | 05. GitLab MR 代码审查:Code Review 最佳实践

项目不是建个仓库就完事。成员权限、CI/CD 变量、保护分支、默认配置——从零搭好一个规范项目,给后续自动化打好地基。

前置条件

已完成安装与初始配置(第 01-02 篇),在 GitLab 实例中有创建项目的权限。

一、三种创建方式

1.1 从空白项目创建

顶部导航栏 → New project → Create blank project。

关键配置:

项 说明 推荐
Project name 项目名称,用于 URL 和本地目录 小写字母 + 连字符
Project slug URL 中的路径部分 自动生成
Project URL 归属 选个人或某个群组
Visibility Level 可见性 企业内部选 Private
Initialize with README 是否初始化 README 建议勾选

1.1.1 从模板创建

GitLab 内置模板:

  • Ruby on Rails、NodeJS Express、Android、Gatsby、GitLab Pages(HTML/Hugo/Hexo 等)。
  • 也可以自定义团队模板。

管理员在 Admin Area → Settings → General → Custom project templates 指定一个群组,该群组所有项目自动成为可选的模板。

1.1.2 从外部导入

支持的来源:

来源 说明
GitHub OAuth 或 Personal Access Token
Bitbucket Cloud/Server 仓库、Wiki、Issue 迁移
GitLab.com 从 SaaS 导入
其他 Git 仓库 URL 直接导入任意 Git 仓库
本地仓库 推送已有本地仓库

从 GitHub 导入:

project → Import project → GitHub
→ 授权 GitLab 访问 GitHub
→ 选仓库

1.2 项目设置

1.2.1 通用

Settings → General:

name / description
Project avatar
CI/CD configuration file: 自定义 CI/CD 配置文件路径(默认 .gitlab-ci.yml)
Default branch: 推荐 main
Visibility: 可见性更改

1.2.2 仓库

Settings → Repository:

Rules(EE):

- 提交信息正则校验(如要求含 JIRA 编号)
- 分支名正则校验
- 文件大小限制
- 禁止提交特定扩展名
- 要求提交者邮箱与 GitLab 用户邮箱一致
Protected Branches / Tags: 分支和标签保护
Default Branch: 修改默认分支

Deploy Keys: SSH 公钥,可授只读或读写

1.2.3 Push Rules 示例(EE)


# 提交信息格式:约定式提交
Commit message must match: ^(feat|fix|docs|style|refactor|test|chore)(\(.+\)?: .+

# 分支命名规范
Branch name must match: ^(feature|bugfix|hotfix|release)\/.+

# 禁止推密钥文件
Prevent pushing secret files: true

# 单文件最大 100 MB
Maximum file size: 100

1.3 成员管理

1.3.1 加成员

Settings → Members → Invite members。可邀请单人也可以邀请整个群组。优先通过群组管理,项目级直接加人只用于例外情况。

1.3.2 项目角色

角色 典型用途
Guest 外部顾问、临时看
Reporter QA/PM:看代码、管 Issue
Developer 主力研发:写代码、建 MR
Maintainer Tech Lead:合 MR、改配置

1.3.3 到期成员

加成员时设过期日期,到期自动失去访问权限:


# API 方式
curl --request POST \
  --header "PRIVATE-TOKEN: <your_token>" \
  --data "user_id=15&access_level=30&expires_at=2026-12-31" \
  "https://gitlab.example.com/api/v4/projects/1/members"

1.4 Issue 与项目管理

1.4.1 Issue 模板

项目根目录建 .gitlab/issue_templates/,放 Markdown 模板:

<!-- .gitlab/issue_templates/bug_report.md -->

### Bug 描述


(简要描述)

### 复现步骤


1.
2.
3.

### 期望行为


### 实际行为


### 环境信息


- GitLab 版本:
- 浏览器及版本:
- 操作系统:

### 截图/日志

创建 Issue 时下拉菜单选模板即可。

1.4.2 Issue Board

类 Trello/Jira 的看板视图。默认列表:Open / To Do / Doing / Closed。

可自定义列和标签映射。比如把 workflow::in-review 映射到"代码审查"列:

项目 → Issues → Boards → 建新看板 → 每个列对应一个标签

1.4.3 里程碑(Milestone)

把多个 Issue 和 MR 捆绑为可交付的版本目标:


# API 创建
curl --request POST \
  --header "PRIVATE-TOKEN: <your_token>" \
  --data "title=v2.0.0 发布&description=包含新 API 和性能优化&due_date=2026-09-30" \
  "https://gitlab.example.com/api/v4/projects/1/milestones"

1.4.4 标签体系

结构化的标签建议:

类型:
type::bug      type::feature   type::docs      type::refactor
优先级:
priority::critical   priority::high   priority::medium   priority::low
工作流:
workflow::todo   workflow::in-progress   workflow::in-review   workflow::done
团队:
team::backend   team::frontend   team::devops

1.5 项目 Wiki

1.5.1 创建

项目 → Wiki → Create your first page。

Wiki 是独立 Git 仓库,可以像代码一样版本控制:


# 克隆 Wiki
git clone git@gitlab.com:team/project.wiki.git
cd project.wiki

# 编辑
echo "# API 文档" > api-documentation.md
git add .
git commit -m "添加 API 文档"
git push origin main

1.5.2 侧边栏

建 _sidebar.md 定制导航:


### 导航


- [首页](https://home)
- [快速开始](https://quick-start)
- [API 文档](https://api-documentation)
- [部署指南](https://deployment)
- [常见问题](https://faq)

1.6 项目分析

1.6.1 仓库分析

项目 → Analyze → Repository analytics:

  • 提交频率趋势
  • 语言占比
  • 贡献者统计
  • Issue/MR 吞吐量

1.6.2 CI/CD 分析

项目 → Analyze → CI/CD analytics:

  • Pipeline 成功率趋势
  • 平均耗时
  • 各阶段耗时分布

二、项目创建流程

flowchart TD A[新建项目] --> B{创建方式} B -->|空白| C[填写基础信息] B -->|模板| D[选择团队模板] B -->|导入| E[选择来源] C & D & E --> F[配置项目设置] F --> G[添加成员] G --> H{是否开启} H -->|是| I[配置分支保护] H -->|否| J[直接开始] I --> J J --> K[开始开发]

三、文章引用

📌 本文首发于微信公众号 【运维知识点滴】——专注运维实战干货,微信搜索“运维知识点滴”或扫下方二维码关注,更新不迷路。
📎 微信原文:04. 从零建好第一个 GitLab 项目:权限、变量、CI 配置入门

微信公众号【运维知识点滴】 微信小程序【A5单据合并&大试卷拆分转A4打印】
运维实战干货 · 关注追更 Word 转 PDF · 试卷/发票打印神器 · 免费
运维实战干货 · 关注追更 Word 转 PDF · 试卷/发票打印神器 · 免费

💡 小程序【A5单据合并&大试卷拆分转A4打印】是干嘛的? 一个 Word 转 PDF 的打印神器,专治“文档版式和打印机对不上”:

  • A3 试卷打不出来? 学校发的电子版试卷多是 A3,家用打印机只吃 A4——上传 Word 一键转换:可缩到一页 A4(页数不变),也可对半拆成两张 A4(1:1 原大、字更清晰),两种模式自选;
  • 版式不乱:真实渲染引擎原样转换、绝不重排内容,转出的 PDF 和原 Word 排版一致,公式/表格/图片不跑版;
  • 两张 A5 单据拼一张 A4:出租车票、火车票等报销凭证拼版后,一次打印、整齐粘贴;
  • 隐私省心:无需注册,转换结果留存 5 天、最多下载 5 次即自动删除,不留任何历史记录;
  • 微信扫码即用,免费、免安装,支持 doc / docx(≤50MB)。
    原文发布于 2026-08-13

上一篇:03. GitLab 角色搞不清?Member/Maintainer/Owner 权限全解 | 下一篇:05. GitLab MR 代码审查:Code Review 最佳实践