feat: add release asset upload and cleanup to SyncService
This commit is contained in:
1 parent
7b43e47a64
commit
143d813949
4 files changed
+50
-7
No files matched your search
+11
-2
@@ -34,19 +34,22 @@ public class SyncService(
|
||||
var forgejoReleases = await forgejoService.FetchRepoReleasesAsync(repoOwner, repoName);
|
||||
var lastForgejoRelease = forgejoReleases.LastOrDefault(r => r.Prerelease == false);
|
||||
|
||||
long releaseId;
|
||||
if (lastForgejoRelease is null || lastForgejoRelease.TagName != lastRelease.TagName)
|
||||
{
|
||||
logger.LogInformation("Creating release {ReleaseName} for repo {Owner}/{Name}",
|
||||
lastRelease.Name,
|
||||
repoOwner,
|
||||
repoName);
|
||||
await forgejoService.CreateReleaseAsync(repoOwner, repoName, lastRelease.Body, lastRelease.Name, lastRelease.TagName);
|
||||
var createReleaseRes = await forgejoService.CreateReleaseAsync(repoOwner, repoName, lastRelease.Body, lastRelease.Name, lastRelease.TagName);
|
||||
releaseId = createReleaseRes.LastOrDefault().Id;
|
||||
}
|
||||
releaseId = lastForgejoRelease.Id;
|
||||
|
||||
var acceptableAssets = lastRelease.Assets
|
||||
.Where(asset =>
|
||||
includeRegex.IsMatch(asset.Name) &&
|
||||
!excludeRegex.IsMatch(asset.Name))
|
||||
!excludeRegex.IsMatch(asset.Name) && lastForgejoRelease.Assets.All(releaseAsset => releaseAsset.Name != asset.Name))
|
||||
.ToArray();
|
||||
|
||||
logger.LogInformation(
|
||||
@@ -63,6 +66,12 @@ public class SyncService(
|
||||
var downloadPath = await releaseAssetDownloadService.DownloadReleaseAssetAsync(acceptableAsset.BrowserDownloadUrl);
|
||||
|
||||
logger.LogInformation($"Downloaded {acceptableAsset.Name} to {downloadPath}");
|
||||
|
||||
await forgejoService.UploadReleaseAssetAsync(repoOwner, repoName, releaseId, downloadPath);
|
||||
|
||||
logger.LogInformation($"Uploaded {acceptableAsset.Name}");
|
||||
|
||||
await releaseAssetDownloadService.DeleteReleaseAssetAsync(downloadPath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user