我需要查找并列出属于
的分支来自多个项目和多个存储库,并且具有单个脚本(来自位存储桶),并且报告应以这种格式打印
project name: repo name: branch name: last commit date: author name:
我在shell脚本中尝试过
#!/bin/sh
echo "Merged branches"
for branch in `git branch -r --merged | grep -v HEAD`;
do echo -e `git log --no-merges -n 1 --format="%ci, %cr, %an, %ae, " $branch
| head -n 1` \\t$branch; done | sort -r
echo ""
echo "Not merged branches"
for branch in `git branch -r --no-merged | grep -v HEAD`;
do echo -e `git log --no-merges -n 1 --format="%ci, %cr, %an, %ae, " $branch |
head -n 1` \\t$branch; done | sort -r
通过使用这些,我只能在那个特定的仓库中获取。 如何列出所有项目并回购并执行这些git命令?
答案 0 :(得分:0)
Bitbucket具有写得不错的api documentation。
在本文档中,您可以找到以下资源:/repositories
从他们的文档中引用此端点:
返回所有公共存储库的分页列表。 该端点还支持对结果进行过滤和排序。有关更多详细信息,请参见filtering and sorting。
这些都是您拥有的公开存储库。 在此响应中,应该有一个git网址。
您可以解析json并检索每个存储库的所有git url并将它们存储在一个variabele中。
然后循环遍历git存储库网址,并通过以下命令克隆其中的每个网址:git clone --recurse-submodules GIT_URL_HERE
这里使用--recurse-submodules
选项,因为如果有任何子模块,我们也希望得到它们!
使用cd DIRECTORY
命令成功克隆所有存储库后,进入每个目录。
在这些目录中,可以列出分支。
git branch --merged
列出合并到HEAD中的分支(即当前分支的尖端)
git branch --no-merged
列出未合并的分支