102 lines
3.5 KiB
C#
102 lines
3.5 KiB
C#
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
|
|
);
|