Gerrit rest api 获取分支

```

# pip install pygerrit2

from pygerrit2 import GerritRestAPI, HTTPBasicAuth, HTTPDigestAuth

url = {'url':'http://gerritIP:8080/', 'user':'userName', 'password':'passWord'}

#password是Gerrit的账号密码,不是Gerrit-设置里面的http密码

auth = HTTPBasicAuth(url['user'], url['password'])

rest = GerritRestAPI(url['url'], auth)

repo1 = "a_b_c"

repo2 = "a%2Fa%2Fc"

#如果仓库名有斜杠,需要写成url的特定字符:%F

all_data = rest.get("/projects/%s/branches/" % repo1)

for data in all_data:

     branch = data["ref"]

    print(branch)

#会输出分支list,但是会连权限仓的一起输出,

就是获取的仓库为A,A的权限仓为B,B里面对某一分支C做了权限设置,而A并没有这个分支,那么获取到的branch list,也会展示出这个分支C

Gerrit 获取指定仓库的所有分支:

rest api 的方式,获取到的branches是连带权限仓的,如果进行所有仓库分支盘点的时候,显然通过web端一个个看或者将代码获取下来,再通过git branch -a查看,也是比较麻烦的,那么还有一种方法,稍微简单一些,不用将代码下载下来:

1. 新建空目录

2.git init

3. git add remote test <需要获取分支list的远程仓库> | 如:git remote add test ssh://test.gerrit.com:29418/test_repo

4. git remote show test

就可以看到这个仓库的分支了

然后把这个分支删掉,再以同样的方式获取下一个仓库

![image.png](https://upload-images.jianshu.io/upload_images/14259740-612ec602d0590106.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

或者,直接git add remote test2 <url2> && git remote show test2 也可以看到url2的分支,这样就不用删除的操作。

```

更简便方法  在.git同级目录下,使用:git ls-remote RepoUrl

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。