mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-06-17 00:18:05 +02:00
feat: pull request support for bitbucket server
This commit is contained in:
committed by
Jesse Duffield
parent
58ed23a47a
commit
bcc0466498
@ -49,11 +49,24 @@ var azdoServiceDef = ServiceDefinition{
|
|||||||
repoURLTemplate: "https://{{.webDomain}}/{{.org}}/{{.project}}/_git/{{.repo}}",
|
repoURLTemplate: "https://{{.webDomain}}/{{.org}}/{{.project}}/_git/{{.repo}}",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var bitbucketServerServiceDef = ServiceDefinition{
|
||||||
|
provider: "bitbucketServer",
|
||||||
|
pullRequestURLIntoDefaultBranch: "/pull-requests?create&sourceBranch={{.From}}",
|
||||||
|
pullRequestURLIntoTargetBranch: "/pull-requests?create&targetBranch={{.To}}&sourceBranch={{.From}}",
|
||||||
|
commitURL: "/commits/{{.CommitSha}}",
|
||||||
|
regexStrings: []string{
|
||||||
|
`^ssh://git@.*/(?P<project>.*)/(?P<repo>.*?)(?:\.git)?$`,
|
||||||
|
`^https://.*/scm/(?P<project>.*)/(?P<repo>.*?)(?:\.git)?$`,
|
||||||
|
},
|
||||||
|
repoURLTemplate: "https://{{.webDomain}}/projects/{{.project}}/repos/{{.repo}}",
|
||||||
|
}
|
||||||
|
|
||||||
var serviceDefinitions = []ServiceDefinition{
|
var serviceDefinitions = []ServiceDefinition{
|
||||||
githubServiceDef,
|
githubServiceDef,
|
||||||
bitbucketServiceDef,
|
bitbucketServiceDef,
|
||||||
gitLabServiceDef,
|
gitLabServiceDef,
|
||||||
azdoServiceDef,
|
azdoServiceDef,
|
||||||
|
bitbucketServerServiceDef,
|
||||||
}
|
}
|
||||||
|
|
||||||
var defaultServiceDomains = []ServiceDomain{
|
var defaultServiceDomains = []ServiceDomain{
|
||||||
|
@ -153,6 +153,60 @@ func TestGetPullRequestURL(t *testing.T) {
|
|||||||
assert.Equal(t, "https://dev.azure.com/myorg/myproject/_git/myrepo/pullrequestcreate?sourceRef=feature%2Fnew&targetRef=dev", url)
|
assert.Equal(t, "https://dev.azure.com/myorg/myproject/_git/myrepo/pullrequestcreate?sourceRef=feature%2Fnew&targetRef=dev", url)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
testName: "Opens a link to new pull request on Bitbucket Server (SSH)",
|
||||||
|
from: "feature/new",
|
||||||
|
remoteUrl: "ssh://git@mycompany.bitbucket.com/myproject/myrepo.git",
|
||||||
|
configServiceDomains: map[string]string{
|
||||||
|
// valid configuration for a bitbucket server URL
|
||||||
|
"mycompany.bitbucket.com": "bitbucketServer:mycompany.bitbucket.com",
|
||||||
|
},
|
||||||
|
test: func(url string, err error) {
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, "https://mycompany.bitbucket.com/projects/myproject/repos/myrepo/pull-requests?create&sourceBranch=feature%2Fnew", url)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
testName: "Opens a link to new pull request on Bitbucket Server (SSH) with specific target",
|
||||||
|
from: "feature/new",
|
||||||
|
to: "dev",
|
||||||
|
remoteUrl: "ssh://git@mycompany.bitbucket.com/myproject/myrepo.git",
|
||||||
|
configServiceDomains: map[string]string{
|
||||||
|
// valid configuration for a bitbucket server URL
|
||||||
|
"mycompany.bitbucket.com": "bitbucketServer:mycompany.bitbucket.com",
|
||||||
|
},
|
||||||
|
test: func(url string, err error) {
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, "https://mycompany.bitbucket.com/projects/myproject/repos/myrepo/pull-requests?create&targetBranch=dev&sourceBranch=feature%2Fnew", url)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
testName: "Opens a link to new pull request on Bitbucket Server (HTTP)",
|
||||||
|
from: "feature/new",
|
||||||
|
remoteUrl: "https://mycompany.bitbucket.com/scm/myproject/myrepo.git",
|
||||||
|
configServiceDomains: map[string]string{
|
||||||
|
// valid configuration for a bitbucket server URL
|
||||||
|
"mycompany.bitbucket.com": "bitbucketServer:mycompany.bitbucket.com",
|
||||||
|
},
|
||||||
|
test: func(url string, err error) {
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, "https://mycompany.bitbucket.com/projects/myproject/repos/myrepo/pull-requests?create&sourceBranch=feature%2Fnew", url)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
testName: "Opens a link to new pull request on Bitbucket Server (HTTP) with specific target",
|
||||||
|
from: "feature/new",
|
||||||
|
to: "dev",
|
||||||
|
remoteUrl: "https://mycompany.bitbucket.com/scm/myproject/myrepo.git",
|
||||||
|
configServiceDomains: map[string]string{
|
||||||
|
// valid configuration for a bitbucket server URL
|
||||||
|
"mycompany.bitbucket.com": "bitbucketServer:mycompany.bitbucket.com",
|
||||||
|
},
|
||||||
|
test: func(url string, err error) {
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, "https://mycompany.bitbucket.com/projects/myproject/repos/myrepo/pull-requests?create&targetBranch=dev&sourceBranch=feature%2Fnew", url)
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
testName: "Throws an error if git service is unsupported",
|
testName: "Throws an error if git service is unsupported",
|
||||||
from: "feature/divide-operation",
|
from: "feature/divide-operation",
|
||||||
@ -199,7 +253,7 @@ func TestGetPullRequestURL(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "https://bitbucket.org/johndoe/social_network/pull-requests/new?source=feature%2Fprofile-page&t=1", url)
|
assert.Equal(t, "https://bitbucket.org/johndoe/social_network/pull-requests/new?source=feature%2Fprofile-page&t=1", url)
|
||||||
},
|
},
|
||||||
expectedLoggedErrors: []string{"Unknown git service type: 'noservice'. Expected one of github, bitbucket, gitlab, azuredevops"},
|
expectedLoggedErrors: []string{"Unknown git service type: 'noservice'. Expected one of github, bitbucket, gitlab, azuredevops, bitbucketServer"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
testName: "Escapes reserved URL characters in from branch name",
|
testName: "Escapes reserved URL characters in from branch name",
|
||||||
|
Reference in New Issue
Block a user