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 · 试卷/发票打印神器 · 免费 |
💡 小程序【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 最佳实践

