如何使用GitLab API获取合并分支的列表?

时间:2018-07-07 18:04:18

标签: php gitlab

我正在使用命令行运行以下命令:

<!DOCTYPE html> <html lang="en-gb"> <head> <link rel="stylesheet" type="text/css" href="style.css" /> <title>Complete Suites</title> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body class="body"> <header class="topbar"> <ul class="topleft"> <li><a href="#"><img src="https://s8.postimg.cc/6t7njymhx/location-pin.png " alt="Location Pin"></a></li> <li><a href="#"><img src="https://s8.postimg.cc/ytbr47v39/contact-email.png" alt="Contact Email"></a></li> <li><a href="#"><img src="https://s8.postimg.cc/fbh3oalat/open-time.png " alt="Opening Times"></a></li> </ul> <ul class="topmiddle"> <li><a href="#"><img src="https://s8.postimg.cc/ytbr47v39/contact-email.png" alt="Email Promotions Sign Up"><span>Email Promotions</span></a></li> </ul> <ul class="topright"> <li><a href="#">Blog</a></li> <li><a href="#">About Us</a></li> <li><a href="#">Contact</a></li> </ul> </header> </body> </html>

我正在使此过程自动化,但我仍停留在如何执行此部分的过程上:comm -23 <(git branch -r --merged beta | sort) <(git branch -r --merged master | sort)返回已合并的远程跟踪分支的列表,这意味着它们已完全包含在HEAD中。

一旦我抓取了这个列表,我就可以对其进行排序并完成其余的工作,但是我似乎无法弄清楚如何从API中过滤或提取此列表。我查看了API,但未找到任何内容。

我在想,也许我可以用这个:

https://docs.gitlab.com/ee/api/branches.html#get-single-repository-branch

是否可以通过GitLabs API做到这一点?

1 个答案:

答案 0 :(得分:0)

没有直接的方法,但是我最终获取了状态已合并的所有请求,然后调用array_column拔出了我想要的源分支列。

    public function getAllBranchMergedFeatures(string $branch) : array
    {
        $merge_requests = $this->call("GET",
            "{$this->basePath}/merge_requests?state=merged&target_branch={$branch}"
        );

        return array_column($merge_requests, 'source_branch');
    }

这给了我所有已合并到指定分支中的功能分支的列表。