GithubRelease.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Diagnostics.CodeAnalysis;
  3. using System.Text;
  4. using System.Text.Json.Serialization;
  5. namespace FastGithub.Upgrade
  6. {
  7. /// <summary>
  8. /// 发行记录
  9. /// </summary>
  10. public class GithubRelease
  11. {
  12. /// <summary>
  13. /// 标签名
  14. /// </summary>
  15. [JsonPropertyName("tag_name")]
  16. public string TagName { get; set; } = string.Empty;
  17. /// <summary>
  18. /// 是否预览版本
  19. /// </summary>
  20. [JsonPropertyName("prerelease")]
  21. public bool Prerelease { get; set; }
  22. /// <summary>
  23. /// 发行说明
  24. /// </summary>
  25. [JsonPropertyName("body")]
  26. public string Body { get; set; } = string.Empty;
  27. /// <summary>
  28. /// 发行时间
  29. /// </summary>
  30. [JsonPropertyName("created_at")]
  31. public DateTime CreatedAt { get; set; }
  32. /// <summary>
  33. /// 下载页面
  34. /// </summary>
  35. [AllowNull]
  36. [JsonPropertyName("html_url")]
  37. public Uri HtmlUrl { get; set; }
  38. /// <summary>
  39. /// 获取产品版本
  40. /// </summary>
  41. /// <returns></returns>
  42. public ProductionVersion GetProductionVersion()
  43. {
  44. var version = this.TagName.TrimStart('v', 'V');
  45. return ProductionVersion.Parse(version);
  46. }
  47. public override string ToString()
  48. {
  49. return new StringBuilder()
  50. .Append("最新版本:").AppendLine(this.TagName)
  51. .Append("发布时间:").AppendLine(this.CreatedAt.ToString())
  52. .AppendLine("更新内容:").AppendLine(this.Body)
  53. .ToString();
  54. }
  55. }
  56. }