From 5223d1af5fc7217f329c064f5079a1fa759bc951 Mon Sep 17 00:00:00 2001 From: Brendan Forster Date: Mon, 24 Feb 2020 18:12:48 -0400 Subject: [PATCH] improve handling of GetAllContentsByRef where root path is requested (#2105) * add failing test for handling / as the path * workaround issue by passing in what the API expects --- .../Clients/RepositoryContentsClientTests.cs | 12 ++++++++++++ Octokit/Clients/RepositoryContentsClient.cs | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Octokit.Tests.Integration/Clients/RepositoryContentsClientTests.cs b/Octokit.Tests.Integration/Clients/RepositoryContentsClientTests.cs index 2afea59c..d2283388 100644 --- a/Octokit.Tests.Integration/Clients/RepositoryContentsClientTests.cs +++ b/Octokit.Tests.Integration/Clients/RepositoryContentsClientTests.cs @@ -222,6 +222,18 @@ namespace Octokit.Tests.Integration.Clients Assert.Equal(ContentType.Dir, contents.First().Type); } + [IntegrationTest] + public async Task GetsContentNonMasterWithRootPath() + { + var github = Helper.GetAuthenticatedClient(); + + var contents = await github + .Repository + .Content + .GetAllContentsByRef("octocat", "Spoon-Knife", "/", reference: "test-branch"); + Assert.Equal(4, contents.Count); + } + [IntegrationTest] public async Task GetsDirectoryContentWithRepositoryId() { diff --git a/Octokit/Clients/RepositoryContentsClient.cs b/Octokit/Clients/RepositoryContentsClient.cs index 96056f67..92ccfd45 100644 --- a/Octokit/Clients/RepositoryContentsClient.cs +++ b/Octokit/Clients/RepositoryContentsClient.cs @@ -107,7 +107,9 @@ namespace Octokit Ensure.ArgumentNotNullOrEmptyString(path, nameof(path)); Ensure.ArgumentNotNullOrEmptyString(reference, nameof(reference)); - var url = ApiUrls.RepositoryContent(owner, name, path, reference); + var url = (path == "/") + ? ApiUrls.RepositoryContent(owner, name, "", reference) + : ApiUrls.RepositoryContent(owner, name, path, reference); return ApiConnection.GetAll(url); }