目录

Life in Flow

Embrace your dreams and unlock your full potential at every stage of life.

X

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 可以合并)


作者:Soulboy