GitLab
安装文档:https://gitlab.cn/install/
GitLab 简介
GitLab 是一个基于 Git 的项目管理软件,用于仓库管理系统的开源项目。使用 Git 作为代码管理工具,并在此基础上搭建起来 Web 服务。
Gitlab安装
官方rpm包:https://packages.gitlab.cn/
openEuler
下载极狐GitLab 安装包
curl -LOS https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el9/gitlab-ce-17.7.0-ce.0.el9.x86_64.rpm
# 解决libcrypt.so.2缺失问题
ln -sf /usr/lib64/libcrypt.so.1.1.0 /usr/lib64/libcrypt.so.2
# 安装
export EXTERNAL_URL="http://192.168.148.110" && dnf localinstall -y gitlab-ce-17.7.0-ce.0.el9.x86_64.rpmgitlab常用的默认安装目录
gitlab组件日志路径:/var/log/gitlab
gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件
应用代码和组件依赖程序:/opt/gitlab
各个组件存储路径: /var/opt/gitlab/
仓库默认存储路径 /var/opt/gitlab/git-data/repositories
版本文件备份路径:/var/opt/gitlab/backups/配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.148.110'
# 重新加载配置
gitlab-ctl reconfigure
gitlab-ctl stop
# 查看版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION操作命令
gitlab-ctl start #启动所有 gitlab 组件;
gitlab-ctl stop #停止所有 gitlab 组件;
gitlab-ctl restart #重启所有 gitlab 组件;
gitlab-ctl status #查看服务状态;
gitlab-ctl reconfigure #启动服务;
vim /etc/gitlab/gitlab.rb #修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace #检查gitlab;
gitlab-ctl tail #查看日志;汉化
GitLab中文社区的项目,v7-v8.8是由Larry Li发起的https://gitlab.com/larryli/gitlab
从v8.9之后由https://gitlab.com/xhang/gitlab开始继续汉化项目
# 查看gitlab版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 停止gitlab
gitlab-ctl stop
# 下载安装包
wget https://gitlab.com/xhang/gitlab/-/archive/v12.3.5-zh/gitlab-v12.3.5-zh.tar.gz
tar -zxf gitlab-v12.3.5-zh.tar.gz
# 备份原文件
cp -fr /opt/gitlab/embedded/service/gitlab-rails{,gao-`date +%Y%m%d`}
# 强制覆盖
\cp -rf ./gitlab-v12.3.5-zh/* /opt/gitlab/embedded/service/gitlab-rails/
# 重新加载配置文件
gitlab-ctl reconfigure
# 启动服务
gitlab-ctl restart登录GitLab 实例
使用第二步 EXTERNAL_URL 中配置的地址来访问安装成功的极狐GitLab 实例。用户名默认为 root 。如果在安装过程中指定了初始密码,则用初始密码登录,如果未指定密码,则系统会随机生成一个密码并存储在 /etc/gitlab/initial_root_password 文件中, 查看随机密码并使用 root 用户名登录。
注意:出于安全原因,24 小时后,/etc/gitlab/initial_root_password 会被第一次 gitlab-ctl reconfigure 自动删除,因此若使用随机密码登录,建议安装成功初始登录成功之后,立即修改初始密码。
# 查看密码
grep "^Password" /etc/gitlab/initial_root_password修改密码
可以直接请求:/-/user_settings/password/edit
- Current password:初始密码
- New password:新密码
- Password confirmation:重复新密码
关闭自动注册
Admin —> Settings —> General —>Sign-up restrictions -> 取消勾选Sign-up enabled —> Save changes
GitLab 操作
创建群组
首页 —> Groups —> New group
- Group name:自定义群组名
- Group URL:群组地址
- Visibility level:可见性
- Private:私有
- Internal:内部
- Public:公开
创建项目
创建空白项目-Create blank project
- Project name:项目名
- Project URL:这个是群组的名
- Visibility Level:可见级别
- Private:私有
- Internal:内部
- Public:公开
- Project Configuration:项目初始配置
- Initialize repository with a README:初始化项目并创建README(如果本地有代码不要勾选)
- Enable Static Application Security Testing (SAST):分析源代码是否存在已知的安全漏洞
main分支禁止push
Admin —> Settings —> Repository —> Protected branches
- Branch:默认
main是受保护的,但还是可以push和合并的 - Allowed to push and merge:选择
No one
添加SSH密钥
客户端创建密钥
# 创建密钥
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N '' -C "admin@qq.com"
# 查看公钥
cat ~/.ssh/id_rsa.pub-t rsa:使用 RSA 算法。-b 4096:指定密钥长度为 4096 位(更安全)。默认是 3072 位,可以省略-b参数。-f ~/.ssh/id_rsa:私钥保存为~/.ssh/id_rsa,公钥为id_rsa.pub。
Gitlab 添加密钥
点击头像 —> Edit profile —> SSH Keys —> Add new key
或者直接请求:/-/user_settings/ssh_keys
创建用户
创建用户:Admin —> Overview —> Users —> New user
设置密码:Admin —> Overview —> Users —> Edit
项目分配用户
点击仓库进入 —> Manage —> Members —> Invite members
- 下拉选择用户
- Select a role:选择角色
代码合并
一般都是普通用户创建代码合并申请,然后管理员同意
申请
点击仓库进入 —> Code—> Merge requests —> New merge request
- Source branch:设置源仓库和分支如:dev
- Target branch:设置目标仓库和分支如:main
同意
授权之前有点赞和点踩,通过则点点赞否则点踩
点击仓库进入 —> Merge requests —> 从列表中找到要授权的申请 —> Set to auto-merge
