GitLab
简介
是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。 基础功能免费,高级功能收费。
- 基础功能开源,可自行搭建 。
- 可以进行权限控制,使得代码对部分人可见 。
- GitLab 使用方便,非常适合企业内部使用。
部署
必须双核,内存最好 3G,否则报 502.
# 在防火墙里开放http跟ssh端口
[root@localhost ~]# yum install lokkit
yum install curl policycoreutils openssh-server openssh-clients
systemctl start postfix.service
chkconfig postfix on
lokkit -s http -s ssh
# 添加gitlab仓库,并安装
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum install gitlab-ce
# 修改配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.31.251:8888'
nginx['listen_port'] = 8081
# 重新自动配置和服务
gitlab-ctl reconfigure
gitlab-ctl restart
# 配置防火墙
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
service iptables restart
# 提交项目
$ git init
$ echo "111" >> file1
$ git add *
$ git commit -m "test"
$ git remote add origin http://192.168.31.251:8888/root/test.git
$ git push --set-upstream origin master
配置邮件服务
有合并请求时邮件通知
账号注册时,邮件验证
修改密码时,通过邮件修改。
配置步骤
# 开启QQ邮箱的smtp服务
# 修改gitlab配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "410686925@qq.com"
gitlab_rails['smtp_password'] = "rzkmxfqiirtttxjxe"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
user['git_user_email'] = "410686925@qq.com"
gitlab_rails['gitlab_email_from'] = '410686925@qq.com'
# 发送邮件
gitlab-ctl reconfigure
gitlab-rails console # 进入控制台
irb(main):001:0> Notify.test_email('410686931@qq.com','this is title','hello').deliver_now
账号注册及分组
开启注册邮箱验证
admin area --》setting--》Sign-up restrictions--》勾选Send confirmation email on sign-up
创建组
* 首页->create a group([http://192.168.56.101:8888/dashboard/groups](http://192.168.56.101:8888/dashboard/groups))
访问级别
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
* Guest:可以创建issue、发表评论,不能读写版本库
* Reporter:可以克隆代码,不能提交
* Developer:可以克隆代码、开发、提交、push
* Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目
* Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员
* 键入命令:ssh-keygen -t rsa
* 提醒你输入key的名称,输入如id_rsa
* 在C:\Users\用户.ssh下产生两个文件:id_rsa和id_rsa.pub
* 用记事本打开id_rsa.pub文件,复制内容,在gitlab.com的网站上到ssh密钥管理页面,添加新公钥,随便取个名字,内容粘贴刚才复制的内容。
分支及标签的保护
保护特定的分支不被随便合并,以免影响相应的分支。
进入项目--> repository-->branches-->project setting
注意 能 push 就能 merge ,相应的权限把握好(master 分支设置只能 masters 可以合并)