You can only set request timeout once... (#193)

This commit is contained in:
Caelan
2024-07-30 15:25:08 +01:00
committed by GitHub
parent 2ffc382ac2
commit 636ccb92a7

View File

@@ -66,14 +66,18 @@ public class GitHubRepository(ILogger logger) : SourceRepository<GitHubDownloadO
Credentials = new Credentials(options.Token) Credentials = new Credentials(options.Token)
}; };
client.SetRequestTimeout(TimeSpan.FromHours(1));
var existingReleases = await client.Repository.Release.GetAll(repoOwner, repoName); var existingReleases = await client.Repository.Release.GetAll(repoOwner, repoName);
if (!options.Merge) { if (!options.Merge) {
if (existingReleases.Any(r => r.TagName == semVer.ToString())) { if (existingReleases.Any(r => r.TagName == semVer.ToString())) {
throw new UserInfoException($"There is already an existing release tagged '{semVer}'. Please delete this release or provide a new version number."); throw new UserInfoException(
$"There is already an existing release tagged '{semVer}'. Please delete this release or provide a new version number.");
} }
if (existingReleases.Any(r => r.Name == releaseName)) { if (existingReleases.Any(r => r.Name == releaseName)) {
throw new UserInfoException($"There is already an existing release named '{releaseName}'. Please delete this release or provide a new release name."); throw new UserInfoException(
$"There is already an existing release named '{releaseName}'. Please delete this release or provide a new release name.");
} }
} }
@@ -83,7 +87,8 @@ public class GitHubRepository(ILogger logger) : SourceRepository<GitHubDownloadO
if (release != null) { if (release != null) {
if (release.TagName != semVer.ToString()) if (release.TagName != semVer.ToString())
throw new UserInfoException($"Found existing release matched by name ({release.Name} [{release.TagName}]), but tag name does not match ({semVer})."); throw new UserInfoException(
$"Found existing release matched by name ({release.Name} [{release.TagName}]), but tag name does not match ({semVer}).");
Log.Info($"Found existing release ({release.Name} [{release.TagName}]). Merge flag is enabled."); Log.Info($"Found existing release ({release.Name} [{release.TagName}]). Merge flag is enabled.");
} else { } else {
var newReleaseReq = new NewRelease(semVer.ToString()) { var newReleaseReq = new NewRelease(semVer.ToString()) {
@@ -116,7 +121,11 @@ public class GitHubRepository(ILogger logger) : SourceRepository<GitHubDownloadO
await RetryAsync( await RetryAsync(
async () => { async () => {
var data = new ReleaseAssetUpload(releasesFileName, "application/json", new MemoryStream(Encoding.UTF8.GetBytes(json)), TimeSpan.FromMinutes(1)); var data = new ReleaseAssetUpload(
releasesFileName,
"application/json",
new MemoryStream(Encoding.UTF8.GetBytes(json)),
TimeSpan.FromMinutes(5));
await client.Repository.Release.UploadAsset(release, data, CancellationToken.None); await client.Repository.Release.UploadAsset(release, data, CancellationToken.None);
}, },
"Uploading " + releasesFileName); "Uploading " + releasesFileName);
@@ -126,7 +135,7 @@ public class GitHubRepository(ILogger logger) : SourceRepository<GitHubDownloadO
var legacyReleasesBytes = Encoding.UTF8.GetBytes(legacyReleasesContent); var legacyReleasesBytes = Encoding.UTF8.GetBytes(legacyReleasesContent);
await RetryAsync( await RetryAsync(
async () => { async () => {
var data = new ReleaseAssetUpload("RELEASES", "application/octet-stream", new MemoryStream(legacyReleasesBytes), TimeSpan.FromMinutes(1)); var data = new ReleaseAssetUpload("RELEASES", "application/octet-stream", new MemoryStream(legacyReleasesBytes), TimeSpan.FromMinutes(5));
await client.Repository.Release.UploadAsset(release, data, CancellationToken.None); await client.Repository.Release.UploadAsset(release, data, CancellationToken.None);
}, },
"Uploading legacy RELEASES (compatibility)"); "Uploading legacy RELEASES (compatibility)");
@@ -147,11 +156,8 @@ public class GitHubRepository(ILogger logger) : SourceRepository<GitHubDownloadO
private async Task UploadFileAsAsset(GitHubClient client, Release release, string filePath) private async Task UploadFileAsAsset(GitHubClient client, Release release, string filePath)
{ {
var timeout = TimeSpan.FromHours(1);
client.SetRequestTimeout(timeout);
using var stream = File.OpenRead(filePath); using var stream = File.OpenRead(filePath);
var data = new ReleaseAssetUpload(Path.GetFileName(filePath), "application/octet-stream", stream, timeout); var data = new ReleaseAssetUpload(Path.GetFileName(filePath), "application/octet-stream", stream, timeout: null);
await client.Repository.Release.UploadAsset(release, data, CancellationToken.None); await client.Repository.Release.UploadAsset(release, data, CancellationToken.None);
client.SetRequestTimeout(TimeSpan.FromSeconds(100));
} }
} }