GitLab API - 如何知道已删除的合并分支的名称

时间:2018-04-04 15:21:59

标签: git api gitlab gitlab-api

GitLab允许您通过运行

删除合并的分支

curl --request DELETE --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/5/repository/merged_branches

但不会返回除状态代码之外的任何信息。

如何知道此请求删除了哪些分支?

1 个答案:

答案 0 :(得分:1)

不幸的是,无法从该请求中得知。我最近创建的一种解决方法是先删除所有合并的分支,然后再删除它们:

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

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

这将为您提供所有已合并分支的数组。

这是我使用的调用方法:

    public function call(string $method, string $path, array $params = [])
    {
        try {
            return json_decode(
                $this->client->request(
                    $method,
                    $path,
                    array_merge(
                        $this->getHeaders(),
                        ['form_params' => $params]
                    )
                )->getBody()
            );
        } catch(Exception $e) {
            return $e->getMessage();
        }
    }

调用delete方法后,您可以进行检查以查看它们是否都已删除或是否要删除。同样,如果您的功能分支合并到一个以上的分支中,它们将在数组中多次显示。一定要考虑到这一点。

祝你好运,希望对你有帮助。