From e5fc65f4fad844216724e8c6f5b080be0ed60e21 Mon Sep 17 00:00:00 2001 From: moljac Date: Tue, 18 Apr 2023 09:46:08 +0200 Subject: [PATCH 1/8] bumped nuget versions and TFMs --- MavenNet.Tests/MavenNet.Tests.csproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MavenNet.Tests/MavenNet.Tests.csproj b/MavenNet.Tests/MavenNet.Tests.csproj index bac2148..61a02de 100644 --- a/MavenNet.Tests/MavenNet.Tests.csproj +++ b/MavenNet.Tests/MavenNet.Tests.csproj @@ -1,13 +1,13 @@ - netcoreapp3.1 + net6;net7 - - - runtime; build; native; contentfiles; analyzers; buildtransitive + + + runtime; build; native; contentfiles; analyzers; buildtransitive all From e846b7d5f225dabc7584802d22ae2a75d23cfefb Mon Sep 17 00:00:00 2001 From: moljac Date: Tue, 18 Apr 2023 09:46:39 +0200 Subject: [PATCH 2/8] tests added for failing artifacts (with and w/o UserAgent) --- MavenNet.Tests/Test.cs | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/MavenNet.Tests/Test.cs b/MavenNet.Tests/Test.cs index 67c67a0..0f2f382 100644 --- a/MavenNet.Tests/Test.cs +++ b/MavenNet.Tests/Test.cs @@ -100,5 +100,36 @@ public async Task Test_GroupIds_Project_MAVENCENTRAL() Assert.True(project.Dependencies?.Any()); } - } + + [Fact] + public async Task Test_GroupIds_Project_MAVENCENTRAL_1() + { + MavenRepository.HttpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"); + + var repo = MavenRepository.FromMavenCentral(); + await repo.Refresh("com.google.accompanist"); + + var project = await repo.GetProjectAsync("com.google.accompanist", "accompanist-appcompat-theme", "0.30.1"); + + Assert.True(project != null); + + Assert.True(project.Dependencies?.Any()); + } + + [Fact] + public async Task Test_GroupIds_Project_MAVENCENTRAL_2() + { + var repo = MavenRepository.FromMavenCentral(); + MavenRepository.HttpClient.DefaultRequestHeaders.Clear(); + await repo.Refresh("com.google.accompanist"); + + try + { + var project = await repo.GetProjectAsync("com.google.accompanist", "accompanist-appcompat-theme", "0.30.1"); + } + finally + { + } + } + } } From f939013df7c828aaebb8a322207d0320291c93db Mon Sep 17 00:00:00 2001 From: moljac Date: Tue, 18 Apr 2023 09:46:57 +0200 Subject: [PATCH 3/8] exposed HttpClient do UserAgent can be modified --- MavenNet/MavenRepository.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/MavenNet/MavenRepository.cs b/MavenNet/MavenRepository.cs index 988b8d9..971a116 100644 --- a/MavenNet/MavenRepository.cs +++ b/MavenNet/MavenRepository.cs @@ -4,11 +4,14 @@ using System.IO; using System.Threading.Tasks; using MavenNet.Models; +using System.Net.Http; namespace MavenNet { public abstract class MavenRepository : IMavenRepository { + public static readonly HttpClient HttpClient = new HttpClient(); + public static GoogleMavenRepository FromGoogle() { return new GoogleMavenRepository(); From 19858fa096731afc1448cbdb020c74e65c9b365d Mon Sep 17 00:00:00 2001 From: moljac Date: Tue, 18 Apr 2023 09:47:07 +0200 Subject: [PATCH 4/8] nugets bumped --- MavenNet/MavenNet.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MavenNet/MavenNet.csproj b/MavenNet/MavenNet.csproj index 1328581..1e1b44c 100644 --- a/MavenNet/MavenNet.csproj +++ b/MavenNet/MavenNet.csproj @@ -28,7 +28,7 @@ - - + + From f4b2c7729793905c5478b638c3611d76f5bb9a91 Mon Sep 17 00:00:00 2001 From: moljac Date: Tue, 18 Apr 2023 09:54:03 +0200 Subject: [PATCH 5/8] UserAgent added to HttpClient requests --- MavenNet/MavenCentralRepository.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/MavenNet/MavenCentralRepository.cs b/MavenNet/MavenCentralRepository.cs index 032ab41..0494860 100644 --- a/MavenNet/MavenCentralRepository.cs +++ b/MavenNet/MavenCentralRepository.cs @@ -19,15 +19,16 @@ protected override string CombinePaths(params string[] parts) return string.Join(new string(PathSeparator, 1), parts); } - static readonly HttpClient http = new HttpClient(); - protected override async Task> GetArtifactsAsync(string groupId) { var artifacts = new List(); var url = $"http://search.maven.org/solrsearch/select?q=g:%22{groupId}%22&rows=100&wt=json"; - var data = await http.GetStringAsync(url); + // enable by default? + // HttpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"); + + var data = await HttpClient.GetStringAsync(url); var json = JObject.Parse(data); @@ -83,7 +84,7 @@ protected override Task OpenFileAsync(string path) { var url = $"https://repo1.maven.org/maven2/{path}"; - return http.GetStreamAsync(url); + return HttpClient.GetStreamAsync(url); } } } From 0f025aa55d84563b4890a7511136a6ae36362a52 Mon Sep 17 00:00:00 2001 From: moljac Date: Tue, 18 Apr 2023 09:54:20 +0200 Subject: [PATCH 6/8] user agent tests refactored --- MavenNet.Tests/Test.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/MavenNet.Tests/Test.cs b/MavenNet.Tests/Test.cs index 0f2f382..4446bfa 100644 --- a/MavenNet.Tests/Test.cs +++ b/MavenNet.Tests/Test.cs @@ -104,9 +104,8 @@ public async Task Test_GroupIds_Project_MAVENCENTRAL() [Fact] public async Task Test_GroupIds_Project_MAVENCENTRAL_1() { - MavenRepository.HttpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"); - var repo = MavenRepository.FromMavenCentral(); + MavenRepository.HttpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"); await repo.Refresh("com.google.accompanist"); var project = await repo.GetProjectAsync("com.google.accompanist", "accompanist-appcompat-theme", "0.30.1"); From 9eecb451d4c05b299d13ca636691685522596257 Mon Sep 17 00:00:00 2001 From: moljac Date: Wed, 19 Apr 2023 12:08:08 +0200 Subject: [PATCH 7/8] update to dotnet 6 --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a8b81f..2f8b590 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,10 +16,10 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 - - name: Setup .NET 5.0 + - name: Setup .NET 6.0 uses: actions/setup-dotnet@v1 with: - dotnet-version: '5.0.x' + dotnet-version: '6.0.x' - name: Setup NuGet 5.x uses: nuget/setup-nuget@v1 with: @@ -65,7 +65,7 @@ jobs: - name: Setup .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: '5.0.x' + dotnet-version: '6.0.x' - name: Push NuGet run: | dotnet nuget push NuGet\*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_ORG_API_KEY }} From fa32028d6eb9afe5261f0cd903d4af5d0576b341 Mon Sep 17 00:00:00 2001 From: moljac Date: Wed, 19 Apr 2023 12:27:51 +0200 Subject: [PATCH 8/8] net7 TFM removed --- MavenNet.Tests/MavenNet.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MavenNet.Tests/MavenNet.Tests.csproj b/MavenNet.Tests/MavenNet.Tests.csproj index 61a02de..bb6c242 100644 --- a/MavenNet.Tests/MavenNet.Tests.csproj +++ b/MavenNet.Tests/MavenNet.Tests.csproj @@ -1,7 +1,7 @@ - net6;net7 + net6