types.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. /**
  2. * Type definitions for Gogs API responses
  3. */
  4. export interface GogsUser {
  5. id: number;
  6. username: string;
  7. full_name: string;
  8. email: string;
  9. avatar_url: string;
  10. }
  11. export interface GogsRepository {
  12. id: number;
  13. owner: GogsUser;
  14. name?: string;
  15. full_name: string;
  16. description?: string;
  17. private: boolean;
  18. fork: boolean;
  19. html_url: string;
  20. clone_url: string;
  21. ssh_url: string;
  22. permissions?: {
  23. admin: boolean;
  24. push: boolean;
  25. pull: boolean;
  26. };
  27. default_branch?: string;
  28. }
  29. export interface GogsSearchResponse<T> {
  30. data: T[];
  31. ok: boolean;
  32. }
  33. export interface GogsFileContent {
  34. type: 'file' | 'dir' | 'symlink' | 'submodule';
  35. encoding?: string;
  36. size: number;
  37. name: string;
  38. path: string;
  39. content?: string;
  40. sha: string;
  41. url: string;
  42. git_url: string;
  43. html_url: string;
  44. download_url: string;
  45. target?: string;
  46. submodule_git_url?: string;
  47. }
  48. export interface GogsBranch {
  49. name: string;
  50. commit: {
  51. id: string;
  52. message: string;
  53. url: string;
  54. };
  55. }
  56. export interface GogsCommit {
  57. sha: string;
  58. commit: {
  59. author: {
  60. name: string;
  61. email: string;
  62. date: string;
  63. };
  64. committer: {
  65. name: string;
  66. email: string;
  67. date: string;
  68. };
  69. message: string;
  70. };
  71. author?: GogsUser;
  72. committer?: GogsUser;
  73. }
  74. export interface GogsConfig {
  75. serverUrl: string;
  76. accessToken?: string;
  77. }
  78. export interface GogsIssue {
  79. id: number;
  80. number: number;
  81. user: GogsUser;
  82. title: string;
  83. body: string;
  84. state: 'open' | 'closed';
  85. comments: number;
  86. created_at: string;
  87. updated_at: string;
  88. labels?: GogsLabel[];
  89. milestone?: GogsMilestone;
  90. assignee?: GogsUser;
  91. pull_request?: {
  92. html_url: string;
  93. diff_url: string;
  94. patch_url: string;
  95. };
  96. }
  97. export interface GogsLabel {
  98. id: number;
  99. name: string;
  100. color: string;
  101. }
  102. export interface GogsMilestone {
  103. id: number;
  104. title: string;
  105. description: string;
  106. state: 'open' | 'closed';
  107. open_issues: number;
  108. closed_issues: number;
  109. due_on?: string;
  110. }
  111. export interface GogsIssueComment {
  112. id: number;
  113. user: GogsUser;
  114. body: string;
  115. created_at: string;
  116. updated_at: string;
  117. }
  118. export interface GogsOrganization {
  119. id: number;
  120. username: string;
  121. full_name: string;
  122. avatar_url: string;
  123. description: string;
  124. website: string;
  125. location: string;
  126. }
  127. export interface GogsTeam {
  128. id: number;
  129. name: string;
  130. description: string;
  131. permission: 'owner' | 'read' | 'write';
  132. }