首页 > 解决方案 > 如何使用 Gitlab4J 创建合并请求?

问题描述

我对我的项目进行了一些更改并使用 JGit 提交了它们,我正在 Gitlab 上工作!通常当我们手动执行此操作时,Gitlab 会在存储库顶部生成一个弹出窗口,请求创建合并请求。我使用 Gitlab4J 克隆我的存储库,我注意到还有一个用于合并请求的 API,有人知道如何使用它吗?

标签: javagitlabgitlab-api

解决方案


我想出了如何做到这一点,这是代码片段:

GITLAB.getMergeRequestApi().createMergeRequest(
                projectIdOrPath, 
                sourceBranch, 
                targetBranch, 
                title, 
                description, 
                assigneeId)

如果要projectIdOrPath使用本地存储库恢复,可以添加使用 JGit 和 Gitlab4J ProjectApi 的代码片段:

private Project getProject(Git localRepo) throws GitLabApiException {
   return GITLAB.getProjectApi().getProjects().parallelStream()
      .filter(p -> p.getHttpUrlToRepo()
      .equals(localRepo.getRepository().getConfig().getString("remote", "origin", "url")))
      .findAny().orElse(null);
}

对于assigneeId您可以使用以下代码片段获取它,该代码片段使用批准者的用户名:

GITLAB.getUserApi().getUser(approver).getId()

推荐阅读