gitverse-api-sdk 1.1.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +318 -125
  2. package/dist/api/actions.d.ts +506 -0
  3. package/dist/api/actions.js +4 -0
  4. package/dist/api/actions.js.map +10 -0
  5. package/dist/api/branches.d.ts +154 -0
  6. package/dist/api/branches.js +4 -0
  7. package/dist/api/branches.js.map +10 -0
  8. package/dist/api/collaborators.d.ts +224 -0
  9. package/dist/api/collaborators.js +4 -0
  10. package/dist/api/collaborators.js.map +10 -0
  11. package/dist/api/commits.d.ts +302 -0
  12. package/dist/api/commits.js +4 -0
  13. package/dist/api/commits.js.map +10 -0
  14. package/dist/api/contents.d.ts +121 -80
  15. package/dist/api/contents.js +3 -3
  16. package/dist/api/contents.js.map +3 -3
  17. package/dist/api/emails.d.ts +80 -39
  18. package/dist/api/emails.js +2 -2
  19. package/dist/api/emails.js.map +1 -1
  20. package/dist/api/forks.d.ts +121 -87
  21. package/dist/api/forks.js +3 -3
  22. package/dist/api/forks.js.map +3 -3
  23. package/dist/api/git.d.ts +228 -0
  24. package/dist/api/git.js +4 -0
  25. package/dist/api/git.js.map +10 -0
  26. package/dist/api/issues.d.ts +223 -82
  27. package/dist/api/issues.js +3 -3
  28. package/dist/api/issues.js.map +3 -3
  29. package/dist/api/organizations.d.ts +140 -0
  30. package/dist/api/organizations.js +4 -0
  31. package/dist/api/organizations.js.map +10 -0
  32. package/dist/api/pulls.d.ts +241 -80
  33. package/dist/api/pulls.js +3 -3
  34. package/dist/api/pulls.js.map +3 -3
  35. package/dist/api/releases.d.ts +400 -0
  36. package/dist/api/releases.js +4 -0
  37. package/dist/api/releases.js.map +10 -0
  38. package/dist/api/repositories.d.ts +266 -80
  39. package/dist/api/repositories.js +3 -3
  40. package/dist/api/repositories.js.map +3 -3
  41. package/dist/api/stars.d.ts +220 -1
  42. package/dist/api/stars.js +3 -3
  43. package/dist/api/stars.js.map +3 -3
  44. package/dist/api/teams.d.ts +287 -0
  45. package/dist/api/teams.js +4 -0
  46. package/dist/api/teams.js.map +10 -0
  47. package/dist/api/users.d.ts +121 -80
  48. package/dist/api/users.js +2 -2
  49. package/dist/api/users.js.map +1 -1
  50. package/dist/client.d.ts +42 -1
  51. package/dist/client.js +3 -3
  52. package/dist/client.js.map +3 -3
  53. package/dist/enums.js +2 -1
  54. package/dist/enums.js.map +1 -1
  55. package/dist/errors.d.ts +78 -0
  56. package/dist/errors.js +4 -0
  57. package/dist/errors.js.map +10 -0
  58. package/dist/index.d.ts +1535 -221
  59. package/dist/index.js +2 -2
  60. package/dist/index.js.map +3 -3
  61. package/dist/types.d.ts +588 -1
  62. package/dist/utils.d.ts +30 -1
  63. package/dist/utils.js +3 -2
  64. package/dist/utils.js.map +3 -3
  65. package/package.json +55 -11
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import{a as v}from"./api/issues.js";import{b as w}from"./api/pulls.js";import{c as x}from"./api/repositories.js";import{d as y}from"./api/stars.js";import{e as z}from"./api/users.js";import{f as d}from"./client.js";import{g as h}from"./api/contents.js";import{h as j}from"./api/emails.js";import{i as q}from"./api/forks.js";class B{client;users;repos;contents;pulls;forks;emails;issues;stars;constructor(b={}){this.client=new d(b),this.users=new z(this.client),this.repos=new x(this.client),this.contents=new h(this.client),this.pulls=new w(this.client),this.forks=new q(this.client),this.emails=new j(this.client),this.issues=new v(this.client),this.stars=new y(this.client)}setToken(b){return this.client.setToken(b),this}}export{B as GitVerse};
1
+ import{a as L}from"./api/organizations.js";import{b as x}from"./api/commits.js";import{c as q}from"./api/actions.js";import{d as W}from"./api/stars.js";import{e as K}from"./api/issues.js";import{f as v}from"./api/branches.js";import{g as Q}from"./api/repositories.js";import{h as w}from"./api/collaborators.js";import{i as y}from"./api/contents.js";import{j as X}from"./api/teams.js";import{k as J}from"./api/git.js";import{l as N}from"./api/releases.js";import{m as M}from"./api/pulls.js";import{n as H}from"./api/forks.js";import{o as j}from"./client.js";import{p as B,q as E,r as F,s as I,t as O}from"./enums.js";import"./utils.js";import{v as Z,w as _,x as $}from"./errors.js";import{y as Y}from"./api/users.js";import{z as D}from"./api/emails.js";class P{client;users;repos;contents;pulls;forks;emails;issues;stars;branches;commits;collaborators;organizations;teams;releases;git;actions;constructor(d={}){this.client=new j(d),this.users=new Y(this.client),this.repos=new Q(this.client),this.contents=new y(this.client),this.pulls=new M(this.client),this.forks=new H(this.client),this.emails=new D(this.client),this.issues=new K(this.client),this.stars=new W(this.client),this.branches=new v(this.client),this.commits=new x(this.client),this.collaborators=new w(this.client),this.organizations=new L(this.client),this.teams=new X(this.client),this.releases=new N(this.client),this.git=new J(this.client),this.actions=new q(this.client)}setToken(d){return this.client.setToken(d),this}}export{E as VisibilityType,B as UserType,_ as RateLimitError,I as PullRequestState,O as IssueState,Z as GitVerseApiError,P as GitVerse,F as ContentType,$ as ApiVersionWarning};
2
2
 
3
- //# debugId=AD98CDEFFB52419E64756E2164756E21
3
+ //# debugId=1FDA74B2231FF3F964756E2164756E21
package/dist/index.js.map CHANGED
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
4
  "sourcesContent": [
5
- "import { ContentsApi } from \"./api/contents\";\nimport { EmailsApi } from \"./api/emails\";\nimport { ForksApi } from \"./api/forks\";\nimport { IssuesApi } from \"./api/issues\";\nimport { PullsApi } from \"./api/pulls\";\nimport { RepositoriesApi } from \"./api/repositories\";\nimport { StarsApi } from \"./api/stars\";\nimport { UsersApi } from \"./api/users\";\nimport { GitVerseClient, type GitVerseClientConfig } from \"./client\";\n\n/**\n * Класс GitVerse, объединяющий все API методы\n *\n * @remarks\n * Для лучшего tree-shaking рекомендуется импортировать напрямую из соответствующих модулей:\n * ```typescript\n * // Вместо\n * import { GitVerse } from 'gitverse-api-sdk';\n * const client = new GitVerse();\n *\n * // Рекомендуется использовать\n * import { RepositoriesApi, GitVerseClient } from 'gitverse-api-sdk/api/repositories';\n * const client = new GitVerseClient();\n * const reposApi = new RepositoriesApi(client);\n * ```\n */\nexport class GitVerse {\n /**\n * Клиент API\n */\n public readonly client: GitVerseClient;\n\n /**\n * API для работы с пользователями\n */\n public readonly users: UsersApi;\n\n /**\n * API для работы с репозиториями\n */\n public readonly repos: RepositoriesApi;\n\n /**\n * API для работы с содержимым репозитория\n */\n public readonly contents: ContentsApi;\n\n /**\n * API для работы с запросами на слияние\n */\n public readonly pulls: PullsApi;\n\n /**\n * API для работы с форками\n */\n public readonly forks: ForksApi;\n\n /**\n * API для работы с email адресами\n */\n public readonly emails: EmailsApi;\n\n /**\n * API для работы с issues\n */\n public readonly issues: IssuesApi;\n\n /**\n * API для работы со звездами\n */\n public readonly stars: StarsApi;\n\n /**\n * Создает новый экземпляр GitVerse\n * @param config Конфигурация клиента\n */\n constructor(config: GitVerseClientConfig = {}) {\n this.client = new GitVerseClient(config);\n\n this.users = new UsersApi(this.client);\n this.repos = new RepositoriesApi(this.client);\n this.contents = new ContentsApi(this.client);\n this.pulls = new PullsApi(this.client);\n this.forks = new ForksApi(this.client);\n this.emails = new EmailsApi(this.client);\n this.issues = new IssuesApi(this.client);\n this.stars = new StarsApi(this.client);\n }\n\n /**\n * Устанавливает токен авторизации\n * @param token Токен доступа\n * @returns Текущий экземпляр GitVerse\n */\n setToken(token: string): GitVerse {\n this.client.setToken(token);\n return this;\n }\n}\n"
5
+ "import { ActionsApi } from \"./api/actions\";\nimport { BranchesApi } from \"./api/branches\";\nimport { CollaboratorsApi } from \"./api/collaborators\";\nimport { CommitsApi } from \"./api/commits\";\nimport { ContentsApi } from \"./api/contents\";\nimport { EmailsApi } from \"./api/emails\";\nimport { ForksApi } from \"./api/forks\";\nimport { GitApi } from \"./api/git\";\nimport { IssuesApi } from \"./api/issues\";\nimport { OrganizationsApi } from \"./api/organizations\";\nimport { PullsApi } from \"./api/pulls\";\nimport { ReleasesApi } from \"./api/releases\";\nimport { RepositoriesApi } from \"./api/repositories\";\nimport { StarsApi } from \"./api/stars\";\nimport { TeamsApi } from \"./api/teams\";\nimport { UsersApi } from \"./api/users\";\nimport { GitVerseClient, type GitVerseClientConfig } from \"./client\";\n\n/**\n * Класс GitVerse, объединяющий все API методы\n *\n * @remarks\n * Для лучшего tree-shaking рекомендуется импортировать напрямую из соответствующих модулей:\n * ```typescript\n * // Вместо\n * import { GitVerse } from 'gitverse-api-sdk';\n * const client = new GitVerse();\n *\n * // Рекомендуется использовать\n * import { RepositoriesApi, GitVerseClient } from 'gitverse-api-sdk/api/repositories';\n * const client = new GitVerseClient();\n * const reposApi = new RepositoriesApi(client);\n * ```\n */\nexport class GitVerse {\n /**\n * Клиент API\n */\n public readonly client: GitVerseClient;\n\n /**\n * API для работы с пользователями\n */\n public readonly users: UsersApi;\n\n /**\n * API для работы с репозиториями\n */\n public readonly repos: RepositoriesApi;\n\n /**\n * API для работы с содержимым репозитория\n */\n public readonly contents: ContentsApi;\n\n /**\n * API для работы с запросами на слияние\n */\n public readonly pulls: PullsApi;\n\n /**\n * API для работы с форками\n */\n public readonly forks: ForksApi;\n\n /**\n * API для работы с email адресами\n */\n public readonly emails: EmailsApi;\n\n /**\n * API для работы с issues\n */\n public readonly issues: IssuesApi;\n\n /**\n * API для работы со звездами\n */\n public readonly stars: StarsApi;\n\n /**\n * API для работы с ветками\n */\n public readonly branches: BranchesApi;\n\n /**\n * API для работы с коммитами\n */\n public readonly commits: CommitsApi;\n\n /**\n * API для работы с коллабораторами\n */\n public readonly collaborators: CollaboratorsApi;\n\n /**\n * API для работы с организациями\n */\n public readonly organizations: OrganizationsApi;\n\n /**\n * API для работы с командами\n */\n public readonly teams: TeamsApi;\n\n /**\n * API для работы с релизами\n */\n public readonly releases: ReleasesApi;\n\n /**\n * API для работы с Git-объектами\n */\n public readonly git: GitApi;\n\n /**\n * API для работы с GitHub Actions\n */\n public readonly actions: ActionsApi;\n\n /**\n * Создает новый экземпляр GitVerse\n * @param config Конфигурация клиента\n */\n constructor(config: GitVerseClientConfig = {}) {\n this.client = new GitVerseClient(config);\n\n this.users = new UsersApi(this.client);\n this.repos = new RepositoriesApi(this.client);\n this.contents = new ContentsApi(this.client);\n this.pulls = new PullsApi(this.client);\n this.forks = new ForksApi(this.client);\n this.emails = new EmailsApi(this.client);\n this.issues = new IssuesApi(this.client);\n this.stars = new StarsApi(this.client);\n this.branches = new BranchesApi(this.client);\n this.commits = new CommitsApi(this.client);\n this.collaborators = new CollaboratorsApi(this.client);\n this.organizations = new OrganizationsApi(this.client);\n this.teams = new TeamsApi(this.client);\n this.releases = new ReleasesApi(this.client);\n this.git = new GitApi(this.client);\n this.actions = new ActionsApi(this.client);\n }\n\n /**\n * Устанавливает токен авторизации\n * @param token Токен доступа\n * @returns Текущий экземпляр GitVerse\n */\n setToken(token: string): GitVerse {\n this.client.setToken(token);\n return this;\n }\n}\n\n// Экспорт перечислений\nexport { ContentType, IssueState, PullRequestState, UserType, VisibilityType } from \"./enums\";\n// Экспорт классов ошибок\nexport { ApiVersionWarning, GitVerseApiError, RateLimitError } from \"./errors\";\n// Экспорт типов\nexport type {\n ApiResponseMetadata,\n ApiVersionInfo,\n Branch,\n Commit,\n Content,\n CurrentUser,\n Issue,\n PullRequest,\n RateLimitInfo,\n Release,\n Repository,\n Team,\n User,\n} from \"./types\";\n"
6
6
  ],
7
- "mappings": "oZA0BO,LAAM,HAAS,VAIJ,JAKA,RAKA,FAKA,DAKA,LAKA,MAKA,OAKA,OAKA,MAMhB,WAAW,CAAC,EAA+B,CAAC,EAAG,CAC7C,KAAK,OAAS,IAAI,EAAe,CAAM,EAEvC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,MAAQ,IAAI,EAAgB,KAAK,MAAM,EAC5C,KAAK,SAAW,IAAI,EAAY,KAAK,MAAM,EAC3C,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,OAAS,IAAI,EAAU,KAAK,MAAM,EACvC,KAAK,OAAS,IAAI,EAAU,KAAK,MAAM,EACvC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EAQvC,QAAQ,CAAC,EAAyB,CAEhC,OADA,KAAK,OAAO,SAAS,CAAK,EACnB,KAEX",
8
- "debugId": "AD98CDEFFB52419E64756E2164756E21",
7
+ "mappings": "m7BAkCO,HAAM,RAAS,VAIJ,HAKA,FAKA,EAKA,MAKA,FAKA,LAKA,NAKA,DAKA,LAKA,FAKA,NAKA,DAKA,DAKA,RAKA,FAKA,NAKA,QAMhB,WAAW,CAAC,EAA+B,CAAC,EAAG,CAC7C,KAAK,OAAS,IAAI,EAAe,CAAM,EAEvC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,MAAQ,IAAI,EAAgB,KAAK,MAAM,EAC5C,KAAK,SAAW,IAAI,EAAY,KAAK,MAAM,EAC3C,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,OAAS,IAAI,EAAU,KAAK,MAAM,EACvC,KAAK,OAAS,IAAI,EAAU,KAAK,MAAM,EACvC,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,SAAW,IAAI,EAAY,KAAK,MAAM,EAC3C,KAAK,QAAU,IAAI,EAAW,KAAK,MAAM,EACzC,KAAK,cAAgB,IAAI,EAAiB,KAAK,MAAM,EACrD,KAAK,cAAgB,IAAI,EAAiB,KAAK,MAAM,EACrD,KAAK,MAAQ,IAAI,EAAS,KAAK,MAAM,EACrC,KAAK,SAAW,IAAI,EAAY,KAAK,MAAM,EAC3C,KAAK,IAAM,IAAI,EAAO,KAAK,MAAM,EACjC,KAAK,QAAU,IAAI,EAAW,KAAK,MAAM,EAQ3C,QAAQ,CAAC,EAAyB,CAEhC,OADA,KAAK,OAAO,SAAS,CAAK,EACnB,KAEX",
8
+ "debugId": "1FDA74B2231FF3F964756E2164756E21",
9
9
  "names": []
10
10
  }
package/dist/types.d.ts CHANGED
@@ -55,6 +55,41 @@ declare const IssueState: {
55
55
  */
56
56
  type IssueState = (typeof IssueState)[keyof typeof IssueState];
57
57
  /**
58
+ * Информация о лимитах запросов (Rate Limits)
59
+ */
60
+ interface RateLimitInfo {
61
+ /** Максимальное количество запросов за час */
62
+ limit: number;
63
+ /** Оставшееся количество запросов */
64
+ remaining: number;
65
+ /** Количество секунд до сброса лимита */
66
+ retryAfter: number;
67
+ /** Unix timestamp когда лимит будет сброшен */
68
+ reset: number;
69
+ }
70
+ /**
71
+ * Информация о версии API
72
+ */
73
+ interface ApiVersionInfo {
74
+ /** Текущая версия API */
75
+ version: string;
76
+ /** Последняя доступная версия API */
77
+ latestVersion: string;
78
+ /** Флаг устаревшей версии */
79
+ deprecated: boolean;
80
+ /** Дата вывода из эксплуатации (если версия устарела) */
81
+ decommissioning?: string;
82
+ }
83
+ /**
84
+ * Метаданные ответа API
85
+ */
86
+ interface ApiResponseMetadata {
87
+ /** Информация о лимитах запросов */
88
+ rateLimit?: RateLimitInfo;
89
+ /** Информация о версии API */
90
+ apiVersion?: ApiVersionInfo;
91
+ }
92
+ /**
58
93
  * Интерфейс пользователя
59
94
  */
60
95
  interface User2 {
@@ -666,4 +701,556 @@ interface Issue {
666
701
  /** API-ссылка на issue */
667
702
  url: string;
668
703
  }
669
- export { User2 as User, UpdateFileParams, Repository, RemoveEmailParams, PullRequestBase, PullRequest, Milestone, LanguagesResponse, Label, Issue, FileDeletionResponse, FileCreationResponse, FileContent, EmailOperationResponse, Email, DirectoryContent, DeleteFileParams, CurrentUser, CreateRepositoryParams, CreatePullRequestParams, CreateForkParams, CreateFileParams, Content, CommitInfo, ApiError, AddEmailParams };
704
+ /**
705
+ * Интерфейс комментария к issue или pull request
706
+ */
707
+ interface Comment {
708
+ /** Уникальный идентификатор комментария */
709
+ id: number;
710
+ /** Текст комментария */
711
+ body: string;
712
+ /** Пользователь, создавший комментарий */
713
+ user: User2;
714
+ /** Дата создания */
715
+ created_at: string;
716
+ /** Дата обновления */
717
+ updated_at: string;
718
+ /** Веб-ссылка на комментарий */
719
+ html_url: string;
720
+ /** API-ссылка на комментарий */
721
+ url: string;
722
+ }
723
+ /**
724
+ * Интерфейс события в timeline issue
725
+ */
726
+ interface TimelineEvent {
727
+ /** Уникальный идентификатор события */
728
+ id: number;
729
+ /** Тип события */
730
+ event: string;
731
+ /** Пользователь, вызвавший событие */
732
+ actor: User2;
733
+ /** Дата создания события */
734
+ created_at: string;
735
+ /** Метка (для событий с метками) */
736
+ label?: Label;
737
+ /** Milestone (для событий с milestone) */
738
+ milestone?: Milestone;
739
+ /** Переименование (для событий переименования) */
740
+ rename?: {
741
+ from: string
742
+ to: string
743
+ };
744
+ }
745
+ /**
746
+ * Интерфейс ветки репозитория
747
+ */
748
+ interface Branch {
749
+ /** Имя ветки */
750
+ name: string;
751
+ /** SHA-хеш последнего коммита */
752
+ commit: {
753
+ sha: string
754
+ url: string
755
+ };
756
+ /** Защищена ли ветка */
757
+ protected?: boolean;
758
+ }
759
+ /**
760
+ * Интерфейс коммита
761
+ */
762
+ interface Commit {
763
+ /** SHA-хеш коммита */
764
+ sha: string;
765
+ /** Node ID коммита */
766
+ node_id?: string;
767
+ /** Информация о коммите */
768
+ commit: {
769
+ /** Автор коммита */
770
+ author: {
771
+ name: string
772
+ email: string
773
+ date: string
774
+ }
775
+ /** Коммиттер */
776
+ committer: {
777
+ name: string
778
+ email: string
779
+ date: string
780
+ }
781
+ /** Сообщение коммита */
782
+ message: string
783
+ /** Дерево коммита */
784
+ tree: {
785
+ sha: string
786
+ url: string
787
+ }
788
+ };
789
+ /** Автор (пользователь GitVerse) */
790
+ author?: User2 | null;
791
+ /** Коммиттер (пользователь GitVerse) */
792
+ committer?: User2 | null;
793
+ /** Родительские коммиты */
794
+ parents: Array<{
795
+ sha: string
796
+ url: string
797
+ html_url: string
798
+ }>;
799
+ /** API-ссылка на коммит */
800
+ url: string;
801
+ /** Веб-ссылка на коммит */
802
+ html_url: string;
803
+ }
804
+ /**
805
+ * Параметры для создания коммита
806
+ */
807
+ interface CreateCommitParams {
808
+ /** Сообщение коммита */
809
+ message: string;
810
+ /** SHA-хеш дерева */
811
+ tree: string;
812
+ /** SHA-хеши родительских коммитов */
813
+ parents?: string[];
814
+ /** Информация об авторе */
815
+ author?: {
816
+ name: string
817
+ email: string
818
+ date?: string
819
+ };
820
+ /** Информация о коммиттере */
821
+ committer?: {
822
+ name: string
823
+ email: string
824
+ date?: string
825
+ };
826
+ /** GPG подпись */
827
+ signature?: string;
828
+ }
829
+ /**
830
+ * Параметры для обновления репозитория
831
+ */
832
+ interface UpdateRepositoryParams {
833
+ /** Новое название репозитория */
834
+ name?: string;
835
+ /** Новое описание репозитория */
836
+ description?: string;
837
+ /** Веб-сайт проекта */
838
+ website?: string;
839
+ /** Приватный ли репозиторий */
840
+ private?: boolean;
841
+ /** Разрешены ли issues */
842
+ has_issues?: boolean;
843
+ /** Разрешена ли wiki */
844
+ has_wiki?: boolean;
845
+ /** Ветка по умолчанию */
846
+ default_branch?: string;
847
+ /** Архивирован ли репозиторий */
848
+ archived?: boolean;
849
+ }
850
+ /**
851
+ * Интерфейс результата сравнения веток/коммитов
852
+ */
853
+ interface CompareResponse {
854
+ /** URL для сравнения */
855
+ url: string;
856
+ /** Веб-ссылка для сравнения */
857
+ html_url: string;
858
+ /** Diff-ссылка */
859
+ diff_url: string;
860
+ /** Patch-ссылка */
861
+ patch_url: string;
862
+ /** Базовый коммит */
863
+ base_commit: Commit;
864
+ /** Сравниваемый коммит */
865
+ merge_base_commit: Commit;
866
+ /** Статус сравнения */
867
+ status: "ahead" | "behind" | "identical" | "diverged";
868
+ /** Количество коммитов впереди */
869
+ ahead_by: number;
870
+ /** Количество коммитов позади */
871
+ behind_by: number;
872
+ /** Общее количество коммитов */
873
+ total_commits: number;
874
+ /** Список коммитов */
875
+ commits: Commit[];
876
+ /** Изменённые файлы */
877
+ files: PullRequestFile[];
878
+ }
879
+ /**
880
+ * Параметры для обновления pull request
881
+ */
882
+ interface UpdatePullRequestParams {
883
+ /** Новый заголовок */
884
+ title?: string;
885
+ /** Новое описание */
886
+ body?: string;
887
+ /** Новое состояние */
888
+ state?: PullRequestState;
889
+ /** Базовая ветка */
890
+ base?: string;
891
+ /** Можно ли мейнтейнерам модифицировать */
892
+ maintainer_can_modify?: boolean;
893
+ }
894
+ /**
895
+ * Интерфейс файла в pull request
896
+ */
897
+ interface PullRequestFile {
898
+ /** SHA-хеш файла */
899
+ sha: string;
900
+ /** Имя файла */
901
+ filename: string;
902
+ /** Статус изменения */
903
+ status: "added" | "removed" | "modified" | "renamed" | "copied" | "changed" | "unchanged";
904
+ /** Количество добавленных строк */
905
+ additions: number;
906
+ /** Количество удалённых строк */
907
+ deletions: number;
908
+ /** Общее количество изменений */
909
+ changes: number;
910
+ /** URL для получения содержимого */
911
+ blob_url: string;
912
+ /** Raw URL */
913
+ raw_url: string;
914
+ /** API URL */
915
+ contents_url: string;
916
+ /** Patch для файла */
917
+ patch?: string;
918
+ /** Предыдущее имя файла (для переименованных) */
919
+ previous_filename?: string;
920
+ }
921
+ /**
922
+ * Интерфейс команды (team)
923
+ */
924
+ interface Team {
925
+ /** Идентификатор команды */
926
+ id: number;
927
+ /** Node ID команды */
928
+ node_id?: string;
929
+ /** Название команды */
930
+ name: string;
931
+ /** Slug команды */
932
+ slug: string;
933
+ /** Описание команды */
934
+ description?: string;
935
+ /** Приватность команды */
936
+ privacy?: "secret" | "closed";
937
+ /** Права доступа */
938
+ permission: "pull" | "push" | "admin";
939
+ /** Количество участников */
940
+ members_count?: number;
941
+ /** Количество репозиториев */
942
+ repos_count?: number;
943
+ /** Организация */
944
+ organization?: {
945
+ login: string
946
+ id: number
947
+ };
948
+ /** Веб-ссылка */
949
+ html_url: string;
950
+ /** API-ссылка */
951
+ url: string;
952
+ }
953
+ /**
954
+ * Интерфейс приглашения в команду
955
+ */
956
+ interface Invitation {
957
+ /** Идентификатор приглашения */
958
+ id: number;
959
+ /** Приглашённый пользователь */
960
+ login: string;
961
+ /** Email приглашённого */
962
+ email?: string;
963
+ /** Роль */
964
+ role: string;
965
+ /** Дата создания */
966
+ created_at: string;
967
+ /** Приглашающий */
968
+ inviter: User2;
969
+ }
970
+ /**
971
+ * Интерфейс релиза
972
+ */
973
+ interface Release {
974
+ /** Идентификатор релиза */
975
+ id: number;
976
+ /** Тег релиза */
977
+ tag_name: string;
978
+ /** Целевой коммит */
979
+ target_commitish: string;
980
+ /** Название релиза */
981
+ name: string;
982
+ /** Описание релиза */
983
+ body?: string;
984
+ /** Черновик ли релиз */
985
+ draft: boolean;
986
+ /** Пре-релиз ли */
987
+ prerelease: boolean;
988
+ /** Автор релиза */
989
+ author: User2;
990
+ /** Дата создания */
991
+ created_at: string;
992
+ /** Дата публикации */
993
+ published_at?: string;
994
+ /** Веб-ссылка */
995
+ html_url: string;
996
+ /** API-ссылка */
997
+ url: string;
998
+ /** Ссылка на архив tar.gz */
999
+ tarball_url: string;
1000
+ /** Ссылка на архив zip */
1001
+ zipball_url: string;
1002
+ /** Список ассетов */
1003
+ assets: Asset[];
1004
+ }
1005
+ /**
1006
+ * Параметры для создания релиза
1007
+ */
1008
+ interface CreateReleaseParams {
1009
+ /** Тег релиза */
1010
+ tag_name: string;
1011
+ /** Целевой коммит (по умолчанию основная ветка) */
1012
+ target_commitish?: string;
1013
+ /** Название релиза */
1014
+ name?: string;
1015
+ /** Описание релиза */
1016
+ body?: string;
1017
+ /** Черновик ли релиз */
1018
+ draft?: boolean;
1019
+ /** Пре-релиз ли */
1020
+ prerelease?: boolean;
1021
+ }
1022
+ /**
1023
+ * Параметры для обновления релиза
1024
+ */
1025
+ interface UpdateReleaseParams {
1026
+ /** Тег релиза */
1027
+ tag_name?: string;
1028
+ /** Целевой коммит */
1029
+ target_commitish?: string;
1030
+ /** Название релиза */
1031
+ name?: string;
1032
+ /** Описание релиза */
1033
+ body?: string;
1034
+ /** Черновик ли релиз */
1035
+ draft?: boolean;
1036
+ /** Пре-релиз ли */
1037
+ prerelease?: boolean;
1038
+ }
1039
+ /**
1040
+ * Интерфейс ассета релиза
1041
+ */
1042
+ interface Asset {
1043
+ /** Идентификатор ассета */
1044
+ id: number;
1045
+ /** Название файла */
1046
+ name: string;
1047
+ /** Метка ассета */
1048
+ label?: string;
1049
+ /** Content-Type */
1050
+ content_type: string;
1051
+ /** Состояние ассета */
1052
+ state: "uploaded" | "open";
1053
+ /** Размер в байтах */
1054
+ size: number;
1055
+ /** Количество скачиваний */
1056
+ download_count: number;
1057
+ /** Дата создания */
1058
+ created_at: string;
1059
+ /** Дата обновления */
1060
+ updated_at: string;
1061
+ /** Загрузивший пользователь */
1062
+ uploader: User2;
1063
+ /** URL для скачивания */
1064
+ browser_download_url: string;
1065
+ /** API-ссылка */
1066
+ url: string;
1067
+ }
1068
+ /**
1069
+ * Параметры для загрузки ассета
1070
+ */
1071
+ interface UploadAssetParams {
1072
+ /** Название файла */
1073
+ name: string;
1074
+ /** Метка ассета */
1075
+ label?: string;
1076
+ /** Содержимое файла */
1077
+ data: ArrayBuffer | Blob;
1078
+ }
1079
+ /**
1080
+ * Интерфейс Git-ссылки (reference)
1081
+ */
1082
+ interface Reference {
1083
+ /** Имя ссылки (например, refs/heads/main) */
1084
+ ref: string;
1085
+ /** Node ID */
1086
+ node_id?: string;
1087
+ /** API-ссылка */
1088
+ url: string;
1089
+ /** Объект, на который указывает ссылка */
1090
+ object: {
1091
+ type: string
1092
+ sha: string
1093
+ url: string
1094
+ };
1095
+ }
1096
+ /**
1097
+ * Параметры для создания Git-ссылки
1098
+ */
1099
+ interface CreateRefParams {
1100
+ /** Имя ссылки (например, refs/heads/feature-branch) */
1101
+ ref: string;
1102
+ /** SHA-хеш коммита */
1103
+ sha: string;
1104
+ }
1105
+ /**
1106
+ * Интерфейс Git-дерева
1107
+ */
1108
+ interface Tree {
1109
+ /** SHA-хеш дерева */
1110
+ sha: string;
1111
+ /** API-ссылка на дерево */
1112
+ url: string;
1113
+ /** Список записей в дереве */
1114
+ tree: TreeEntry[];
1115
+ /** Обрезано ли дерево */
1116
+ truncated: boolean;
1117
+ }
1118
+ /**
1119
+ * Интерфейс записи в Git-дереве
1120
+ */
1121
+ interface TreeEntry {
1122
+ /** Путь к файлу/директории */
1123
+ path: string;
1124
+ /** Режим доступа */
1125
+ mode: string;
1126
+ /** Тип объекта */
1127
+ type: "blob" | "tree" | "commit";
1128
+ /** SHA-хеш объекта */
1129
+ sha: string;
1130
+ /** Размер (для blob) */
1131
+ size?: number;
1132
+ /** URL объекта */
1133
+ url: string;
1134
+ }
1135
+ /**
1136
+ * Параметры для создания Git-дерева
1137
+ */
1138
+ interface CreateTreeParams {
1139
+ /** Список записей дерева */
1140
+ tree: Array<{
1141
+ path: string
1142
+ mode: "100644" | "100755" | "040000" | "160000" | "120000"
1143
+ type: "blob" | "tree" | "commit"
1144
+ sha?: string
1145
+ content?: string
1146
+ }>;
1147
+ /** SHA-хеш базового дерева */
1148
+ base_tree?: string;
1149
+ }
1150
+ /**
1151
+ * Интерфейс раннера GitHub Actions
1152
+ */
1153
+ interface Runner {
1154
+ /** Идентификатор раннера */
1155
+ id: number;
1156
+ /** Название раннера */
1157
+ name: string;
1158
+ /** Операционная система */
1159
+ os: string;
1160
+ /** Статус раннера */
1161
+ status: "online" | "offline";
1162
+ /** Занят ли раннер */
1163
+ busy: boolean;
1164
+ /** Метки раннера */
1165
+ labels: Array<{
1166
+ id: number
1167
+ name: string
1168
+ type: string
1169
+ }>;
1170
+ }
1171
+ /**
1172
+ * Интерфейс секрета GitHub Actions
1173
+ */
1174
+ interface Secret {
1175
+ /** Название секрета */
1176
+ name: string;
1177
+ /** Дата создания */
1178
+ created_at: string;
1179
+ /** Дата обновления */
1180
+ updated_at: string;
1181
+ }
1182
+ /**
1183
+ * Параметры для создания/обновления секрета
1184
+ */
1185
+ interface CreateSecretParams {
1186
+ /** Зашифрованное значение */
1187
+ encrypted_value: string;
1188
+ /** ID ключа для шифрования */
1189
+ key_id: string;
1190
+ }
1191
+ /**
1192
+ * Интерфейс переменной GitHub Actions
1193
+ */
1194
+ interface Variable {
1195
+ /** Название переменной */
1196
+ name: string;
1197
+ /** Значение переменной */
1198
+ value: string;
1199
+ /** Дата создания */
1200
+ created_at: string;
1201
+ /** Дата обновления */
1202
+ updated_at: string;
1203
+ }
1204
+ /**
1205
+ * Параметры для создания переменной
1206
+ */
1207
+ interface CreateVariableParams {
1208
+ /** Название переменной */
1209
+ name: string;
1210
+ /** Значение переменной */
1211
+ value: string;
1212
+ }
1213
+ /**
1214
+ * Параметры для обновления переменной
1215
+ */
1216
+ interface UpdateVariableParams {
1217
+ /** Новое название (опционально) */
1218
+ name?: string;
1219
+ /** Новое значение */
1220
+ value?: string;
1221
+ }
1222
+ /**
1223
+ * Интерфейс артефакта GitHub Actions
1224
+ */
1225
+ interface Artifact {
1226
+ /** Идентификатор артефакта */
1227
+ id: number;
1228
+ /** Node ID артефакта */
1229
+ node_id: string;
1230
+ /** Название артефакта */
1231
+ name: string;
1232
+ /** Размер в байтах */
1233
+ size_in_bytes: number;
1234
+ /** API-ссылка */
1235
+ url: string;
1236
+ /** Ссылка на архив */
1237
+ archive_download_url: string;
1238
+ /** Истёк ли срок действия */
1239
+ expired: boolean;
1240
+ /** Дата создания */
1241
+ created_at: string;
1242
+ /** Дата истечения */
1243
+ expires_at: string;
1244
+ /** Дата обновления */
1245
+ updated_at: string;
1246
+ }
1247
+ /**
1248
+ * Параметры для запуска workflow
1249
+ */
1250
+ interface DispatchWorkflowParams {
1251
+ /** Ссылка на ветку или тег */
1252
+ ref: string;
1253
+ /** Входные параметры для workflow */
1254
+ inputs?: Record<string, string>;
1255
+ }
1256
+ export { Variable, User2 as User, UploadAssetParams, UpdateVariableParams, UpdateRepositoryParams, UpdateReleaseParams, UpdatePullRequestParams, UpdateFileParams, TreeEntry, Tree, TimelineEvent, Team, Secret, Runner, Repository, RemoveEmailParams, Release, Reference, RateLimitInfo, PullRequestFile, PullRequestBase, PullRequest, Milestone, LanguagesResponse, Label, Issue, Invitation, FileDeletionResponse, FileCreationResponse, FileContent, EmailOperationResponse, Email, DispatchWorkflowParams, DirectoryContent, DeleteFileParams, CurrentUser, CreateVariableParams, CreateTreeParams, CreateSecretParams, CreateRepositoryParams, CreateReleaseParams, CreateRefParams, CreatePullRequestParams, CreateForkParams, CreateFileParams, CreateCommitParams, Content, CompareResponse, CommitInfo, Commit, Comment, Branch, Asset, Artifact, ApiVersionInfo, ApiResponseMetadata, ApiError, AddEmailParams };
package/dist/utils.d.ts CHANGED
@@ -36,4 +36,33 @@ declare function parseFileContent(fileContent: {
36
36
  content?: string
37
37
  encoding?: string
38
38
  });
39
- export { updateFileParams, parseFileContent, encodeBase64, decodeBase64, createFileParams };
39
+ /**
40
+ * Исправляет дублированный домен в URL (workaround для бага GitVerse API)
41
+ *
42
+ * Проблема: API иногда возвращает URL вида:
43
+ * `https://gitverse.ru/https://gitverse.ru/owner/repo.git`
44
+ *
45
+ * Эта функция исправляет такие URL на корректный вид:
46
+ * `https://gitverse.ru/owner/repo.git`
47
+ *
48
+ * @param url URL для исправления
49
+ * @returns Исправленный URL
50
+ *
51
+ * @see https://gitverse.ru/RainyPixel/gitverse-sdk/issues/XXX - ссылка на issue об этом баге
52
+ */
53
+ declare function fixDuplicatedUrl(url: string): string;
54
+ /**
55
+ * Исправляет дублированные URL в объекте Repository (workaround для бага GitVerse API)
56
+ *
57
+ * Применяет fixDuplicatedUrl ко всем URL-полям репозитория:
58
+ * - clone_url
59
+ * - html_url
60
+ * - url
61
+ * - git_url
62
+ * - mirror_url
63
+ *
64
+ * @param repo Объект репозитория
65
+ * @returns Репозиторий с исправленными URL
66
+ */
67
+ declare function fixRepositoryUrls<T extends Record<string, unknown>>(repo: T): T;
68
+ export { updateFileParams, parseFileContent, fixRepositoryUrls, fixDuplicatedUrl, encodeBase64, decodeBase64, createFileParams };
package/dist/utils.js CHANGED
@@ -1,3 +1,4 @@
1
- var y=/^[A-Za-z0-9+/=]+$/;function q(j){return Buffer.from(j).toString("base64")}function z(j){return Buffer.from(j,"base64").toString("utf-8")}function A(j,k,p){return{branch:p,content:q(j),message:k}}function D(j,k,p,w){return{branch:w,content:q(j),message:p,sha:k}}function E(j){if(!j.content)return"";if(j.encoding==="base64"){let k=j.content;if(!y.test(k))return k;try{return z(k)}catch{return k}}return j.content}export{D as updateFileParams,E as parseFileContent,q as encodeBase64,z as decodeBase64,A as createFileParams};
1
+ var y=/^[A-Za-z0-9+/=]+$/,z=/^([a-z][a-z0-9+.-]*:\/\/[^/]+)\/([a-z][a-z0-9+.-]*:\/\/.+)$/i;function w(j){return Buffer.from(j).toString("base64")}function A(j){return Buffer.from(j,"base64").toString("utf-8")}function G(j,k,q){return{branch:q,content:w(j),message:k}}function H(j,k,q,v){return{branch:v,content:w(j),message:q,sha:k}}function I(j){if(!j.content)return"";if(j.encoding==="base64"){let k=j.content;if(!y.test(k))return k;try{return A(k)}catch{return k}}return j.content}function E(j){if(!j)return j;let k=j.match(z);if(k?.[1]&&k?.[2]){let q=k[1],v=k[2];if(v.startsWith(q))return v}return j}function J(j){let k=["clone_url","html_url","url","git_url","mirror_url"],q={...j};for(let v of k)if(typeof q[v]==="string")q[v]=E(q[v]);return q}export{H as updateFileParams,I as parseFileContent,J as fixRepositoryUrls,E as fixDuplicatedUrl,w as encodeBase64,A as decodeBase64,G as createFileParams};
2
+ export{J as u};
2
3
 
3
- //# debugId=39E36F952DA251F364756E2164756E21
4
+ //# debugId=F1BB6E2CA5D979A564756E2164756E21