gitverse-api-sdk 1.0.0 → 2.0.0

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 (68) hide show
  1. package/README.md +328 -114
  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 +345 -0
  15. package/dist/api/contents.js +4 -0
  16. package/dist/api/contents.js.map +10 -0
  17. package/dist/api/emails.d.ts +184 -0
  18. package/dist/api/emails.js +4 -0
  19. package/dist/api/emails.js.map +10 -0
  20. package/dist/api/forks.d.ts +325 -0
  21. package/dist/api/forks.js +4 -0
  22. package/dist/api/forks.js.map +10 -0
  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 +380 -0
  27. package/dist/api/issues.js +4 -0
  28. package/dist/api/issues.js.map +10 -0
  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 +517 -0
  33. package/dist/api/pulls.js +4 -0
  34. package/dist/api/pulls.js.map +10 -0
  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 +502 -0
  39. package/dist/api/repositories.js +4 -0
  40. package/dist/api/repositories.js.map +10 -0
  41. package/dist/api/stars.d.ts +328 -0
  42. package/dist/api/stars.js +4 -0
  43. package/dist/api/stars.js.map +10 -0
  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 +244 -0
  48. package/dist/api/users.js +4 -0
  49. package/dist/api/users.js.map +10 -0
  50. package/dist/client.d.ts +122 -0
  51. package/dist/client.js +4 -0
  52. package/dist/client.js.map +10 -0
  53. package/dist/enums.d.ts +57 -0
  54. package/dist/enums.js +4 -0
  55. package/dist/enums.js.map +10 -0
  56. package/dist/errors.d.ts +78 -0
  57. package/dist/errors.js +4 -0
  58. package/dist/errors.js.map +10 -0
  59. package/dist/index.d.ts +1801 -453
  60. package/dist/index.js +3 -1
  61. package/dist/index.js.map +10 -0
  62. package/dist/types.d.ts +1256 -0
  63. package/dist/types.js +2 -0
  64. package/dist/types.js.map +9 -0
  65. package/dist/utils.d.ts +39 -0
  66. package/dist/utils.js +3 -0
  67. package/dist/utils.js.map +10 -0
  68. package/package.json +99 -7
package/dist/index.d.ts CHANGED
@@ -1,122 +1,98 @@
1
- declare enum HTTPMethods {
2
- GET = "GET",
3
- POST = "POST",
4
- PUT = "PUT",
5
- DELETE = "DELETE"
6
- }
7
1
  /**
8
- * Параметры для конфигурации GitVerse клиента
9
- */
10
- export interface GitVerseClientConfig {
11
- /**
12
- * Базовый URL API GitVerse
13
- * @default 'https://api.gitverse.ru'
14
- */
15
- baseUrl?: string;
16
- /**
17
- * Токен доступа для авторизации в API
18
- */
19
- token?: string;
20
- /**
21
- * Версия API
22
- * @default '1'
23
- */
24
- apiVersion?: string;
25
- }
26
- declare class GitVerseClient {
27
- private baseUrl;
28
- private token?;
29
- private apiVersion;
30
- /**
31
- * Создает новый экземпляр GitVerse клиента
32
- * @param config Конфигурация клиента
33
- */
34
- constructor(config?: GitVerseClientConfig);
35
- /**
36
- * Устанавливает токен авторизации
37
- * @param token Токен доступа
38
- */
39
- setToken(token: string): void;
40
- /**
41
- * Выполняет API-запрос с учетом авторизации и версии API
42
- * @param path Путь к API-ресурсу
43
- * @param method HTTP-метод
44
- * @param body Тело запроса (опционально)
45
- * @returns Ответ от API
46
- * @throws {Error} Если запрос завершится с ошибкой
47
- */
48
- request<T>(path: string, method: HTTPMethods, body?: any): Promise<T>;
49
- /**
50
- * Выполняет GET-запрос
51
- * @param path Путь к API-ресурсу
52
- * @returns Ответ от API
53
- */
54
- get<T>(path: string): Promise<T>;
55
- /**
56
- * Выполняет POST-запрос
57
- * @param path Путь к API-ресурсу
58
- * @param body Тело запроса
59
- * @returns Ответ от API
60
- */
61
- post<T>(path: string, body?: any): Promise<T>;
62
- /**
63
- * Выполняет PUT-запрос
64
- * @param path Путь к API-ресурсу
65
- * @param body Тело запроса
66
- * @returns Ответ от API
67
- */
68
- put<T>(path: string, body?: any): Promise<T>;
69
- /**
70
- * Выполняет DELETE-запрос
71
- * @param path Путь к API-ресурсу
72
- * @param body Тело запроса (опционально)
73
- * @returns Ответ от API
74
- */
75
- delete<T>(path: string, body?: any): Promise<T>;
76
- }
2
+ * Типы пользователей в системе
3
+ */
4
+ declare const UserType: {
5
+ readonly Organization: "Organization"
6
+ readonly User: "User"
7
+ };
77
8
  /**
78
- * Типы данных для GitVerse API
79
- */
9
+ * Тип для типов пользователей
10
+ */
11
+ type UserType = (typeof UserType)[keyof typeof UserType];
80
12
  /**
81
- * Типы пользователей в системе
82
- */
83
- export declare enum UserType {
84
- User = "User",
85
- Organization = "Organization"
86
- }
13
+ * Типы видимости для репозиториев и пользователей
14
+ */
15
+ declare const VisibilityType: {
16
+ readonly Limited: "limited"
17
+ readonly Private: "private"
18
+ readonly Public: "public"
19
+ };
87
20
  /**
88
- * Типы видимости для репозиториев и пользователей
89
- */
90
- export declare enum VisibilityType {
91
- Public = "public",
92
- Limited = "limited",
93
- Private = "private"
94
- }
21
+ * Тип для типов видимости
22
+ */
23
+ type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
24
+ /**
25
+ * Типы содержимого в репозитории
26
+ */
27
+ declare const ContentType: {
28
+ readonly Directory: "dir"
29
+ readonly File: "file"
30
+ };
95
31
  /**
96
- * Типы содержимого в репозитории
97
- */
98
- export declare enum ContentType {
99
- File = "file",
100
- Directory = "dir"
32
+ * Тип для типов содержимого
33
+ */
34
+ type ContentType = (typeof ContentType)[keyof typeof ContentType];
35
+ /**
36
+ * Состояния pull request
37
+ */
38
+ declare const PullRequestState: {
39
+ readonly Closed: "closed"
40
+ readonly Open: "open"
41
+ };
42
+ /**
43
+ * Тип для состояний pull request
44
+ */
45
+ type PullRequestState = (typeof PullRequestState)[keyof typeof PullRequestState];
46
+ /**
47
+ * Состояния issue
48
+ */
49
+ declare const IssueState: {
50
+ readonly Closed: "closed"
51
+ readonly Open: "open"
52
+ };
53
+ /**
54
+ * Тип для состояний issue
55
+ */
56
+ type IssueState = (typeof IssueState)[keyof typeof IssueState];
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;
101
69
  }
102
70
  /**
103
- * Состояния pull request
104
- */
105
- export declare enum PullRequestState {
106
- Open = "open",
107
- Closed = "closed"
71
+ * Информация о версии API
72
+ */
73
+ interface ApiVersionInfo {
74
+ /** Текущая версия API */
75
+ version: string;
76
+ /** Последняя доступная версия API */
77
+ latestVersion: string;
78
+ /** Флаг устаревшей версии */
79
+ deprecated: boolean;
80
+ /** Дата вывода из эксплуатации (если версия устарела) */
81
+ decommissioning?: string;
108
82
  }
109
83
  /**
110
- * Состояния issue
111
- */
112
- export declare enum IssueState {
113
- Open = "open",
114
- Closed = "closed"
84
+ * Метаданные ответа API
85
+ */
86
+ interface ApiResponseMetadata {
87
+ /** Информация о лимитах запросов */
88
+ rateLimit?: RateLimitInfo;
89
+ /** Информация о версии API */
90
+ apiVersion?: ApiVersionInfo;
115
91
  }
116
92
  /**
117
- * Интерфейс пользователя
118
- */
119
- export interface User {
93
+ * Интерфейс пользователя
94
+ */
95
+ interface User2 {
120
96
  /** Уникальный идентификатор пользователя */
121
97
  id: number;
122
98
  /** Имя пользователя */
@@ -167,10 +143,10 @@ export interface User {
167
143
  updated_at?: string;
168
144
  }
169
145
  /**
170
- * Интерфейс текущего авторизованного пользователя
171
- * Получается из API метода /user
172
- */
173
- export interface CurrentUser {
146
+ * Интерфейс текущего авторизованного пользователя
147
+ * Получается из API метода /user
148
+ */
149
+ interface CurrentUser {
174
150
  /** Уникальный идентификатор пользователя */
175
151
  id: number;
176
152
  /** Имя пользователя (может быть пустым) */
@@ -191,13 +167,13 @@ export interface CurrentUser {
191
167
  created_at: string;
192
168
  }
193
169
  /**
194
- * Интерфейс репозитория
195
- */
196
- export interface Repository {
170
+ * Интерфейс репозитория
171
+ */
172
+ interface Repository {
197
173
  /** Уникальный идентификатор репозитория */
198
174
  id: number;
199
175
  /** Информация о владельце репозитория */
200
- owner: User;
176
+ owner: User2;
201
177
  /** Название репозитория */
202
178
  name: string;
203
179
  /** Полное название репозитория в формате {owner}/{repo} */
@@ -269,7 +245,7 @@ export interface Repository {
269
245
  /** Отключен ли репозиторий */
270
246
  disabled: boolean;
271
247
  /** Настройки приватности репозитория */
272
- visibility: "public" | "private";
248
+ visibility: VisibilityType;
273
249
  /** Является ли репозиторий шаблоном */
274
250
  is_template: boolean;
275
251
  /** Информация о шаблоне репозитория (если доступно) */
@@ -288,16 +264,16 @@ export interface Repository {
288
264
  pushed_at: string;
289
265
  }
290
266
  /**
291
- * Интерфейс ответа с распределением языков в репозитории
292
- */
293
- export interface LanguagesResponse {
267
+ * Интерфейс ответа с распределением языков в репозитории
268
+ */
269
+ interface LanguagesResponse {
294
270
  /** Количество байт кода на каждом языке */
295
271
  [language: string]: number;
296
272
  }
297
273
  /**
298
- * Интерфейс информации о файле
299
- */
300
- export interface FileContent {
274
+ * Интерфейс информации о файле
275
+ */
276
+ interface FileContent {
301
277
  /** Имя файла */
302
278
  name: string;
303
279
  /** Путь к файлу относительно корня репозитория */
@@ -307,7 +283,7 @@ export interface FileContent {
307
283
  /** Размер файла в байтах */
308
284
  size: number;
309
285
  /** Тип объекта (всегда 'file' для файла) */
310
- type: ContentType.File;
286
+ type: typeof ContentType.File;
311
287
  /** Кодировка содержимого файла (например, 'base64') */
312
288
  encoding?: string;
313
289
  /** Содержимое файла в формате Base64 */
@@ -324,11 +300,11 @@ export interface FileContent {
324
300
  download_url?: string;
325
301
  }
326
302
  /**
327
- * Интерфейс информации о директории
328
- */
329
- export interface DirectoryContent {
303
+ * Интерфейс информации о директории
304
+ */
305
+ interface DirectoryContent {
330
306
  /** Тип объекта (всегда 'dir' для директории) */
331
- type: ContentType.Directory;
307
+ type: typeof ContentType.Directory;
332
308
  /** Размер директории (всегда 0) */
333
309
  size: number;
334
310
  /** Имя директории */
@@ -341,13 +317,13 @@ export interface DirectoryContent {
341
317
  entries: Array<FileContent | DirectoryContent>;
342
318
  }
343
319
  /**
344
- * Тип для содержимого репозитория (файл или директория)
345
- */
346
- export type Content = FileContent | DirectoryContent;
320
+ * Тип для содержимого репозитория (файл или директория)
321
+ */
322
+ type Content = FileContent | DirectoryContent;
347
323
  /**
348
- * Интерфейс информации о коммите
349
- */
350
- export interface CommitInfo {
324
+ * Интерфейс информации о коммите
325
+ */
326
+ interface CommitInfo {
351
327
  /** SHA-хеш коммита */
352
328
  sha: string;
353
329
  /** Node ID коммита */
@@ -359,62 +335,62 @@ export interface CommitInfo {
359
335
  /** Информация об авторе коммита */
360
336
  author: {
361
337
  /** Имя автора */
362
- name: string;
338
+ name: string
363
339
  /** Email автора */
364
- email: string;
340
+ email: string
365
341
  /** Дата создания коммита */
366
- date: string;
342
+ date: string
367
343
  };
368
344
  /** Информация о коммиттере */
369
345
  committer: {
370
346
  /** Имя коммиттера */
371
- name: string;
347
+ name: string
372
348
  /** Email коммиттера */
373
- email: string;
349
+ email: string
374
350
  /** Дата коммита */
375
- date: string;
351
+ date: string
376
352
  };
377
353
  /** Сообщение коммита */
378
354
  message: string;
379
355
  /** Информация о дереве коммита */
380
356
  tree: {
381
357
  /** SHA-хеш дерева */
382
- sha: string;
358
+ sha: string
383
359
  /** URL дерева */
384
- url: string;
360
+ url: string
385
361
  };
386
362
  /** Родительские коммиты */
387
363
  parents: Array<{
388
364
  /** SHA-хеш родительского коммита */
389
- sha: string;
365
+ sha: string
390
366
  /** API-ссылка на родительский коммит */
391
- url: string;
367
+ url: string
392
368
  /** Веб-ссылка на родительский коммит */
393
- html_url: string;
369
+ html_url: string
394
370
  }>;
395
371
  }
396
372
  /**
397
- * Интерфейс ответа на создание файла
398
- */
399
- export interface FileCreationResponse {
373
+ * Интерфейс ответа на создание файла
374
+ */
375
+ interface FileCreationResponse {
400
376
  /** Информация о созданном файле */
401
377
  content: FileContent;
402
378
  /** Информация о коммите */
403
379
  commit: CommitInfo;
404
380
  }
405
381
  /**
406
- * Интерфейс ответа на удаление файла
407
- */
408
- export interface FileDeletionResponse {
382
+ * Интерфейс ответа на удаление файла
383
+ */
384
+ interface FileDeletionResponse {
409
385
  /** Информация о содержимом (null для удаленного файла) */
410
386
  content: null;
411
387
  /** Информация о коммите удаления */
412
388
  commit: CommitInfo;
413
389
  }
414
390
  /**
415
- * Интерфейс параметров для создания форка
416
- */
417
- export interface CreateForkParams {
391
+ * Интерфейс параметров для создания форка
392
+ */
393
+ interface CreateForkParams {
418
394
  /** Имя нового форка */
419
395
  name?: string;
420
396
  /** Название организации, в которую будет создан форк */
@@ -423,9 +399,9 @@ export interface CreateForkParams {
423
399
  description?: string;
424
400
  }
425
401
  /**
426
- * Интерфейс параметров для создания файла
427
- */
428
- export interface CreateFileParams {
402
+ * Интерфейс параметров для создания файла
403
+ */
404
+ interface CreateFileParams {
429
405
  /** Имя ветки, в которую будет добавлен файл (по умолчанию - основная ветка) */
430
406
  branch?: string;
431
407
  /** Содержимое файла, закодированное в Base64 */
@@ -438,9 +414,9 @@ export interface CreateFileParams {
438
414
  signoff?: boolean;
439
415
  }
440
416
  /**
441
- * Интерфейс параметров для обновления файла
442
- */
443
- export interface UpdateFileParams {
417
+ * Интерфейс параметров для обновления файла
418
+ */
419
+ interface UpdateFileParams {
444
420
  /** Имя ветки, в которой находится файл */
445
421
  branch?: string;
446
422
  /** Новое содержимое файла, закодированное в Base64 */
@@ -457,9 +433,9 @@ export interface UpdateFileParams {
457
433
  signoff?: boolean;
458
434
  }
459
435
  /**
460
- * Интерфейс параметров для удаления файла
461
- */
462
- export interface DeleteFileParams {
436
+ * Интерфейс параметров для удаления файла
437
+ */
438
+ interface DeleteFileParams {
463
439
  /** SHA-хеш текущего содержимого файла */
464
440
  sha: string;
465
441
  /** Имя ветки, в которой находится файл */
@@ -472,9 +448,9 @@ export interface DeleteFileParams {
472
448
  signoff?: boolean;
473
449
  }
474
450
  /**
475
- * Интерфейс базовой или целевой ветки для pull request
476
- */
477
- export interface PullRequestBase {
451
+ * Интерфейс базовой или целевой ветки для pull request
452
+ */
453
+ interface PullRequestBase {
478
454
  /** Метка ветки */
479
455
  label: string;
480
456
  /** Имя ветки */
@@ -486,21 +462,21 @@ export interface PullRequestBase {
486
462
  /** Информация о репозитории */
487
463
  repo: {
488
464
  /** ID репозитория */
489
- id: number;
465
+ id: number
490
466
  /** Название репозитория */
491
- name: string;
467
+ name: string
492
468
  /** Полное название репозитория в формате {owner}/{repo} */
493
- full_name: string;
469
+ full_name: string
494
470
  /** Является ли репозиторий приватным */
495
- private: boolean;
471
+ private: boolean
496
472
  /** Основная ветка репозитория */
497
- default_branch: string;
473
+ default_branch: string
498
474
  };
499
475
  }
500
476
  /**
501
- * Интерфейс pull request
502
- */
503
- export interface PullRequest {
477
+ * Интерфейс pull request
478
+ */
479
+ interface PullRequest {
504
480
  /** Уникальный идентификатор pull request */
505
481
  id: number;
506
482
  /** API-ссылка на pull request */
@@ -510,30 +486,30 @@ export interface PullRequest {
510
486
  /** Информация о пользователе, создавшем pull request */
511
487
  user: {
512
488
  /** ID пользователя */
513
- id: number;
489
+ id: number
514
490
  /** Логин пользователя */
515
- login: string;
491
+ login: string
516
492
  /** Тип аккаунта */
517
- type: string;
493
+ type: string
518
494
  /** URL аватара пользователя */
519
- avatar_url: string;
495
+ avatar_url: string
520
496
  /** Веб-ссылка на профиль пользователя */
521
- html_url: string;
497
+ html_url: string
522
498
  /** Права администратора */
523
- site_admin: boolean;
499
+ site_admin: boolean
524
500
  };
525
501
  /** Заголовок pull request */
526
502
  title: string;
527
503
  /** Описание pull request */
528
504
  body?: string;
529
505
  /** Список меток */
530
- labels: Array<any>;
506
+ labels: Label[];
531
507
  /** Информация о майлстоуне */
532
- milestone?: any;
508
+ milestone?: Milestone;
533
509
  /** Информация о назначенном пользователе */
534
- assignee?: any;
510
+ assignee?: User2;
535
511
  /** Список назначенных пользователей */
536
- assignees?: any;
512
+ assignees?: User2[];
537
513
  /** Состояние pull request (открыт/закрыт) */
538
514
  state: PullRequestState;
539
515
  /** Заблокирован ли pull request */
@@ -555,7 +531,7 @@ export interface PullRequest {
555
531
  /** SHA-хеш коммита слияния (если был слит) */
556
532
  merge_commit_sha?: string | null;
557
533
  /** Пользователь, выполнивший слияние */
558
- merged_by?: any;
534
+ merged_by?: User2 | null;
559
535
  /** Может ли мейнтейнер изменять pull request */
560
536
  maintainer_can_modify: boolean;
561
537
  /** Информация о целевой ветке */
@@ -570,9 +546,9 @@ export interface PullRequest {
570
546
  closed_at?: string | null;
571
547
  }
572
548
  /**
573
- * Интерфейс параметров для создания pull request
574
- */
575
- export interface CreatePullRequestParams {
549
+ * Интерфейс параметров для создания pull request
550
+ */
551
+ interface CreatePullRequestParams {
576
552
  /** Заголовок pull request */
577
553
  title: string;
578
554
  /** Описание pull request */
@@ -583,20 +559,51 @@ export interface CreatePullRequestParams {
583
559
  base: string;
584
560
  }
585
561
  /**
586
- * Интерфейс ошибки API
587
- */
588
- export interface ApiError {
589
- /** Тип ошибки */
590
- error: string;
591
- /** Сообщение об ошибке */
592
- message: string;
593
- /** HTTP-код статуса */
594
- status: number;
562
+ * Интерфейс метки (label) для issues и pull requests
563
+ */
564
+ interface Label {
565
+ /** Идентификатор метки */
566
+ id: number;
567
+ /** Имя метки */
568
+ name: string;
569
+ /** Описание метки */
570
+ description?: string;
571
+ /** Цвет метки в формате HEX */
572
+ color: string;
573
+ /** URL метки */
574
+ url?: string;
595
575
  }
596
576
  /**
597
- * Интерфейс email адреса
598
- */
599
- export interface Email {
577
+ * Интерфейс майлстоуна (milestone)
578
+ */
579
+ interface Milestone {
580
+ /** Идентификатор майлстоуна */
581
+ id: number;
582
+ /** Номер майлстоуна */
583
+ number: number;
584
+ /** Название майлстоуна */
585
+ title: string;
586
+ /** Описание майлстоуна */
587
+ description?: string;
588
+ /** Создатель майлстоуна */
589
+ creator: User2;
590
+ /** Состояние майлстоуна (open/closed) */
591
+ state: "open" | "closed";
592
+ /** Количество открытых задач */
593
+ open_issues: number;
594
+ /** Количество закрытых задач */
595
+ closed_issues: number;
596
+ /** Дата создания */
597
+ created_at: string;
598
+ /** Дата обновления */
599
+ updated_at: string;
600
+ /** Дата окончания (due date) */
601
+ due_on?: string;
602
+ }
603
+ /**
604
+ * Интерфейс email адреса
605
+ */
606
+ interface Email {
600
607
  /** Email адрес */
601
608
  email: string;
602
609
  /** Подтвержден ли email */
@@ -607,23 +614,23 @@ export interface Email {
607
614
  is_public: boolean;
608
615
  }
609
616
  /**
610
- * Параметры для добавления email адресов
611
- */
612
- export interface AddEmailParams {
617
+ * Параметры для добавления email адресов
618
+ */
619
+ interface AddEmailParams {
613
620
  /** Массив email адресов для добавления */
614
621
  emails: string[];
615
622
  }
616
623
  /**
617
- * Параметры для удаления email адресов
618
- */
619
- export interface RemoveEmailParams {
624
+ * Параметры для удаления email адресов
625
+ */
626
+ interface RemoveEmailParams {
620
627
  /** Массив email адресов для удаления */
621
628
  emails: string[];
622
629
  }
623
630
  /**
624
- * Ответ на операции с email
625
- */
626
- export interface EmailOperationResponse {
631
+ * Ответ на операции с email
632
+ */
633
+ interface EmailOperationResponse {
627
634
  /** Сообщение о результате операции */
628
635
  message: string;
629
636
  /** Удаленные email адреса (только для операции удаления) */
@@ -632,9 +639,9 @@ export interface EmailOperationResponse {
632
639
  status: number;
633
640
  }
634
641
  /**
635
- * Параметры для создания репозитория
636
- */
637
- export interface CreateRepositoryParams {
642
+ * Параметры для создания репозитория
643
+ */
644
+ interface CreateRepositoryParams {
638
645
  /** Имя репозитория */
639
646
  name: string;
640
647
  /** Описание репозитория */
@@ -651,9 +658,9 @@ export interface CreateRepositoryParams {
651
658
  default_branch?: string;
652
659
  }
653
660
  /**
654
- * Интерфейс issue
655
- */
656
- export interface Issue {
661
+ * Интерфейс issue
662
+ */
663
+ interface Issue {
657
664
  /** Уникальный идентификатор issue */
658
665
  id: number;
659
666
  /** Номер issue в репозитории */
@@ -665,11 +672,11 @@ export interface Issue {
665
672
  /** Состояние issue */
666
673
  state: IssueState;
667
674
  /** Пользователь, создавший issue */
668
- user: User;
675
+ user: User2;
669
676
  /** Список меток */
670
- labels: Array<any>;
677
+ labels: Label[];
671
678
  /** Назначенные пользователи */
672
- assignees?: User[];
679
+ assignees?: User2[];
673
680
  /** Дата создания */
674
681
  created_at: string;
675
682
  /** Дата обновления */
@@ -683,327 +690,1668 @@ export interface Issue {
683
690
  /** API-ссылка на issue */
684
691
  url: string;
685
692
  }
686
- declare class UsersApi {
693
+ /**
694
+ * Интерфейс комментария к issue или pull request
695
+ */
696
+ interface Comment {
697
+ /** Уникальный идентификатор комментария */
698
+ id: number;
699
+ /** Текст комментария */
700
+ body: string;
701
+ /** Пользователь, создавший комментарий */
702
+ user: User2;
703
+ /** Дата создания */
704
+ created_at: string;
705
+ /** Дата обновления */
706
+ updated_at: string;
707
+ /** Веб-ссылка на комментарий */
708
+ html_url: string;
709
+ /** API-ссылка на комментарий */
710
+ url: string;
711
+ }
712
+ /**
713
+ * Интерфейс события в timeline issue
714
+ */
715
+ interface TimelineEvent {
716
+ /** Уникальный идентификатор события */
717
+ id: number;
718
+ /** Тип события */
719
+ event: string;
720
+ /** Пользователь, вызвавший событие */
721
+ actor: User2;
722
+ /** Дата создания события */
723
+ created_at: string;
724
+ /** Метка (для событий с метками) */
725
+ label?: Label;
726
+ /** Milestone (для событий с milestone) */
727
+ milestone?: Milestone;
728
+ /** Переименование (для событий переименования) */
729
+ rename?: {
730
+ from: string
731
+ to: string
732
+ };
733
+ }
734
+ /**
735
+ * Интерфейс ветки репозитория
736
+ */
737
+ interface Branch {
738
+ /** Имя ветки */
739
+ name: string;
740
+ /** SHA-хеш последнего коммита */
741
+ commit: {
742
+ sha: string
743
+ url: string
744
+ };
745
+ /** Защищена ли ветка */
746
+ protected?: boolean;
747
+ }
748
+ /**
749
+ * Интерфейс коммита
750
+ */
751
+ interface Commit {
752
+ /** SHA-хеш коммита */
753
+ sha: string;
754
+ /** Node ID коммита */
755
+ node_id?: string;
756
+ /** Информация о коммите */
757
+ commit: {
758
+ /** Автор коммита */
759
+ author: {
760
+ name: string
761
+ email: string
762
+ date: string
763
+ }
764
+ /** Коммиттер */
765
+ committer: {
766
+ name: string
767
+ email: string
768
+ date: string
769
+ }
770
+ /** Сообщение коммита */
771
+ message: string
772
+ /** Дерево коммита */
773
+ tree: {
774
+ sha: string
775
+ url: string
776
+ }
777
+ };
778
+ /** Автор (пользователь GitVerse) */
779
+ author?: User2 | null;
780
+ /** Коммиттер (пользователь GitVerse) */
781
+ committer?: User2 | null;
782
+ /** Родительские коммиты */
783
+ parents: Array<{
784
+ sha: string
785
+ url: string
786
+ html_url: string
787
+ }>;
788
+ /** API-ссылка на коммит */
789
+ url: string;
790
+ /** Веб-ссылка на коммит */
791
+ html_url: string;
792
+ }
793
+ /**
794
+ * Параметры для создания коммита
795
+ */
796
+ interface CreateCommitParams {
797
+ /** Сообщение коммита */
798
+ message: string;
799
+ /** SHA-хеш дерева */
800
+ tree: string;
801
+ /** SHA-хеши родительских коммитов */
802
+ parents?: string[];
803
+ /** Информация об авторе */
804
+ author?: {
805
+ name: string
806
+ email: string
807
+ date?: string
808
+ };
809
+ /** Информация о коммиттере */
810
+ committer?: {
811
+ name: string
812
+ email: string
813
+ date?: string
814
+ };
815
+ /** GPG подпись */
816
+ signature?: string;
817
+ }
818
+ /**
819
+ * Параметры для обновления репозитория
820
+ */
821
+ interface UpdateRepositoryParams {
822
+ /** Новое название репозитория */
823
+ name?: string;
824
+ /** Новое описание репозитория */
825
+ description?: string;
826
+ /** Веб-сайт проекта */
827
+ website?: string;
828
+ /** Приватный ли репозиторий */
829
+ private?: boolean;
830
+ /** Разрешены ли issues */
831
+ has_issues?: boolean;
832
+ /** Разрешена ли wiki */
833
+ has_wiki?: boolean;
834
+ /** Ветка по умолчанию */
835
+ default_branch?: string;
836
+ /** Архивирован ли репозиторий */
837
+ archived?: boolean;
838
+ }
839
+ /**
840
+ * Интерфейс результата сравнения веток/коммитов
841
+ */
842
+ interface CompareResponse {
843
+ /** URL для сравнения */
844
+ url: string;
845
+ /** Веб-ссылка для сравнения */
846
+ html_url: string;
847
+ /** Diff-ссылка */
848
+ diff_url: string;
849
+ /** Patch-ссылка */
850
+ patch_url: string;
851
+ /** Базовый коммит */
852
+ base_commit: Commit;
853
+ /** Сравниваемый коммит */
854
+ merge_base_commit: Commit;
855
+ /** Статус сравнения */
856
+ status: "ahead" | "behind" | "identical" | "diverged";
857
+ /** Количество коммитов впереди */
858
+ ahead_by: number;
859
+ /** Количество коммитов позади */
860
+ behind_by: number;
861
+ /** Общее количество коммитов */
862
+ total_commits: number;
863
+ /** Список коммитов */
864
+ commits: Commit[];
865
+ /** Изменённые файлы */
866
+ files: PullRequestFile[];
867
+ }
868
+ /**
869
+ * Параметры для обновления pull request
870
+ */
871
+ interface UpdatePullRequestParams {
872
+ /** Новый заголовок */
873
+ title?: string;
874
+ /** Новое описание */
875
+ body?: string;
876
+ /** Новое состояние */
877
+ state?: PullRequestState;
878
+ /** Базовая ветка */
879
+ base?: string;
880
+ /** Можно ли мейнтейнерам модифицировать */
881
+ maintainer_can_modify?: boolean;
882
+ }
883
+ /**
884
+ * Интерфейс файла в pull request
885
+ */
886
+ interface PullRequestFile {
887
+ /** SHA-хеш файла */
888
+ sha: string;
889
+ /** Имя файла */
890
+ filename: string;
891
+ /** Статус изменения */
892
+ status: "added" | "removed" | "modified" | "renamed" | "copied" | "changed" | "unchanged";
893
+ /** Количество добавленных строк */
894
+ additions: number;
895
+ /** Количество удалённых строк */
896
+ deletions: number;
897
+ /** Общее количество изменений */
898
+ changes: number;
899
+ /** URL для получения содержимого */
900
+ blob_url: string;
901
+ /** Raw URL */
902
+ raw_url: string;
903
+ /** API URL */
904
+ contents_url: string;
905
+ /** Patch для файла */
906
+ patch?: string;
907
+ /** Предыдущее имя файла (для переименованных) */
908
+ previous_filename?: string;
909
+ }
910
+ /**
911
+ * Интерфейс команды (team)
912
+ */
913
+ interface Team {
914
+ /** Идентификатор команды */
915
+ id: number;
916
+ /** Node ID команды */
917
+ node_id?: string;
918
+ /** Название команды */
919
+ name: string;
920
+ /** Slug команды */
921
+ slug: string;
922
+ /** Описание команды */
923
+ description?: string;
924
+ /** Приватность команды */
925
+ privacy?: "secret" | "closed";
926
+ /** Права доступа */
927
+ permission: "pull" | "push" | "admin";
928
+ /** Количество участников */
929
+ members_count?: number;
930
+ /** Количество репозиториев */
931
+ repos_count?: number;
932
+ /** Организация */
933
+ organization?: {
934
+ login: string
935
+ id: number
936
+ };
937
+ /** Веб-ссылка */
938
+ html_url: string;
939
+ /** API-ссылка */
940
+ url: string;
941
+ }
942
+ /**
943
+ * Интерфейс приглашения в команду
944
+ */
945
+ interface Invitation {
946
+ /** Идентификатор приглашения */
947
+ id: number;
948
+ /** Приглашённый пользователь */
949
+ login: string;
950
+ /** Email приглашённого */
951
+ email?: string;
952
+ /** Роль */
953
+ role: string;
954
+ /** Дата создания */
955
+ created_at: string;
956
+ /** Приглашающий */
957
+ inviter: User2;
958
+ }
959
+ /**
960
+ * Интерфейс релиза
961
+ */
962
+ interface Release {
963
+ /** Идентификатор релиза */
964
+ id: number;
965
+ /** Тег релиза */
966
+ tag_name: string;
967
+ /** Целевой коммит */
968
+ target_commitish: string;
969
+ /** Название релиза */
970
+ name: string;
971
+ /** Описание релиза */
972
+ body?: string;
973
+ /** Черновик ли релиз */
974
+ draft: boolean;
975
+ /** Пре-релиз ли */
976
+ prerelease: boolean;
977
+ /** Автор релиза */
978
+ author: User2;
979
+ /** Дата создания */
980
+ created_at: string;
981
+ /** Дата публикации */
982
+ published_at?: string;
983
+ /** Веб-ссылка */
984
+ html_url: string;
985
+ /** API-ссылка */
986
+ url: string;
987
+ /** Ссылка на архив tar.gz */
988
+ tarball_url: string;
989
+ /** Ссылка на архив zip */
990
+ zipball_url: string;
991
+ /** Список ассетов */
992
+ assets: Asset[];
993
+ }
994
+ /**
995
+ * Параметры для создания релиза
996
+ */
997
+ interface CreateReleaseParams {
998
+ /** Тег релиза */
999
+ tag_name: string;
1000
+ /** Целевой коммит (по умолчанию основная ветка) */
1001
+ target_commitish?: string;
1002
+ /** Название релиза */
1003
+ name?: string;
1004
+ /** Описание релиза */
1005
+ body?: string;
1006
+ /** Черновик ли релиз */
1007
+ draft?: boolean;
1008
+ /** Пре-релиз ли */
1009
+ prerelease?: boolean;
1010
+ }
1011
+ /**
1012
+ * Параметры для обновления релиза
1013
+ */
1014
+ interface UpdateReleaseParams {
1015
+ /** Тег релиза */
1016
+ tag_name?: string;
1017
+ /** Целевой коммит */
1018
+ target_commitish?: string;
1019
+ /** Название релиза */
1020
+ name?: string;
1021
+ /** Описание релиза */
1022
+ body?: string;
1023
+ /** Черновик ли релиз */
1024
+ draft?: boolean;
1025
+ /** Пре-релиз ли */
1026
+ prerelease?: boolean;
1027
+ }
1028
+ /**
1029
+ * Интерфейс ассета релиза
1030
+ */
1031
+ interface Asset {
1032
+ /** Идентификатор ассета */
1033
+ id: number;
1034
+ /** Название файла */
1035
+ name: string;
1036
+ /** Метка ассета */
1037
+ label?: string;
1038
+ /** Content-Type */
1039
+ content_type: string;
1040
+ /** Состояние ассета */
1041
+ state: "uploaded" | "open";
1042
+ /** Размер в байтах */
1043
+ size: number;
1044
+ /** Количество скачиваний */
1045
+ download_count: number;
1046
+ /** Дата создания */
1047
+ created_at: string;
1048
+ /** Дата обновления */
1049
+ updated_at: string;
1050
+ /** Загрузивший пользователь */
1051
+ uploader: User2;
1052
+ /** URL для скачивания */
1053
+ browser_download_url: string;
1054
+ /** API-ссылка */
1055
+ url: string;
1056
+ }
1057
+ /**
1058
+ * Параметры для загрузки ассета
1059
+ */
1060
+ interface UploadAssetParams {
1061
+ /** Название файла */
1062
+ name: string;
1063
+ /** Метка ассета */
1064
+ label?: string;
1065
+ /** Содержимое файла */
1066
+ data: ArrayBuffer | Blob;
1067
+ }
1068
+ /**
1069
+ * Интерфейс Git-ссылки (reference)
1070
+ */
1071
+ interface Reference {
1072
+ /** Имя ссылки (например, refs/heads/main) */
1073
+ ref: string;
1074
+ /** Node ID */
1075
+ node_id?: string;
1076
+ /** API-ссылка */
1077
+ url: string;
1078
+ /** Объект, на который указывает ссылка */
1079
+ object: {
1080
+ type: string
1081
+ sha: string
1082
+ url: string
1083
+ };
1084
+ }
1085
+ /**
1086
+ * Параметры для создания Git-ссылки
1087
+ */
1088
+ interface CreateRefParams {
1089
+ /** Имя ссылки (например, refs/heads/feature-branch) */
1090
+ ref: string;
1091
+ /** SHA-хеш коммита */
1092
+ sha: string;
1093
+ }
1094
+ /**
1095
+ * Интерфейс Git-дерева
1096
+ */
1097
+ interface Tree {
1098
+ /** SHA-хеш дерева */
1099
+ sha: string;
1100
+ /** API-ссылка на дерево */
1101
+ url: string;
1102
+ /** Список записей в дереве */
1103
+ tree: TreeEntry[];
1104
+ /** Обрезано ли дерево */
1105
+ truncated: boolean;
1106
+ }
1107
+ /**
1108
+ * Интерфейс записи в Git-дереве
1109
+ */
1110
+ interface TreeEntry {
1111
+ /** Путь к файлу/директории */
1112
+ path: string;
1113
+ /** Режим доступа */
1114
+ mode: string;
1115
+ /** Тип объекта */
1116
+ type: "blob" | "tree" | "commit";
1117
+ /** SHA-хеш объекта */
1118
+ sha: string;
1119
+ /** Размер (для blob) */
1120
+ size?: number;
1121
+ /** URL объекта */
1122
+ url: string;
1123
+ }
1124
+ /**
1125
+ * Параметры для создания Git-дерева
1126
+ */
1127
+ interface CreateTreeParams {
1128
+ /** Список записей дерева */
1129
+ tree: Array<{
1130
+ path: string
1131
+ mode: "100644" | "100755" | "040000" | "160000" | "120000"
1132
+ type: "blob" | "tree" | "commit"
1133
+ sha?: string
1134
+ content?: string
1135
+ }>;
1136
+ /** SHA-хеш базового дерева */
1137
+ base_tree?: string;
1138
+ }
1139
+ /**
1140
+ * Интерфейс раннера GitHub Actions
1141
+ */
1142
+ interface Runner {
1143
+ /** Идентификатор раннера */
1144
+ id: number;
1145
+ /** Название раннера */
1146
+ name: string;
1147
+ /** Операционная система */
1148
+ os: string;
1149
+ /** Статус раннера */
1150
+ status: "online" | "offline";
1151
+ /** Занят ли раннер */
1152
+ busy: boolean;
1153
+ /** Метки раннера */
1154
+ labels: Array<{
1155
+ id: number
1156
+ name: string
1157
+ type: string
1158
+ }>;
1159
+ }
1160
+ /**
1161
+ * Интерфейс секрета GitHub Actions
1162
+ */
1163
+ interface Secret {
1164
+ /** Название секрета */
1165
+ name: string;
1166
+ /** Дата создания */
1167
+ created_at: string;
1168
+ /** Дата обновления */
1169
+ updated_at: string;
1170
+ }
1171
+ /**
1172
+ * Параметры для создания/обновления секрета
1173
+ */
1174
+ interface CreateSecretParams {
1175
+ /** Зашифрованное значение */
1176
+ encrypted_value: string;
1177
+ /** ID ключа для шифрования */
1178
+ key_id: string;
1179
+ }
1180
+ /**
1181
+ * Интерфейс переменной GitHub Actions
1182
+ */
1183
+ interface Variable {
1184
+ /** Название переменной */
1185
+ name: string;
1186
+ /** Значение переменной */
1187
+ value: string;
1188
+ /** Дата создания */
1189
+ created_at: string;
1190
+ /** Дата обновления */
1191
+ updated_at: string;
1192
+ }
1193
+ /**
1194
+ * Параметры для создания переменной
1195
+ */
1196
+ interface CreateVariableParams {
1197
+ /** Название переменной */
1198
+ name: string;
1199
+ /** Значение переменной */
1200
+ value: string;
1201
+ }
1202
+ /**
1203
+ * Параметры для обновления переменной
1204
+ */
1205
+ interface UpdateVariableParams {
1206
+ /** Новое название (опционально) */
1207
+ name?: string;
1208
+ /** Новое значение */
1209
+ value?: string;
1210
+ }
1211
+ /**
1212
+ * Интерфейс артефакта GitHub Actions
1213
+ */
1214
+ interface Artifact {
1215
+ /** Идентификатор артефакта */
1216
+ id: number;
1217
+ /** Node ID артефакта */
1218
+ node_id: string;
1219
+ /** Название артефакта */
1220
+ name: string;
1221
+ /** Размер в байтах */
1222
+ size_in_bytes: number;
1223
+ /** API-ссылка */
1224
+ url: string;
1225
+ /** Ссылка на архив */
1226
+ archive_download_url: string;
1227
+ /** Истёк ли срок действия */
1228
+ expired: boolean;
1229
+ /** Дата создания */
1230
+ created_at: string;
1231
+ /** Дата истечения */
1232
+ expires_at: string;
1233
+ /** Дата обновления */
1234
+ updated_at: string;
1235
+ }
1236
+ /**
1237
+ * Параметры для запуска workflow
1238
+ */
1239
+ interface DispatchWorkflowParams {
1240
+ /** Ссылка на ветку или тег */
1241
+ ref: string;
1242
+ /** Входные параметры для workflow */
1243
+ inputs?: Record<string, string>;
1244
+ }
1245
+ /**
1246
+ * Базовая ошибка GitVerse API
1247
+ */
1248
+ declare class GitVerseApiError extends Error {
1249
+ /** HTTP статус код */
1250
+ readonly status: number;
1251
+ /** Метаданные ответа API */
1252
+ readonly metadata?: ApiResponseMetadata;
1253
+ constructor(status: number, message: string, metadata?: ApiResponseMetadata);
1254
+ }
1255
+ /**
1256
+ * Ошибка превышения лимита запросов (429 Too Many Requests)
1257
+ */
1258
+ declare class RateLimitError extends GitVerseApiError {
1259
+ /** Информация о лимитах */
1260
+ readonly rateLimit: RateLimitInfo;
1261
+ constructor(message: string, rateLimit: RateLimitInfo, metadata?: ApiResponseMetadata);
1262
+ /**
1263
+ * Возвращает количество секунд до сброса лимита
1264
+ */
1265
+ getRetryAfterSeconds(): number;
1266
+ /**
1267
+ * Возвращает дату/время сброса лимита
1268
+ */
1269
+ getResetDate(): Date;
1270
+ }
1271
+ /**
1272
+ * Предупреждение об устаревшей версии API
1273
+ */
1274
+ declare class ApiVersionWarning {
1275
+ /** Текущая используемая версия */
1276
+ readonly currentVersion: string;
1277
+ /** Последняя доступная версия */
1278
+ readonly latestVersion: string;
1279
+ /** Дата вывода из эксплуатации */
1280
+ readonly decommissioning?: string;
1281
+ constructor(currentVersion: string, latestVersion: string, decommissioning?: string);
1282
+ /**
1283
+ * Возвращает сообщение о предупреждении
1284
+ */
1285
+ getMessage(): string;
1286
+ }
1287
+ declare const HTTPMethods: {
1288
+ readonly DELETE: "DELETE"
1289
+ readonly GET: "GET"
1290
+ readonly PATCH: "PATCH"
1291
+ readonly POST: "POST"
1292
+ readonly PUT: "PUT"
1293
+ };
1294
+ type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
1295
+ /**
1296
+ * Параметры для конфигурации GitVerse клиента
1297
+ */
1298
+ interface GitVerseClientConfig {
1299
+ /**
1300
+ * Базовый URL API GitVerse
1301
+ * @default 'https://api.gitverse.ru'
1302
+ */
1303
+ baseUrl?: string;
1304
+ /**
1305
+ * Токен доступа для авторизации в API
1306
+ */
1307
+ token?: string;
1308
+ /**
1309
+ * Версия API
1310
+ * @default '1'
1311
+ */
1312
+ apiVersion?: string;
1313
+ }
1314
+ /**
1315
+ * Основной класс для работы с GitVerse API
1316
+ */
1317
+ declare class GitVerseClient {
1318
+ private baseUrl;
1319
+ private token?;
1320
+ private apiVersion;
1321
+ /**
1322
+ * Callback для обработки предупреждений об устаревшей версии API
1323
+ */
1324
+ onApiVersionWarning?: (warning: ApiVersionWarning) => void;
1325
+ /**
1326
+ * Создает новый экземпляр GitVerse клиента
1327
+ * @param config Конфигурация клиента
1328
+ */
1329
+ constructor(config?: GitVerseClientConfig);
1330
+ /**
1331
+ * Устанавливает токен авторизации
1332
+ * @param token Токен доступа
1333
+ */
1334
+ setToken(token: string): void;
1335
+ /**
1336
+ * Извлекает информацию о Rate Limit из заголовков ответа
1337
+ */
1338
+ private extractRateLimitInfo;
1339
+ /**
1340
+ * Извлекает информацию о версии API из заголовков ответа
1341
+ */
1342
+ private extractApiVersionInfo;
1343
+ /**
1344
+ * Извлекает метаданные из заголовков ответа
1345
+ */
1346
+ private extractMetadata;
1347
+ /**
1348
+ * Выполняет API-запрос с учетом авторизации и версии API
1349
+ * @param path Путь к API-ресурсу
1350
+ * @param method HTTP-метод
1351
+ * @param body Тело запроса (опционально)
1352
+ * @returns Ответ от API
1353
+ * @throws {RateLimitError} При превышении лимита запросов (429)
1354
+ * @throws {GitVerseApiError} При других ошибках API
1355
+ */
1356
+ request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
1357
+ /**
1358
+ * Выполняет GET-запрос
1359
+ * @param path Путь к API-ресурсу
1360
+ * @returns Ответ от API
1361
+ */
1362
+ get<T>(path: string): Promise<T>;
1363
+ /**
1364
+ * Выполняет POST-запрос
1365
+ * @param path Путь к API-ресурсу
1366
+ * @param body Тело запроса
1367
+ * @returns Ответ от API
1368
+ */
1369
+ post<T>(path: string, body?: unknown): Promise<T>;
1370
+ /**
1371
+ * Выполняет PUT-запрос
1372
+ * @param path Путь к API-ресурсу
1373
+ * @param body Тело запроса
1374
+ * @returns Ответ от API
1375
+ */
1376
+ put<T>(path: string, body?: unknown): Promise<T>;
1377
+ /**
1378
+ * Выполняет DELETE-запрос
1379
+ * @param path Путь к API-ресурсу
1380
+ * @param body Тело запроса (опционально)
1381
+ * @returns Ответ от API
1382
+ */
1383
+ delete<T>(path: string, body?: unknown): Promise<T>;
1384
+ /**
1385
+ * Выполняет PATCH-запрос
1386
+ * @param path Путь к API-ресурсу
1387
+ * @param body Тело запроса
1388
+ * @returns Ответ от API
1389
+ */
1390
+ patch<T>(path: string, body?: unknown): Promise<T>;
1391
+ }
1392
+ /**
1393
+ * API для работы с GitHub Actions
1394
+ */
1395
+ declare class ActionsApi {
687
1396
  private client;
688
1397
  /**
689
- * Создает новый экземпляр API для работы с пользователями
690
- * @param client GitVerse клиент
691
- */
1398
+ * Создает новый экземпляр API для работы с GitHub Actions
1399
+ * @param client GitVerse клиент
1400
+ */
692
1401
  constructor(client: GitVerseClient);
693
1402
  /**
694
- * Получает информацию о текущем авторизованном пользователе
695
- * @returns Данные о пользователе
696
- */
697
- getCurrent(): Promise<CurrentUser>;
1403
+ * Получает список раннеров организации
1404
+ * @param org Название организации
1405
+ * @returns Список раннеров
1406
+ */
1407
+ listOrgRunners(org: string): Promise<{
1408
+ runners: Runner[]
1409
+ }>;
1410
+ /**
1411
+ * Создает токен регистрации раннера для организации
1412
+ * @param org Название организации
1413
+ * @returns Токен регистрации
1414
+ */
1415
+ createOrgRegistrationToken(org: string): Promise<{
1416
+ token: string
1417
+ expires_at: string
1418
+ }>;
1419
+ /**
1420
+ * Получает информацию о раннере организации по ID
1421
+ * @param org Название организации
1422
+ * @param runnerId ID раннера
1423
+ * @returns Информация о раннере
1424
+ */
1425
+ getOrgRunner(org: string, runnerId: number): Promise<Runner>;
1426
+ /**
1427
+ * Удаляет раннер организации
1428
+ * @param org Название организации
1429
+ * @param runnerId ID раннера
1430
+ * @returns Результат операции
1431
+ */
1432
+ deleteOrgRunner(org: string, runnerId: number): Promise<void>;
1433
+ /**
1434
+ * Получает список раннеров репозитория
1435
+ * @param owner Владелец репозитория
1436
+ * @param repo Название репозитория
1437
+ * @returns Список раннеров
1438
+ */
1439
+ listRepoRunners(owner: string, repo: string): Promise<{
1440
+ runners: Runner[]
1441
+ }>;
698
1442
  /**
699
- * Получает информацию о пользователе по имени пользователя
700
- * @param username Имя пользователя
701
- * @returns Данные о пользователе
702
- */
703
- getByUsername(username: string): Promise<User>;
1443
+ * Создает токен регистрации раннера для репозитория
1444
+ * @param owner Владелец репозитория
1445
+ * @param repo Название репозитория
1446
+ * @returns Токен регистрации
1447
+ */
1448
+ createRepoRegistrationToken(owner: string, repo: string): Promise<{
1449
+ token: string
1450
+ expires_at: string
1451
+ }>;
1452
+ /**
1453
+ * Получает информацию о раннере репозитория по ID
1454
+ * @param owner Владелец репозитория
1455
+ * @param repo Название репозитория
1456
+ * @param runnerId ID раннера
1457
+ * @returns Информация о раннере
1458
+ */
1459
+ getRepoRunner(owner: string, repo: string, runnerId: number): Promise<Runner>;
1460
+ /**
1461
+ * Удаляет раннер репозитория
1462
+ * @param owner Владелец репозитория
1463
+ * @param repo Название репозитория
1464
+ * @param runnerId ID раннера
1465
+ * @returns Результат операции
1466
+ */
1467
+ deleteRepoRunner(owner: string, repo: string, runnerId: number): Promise<void>;
1468
+ /**
1469
+ * Получает список секретов организации
1470
+ * @param org Название организации
1471
+ * @returns Список секретов
1472
+ */
1473
+ listOrgSecrets(org: string): Promise<{
1474
+ secrets: Secret[]
1475
+ }>;
1476
+ /**
1477
+ * Получает секрет организации по имени
1478
+ * @param org Название организации
1479
+ * @param secretName Название секрета
1480
+ * @returns Информация о секрете
1481
+ */
1482
+ getOrgSecret(org: string, secretName: string): Promise<Secret>;
1483
+ /**
1484
+ * Создает или обновляет секрет организации
1485
+ * @param org Название организации
1486
+ * @param secretName Название секрета
1487
+ * @param params Параметры секрета
1488
+ * @returns Результат операции
1489
+ */
1490
+ createOrUpdateOrgSecret(org: string, secretName: string, params: CreateSecretParams): Promise<void>;
1491
+ /**
1492
+ * Удаляет секрет организации
1493
+ * @param org Название организации
1494
+ * @param secretName Название секрета
1495
+ * @returns Результат операции
1496
+ */
1497
+ deleteOrgSecret(org: string, secretName: string): Promise<void>;
1498
+ /**
1499
+ * Получает список секретов репозитория
1500
+ * @param owner Владелец репозитория
1501
+ * @param repo Название репозитория
1502
+ * @returns Список секретов
1503
+ */
1504
+ listRepoSecrets(owner: string, repo: string): Promise<{
1505
+ secrets: Secret[]
1506
+ }>;
1507
+ /**
1508
+ * Получает секрет репозитория по имени
1509
+ * @param owner Владелец репозитория
1510
+ * @param repo Название репозитория
1511
+ * @param secretName Название секрета
1512
+ * @returns Информация о секрете
1513
+ */
1514
+ getRepoSecret(owner: string, repo: string, secretName: string): Promise<Secret>;
1515
+ /**
1516
+ * Создает или обновляет секрет репозитория
1517
+ * @param owner Владелец репозитория
1518
+ * @param repo Название репозитория
1519
+ * @param secretName Название секрета
1520
+ * @param params Параметры секрета
1521
+ * @returns Результат операции
1522
+ */
1523
+ createOrUpdateRepoSecret(owner: string, repo: string, secretName: string, params: CreateSecretParams): Promise<void>;
1524
+ /**
1525
+ * Удаляет секрет репозитория
1526
+ * @param owner Владелец репозитория
1527
+ * @param repo Название репозитория
1528
+ * @param secretName Название секрета
1529
+ * @returns Результат операции
1530
+ */
1531
+ deleteRepoSecret(owner: string, repo: string, secretName: string): Promise<void>;
1532
+ /**
1533
+ * Получает список переменных организации
1534
+ * @param org Название организации
1535
+ * @returns Список переменных
1536
+ */
1537
+ listOrgVariables(org: string): Promise<{
1538
+ variables: Variable[]
1539
+ }>;
1540
+ /**
1541
+ * Создает переменную организации
1542
+ * @param org Название организации
1543
+ * @param params Параметры переменной
1544
+ * @returns Созданная переменная
1545
+ */
1546
+ createOrgVariable(org: string, params: CreateVariableParams): Promise<Variable>;
1547
+ /**
1548
+ * Получает переменную организации по имени
1549
+ * @param org Название организации
1550
+ * @param name Название переменной
1551
+ * @returns Информация о переменной
1552
+ */
1553
+ getOrgVariable(org: string, name: string): Promise<Variable>;
1554
+ /**
1555
+ * Удаляет переменную организации
1556
+ * @param org Название организации
1557
+ * @param name Название переменной
1558
+ * @returns Результат операции
1559
+ */
1560
+ deleteOrgVariable(org: string, name: string): Promise<void>;
1561
+ /**
1562
+ * Обновляет переменную организации
1563
+ * @param org Название организации
1564
+ * @param name Название переменной
1565
+ * @param params Параметры обновления
1566
+ * @returns Обновлённая переменная
1567
+ */
1568
+ updateOrgVariable(org: string, name: string, params: UpdateVariableParams): Promise<Variable>;
1569
+ /**
1570
+ * Получает список переменных репозитория
1571
+ * @param owner Владелец репозитория
1572
+ * @param repo Название репозитория
1573
+ * @returns Список переменных
1574
+ */
1575
+ listRepoVariables(owner: string, repo: string): Promise<{
1576
+ variables: Variable[]
1577
+ }>;
1578
+ /**
1579
+ * Создает переменную репозитория
1580
+ * @param owner Владелец репозитория
1581
+ * @param repo Название репозитория
1582
+ * @param params Параметры переменной
1583
+ * @returns Созданная переменная
1584
+ */
1585
+ createRepoVariable(owner: string, repo: string, params: CreateVariableParams): Promise<Variable>;
1586
+ /**
1587
+ * Получает переменную репозитория по имени
1588
+ * @param owner Владелец репозитория
1589
+ * @param repo Название репозитория
1590
+ * @param name Название переменной
1591
+ * @returns Информация о переменной
1592
+ */
1593
+ getRepoVariable(owner: string, repo: string, name: string): Promise<Variable>;
1594
+ /**
1595
+ * Удаляет переменную репозитория
1596
+ * @param owner Владелец репозитория
1597
+ * @param repo Название репозитория
1598
+ * @param name Название переменной
1599
+ * @returns Результат операции
1600
+ */
1601
+ deleteRepoVariable(owner: string, repo: string, name: string): Promise<void>;
1602
+ /**
1603
+ * Обновляет переменную репозитория
1604
+ * @param owner Владелец репозитория
1605
+ * @param repo Название репозитория
1606
+ * @param name Название переменной
1607
+ * @param params Параметры обновления
1608
+ * @returns Обновлённая переменная
1609
+ */
1610
+ updateRepoVariable(owner: string, repo: string, name: string, params: UpdateVariableParams): Promise<Variable>;
1611
+ /**
1612
+ * Получает список артефактов репозитория
1613
+ * @param owner Владелец репозитория
1614
+ * @param repo Название репозитория
1615
+ * @returns Список артефактов
1616
+ */
1617
+ listArtifacts(owner: string, repo: string): Promise<{
1618
+ artifacts: Artifact[]
1619
+ }>;
1620
+ /**
1621
+ * Получает артефакт по ID
1622
+ * @param owner Владелец репозитория
1623
+ * @param repo Название репозитория
1624
+ * @param artifactId ID артефакта
1625
+ * @returns Информация об артефакте
1626
+ */
1627
+ getArtifact(owner: string, repo: string, artifactId: number): Promise<Artifact>;
1628
+ /**
1629
+ * Удаляет артефакт
1630
+ * @param owner Владелец репозитория
1631
+ * @param repo Название репозитория
1632
+ * @param artifactId ID артефакта
1633
+ * @returns Результат операции
1634
+ */
1635
+ deleteArtifact(owner: string, repo: string, artifactId: number): Promise<void>;
1636
+ /**
1637
+ * Скачивает артефакт в формате ZIP
1638
+ * @param owner Владелец репозитория
1639
+ * @param repo Название репозитория
1640
+ * @param artifactId ID артефакта
1641
+ * @returns ZIP-архив артефакта
1642
+ */
1643
+ downloadArtifact(owner: string, repo: string, artifactId: number): Promise<ArrayBuffer>;
1644
+ /**
1645
+ * Скачивает артефакт в формате ZIP (raw)
1646
+ * @param owner Владелец репозитория
1647
+ * @param repo Название репозитория
1648
+ * @param artifactId ID артефакта
1649
+ * @returns ZIP-архив артефакта (raw)
1650
+ */
1651
+ downloadArtifactRaw(owner: string, repo: string, artifactId: number): Promise<ArrayBuffer>;
1652
+ /**
1653
+ * Получает параметры dispatch для workflow
1654
+ * @param owner Владелец репозитория
1655
+ * @param repo Название репозитория
1656
+ * @param workflow ID или имя файла workflow
1657
+ * @returns Параметры workflow
1658
+ */
1659
+ getWorkflowDispatchInputs(owner: string, repo: string, workflow: string | number): Promise<Record<string, unknown>>;
1660
+ /**
1661
+ * Запускает workflow
1662
+ * @param owner Владелец репозитория
1663
+ * @param repo Название репозитория
1664
+ * @param workflow ID или имя файла workflow
1665
+ * @param params Параметры запуска
1666
+ * @returns Результат операции
1667
+ */
1668
+ dispatchWorkflow(owner: string, repo: string, workflow: string | number, params: DispatchWorkflowParams): Promise<void>;
704
1669
  }
705
- declare class RepositoriesApi {
1670
+ /**
1671
+ * API для работы с ветками репозитория
1672
+ */
1673
+ declare class BranchesApi {
706
1674
  private client;
707
1675
  /**
708
- * Создает новый экземпляр API для работы с репозиториями
709
- * @param client GitVerse клиент
710
- */
1676
+ * Создает новый экземпляр API для работы с ветками
1677
+ * @param client GitVerse клиент
1678
+ */
711
1679
  constructor(client: GitVerseClient);
712
1680
  /**
713
- * Получает информацию о репозитории
714
- * @param owner Владелец репозитория
715
- * @param repo Название репозитория
716
- * @returns Данные о репозитории
717
- */
718
- get(owner: string, repo: string): Promise<Repository>;
1681
+ * Получает список веток репозитория
1682
+ * @param owner Владелец репозитория
1683
+ * @param repo Название репозитория
1684
+ * @returns Список веток
1685
+ */
1686
+ list(owner: string, repo: string): Promise<Branch[]>;
1687
+ }
1688
+ /**
1689
+ * API для работы с коллабораторами репозитория
1690
+ */
1691
+ declare class CollaboratorsApi {
1692
+ private client;
719
1693
  /**
720
- * Получает информацию о языках программирования в репозитории
721
- * @param owner Владелец репозитория
722
- * @param repo Название репозитория
723
- * @returns Объект с языками и количеством байт кода
724
- */
725
- getLanguages(owner: string, repo: string): Promise<LanguagesResponse>;
1694
+ * Создает новый экземпляр API для работы с коллабораторами
1695
+ * @param client GitVerse клиент
1696
+ */
1697
+ constructor(client: GitVerseClient);
726
1698
  /**
727
- * Получает список репозиториев авторизованного пользователя
728
- * @returns Массив репозиториев пользователя
729
- */
730
- listForAuthenticatedUser(): Promise<Repository[]>;
1699
+ * Получает список коллабораторов репозитория
1700
+ * @param owner Владелец репозитория
1701
+ * @param repo Название репозитория
1702
+ * @returns Список коллабораторов
1703
+ */
1704
+ list(owner: string, repo: string): Promise<User2[]>;
731
1705
  /**
732
- * Создает новый репозиторий для авторизованного пользователя
733
- * @param params Параметры создания репозитория
734
- * @returns Созданный репозиторий
735
- */
736
- create(params: CreateRepositoryParams): Promise<Repository>;
1706
+ * Добавляет коллаборатора к репозиторию
1707
+ * @param owner Владелец репозитория
1708
+ * @param repo Название репозитория
1709
+ * @param collaborator Имя пользователя коллаборатора
1710
+ * @returns Результат операции
1711
+ */
1712
+ add(owner: string, repo: string, collaborator: string): Promise<void>;
737
1713
  }
1714
+ /**
1715
+ * API для работы с коммитами
1716
+ */
1717
+ declare class CommitsApi {
1718
+ private client;
1719
+ /**
1720
+ * Создает новый экземпляр API для работы с коммитами
1721
+ * @param client GitVerse клиент
1722
+ */
1723
+ constructor(client: GitVerseClient);
1724
+ /**
1725
+ * Получает список коммитов в репозитории
1726
+ * @param owner Владелец репозитория
1727
+ * @param repo Название репозитория
1728
+ * @returns Список коммитов
1729
+ */
1730
+ list(owner: string, repo: string): Promise<Commit[]>;
1731
+ /**
1732
+ * Получает информацию о коммите по SHA
1733
+ * @param owner Владелец репозитория
1734
+ * @param repo Название репозитория
1735
+ * @param sha SHA-хеш коммита
1736
+ * @returns Информация о коммите
1737
+ */
1738
+ get(owner: string, repo: string, sha: string): Promise<Commit>;
1739
+ /**
1740
+ * Создает новый коммит
1741
+ * @param owner Владелец репозитория
1742
+ * @param repo Название репозитория
1743
+ * @param params Параметры создания коммита
1744
+ * @returns Созданный коммит
1745
+ */
1746
+ create(owner: string, repo: string, params: CreateCommitParams): Promise<Commit>;
1747
+ }
1748
+ /**
1749
+ * API для работы с содержимым репозитория (файлами и папками)
1750
+ */
738
1751
  declare class ContentsApi {
739
1752
  private client;
740
1753
  /**
741
- * Создает новый экземпляр API для работы с содержимым репозитория
742
- * @param client GitVerse клиент
743
- */
1754
+ * Создает новый экземпляр API для работы с содержимым репозитория
1755
+ * @param client GitVerse клиент
1756
+ */
744
1757
  constructor(client: GitVerseClient);
745
1758
  /**
746
- * Получает содержимое файла или список файлов в директории
747
- * @param owner Владелец репозитория
748
- * @param repo Название репозитория
749
- * @param path Путь к файлу или директории
750
- * @returns Содержимое файла или директории
751
- */
1759
+ * Получает содержимое файла или список файлов в директории
1760
+ * @param owner Владелец репозитория
1761
+ * @param repo Название репозитория
1762
+ * @param path Путь к файлу или директории
1763
+ * @returns Содержимое файла или директории
1764
+ */
752
1765
  get(owner: string, repo: string, path: string): Promise<Content>;
753
1766
  /**
754
- * Создает новый файл в репозитории
755
- * @param owner Владелец репозитория
756
- * @param repo Название репозитория
757
- * @param path Путь к файлу, который будет создан
758
- * @param params Параметры создания файла
759
- * @returns Информация о созданном файле и коммите
760
- */
1767
+ * Создает новый файл в репозитории
1768
+ * @param owner Владелец репозитория
1769
+ * @param repo Название репозитория
1770
+ * @param path Путь к файлу, который будет создан
1771
+ * @param params Параметры создания файла
1772
+ * @returns Информация о созданном файле и коммите
1773
+ */
761
1774
  createFile(owner: string, repo: string, path: string, params: CreateFileParams): Promise<FileCreationResponse>;
762
1775
  /**
763
- * Обновляет существующий файл в репозитории
764
- * @param owner Владелец репозитория
765
- * @param repo Название репозитория
766
- * @param path Путь к файлу, который будет обновлен
767
- * @param params Параметры обновления файла
768
- * @returns Информация об обновленном файле и коммите
769
- */
1776
+ * Обновляет существующий файл в репозитории
1777
+ * @param owner Владелец репозитория
1778
+ * @param repo Название репозитория
1779
+ * @param path Путь к файлу, который будет обновлен
1780
+ * @param params Параметры обновления файла
1781
+ * @returns Информация об обновленном файле и коммите
1782
+ */
770
1783
  updateFile(owner: string, repo: string, path: string, params: UpdateFileParams): Promise<FileCreationResponse>;
771
1784
  /**
772
- * Удаляет файл из репозитория
773
- * @param owner Владелец репозитория
774
- * @param repo Название репозитория
775
- * @param path Путь к файлу, который будет удален
776
- * @param params Параметры удаления файла
777
- * @returns Информация об удаленном файле и коммите
778
- */
1785
+ * Удаляет файл из репозитория
1786
+ * @param owner Владелец репозитория
1787
+ * @param repo Название репозитория
1788
+ * @param path Путь к файлу, который будет удален
1789
+ * @param params Параметры удаления файла
1790
+ * @returns Информация об удаленном файле и коммите
1791
+ */
779
1792
  deleteFile(owner: string, repo: string, path: string, params: DeleteFileParams): Promise<FileDeletionResponse>;
780
1793
  }
781
- declare class PullsApi {
1794
+ /**
1795
+ * Класс для работы с email адресами пользователя
1796
+ */
1797
+ declare class EmailsApi {
782
1798
  private client;
783
- /**
784
- * Создает новый экземпляр API для работы с пулл-реквестами
785
- * @param client GitVerse клиент
786
- */
787
1799
  constructor(client: GitVerseClient);
788
1800
  /**
789
- * Создает новый запрос на слияние в репозитории
790
- * @param owner Владелец репозитория
791
- * @param repo Название репозитория
792
- * @param params Параметры создания запроса на слияние
793
- * @returns Информация о созданном запросе на слияние
794
- */
795
- create(owner: string, repo: string, params: CreatePullRequestParams): Promise<PullRequest>;
1801
+ * Получить список email адресов текущего пользователя
1802
+ * @returns {Promise<Email[]>} Массив email адресов
1803
+ */
1804
+ list(): Promise<Email[]>;
796
1805
  /**
797
- * Получает запрос на слияние по его номеру
798
- * @param owner Владелец репозитория
799
- * @param repo Название репозитория
800
- * @param number Номер запроса на слияние
801
- * @returns Информация о запросе на слияние
802
- */
803
- get(owner: string, repo: string, number: number): Promise<PullRequest>;
1806
+ * Добавить email адреса к аккаунту пользователя
1807
+ * @param {AddEmailParams} params - Параметры для добавления email
1808
+ * @returns {Promise<EmailOperationResponse>} Результат операции
1809
+ */
1810
+ add(params: AddEmailParams): Promise<EmailOperationResponse>;
804
1811
  /**
805
- * Получает список запросов на слияние в репозитории
806
- * @param owner Владелец репозитория
807
- * @param repo Название репозитория
808
- * @param state Состояние запросов на слияние (открытые/закрытые/все)
809
- * @returns Список запросов на слияние
810
- */
811
- list(owner: string, repo: string, state?: PullRequestState): Promise<PullRequest[]>;
1812
+ * Удалить email адреса из аккаунта пользователя
1813
+ * @param {RemoveEmailParams} params - Параметры для удаления email
1814
+ * @returns {Promise<EmailOperationResponse>} Результат операции
1815
+ */
1816
+ remove(params: RemoveEmailParams): Promise<EmailOperationResponse>;
812
1817
  }
1818
+ /**
1819
+ * API для работы с форками репозиториев
1820
+ */
813
1821
  declare class ForksApi {
814
1822
  private client;
815
1823
  /**
816
- * Создает новый экземпляр API для работы с форками
817
- * @param client GitVerse клиент
818
- */
1824
+ * Создает новый экземпляр API для работы с форками
1825
+ * @param client GitVerse клиент
1826
+ */
819
1827
  constructor(client: GitVerseClient);
820
1828
  /**
821
- * Создает форк репозитория
822
- * @param owner Владелец исходного репозитория
823
- * @param repo Название исходного репозитория
824
- * @param params Параметры создания форка
825
- * @returns Информация о созданном форке
826
- */
1829
+ * Создает форк репозитория
1830
+ * @param owner Владелец исходного репозитория
1831
+ * @param repo Название исходного репозитория
1832
+ * @param params Параметры создания форка
1833
+ * @returns Информация о созданном форке
1834
+ */
827
1835
  create(owner: string, repo: string, params?: CreateForkParams): Promise<Repository>;
828
- /**
829
- * Получает список форков репозитория
830
- * @param owner Владелец репозитория
831
- * @param repo Название репозитория
832
- * @returns Список форков
833
- */
834
- list(owner: string, repo: string): Promise<Repository[]>;
835
1836
  }
836
- declare class EmailsApi {
1837
+ /**
1838
+ * API для работы с низкоуровневыми Git-объектами
1839
+ */
1840
+ declare class GitApi {
837
1841
  private client;
1842
+ /**
1843
+ * Создает новый экземпляр API для работы с Git-объектами
1844
+ * @param client GitVerse клиент
1845
+ */
838
1846
  constructor(client: GitVerseClient);
839
1847
  /**
840
- * Получить список email адресов текущего пользователя
841
- * @returns {Promise<Email[]>} Массив email адресов
842
- */
843
- list(): Promise<Email[]>;
1848
+ * Создает новую Git-ссылку (reference)
1849
+ * @param owner Владелец репозитория
1850
+ * @param repo Название репозитория
1851
+ * @param params Параметры создания ссылки
1852
+ * @returns Созданная ссылка
1853
+ */
1854
+ createRef(owner: string, repo: string, params: CreateRefParams): Promise<Reference>;
844
1855
  /**
845
- * Добавить email адреса к аккаунту пользователя
846
- * @param {AddEmailParams} params - Параметры для добавления email
847
- * @returns {Promise<EmailOperationResponse>} Результат операции
848
- */
849
- add(params: AddEmailParams): Promise<EmailOperationResponse>;
1856
+ * Создает новое Git-дерево
1857
+ * @param owner Владелец репозитория
1858
+ * @param repo Название репозитория
1859
+ * @param params Параметры создания дерева
1860
+ * @returns Созданное дерево
1861
+ */
1862
+ createTree(owner: string, repo: string, params: CreateTreeParams): Promise<Tree>;
850
1863
  /**
851
- * Удалить email адреса из аккаунта пользователя
852
- * @param {RemoveEmailParams} params - Параметры для удаления email
853
- * @returns {Promise<EmailOperationResponse>} Результат операции
854
- */
855
- remove(params: RemoveEmailParams): Promise<EmailOperationResponse>;
1864
+ * Получает Git-дерево по SHA
1865
+ * @param owner Владелец репозитория
1866
+ * @param repo Название репозитория
1867
+ * @param sha SHA-хеш дерева
1868
+ * @returns Информация о дереве
1869
+ */
1870
+ getTree(owner: string, repo: string, sha: string): Promise<Tree>;
856
1871
  }
1872
+ /**
1873
+ * Класс для работы с issues репозитория
1874
+ */
857
1875
  declare class IssuesApi {
858
1876
  private client;
859
1877
  constructor(client: GitVerseClient);
860
1878
  /**
861
- * Получить список issues репозитория
862
- * @param {string} owner - Владелец репозитория
863
- * @param {string} repo - Название репозитория
864
- * @param {IssueState} [state] - Фильтр по состоянию issue
865
- * @returns {Promise<Issue[]>} Массив issues
866
- */
1879
+ * Получить список issues репозитория
1880
+ * @param {string} owner - Владелец репозитория
1881
+ * @param {string} repo - Название репозитория
1882
+ * @param {IssueState} [state] - Фильтр по состоянию issue
1883
+ * @returns {Promise<Issue[]>} Массив issues
1884
+ */
867
1885
  list(owner: string, repo: string, state?: IssueState): Promise<Issue[]>;
868
1886
  /**
869
- * Получить конкретный issue
870
- * @param {string} owner - Владелец репозитория
871
- * @param {string} repo - Название репозитория
872
- * @param {number} number - Номер issue
873
- * @returns {Promise<Issue>} Информация об issue
874
- */
875
- get(owner: string, repo: string, number: number): Promise<Issue>;
1887
+ * Получить конкретный issue
1888
+ * @param {string} owner - Владелец репозитория
1889
+ * @param {string} repo - Название репозитория
1890
+ * @param {number} index - Номер issue
1891
+ * @returns {Promise<Issue>} Информация об issue
1892
+ */
1893
+ get(owner: string, repo: string, index: number): Promise<Issue>;
1894
+ /**
1895
+ * Получить комментарий по ID
1896
+ * @param {string} owner - Владелец репозитория
1897
+ * @param {string} repo - Название репозитория
1898
+ * @param {number} id - ID комментария
1899
+ * @returns {Promise<Comment>} Информация о комментарии
1900
+ */
1901
+ getComment(owner: string, repo: string, id: number): Promise<Comment>;
1902
+ /**
1903
+ * Получить список комментариев к issue
1904
+ * @param {string} owner - Владелец репозитория
1905
+ * @param {string} repo - Название репозитория
1906
+ * @param {number} index - Номер issue
1907
+ * @returns {Promise<Comment[]>} Массив комментариев
1908
+ */
1909
+ getComments(owner: string, repo: string, index: number): Promise<Comment[]>;
1910
+ /**
1911
+ * Получить список меток issue
1912
+ * @param {string} owner - Владелец репозитория
1913
+ * @param {string} repo - Название репозитория
1914
+ * @param {number} index - Номер issue
1915
+ * @returns {Promise<Label[]>} Массив меток
1916
+ */
1917
+ getLabels(owner: string, repo: string, index: number): Promise<Label[]>;
1918
+ /**
1919
+ * Получить timeline событий issue
1920
+ * @param {string} owner - Владелец репозитория
1921
+ * @param {string} repo - Название репозитория
1922
+ * @param {number} index - Номер issue
1923
+ * @returns {Promise<TimelineEvent[]>} Массив событий timeline
1924
+ */
1925
+ getTimeline(owner: string, repo: string, index: number): Promise<TimelineEvent[]>;
1926
+ }
1927
+ /**
1928
+ * API для работы с организациями
1929
+ */
1930
+ declare class OrganizationsApi {
1931
+ private client;
1932
+ /**
1933
+ * Создает новый экземпляр API для работы с организациями
1934
+ * @param client GitVerse клиент
1935
+ */
1936
+ constructor(client: GitVerseClient);
1937
+ /**
1938
+ * Проверяет членство пользователя в организации
1939
+ * @param org Название организации
1940
+ * @param username Имя пользователя
1941
+ * @returns true если пользователь является членом организации, false если нет
1942
+ */
1943
+ checkMembership(org: string, username: string): Promise<boolean>;
876
1944
  }
1945
+ /**
1946
+ * API для работы с запросами на слияние (пулл-реквестами)
1947
+ */
1948
+ declare class PullsApi {
1949
+ private client;
1950
+ /**
1951
+ * Создает новый экземпляр API для работы с пулл-реквестами
1952
+ * @param client GitVerse клиент
1953
+ */
1954
+ constructor(client: GitVerseClient);
1955
+ /**
1956
+ * Создает новый запрос на слияние в репозитории
1957
+ * @param owner Владелец репозитория
1958
+ * @param repo Название репозитория
1959
+ * @param params Параметры создания запроса на слияние
1960
+ * @returns Информация о созданном запросе на слияние
1961
+ */
1962
+ create(owner: string, repo: string, params: CreatePullRequestParams): Promise<PullRequest>;
1963
+ /**
1964
+ * Получает запрос на слияние по его номеру
1965
+ * @param owner Владелец репозитория
1966
+ * @param repo Название репозитория
1967
+ * @param number Номер запроса на слияние
1968
+ * @returns Информация о запросе на слияние
1969
+ */
1970
+ get(owner: string, repo: string, number: number): Promise<PullRequest>;
1971
+ /**
1972
+ * Получает список запросов на слияние в репозитории
1973
+ * @param owner Владелец репозитория
1974
+ * @param repo Название репозитория
1975
+ * @param state Состояние запросов на слияние (открытые/закрытые/все)
1976
+ * @returns Список запросов на слияние
1977
+ */
1978
+ list(owner: string, repo: string, state?: PullRequestState): Promise<PullRequest[]>;
1979
+ /**
1980
+ * Обновляет pull request
1981
+ * @param owner Владелец репозитория
1982
+ * @param repo Название репозитория
1983
+ * @param number Номер pull request
1984
+ * @param params Параметры для обновления
1985
+ * @returns Обновлённый pull request
1986
+ */
1987
+ update(owner: string, repo: string, number: number, params: UpdatePullRequestParams): Promise<PullRequest>;
1988
+ /**
1989
+ * Получает список файлов в pull request
1990
+ * @param owner Владелец репозитория
1991
+ * @param repo Название репозитория
1992
+ * @param number Номер pull request
1993
+ * @returns Список изменённых файлов
1994
+ */
1995
+ getFiles(owner: string, repo: string, number: number): Promise<PullRequestFile[]>;
1996
+ /**
1997
+ * Обновляет ветку pull request с базовой веткой
1998
+ * @param owner Владелец репозитория
1999
+ * @param repo Название репозитория
2000
+ * @param number Номер pull request
2001
+ * @returns Результат операции
2002
+ */
2003
+ updateBranch(owner: string, repo: string, number: number): Promise<void>;
2004
+ /**
2005
+ * Получает список коммитов в pull request
2006
+ * @param owner Владелец репозитория
2007
+ * @param repo Название репозитория
2008
+ * @param number Номер pull request
2009
+ * @returns Список коммитов
2010
+ */
2011
+ getCommits(owner: string, repo: string, number: number): Promise<Commit[]>;
2012
+ }
2013
+ /**
2014
+ * API для работы с релизами репозитория
2015
+ */
2016
+ declare class ReleasesApi {
2017
+ private client;
2018
+ /**
2019
+ * Создает новый экземпляр API для работы с релизами
2020
+ * @param client GitVerse клиент
2021
+ */
2022
+ constructor(client: GitVerseClient);
2023
+ /**
2024
+ * Получает список релизов репозитория
2025
+ * @param owner Владелец репозитория
2026
+ * @param repo Название репозитория
2027
+ * @returns Список релизов
2028
+ */
2029
+ list(owner: string, repo: string): Promise<Release[]>;
2030
+ /**
2031
+ * Создает новый релиз
2032
+ * @param owner Владелец репозитория
2033
+ * @param repo Название репозитория
2034
+ * @param params Параметры создания релиза
2035
+ * @returns Созданный релиз
2036
+ */
2037
+ create(owner: string, repo: string, params: CreateReleaseParams): Promise<Release>;
2038
+ /**
2039
+ * Получает релиз по тегу
2040
+ * @param owner Владелец репозитория
2041
+ * @param repo Название репозитория
2042
+ * @param tag Тег релиза
2043
+ * @returns Информация о релизе
2044
+ */
2045
+ getByTag(owner: string, repo: string, tag: string): Promise<Release>;
2046
+ /**
2047
+ * Удаляет релиз по тегу
2048
+ * @param owner Владелец репозитория
2049
+ * @param repo Название репозитория
2050
+ * @param tag Тег релиза
2051
+ * @returns Результат операции
2052
+ */
2053
+ deleteByTag(owner: string, repo: string, tag: string): Promise<void>;
2054
+ /**
2055
+ * Получает релиз по ID
2056
+ * @param owner Владелец репозитория
2057
+ * @param repo Название репозитория
2058
+ * @param releaseId ID релиза
2059
+ * @returns Информация о релизе
2060
+ */
2061
+ get(owner: string, repo: string, releaseId: number): Promise<Release>;
2062
+ /**
2063
+ * Удаляет релиз по ID
2064
+ * @param owner Владелец репозитория
2065
+ * @param repo Название репозитория
2066
+ * @param releaseId ID релиза
2067
+ * @returns Результат операции
2068
+ */
2069
+ delete(owner: string, repo: string, releaseId: number): Promise<void>;
2070
+ /**
2071
+ * Обновляет релиз
2072
+ * @param owner Владелец репозитория
2073
+ * @param repo Название репозитория
2074
+ * @param releaseId ID релиза
2075
+ * @param params Параметры обновления релиза
2076
+ * @returns Обновлённый релиз
2077
+ */
2078
+ update(owner: string, repo: string, releaseId: number, params: UpdateReleaseParams): Promise<Release>;
2079
+ /**
2080
+ * Получает список ассетов релиза
2081
+ * @param owner Владелец репозитория
2082
+ * @param repo Название репозитория
2083
+ * @param releaseId ID релиза
2084
+ * @returns Список ассетов
2085
+ */
2086
+ getAssets(owner: string, repo: string, releaseId: number): Promise<Asset[]>;
2087
+ /**
2088
+ * Загружает ассет к релизу
2089
+ * @param owner Владелец репозитория
2090
+ * @param repo Название репозитория
2091
+ * @param releaseId ID релиза
2092
+ * @param params Параметры загрузки ассета
2093
+ * @returns Загруженный ассет
2094
+ */
2095
+ uploadAsset(owner: string, repo: string, releaseId: number, params: UploadAssetParams): Promise<Asset>;
2096
+ /**
2097
+ * Удаляет ассет релиза
2098
+ * @param owner Владелец репозитория
2099
+ * @param repo Название репозитория
2100
+ * @param releaseId ID релиза
2101
+ * @param assetId ID ассета
2102
+ * @returns Результат операции
2103
+ */
2104
+ deleteAsset(owner: string, repo: string, releaseId: number, assetId: number): Promise<void>;
2105
+ }
2106
+ /**
2107
+ * API для работы с репозиториями
2108
+ */
2109
+ declare class RepositoriesApi {
2110
+ private client;
2111
+ /**
2112
+ * Создает новый экземпляр API для работы с репозиториями
2113
+ * @param client GitVerse клиент
2114
+ */
2115
+ constructor(client: GitVerseClient);
2116
+ /**
2117
+ * Получает информацию о репозитории
2118
+ * @param owner Владелец репозитория
2119
+ * @param repo Название репозитория
2120
+ * @returns Данные о репозитории
2121
+ */
2122
+ get(owner: string, repo: string): Promise<Repository>;
2123
+ /**
2124
+ * Удаляет репозиторий
2125
+ * @param owner Владелец репозитория
2126
+ * @param repo Название репозитория
2127
+ * @returns Результат операции
2128
+ */
2129
+ delete(owner: string, repo: string): Promise<void>;
2130
+ /**
2131
+ * Обновляет информацию о репозитории
2132
+ * @param owner Владелец репозитория
2133
+ * @param repo Название репозитория
2134
+ * @param params Параметры для обновления
2135
+ * @returns Обновлённый репозиторий
2136
+ */
2137
+ update(owner: string, repo: string, params: UpdateRepositoryParams): Promise<Repository>;
2138
+ /**
2139
+ * Сравнивает две ветки или коммита
2140
+ * @param owner Владелец репозитория
2141
+ * @param repo Название репозитория
2142
+ * @param basehead Строка в формате "base...head" для сравнения
2143
+ * @returns Результат сравнения с коммитами и изменёнными файлами
2144
+ */
2145
+ compare(owner: string, repo: string, basehead: string): Promise<CompareResponse>;
2146
+ /**
2147
+ * Получает информацию о языках программирования в репозитории
2148
+ * @param owner Владелец репозитория
2149
+ * @param repo Название репозитория
2150
+ * @returns Объект с языками и количеством байт кода
2151
+ */
2152
+ getLanguages(owner: string, repo: string): Promise<LanguagesResponse>;
2153
+ /**
2154
+ * Получает список репозиториев авторизованного пользователя
2155
+ * @returns Массив репозиториев пользователя
2156
+ */
2157
+ listForAuthenticatedUser(): Promise<Repository[]>;
2158
+ /**
2159
+ * Создает новый репозиторий для авторизованного пользователя
2160
+ * @param params Параметры создания репозитория
2161
+ * @returns Созданный репозиторий
2162
+ */
2163
+ create(params: CreateRepositoryParams): Promise<Repository>;
2164
+ }
2165
+ /**
2166
+ * Класс для работы со звездами репозиториев
2167
+ */
877
2168
  declare class StarsApi {
878
2169
  private client;
879
2170
  constructor(client: GitVerseClient);
880
2171
  /**
881
- * Добавить звезду репозиторию
882
- * @param {string} owner - Владелец репозитория
883
- * @param {string} repo - Название репозитория
884
- * @returns {Promise<void>} Результат операции (204 No Content при успехе)
885
- */
2172
+ * Получить список репозиториев, отмеченных звездой
2173
+ * @returns {Promise<Repository[]>} Массив репозиториев, отмеченных звездой
2174
+ */
2175
+ list(): Promise<Repository[]>;
2176
+ /**
2177
+ * Добавить звезду репозиторию
2178
+ * @param {string} owner - Владелец репозитория
2179
+ * @param {string} repo - Название репозитория
2180
+ * @returns {Promise<void>} Результат операции (204 No Content при успехе)
2181
+ */
886
2182
  add(owner: string, repo: string): Promise<void>;
887
2183
  /**
888
- * Проверить, отмечен ли репозиторий звездой
889
- * @param {string} owner - Владелец репозитория
890
- * @param {string} repo - Название репозитория
891
- * @returns {Promise<boolean>} true если отмечен звездой, false если нет
892
- */
2184
+ * Проверить, отмечен ли репозиторий звездой
2185
+ * @param {string} owner - Владелец репозитория
2186
+ * @param {string} repo - Название репозитория
2187
+ * @returns {Promise<boolean>} true если отмечен звездой, false если нет
2188
+ */
893
2189
  check(owner: string, repo: string): Promise<boolean>;
894
2190
  /**
895
- * Убрать звезду с репозитория
896
- * @param {string} owner - Владелец репозитория
897
- * @param {string} repo - Название репозитория
898
- * @returns {Promise<void>} Результат операции
899
- */
2191
+ * Убрать звезду с репозитория
2192
+ * @param {string} owner - Владелец репозитория
2193
+ * @param {string} repo - Название репозитория
2194
+ * @returns {Promise<void>} Результат операции
2195
+ */
900
2196
  remove(owner: string, repo: string): Promise<void>;
901
2197
  }
902
2198
  /**
903
- * Вспомогательные утилиты для работы с GitVerse API
904
- */
905
- /**
906
- * Кодирует строку в Base64
907
- * @param str Строка для кодирования
908
- * @returns Строка в формате Base64
909
- */
910
- export declare function encodeBase64(str: string): string;
911
- /**
912
- * Декодирует строку из Base64
913
- * @param base64 Строка в формате Base64
914
- * @returns Декодированная строка
915
- */
916
- export declare function decodeBase64(base64: string): string;
917
- /**
918
- * Создает объект параметров для создания файла
919
- * @param content Содержимое файла в виде строки
920
- * @param message Сообщение коммита
921
- * @param branch Имя ветки (опционально)
922
- * @returns Объект параметров для создания файла
923
- */
924
- export declare function createFileParams(content: string, message?: string, branch?: string): {
925
- content: string;
926
- message: string | undefined;
927
- branch: string | undefined;
928
- };
929
- /**
930
- * Создает объект параметров для обновления файла
931
- * @param content Новое содержимое файла в виде строки
932
- * @param sha SHA хеш текущего содержимого файла
933
- * @param message Сообщение коммита
934
- * @param branch Имя ветки (опционально)
935
- * @returns Объект параметров для обновления файла
936
- */
937
- export declare function updateFileParams(content: string, sha: string, message?: string, branch?: string): {
938
- content: string;
939
- sha: string;
940
- message: string | undefined;
941
- branch: string | undefined;
942
- };
2199
+ * API для работы с командами организации
2200
+ */
2201
+ declare class TeamsApi {
2202
+ private client;
2203
+ /**
2204
+ * Создает новый экземпляр API для работы с командами
2205
+ * @param client GitVerse клиент
2206
+ */
2207
+ constructor(client: GitVerseClient);
2208
+ /**
2209
+ * Получает список команд организации
2210
+ * @param org Название организации
2211
+ * @returns Список команд
2212
+ */
2213
+ list(org: string): Promise<Team[]>;
2214
+ /**
2215
+ * Получает список приглашений команды
2216
+ * @param org Название организации
2217
+ * @param team Название команды
2218
+ * @returns Список приглашений
2219
+ */
2220
+ getInvitations(org: string, team: string): Promise<Invitation[]>;
2221
+ /**
2222
+ * Получает список членов команды
2223
+ * @param org Название организации
2224
+ * @param team Название команды
2225
+ * @returns Список членов команды
2226
+ */
2227
+ getMembers(org: string, team: string): Promise<User2[]>;
2228
+ /**
2229
+ * Добавляет репозиторий к команде
2230
+ * @param org Название организации
2231
+ * @param team Название команды
2232
+ * @param owner Владелец репозитория
2233
+ * @param repo Название репозитория
2234
+ * @returns Результат операции
2235
+ */
2236
+ addRepository(org: string, team: string, owner: string, repo: string): Promise<void>;
2237
+ }
943
2238
  /**
944
- * Парсит содержимое файла из ответа API
945
- * @param fileContent Объект с информацией о файле
946
- * @returns Декодированное содержимое файла
947
- */
948
- export declare function parseFileContent(fileContent: {
949
- content?: string;
950
- encoding?: string;
951
- }): string;
2239
+ * API для работы с пользователями
2240
+ */
2241
+ declare class UsersApi {
2242
+ private client;
2243
+ /**
2244
+ * Создает новый экземпляр API для работы с пользователями
2245
+ * @param client GitVerse клиент
2246
+ */
2247
+ constructor(client: GitVerseClient);
2248
+ /**
2249
+ * Получает информацию о текущем авторизованном пользователе
2250
+ * @returns Данные о пользователе
2251
+ */
2252
+ getCurrent(): Promise<CurrentUser>;
2253
+ /**
2254
+ * Получает информацию о пользователе по имени пользователя
2255
+ * @param username Имя пользователя
2256
+ * @returns Данные о пользователе
2257
+ */
2258
+ getByUsername(username: string): Promise<User2>;
2259
+ }
952
2260
  /**
953
- * Класс GitVerse, объединяющий все API методы
954
- */
955
- export declare class GitVerse {
2261
+ * Класс GitVerse, объединяющий все API методы
2262
+ *
2263
+ * @remarks
2264
+ * Для лучшего tree-shaking рекомендуется импортировать напрямую из соответствующих модулей:
2265
+ * ```typescript
2266
+ * // Вместо
2267
+ * import { GitVerse } from 'gitverse-api-sdk';
2268
+ * const client = new GitVerse();
2269
+ *
2270
+ * // Рекомендуется использовать
2271
+ * import { RepositoriesApi, GitVerseClient } from 'gitverse-api-sdk/api/repositories';
2272
+ * const client = new GitVerseClient();
2273
+ * const reposApi = new RepositoriesApi(client);
2274
+ * ```
2275
+ */
2276
+ declare class GitVerse {
956
2277
  /**
957
- * Клиент API
958
- */
2278
+ * Клиент API
2279
+ */
959
2280
  readonly client: GitVerseClient;
960
2281
  /**
961
- * API для работы с пользователями
962
- */
2282
+ * API для работы с пользователями
2283
+ */
963
2284
  readonly users: UsersApi;
964
2285
  /**
965
- * API для работы с репозиториями
966
- */
2286
+ * API для работы с репозиториями
2287
+ */
967
2288
  readonly repos: RepositoriesApi;
968
2289
  /**
969
- * API для работы с содержимым репозитория
970
- */
2290
+ * API для работы с содержимым репозитория
2291
+ */
971
2292
  readonly contents: ContentsApi;
972
2293
  /**
973
- * API для работы с запросами на слияние
974
- */
2294
+ * API для работы с запросами на слияние
2295
+ */
975
2296
  readonly pulls: PullsApi;
976
2297
  /**
977
- * API для работы с форками
978
- */
2298
+ * API для работы с форками
2299
+ */
979
2300
  readonly forks: ForksApi;
980
2301
  /**
981
- * API для работы с email адресами
982
- */
2302
+ * API для работы с email адресами
2303
+ */
983
2304
  readonly emails: EmailsApi;
984
2305
  /**
985
- * API для работы с issues
986
- */
2306
+ * API для работы с issues
2307
+ */
987
2308
  readonly issues: IssuesApi;
988
2309
  /**
989
- * API для работы со звездами
990
- */
2310
+ * API для работы со звездами
2311
+ */
991
2312
  readonly stars: StarsApi;
992
2313
  /**
993
- * Создает новый экземпляр GitVerse
994
- * @param config Конфигурация клиента
995
- */
2314
+ * API для работы с ветками
2315
+ */
2316
+ readonly branches: BranchesApi;
2317
+ /**
2318
+ * API для работы с коммитами
2319
+ */
2320
+ readonly commits: CommitsApi;
2321
+ /**
2322
+ * API для работы с коллабораторами
2323
+ */
2324
+ readonly collaborators: CollaboratorsApi;
2325
+ /**
2326
+ * API для работы с организациями
2327
+ */
2328
+ readonly organizations: OrganizationsApi;
2329
+ /**
2330
+ * API для работы с командами
2331
+ */
2332
+ readonly teams: TeamsApi;
2333
+ /**
2334
+ * API для работы с релизами
2335
+ */
2336
+ readonly releases: ReleasesApi;
2337
+ /**
2338
+ * API для работы с Git-объектами
2339
+ */
2340
+ readonly git: GitApi;
2341
+ /**
2342
+ * API для работы с GitHub Actions
2343
+ */
2344
+ readonly actions: ActionsApi;
2345
+ /**
2346
+ * Создает новый экземпляр GitVerse
2347
+ * @param config Конфигурация клиента
2348
+ */
996
2349
  constructor(config?: GitVerseClientConfig);
997
2350
  /**
998
- * Устанавливает токен авторизации
999
- * @param token Токен доступа
1000
- * @returns Текущий экземпляр GitVerse
1001
- */
2351
+ * Устанавливает токен авторизации
2352
+ * @param token Токен доступа
2353
+ * @returns Текущий экземпляр GitVerse
2354
+ */
1002
2355
  setToken(token: string): GitVerse;
1003
2356
  }
1004
-
1005
- export {
1006
- GitVerse as default,
1007
- };
1008
-
1009
- export {};
2357
+ export { VisibilityType, UserType, User2 as User, Team, Repository, Release, RateLimitInfo, RateLimitError, PullRequestState, PullRequest, IssueState, Issue, GitVerseApiError, GitVerse, CurrentUser, ContentType, Content, Commit, Branch, ApiVersionWarning, ApiVersionInfo, ApiResponseMetadata };