案例:远端github 本地gitlab 同步项目
1.安装Git
yum install git -y
2.安装GitLab Mirrors所需软件(需要python2)
yum install python-setuptools epel-release -y
yum install python-pip -y
pip install python-gitlab -y
3.创建GitLab管理员账户并创建Group
登录GitLab->创建一个管理员用户(可用root)->GitLab创建一个Group
4.创建一个系统用户,并生成SSH key
adduser gitmirror # 创建用户gitmirror
su - gitmirror # 切换到用户gitmirror
ssh-keygen # 生成SSH key,一路输入Enter键即可
5.为GitLab(镜像仓库)、GitHub(原始仓库)配置免密码登录
cat ~/.ssh/id_rsa.pub #将内容贴到GitLab以及GitHub
#执行如下命令,确保SSH key添加成功
ssh -T git@github.com
ssh -T git@localhost
#如配置无误,会看到xxxx Success xxxx 的文字
6.设置private token
访问 http://localhost/profile/account (即:GitLab的账户设置地址),找到private token项,复制其中的private token值(刷新gitlab页面后token值会消失),贴到~/private_token 文件中。
su - gitmirror
cd ~
touch private_token #粘贴private token中的内容
7.创建本地仓库路径:GitLab Mirrors会将GitHub上的代码clone到本地,默认是~/repositories
cd ~
mkdir repositories
8.配置GitLab Mirrors
#下载gitlab-mirrors项目
git clone https://github.com/samrocketman/gitlab-mirrors.git
cd gitlab-mirrors
chmod 755 *.sh
cp config.sh.SAMPLE config.sh
修改config.sh文件,该文件中配置项非常多,主要修改的有如下几处:
# gitmirror所运行的用户
system_user="gitmirror"
你在gitlab上建立的group
gitlab_namespace="Mirrors"
# gitlab的地址
gitlab_url="http://localhost"
# gitlab的管理员账户
gitlab_user="root"
9 镜像仓库
添加仓库同步配置:
cd gitlab-mirrors
./add_mirror.sh --git --project-name test --mirror git@github.com:itmuch/test.git
#--project-name test //test为本地项目仓库
这样,就可以将github.com中的指定仓库,同步到GitLab中指定Group中的test 仓库中去。
手动同步
./git-mirrors.sh
定时同步
@hourly /home/gitmirror/gitlab-mirrors/git-mirrors.sh