我尝试在Sourcetree中创建pull request
,但它要求我设置远程项目配置。为了设置远程配置,我通过互联网搜索,找到了this。它说,它支持Stash,BitBucket和GitHub。
我的问题是,是否有可能在Sourcetree中为远程Gitlab创建pull requests
?如果是,如何在Sourcetree中启用Gitlab的拉取请求?
答案 0 :(得分:1)
You can find the relevant Jira in,
and you can create a Merge Request instead of PR by following,
https://docs.gitlab.com/ce/api/merge_requests.html#create-mr
https://docs.gitlab.com/ee/gitlab-basics/add-merge-request.html
答案 1 :(得分:1)
作为一种解决方法,您可以转到gitlab Web实例,通常在该实例中创建合并请求,例如:
https://gitlab.mydomain.com/web/nushopweb/merge_requests
复制该网址,并将其设置为附加了#
或?
的Stash类型主机,以使SourceTree不会将您重定向到404页面。
然后,当您按下“创建请求请求...”时,它将打开一个包含gitlab合并请求的浏览器窗口,如果您刚刚推送了分支,它将立即允许您创建请求请求。
生成的URL可能看起来像这样,因为#
之后的部分被“忽略”了,这完全可以。
https://gitlab.mydomain.com/web/nushopweb/merge_requests#/projects/web/repos/nushopweb/pull-requests?create&sourceBranch=feature%2fq%2f77523_wishlist-page
答案 2 :(得分:0)
Here's是一个自定义操作设置,它将帮助安装用于在Gitlab中打开合并请求的快捷方式。
复制粘贴内容,以防万一这一天消失:
安装
composer global require jcid/sourcetree-merge-request-opener
文件 sourcetree-merge-request-opener
#!/usr/bin/env php
<?php
foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
if (file_exists($file)) {
require $file;
break;
}
}
$repoPath = $argv[1];
$iniConfig = parse_ini_file(
sprintf(
'%s/.git/config',
$repoPath
),
true
);
$repoUrl = $iniConfig['remote origin']['url'];
$repoUrl = str_replace(
[':', 'git@', '.git',],
['/', 'https://', '/'],
$repoUrl
);
$openCommand = sprintf('open "%smerge_requests/new?merge_request[force_remove_source_branch]=1&merge_request[source_branch]="$(git rev-parse --abbrev-ref HEAD) -a "Google Chrome"', $repoUrl);
exec($openCommand);
然后在SourceTree中导航到“首选项”->“自定义动作”->“添加”新的自定义动作:
现在,您可以使用设置的快捷键
⌘ =
轻松地从当前分支中打开一个Gitlab合并请求