Skip to content

Commit

Permalink
Merge pull request GitTools#114 from Studiosixer/feature/issue-53
Browse files Browse the repository at this point in the history
GitTools#53 Add support for VSTS projects that have multiple repositories.
  • Loading branch information
GeertvanHorrik authored Nov 23, 2016
2 parents c9febf2 + c1270a7 commit 1943799
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 21 deletions.
1 change: 1 addition & 0 deletions src/GitLink.Tests/GitLink.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
<Compile Include="Providers\CustomUrlProviderFacts.cs" />
<Compile Include="Providers\GitHubProviderFacts.cs" />
<Compile Include="Providers\ProviderManagerFacts.cs" />
<Compile Include="Providers\VisualStudioTeamServicesProviderFacts.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\GitLink\GitLink.csproj">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public void ReturnsValidCompanyUrl()
var provider = new VisualStudioTeamServicesProvider();
provider.Initialize("https://CatenaLogic.visualstudio.com/_git/main-repo");

Assert.AreEqual("https://CatenaLogic.visualstudio.com/DefaultCollection/", provider.CompanyUrl);
Assert.AreEqual("https://CatenaLogic.visualstudio.com/", provider.CompanyUrl);
}

[TestCase]
Expand All @@ -72,30 +72,21 @@ public void ReturnsValidProject2()
}

[TestCase]
public void ReturnsValidProjectUrl()
public void ReturnsValidRepositoryName()
{
var provider = new VisualStudioTeamServicesProvider();
provider.Initialize("https://CatenaLogic.visualstudio.com/Project/_git/main-repo");

Assert.AreEqual("https://CatenaLogic.visualstudio.com/Project/", provider.ProjectUrl);
Assert.AreEqual("main-repo", provider.ProjectUrl);
}

[TestCase]
public void ReturnsValidProjectUrlWhenContainsPeriod()
public void ReturnsValidRepositoryNameWhenContainsPeriod()
{
var provider = new VisualStudioTeamServicesProvider();
provider.Initialize("https://CatenaLogic.visualstudio.com/Big.Project/_git/main.repo");

Assert.AreEqual("https://CatenaLogic.visualstudio.com/Big.Project/", provider.ProjectUrl);
}

[TestCase]
public void ReturnsValidCompanyUrlWhenContainsPeriod()
{
var provider = new VisualStudioTeamServicesProvider();
provider.Initialize("https://Catena.Logic.visualstudio.com/BigProject/_git/main-repo");

Assert.AreEqual("https://Catena.Logic.visualstudio.com/BigProject/", provider.ProjectUrl);
Assert.AreEqual("main.repo", provider.ProjectUrl);
}

}
Expand Down
2 changes: 1 addition & 1 deletion src/GitLink/Linker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ private static bool LinkProject(Context context, Project project, string pdbStrF
{
srcSrvContext.VstsData["TFS_COLLECTION"] = context.Provider.CompanyUrl;
srcSrvContext.VstsData["TFS_TEAM_PROJECT"] = context.Provider.ProjectName;
srcSrvContext.VstsData["TFS_REPO"] = context.Provider.ProjectName;
srcSrvContext.VstsData["TFS_REPO"] = context.Provider.ProjectUrl;
}

project.CreateSrcSrv(projectSrcSrvFile, srcSrvContext);
Expand Down
9 changes: 3 additions & 6 deletions src/GitLink/Providers/VisualStudioTeamServicesProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,15 @@ public override bool Initialize(string url)
ProjectName = match.Groups["repo"].Value;
}

ProjectUrl = match.Groups["companyurl"].Value + ProjectName + "/";
// In the VSTS provider, the ProjectUrl will represent
// the repository's name.
ProjectUrl = match.Groups["repo"].Value;

if (!CompanyUrl.StartsWithIgnoreCase("https://"))
{
CompanyUrl = String.Concat("https://", CompanyUrl);
}

if (!ProjectUrl.StartsWithIgnoreCase("https://"))
{
ProjectUrl = String.Concat("https://", ProjectUrl);
}

return true;
}
}
Expand Down

0 comments on commit 1943799

Please sign in to comment.