Skip to content

Commit 52d52c6

Browse files
committed
fix: return null from ReadFromGithub when analyzer-file dont exist (404)
1 parent cdb5032 commit 52d52c6

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

src/Atc.CodingRules.AnalyzerProviders/Providers/AnalyzerProviderBase.cs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.Net;
2+
13
namespace Atc.CodingRules.AnalyzerProviders.Providers;
24

35
public abstract class AnalyzerProviderBase : IAnalyzerProvider
@@ -134,13 +136,25 @@ protected static Task WriteToTempFolder(
134136

135137
var url = GitRawAtcAnalyzerProviderBaseRulesBasePath + data.Name + ".json";
136138
var displayName = url.Replace(Constants.GitRawContentUrl, Constants.GitHubPrefix, StringComparison.Ordinal);
137-
var rawGitData = HttpClientHelper.GetAsString(
138-
logger,
139-
url,
140-
displayName);
141-
return Task.FromResult(string.IsNullOrEmpty(rawGitData)
142-
? null
143-
: JsonSerializer.Deserialize<AnalyzerProviderBaseRuleData>(rawGitData, AnalyzerProviderSerialization.JsonOptions)!);
139+
try
140+
{
141+
var rawGitData = HttpClientHelper.GetAsString(
142+
logger,
143+
url,
144+
displayName);
145+
return Task.FromResult(string.IsNullOrEmpty(rawGitData)
146+
? null
147+
: JsonSerializer.Deserialize<AnalyzerProviderBaseRuleData>(rawGitData, AnalyzerProviderSerialization.JsonOptions)!);
148+
}
149+
catch (HttpRequestException ex)
150+
{
151+
if (ex.StatusCode == HttpStatusCode.NotFound)
152+
{
153+
return Task.FromResult<AnalyzerProviderBaseRuleData?>(null);
154+
}
155+
156+
throw;
157+
}
144158
}
145159

146160
private void StopTheStopwatchAndLog(

0 commit comments

Comments
 (0)