使用Python脚本一次性并发拉取Gitlab中所有的仓库

使用Git图形化管理工具SourceTree好多年,去年起SourceTree越更新越辣鸡,简直不能用,转而投了Fork的怀抱,但是两者都没有批量拉取的功能. 然而负责的项目越来越多,而单个拉取仓库更新代码无异是痛苦的. 于是花了点功夫看了下官方的API文档,写了个用Python批量拉取所有仓库的脚本,使用了一个第三方的 Python 模块: python-gitlab. 功能很简单,就是根据账号权限并发拉取所有能拉取的仓库,如果当前目录下不存在就创建;如果已存在仓库,则更新. import platform,os,gitlab,sys,multiprocessing def returnpath(path:str)->str: if ‘Windows’ == platform.system(): path = path.replace(‘/’,’\\’) return path def get_gitlab_groups_projs_path(gl_server:gitlab.Gitlab)->list: projs = [] projs_id = [] projs_tmp = [] def __add(group): for proj … “使用Python脚本一次性并发拉取Gitlab中所有的仓库”

Read More

GitLab 接入AD域验证

公司之前用的都是由我部署的 LDAP , 前些日子升级了成 Windows 的域控,类似 Jenkins, Harbor 和 Gitlab 这些已接入账号管理的都要重新配置,这里记录下 Gitlab 的修改记录. Gitlab 使用的是官方的 Docker 容器,将容器内的/etc/gitlab挂载出来,编辑其中的gitlab.rb文件. 找到gitlab_rails[‘ldap_enabled’] = true,去掉前面的注释,编辑下方的 YAML.load: gitlab_rails[‘ldap_servers’] = YAML.load

Read More

GitLab 使用git push 出现RPC failed; HTTP 500 curl 22 The requested URL returned error: 500

今天前端人员提交代码时,出现了如下奇怪错误: $ git push origin Counting objects: 4, done. Delta compression using up to 24 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 5.59 MiB | 16.73 MiB/s, done. Total 4 (delta 1), … “GitLab 使用git push 出现RPC failed; HTTP 500 curl 22 The requested URL returned error: 500”

Read More

GitLab响应Forbidden解决方法

公司的Git服务是由GitLab的docker容器搭建的,当初我搭建/升级/启动都很方便,且没修改gitlab.rb配置文件,用的都是默认配置. 在SourceTree升级到2.1.10.0后,竟然坑爹的默认后台并发查询git仓库更新,近百个项目,这个并发查询超了GitLab并发访问的阈值,直接封了IP. 解决方法 根据官方说明:Rack Attack和IP Whitelist,解决方法三种: 添加IP白名单. 加大并发阈值. 直接关闭Rack Attack. 这里我是加大并发阈值和添加IP白名单. 因为跑的是容器,那么就直接进挂载的文件夹里找到config/gitlab.rb后,打开并找到gitlab_rails[‘rack_attack_git_basic_auth’]项,去掉注释,并修改为: gitlab_rails[‘rack_attack_git_basic_auth’] = { ‘enabled’ => true, ‘ip_whitelist’ => [“127.0.0.1″,”192.168.xxx.xxx”], ‘maxretry’ => 200, ‘findtime’ => 60, ‘bantime’ => 3600 } 这里在ip_whitelist字段后添加白名单IP即可,然后增加maxretry字段的值。

Read More