feat: integrate Forgejo API for release synchronization and asset download
This commit is contained in:
1 parent
7fa501266e
commit
7b43e47a64
7 files changed
+225
-32
No files matched your search
@@ -0,0 +1,101 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace ForgejoReleaseSync.DTOs.Forgejo;
|
||||
|
||||
public sealed record ForgejoReleaseResponseDto(
|
||||
[property: JsonPropertyName("archive_download_count")]
|
||||
ArchiveDownloadCount ArchiveDownloadCount,
|
||||
|
||||
[property: JsonPropertyName("assets")]
|
||||
ForgejoReleaseAsset[] Assets,
|
||||
|
||||
[property: JsonPropertyName("author")]
|
||||
ForgejoUser Author,
|
||||
|
||||
[property: JsonPropertyName("body")]
|
||||
string Body,
|
||||
|
||||
[property: JsonPropertyName("created_at")]
|
||||
DateTimeOffset CreatedAt,
|
||||
|
||||
[property: JsonPropertyName("draft")]
|
||||
bool Draft,
|
||||
|
||||
[property: JsonPropertyName("hide_archive_links")]
|
||||
bool HideArchiveLinks,
|
||||
|
||||
[property: JsonPropertyName("html_url")]
|
||||
string HtmlUrl,
|
||||
|
||||
[property: JsonPropertyName("id")]
|
||||
long Id,
|
||||
|
||||
[property: JsonPropertyName("name")]
|
||||
string Name,
|
||||
|
||||
[property: JsonPropertyName("prerelease")]
|
||||
bool Prerelease,
|
||||
|
||||
[property: JsonPropertyName("published_at")]
|
||||
DateTimeOffset PublishedAt,
|
||||
|
||||
[property: JsonPropertyName("tag_name")]
|
||||
string TagName,
|
||||
|
||||
[property: JsonPropertyName("tarball_url")]
|
||||
string TarballUrl,
|
||||
|
||||
[property: JsonPropertyName("target_commitish")]
|
||||
string TargetCommitish,
|
||||
|
||||
[property: JsonPropertyName("upload_url")]
|
||||
string UploadUrl,
|
||||
|
||||
[property: JsonPropertyName("url")]
|
||||
string Url,
|
||||
|
||||
[property: JsonPropertyName("zipball_url")]
|
||||
string ZipballUrl
|
||||
);
|
||||
|
||||
public sealed record ArchiveDownloadCount(
|
||||
[property: JsonPropertyName("tar_gz")] long TarGz,
|
||||
[property: JsonPropertyName("zip")] long Zip
|
||||
);
|
||||
|
||||
public sealed record ForgejoReleaseAsset(
|
||||
[property: JsonPropertyName("browser_download_url")] string BrowserDownloadUrl,
|
||||
[property: JsonPropertyName("created_at")] DateTimeOffset CreatedAt,
|
||||
[property: JsonPropertyName("download_count")] long DownloadCount,
|
||||
[property: JsonPropertyName("id")] long Id,
|
||||
[property: JsonPropertyName("name")] string Name,
|
||||
[property: JsonPropertyName("size")] long Size,
|
||||
[property: JsonPropertyName("type")] string Type,
|
||||
[property: JsonPropertyName("uuid")] string Uuid
|
||||
);
|
||||
|
||||
public sealed record ForgejoUser(
|
||||
[property: JsonPropertyName("active")] bool Active,
|
||||
[property: JsonPropertyName("avatar_url")] string AvatarUrl,
|
||||
[property: JsonPropertyName("created")] DateTimeOffset Created,
|
||||
[property: JsonPropertyName("description")] string Description,
|
||||
[property: JsonPropertyName("email")] string Email,
|
||||
[property: JsonPropertyName("followers_count")] long FollowersCount,
|
||||
[property: JsonPropertyName("following_count")] long FollowingCount,
|
||||
[property: JsonPropertyName("full_name")] string FullName,
|
||||
[property: JsonPropertyName("html_url")] string HtmlUrl,
|
||||
[property: JsonPropertyName("id")] long Id,
|
||||
[property: JsonPropertyName("is_admin")] bool IsAdmin,
|
||||
[property: JsonPropertyName("language")] string Language,
|
||||
[property: JsonPropertyName("last_login")] DateTimeOffset LastLogin,
|
||||
[property: JsonPropertyName("location")] string Location,
|
||||
[property: JsonPropertyName("login")] string Login,
|
||||
[property: JsonPropertyName("login_name")] string LoginName,
|
||||
[property: JsonPropertyName("prohibit_login")] bool ProhibitLogin,
|
||||
[property: JsonPropertyName("pronouns")] string Pronouns,
|
||||
[property: JsonPropertyName("restricted")] bool Restricted,
|
||||
[property: JsonPropertyName("source_id")] long SourceId,
|
||||
[property: JsonPropertyName("starred_repos_count")] long StarredReposCount,
|
||||
[property: JsonPropertyName("visibility")] string Visibility,
|
||||
[property: JsonPropertyName("website")] string Website
|
||||
);
|
||||
Reference in new issue
Block a user