diff --git a/src/lib-csharp/Sources/GitlabSource.cs b/src/lib-csharp/Sources/GitlabSource.cs index 3c7f8f56..d8edf5a1 100644 --- a/src/lib-csharp/Sources/GitlabSource.cs +++ b/src/lib-csharp/Sources/GitlabSource.cs @@ -158,7 +158,7 @@ namespace Velopack.Sources const int page = 1; // https://docs.gitlab.com/ee/api/releases/ var releasesPath = $"releases?per_page={perPage}&page={page}"; - var getReleasesUri = new Uri(RepoUri + releasesPath); + var getReleasesUri = CombineUri(RepoUri, releasesPath); var response = await Downloader.DownloadString(getReleasesUri.ToString(), new Dictionary { [Authorization.Name] = Authorization.Value, @@ -168,5 +168,15 @@ namespace Velopack.Sources if (releases == null) return Array.Empty(); return releases.OrderByDescending(d => d.ReleasedAt).Where(x => includePrereleases || !x.UpcomingRelease).ToArray(); } + + private static Uri CombineUri(Uri baseUri, string relativePath) + { + string baseUriStr = baseUri.ToString(); + + if (!baseUriStr.EndsWith("/")) + baseUriStr += "/"; + + return new Uri(baseUriStr + relativePath); + } } }