Skip to content
This repository was archived by the owner on Jul 12, 2022. It is now read-only.

Commit 382511f

Browse files
authored
Merge pull request #1114 from evolvedlight/master
Add support for Gitlab organisations
2 parents 224ae20 + adb3d4d commit 382511f

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

NuKeeper.Gitlab.Tests/GitlabSettingsReaderTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,14 @@ public async Task AssumesItCanReadGitLabUrls()
5252
Assert.AreEqual(true, canRead);
5353
}
5454

55+
[Test]
56+
public async Task AssumesItCanReadGitLabOrganisationUrls()
57+
{
58+
var canRead = await _gitlabSettingsReader.CanRead(new Uri("https://gitlab.com/org/user/projectname.git"));
59+
60+
Assert.AreEqual(true, canRead);
61+
}
62+
5563
[TestCase(null)]
5664
[TestCase("master")]
5765
public async Task GetsCorrectSettingsFromTheUrl(string targetBranch)
@@ -67,5 +75,21 @@ public async Task GetsCorrectSettingsFromTheUrl(string targetBranch)
6775
Assert.AreEqual(targetBranch, repositorySettings.RemoteInfo?.BranchName);
6876
Assert.AreEqual(false, repositorySettings.SetAutoMerge);
6977
}
78+
79+
[TestCase(null)]
80+
[TestCase("master")]
81+
public async Task GetsCorrectSettingsFromTheOrganisationUrl(string targetBranch)
82+
{
83+
var repositoryUri = new Uri("https://gitlab.com/org/user/projectname.git");
84+
var repositorySettings = await _gitlabSettingsReader.RepositorySettings(repositoryUri, true, targetBranch);
85+
86+
Assert.IsNotNull(repositorySettings);
87+
Assert.AreEqual(new Uri("https://gitlab.com/api/v4/"), repositorySettings.ApiUri);
88+
Assert.AreEqual(repositoryUri, repositorySettings.RepositoryUri);
89+
Assert.AreEqual("org/user", repositorySettings.RepositoryOwner);
90+
Assert.AreEqual("projectname", repositorySettings.RepositoryName);
91+
Assert.AreEqual(targetBranch, repositorySettings.RemoteInfo?.BranchName);
92+
Assert.AreEqual(false, repositorySettings.SetAutoMerge);
93+
}
7094
}
7195
}

NuKeeper.Gitlab/GitlabSettingsReader.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ public Task<RepositorySettings> RepositorySettings(Uri repositoryUri, bool setAu
5555
.Where(s => !string.IsNullOrWhiteSpace(s))
5656
.ToList();
5757

58-
if (pathParts.Count != 2)
58+
if (pathParts.Count < 2)
5959
{
6060
throw new NuKeeperException(
6161
$"The provided uri was is not in the correct format. Provided {repositoryUri} and format should be {UrlPattern}");
6262
}
6363

64-
var repoOwner = pathParts[0];
65-
var repoName = pathParts[1].Replace(".git", string.Empty);
64+
var repoOwner = string.Join("/", pathParts.Take(pathParts.Count - 1));
65+
var repoName = pathParts.Last().Replace(".git", string.Empty);
6666

6767
var uriBuilder = new UriBuilder(repositoryUri) { Path = "/api/v4/" };
6868

0 commit comments

Comments
 (0)