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.
- package/README.md +328 -114
- package/dist/api/actions.d.ts +506 -0
- package/dist/api/actions.js +4 -0
- package/dist/api/actions.js.map +10 -0
- package/dist/api/branches.d.ts +154 -0
- package/dist/api/branches.js +4 -0
- package/dist/api/branches.js.map +10 -0
- package/dist/api/collaborators.d.ts +224 -0
- package/dist/api/collaborators.js +4 -0
- package/dist/api/collaborators.js.map +10 -0
- package/dist/api/commits.d.ts +302 -0
- package/dist/api/commits.js +4 -0
- package/dist/api/commits.js.map +10 -0
- package/dist/api/contents.d.ts +345 -0
- package/dist/api/contents.js +4 -0
- package/dist/api/contents.js.map +10 -0
- package/dist/api/emails.d.ts +184 -0
- package/dist/api/emails.js +4 -0
- package/dist/api/emails.js.map +10 -0
- package/dist/api/forks.d.ts +325 -0
- package/dist/api/forks.js +4 -0
- package/dist/api/forks.js.map +10 -0
- package/dist/api/git.d.ts +228 -0
- package/dist/api/git.js +4 -0
- package/dist/api/git.js.map +10 -0
- package/dist/api/issues.d.ts +380 -0
- package/dist/api/issues.js +4 -0
- package/dist/api/issues.js.map +10 -0
- package/dist/api/organizations.d.ts +140 -0
- package/dist/api/organizations.js +4 -0
- package/dist/api/organizations.js.map +10 -0
- package/dist/api/pulls.d.ts +517 -0
- package/dist/api/pulls.js +4 -0
- package/dist/api/pulls.js.map +10 -0
- package/dist/api/releases.d.ts +400 -0
- package/dist/api/releases.js +4 -0
- package/dist/api/releases.js.map +10 -0
- package/dist/api/repositories.d.ts +502 -0
- package/dist/api/repositories.js +4 -0
- package/dist/api/repositories.js.map +10 -0
- package/dist/api/stars.d.ts +328 -0
- package/dist/api/stars.js +4 -0
- package/dist/api/stars.js.map +10 -0
- package/dist/api/teams.d.ts +287 -0
- package/dist/api/teams.js +4 -0
- package/dist/api/teams.js.map +10 -0
- package/dist/api/users.d.ts +244 -0
- package/dist/api/users.js +4 -0
- package/dist/api/users.js.map +10 -0
- package/dist/client.d.ts +122 -0
- package/dist/client.js +4 -0
- package/dist/client.js.map +10 -0
- package/dist/enums.d.ts +57 -0
- package/dist/enums.js +4 -0
- package/dist/enums.js.map +10 -0
- package/dist/errors.d.ts +78 -0
- package/dist/errors.js +4 -0
- package/dist/errors.js.map +10 -0
- package/dist/index.d.ts +1801 -453
- package/dist/index.js +3 -1
- package/dist/index.js.map +10 -0
- package/dist/types.d.ts +1256 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +9 -0
- package/dist/utils.d.ts +39 -0
- package/dist/utils.js +3 -0
- package/dist/utils.js.map +10 -0
- package/package.json +99 -7
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Интерфейс Git-ссылки (reference)
|
|
3
|
+
*/
|
|
4
|
+
interface Reference {
|
|
5
|
+
/** Имя ссылки (например, refs/heads/main) */
|
|
6
|
+
ref: string;
|
|
7
|
+
/** Node ID */
|
|
8
|
+
node_id?: string;
|
|
9
|
+
/** API-ссылка */
|
|
10
|
+
url: string;
|
|
11
|
+
/** Объект, на который указывает ссылка */
|
|
12
|
+
object: {
|
|
13
|
+
type: string
|
|
14
|
+
sha: string
|
|
15
|
+
url: string
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Параметры для создания Git-ссылки
|
|
20
|
+
*/
|
|
21
|
+
interface CreateRefParams {
|
|
22
|
+
/** Имя ссылки (например, refs/heads/feature-branch) */
|
|
23
|
+
ref: string;
|
|
24
|
+
/** SHA-хеш коммита */
|
|
25
|
+
sha: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Интерфейс Git-дерева
|
|
29
|
+
*/
|
|
30
|
+
interface Tree {
|
|
31
|
+
/** SHA-хеш дерева */
|
|
32
|
+
sha: string;
|
|
33
|
+
/** API-ссылка на дерево */
|
|
34
|
+
url: string;
|
|
35
|
+
/** Список записей в дереве */
|
|
36
|
+
tree: TreeEntry[];
|
|
37
|
+
/** Обрезано ли дерево */
|
|
38
|
+
truncated: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Интерфейс записи в Git-дереве
|
|
42
|
+
*/
|
|
43
|
+
interface TreeEntry {
|
|
44
|
+
/** Путь к файлу/директории */
|
|
45
|
+
path: string;
|
|
46
|
+
/** Режим доступа */
|
|
47
|
+
mode: string;
|
|
48
|
+
/** Тип объекта */
|
|
49
|
+
type: "blob" | "tree" | "commit";
|
|
50
|
+
/** SHA-хеш объекта */
|
|
51
|
+
sha: string;
|
|
52
|
+
/** Размер (для blob) */
|
|
53
|
+
size?: number;
|
|
54
|
+
/** URL объекта */
|
|
55
|
+
url: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Параметры для создания Git-дерева
|
|
59
|
+
*/
|
|
60
|
+
interface CreateTreeParams {
|
|
61
|
+
/** Список записей дерева */
|
|
62
|
+
tree: Array<{
|
|
63
|
+
path: string
|
|
64
|
+
mode: "100644" | "100755" | "040000" | "160000" | "120000"
|
|
65
|
+
type: "blob" | "tree" | "commit"
|
|
66
|
+
sha?: string
|
|
67
|
+
content?: string
|
|
68
|
+
}>;
|
|
69
|
+
/** SHA-хеш базового дерева */
|
|
70
|
+
base_tree?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Предупреждение об устаревшей версии API
|
|
74
|
+
*/
|
|
75
|
+
declare class ApiVersionWarning {
|
|
76
|
+
/** Текущая используемая версия */
|
|
77
|
+
readonly currentVersion: string;
|
|
78
|
+
/** Последняя доступная версия */
|
|
79
|
+
readonly latestVersion: string;
|
|
80
|
+
/** Дата вывода из эксплуатации */
|
|
81
|
+
readonly decommissioning?: string;
|
|
82
|
+
constructor(currentVersion: string, latestVersion: string, decommissioning?: string);
|
|
83
|
+
/**
|
|
84
|
+
* Возвращает сообщение о предупреждении
|
|
85
|
+
*/
|
|
86
|
+
getMessage(): string;
|
|
87
|
+
}
|
|
88
|
+
declare const HTTPMethods: {
|
|
89
|
+
readonly DELETE: "DELETE"
|
|
90
|
+
readonly GET: "GET"
|
|
91
|
+
readonly PATCH: "PATCH"
|
|
92
|
+
readonly POST: "POST"
|
|
93
|
+
readonly PUT: "PUT"
|
|
94
|
+
};
|
|
95
|
+
type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
|
|
96
|
+
/**
|
|
97
|
+
* Параметры для конфигурации GitVerse клиента
|
|
98
|
+
*/
|
|
99
|
+
interface GitVerseClientConfig {
|
|
100
|
+
/**
|
|
101
|
+
* Базовый URL API GitVerse
|
|
102
|
+
* @default 'https://api.gitverse.ru'
|
|
103
|
+
*/
|
|
104
|
+
baseUrl?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Токен доступа для авторизации в API
|
|
107
|
+
*/
|
|
108
|
+
token?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Версия API
|
|
111
|
+
* @default '1'
|
|
112
|
+
*/
|
|
113
|
+
apiVersion?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Основной класс для работы с GitVerse API
|
|
117
|
+
*/
|
|
118
|
+
declare class GitVerseClient {
|
|
119
|
+
private baseUrl;
|
|
120
|
+
private token?;
|
|
121
|
+
private apiVersion;
|
|
122
|
+
/**
|
|
123
|
+
* Callback для обработки предупреждений об устаревшей версии API
|
|
124
|
+
*/
|
|
125
|
+
onApiVersionWarning?: (warning: ApiVersionWarning) => void;
|
|
126
|
+
/**
|
|
127
|
+
* Создает новый экземпляр GitVerse клиента
|
|
128
|
+
* @param config Конфигурация клиента
|
|
129
|
+
*/
|
|
130
|
+
constructor(config?: GitVerseClientConfig);
|
|
131
|
+
/**
|
|
132
|
+
* Устанавливает токен авторизации
|
|
133
|
+
* @param token Токен доступа
|
|
134
|
+
*/
|
|
135
|
+
setToken(token: string): void;
|
|
136
|
+
/**
|
|
137
|
+
* Извлекает информацию о Rate Limit из заголовков ответа
|
|
138
|
+
*/
|
|
139
|
+
private extractRateLimitInfo;
|
|
140
|
+
/**
|
|
141
|
+
* Извлекает информацию о версии API из заголовков ответа
|
|
142
|
+
*/
|
|
143
|
+
private extractApiVersionInfo;
|
|
144
|
+
/**
|
|
145
|
+
* Извлекает метаданные из заголовков ответа
|
|
146
|
+
*/
|
|
147
|
+
private extractMetadata;
|
|
148
|
+
/**
|
|
149
|
+
* Выполняет API-запрос с учетом авторизации и версии API
|
|
150
|
+
* @param path Путь к API-ресурсу
|
|
151
|
+
* @param method HTTP-метод
|
|
152
|
+
* @param body Тело запроса (опционально)
|
|
153
|
+
* @returns Ответ от API
|
|
154
|
+
* @throws {RateLimitError} При превышении лимита запросов (429)
|
|
155
|
+
* @throws {GitVerseApiError} При других ошибках API
|
|
156
|
+
*/
|
|
157
|
+
request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
|
|
158
|
+
/**
|
|
159
|
+
* Выполняет GET-запрос
|
|
160
|
+
* @param path Путь к API-ресурсу
|
|
161
|
+
* @returns Ответ от API
|
|
162
|
+
*/
|
|
163
|
+
get<T>(path: string): Promise<T>;
|
|
164
|
+
/**
|
|
165
|
+
* Выполняет POST-запрос
|
|
166
|
+
* @param path Путь к API-ресурсу
|
|
167
|
+
* @param body Тело запроса
|
|
168
|
+
* @returns Ответ от API
|
|
169
|
+
*/
|
|
170
|
+
post<T>(path: string, body?: unknown): Promise<T>;
|
|
171
|
+
/**
|
|
172
|
+
* Выполняет PUT-запрос
|
|
173
|
+
* @param path Путь к API-ресурсу
|
|
174
|
+
* @param body Тело запроса
|
|
175
|
+
* @returns Ответ от API
|
|
176
|
+
*/
|
|
177
|
+
put<T>(path: string, body?: unknown): Promise<T>;
|
|
178
|
+
/**
|
|
179
|
+
* Выполняет DELETE-запрос
|
|
180
|
+
* @param path Путь к API-ресурсу
|
|
181
|
+
* @param body Тело запроса (опционально)
|
|
182
|
+
* @returns Ответ от API
|
|
183
|
+
*/
|
|
184
|
+
delete<T>(path: string, body?: unknown): Promise<T>;
|
|
185
|
+
/**
|
|
186
|
+
* Выполняет PATCH-запрос
|
|
187
|
+
* @param path Путь к API-ресурсу
|
|
188
|
+
* @param body Тело запроса
|
|
189
|
+
* @returns Ответ от API
|
|
190
|
+
*/
|
|
191
|
+
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* API для работы с низкоуровневыми Git-объектами
|
|
195
|
+
*/
|
|
196
|
+
declare class GitApi {
|
|
197
|
+
private client;
|
|
198
|
+
/**
|
|
199
|
+
* Создает новый экземпляр API для работы с Git-объектами
|
|
200
|
+
* @param client GitVerse клиент
|
|
201
|
+
*/
|
|
202
|
+
constructor(client: GitVerseClient);
|
|
203
|
+
/**
|
|
204
|
+
* Создает новую Git-ссылку (reference)
|
|
205
|
+
* @param owner Владелец репозитория
|
|
206
|
+
* @param repo Название репозитория
|
|
207
|
+
* @param params Параметры создания ссылки
|
|
208
|
+
* @returns Созданная ссылка
|
|
209
|
+
*/
|
|
210
|
+
createRef(owner: string, repo: string, params: CreateRefParams): Promise<Reference>;
|
|
211
|
+
/**
|
|
212
|
+
* Создает новое Git-дерево
|
|
213
|
+
* @param owner Владелец репозитория
|
|
214
|
+
* @param repo Название репозитория
|
|
215
|
+
* @param params Параметры создания дерева
|
|
216
|
+
* @returns Созданное дерево
|
|
217
|
+
*/
|
|
218
|
+
createTree(owner: string, repo: string, params: CreateTreeParams): Promise<Tree>;
|
|
219
|
+
/**
|
|
220
|
+
* Получает Git-дерево по SHA
|
|
221
|
+
* @param owner Владелец репозитория
|
|
222
|
+
* @param repo Название репозитория
|
|
223
|
+
* @param sha SHA-хеш дерева
|
|
224
|
+
* @returns Информация о дереве
|
|
225
|
+
*/
|
|
226
|
+
getTree(owner: string, repo: string, sha: string): Promise<Tree>;
|
|
227
|
+
}
|
|
228
|
+
export { GitApi };
|
package/dist/api/git.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
class g{client;constructor(b){this.client=b}createRef(b,d,f){return this.client.post(`/repos/${b}/${d}/git/refs`,f)}createTree(b,d,f){return this.client.post(`/repos/${b}/${d}/git/trees`,f)}getTree(b,d,f){return this.client.get(`/repos/${b}/${d}/git/trees/${f}`)}}export{g as GitApi};
|
|
2
|
+
export{g as k};
|
|
3
|
+
|
|
4
|
+
//# debugId=D2B0CB1C080336A564756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/api/git.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import type { GitVerseClient } from \"../client\";\nimport type { CreateRefParams, CreateTreeParams, Reference, Tree } from \"../types\";\n\n/**\n * API для работы с низкоуровневыми Git-объектами\n */\nexport class GitApi {\n private client: GitVerseClient;\n\n /**\n * Создает новый экземпляр API для работы с Git-объектами\n * @param client GitVerse клиент\n */\n constructor(client: GitVerseClient) {\n this.client = client;\n }\n\n /**\n * Создает новую Git-ссылку (reference)\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param params Параметры создания ссылки\n * @returns Созданная ссылка\n */\n createRef(owner: string, repo: string, params: CreateRefParams): Promise<Reference> {\n return this.client.post<Reference>(`/repos/${owner}/${repo}/git/refs`, params);\n }\n\n /**\n * Создает новое Git-дерево\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param params Параметры создания дерева\n * @returns Созданное дерево\n */\n createTree(owner: string, repo: string, params: CreateTreeParams): Promise<Tree> {\n return this.client.post<Tree>(`/repos/${owner}/${repo}/git/trees`, params);\n }\n\n /**\n * Получает Git-дерево по SHA\n * @param owner Владелец репозитория\n * @param repo Название репозитория\n * @param sha SHA-хеш дерева\n * @returns Информация о дереве\n */\n getTree(owner: string, repo: string, sha: string): Promise<Tree> {\n return this.client.get<Tree>(`/repos/${owner}/${repo}/git/trees/${sha}`);\n }\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "AAMO,MAAM,CAAO,CACV,OAMR,WAAW,CAAC,EAAwB,CAClC,KAAK,OAAS,EAUhB,SAAS,CAAC,EAAe,EAAc,EAA6C,CAClF,OAAO,KAAK,OAAO,KAAgB,UAAU,KAAS,aAAiB,CAAM,EAU/E,UAAU,CAAC,EAAe,EAAc,EAAyC,CAC/E,OAAO,KAAK,OAAO,KAAW,UAAU,KAAS,cAAkB,CAAM,EAU3E,OAAO,CAAC,EAAe,EAAc,EAA4B,CAC/D,OAAO,KAAK,OAAO,IAAU,UAAU,KAAS,eAAkB,GAAK,EAE3E",
|
|
8
|
+
"debugId": "D2B0CB1C080336A564756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Типы пользователей в системе
|
|
3
|
+
*/
|
|
4
|
+
declare const UserType: {
|
|
5
|
+
readonly Organization: "Organization"
|
|
6
|
+
readonly User: "User"
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Тип для типов пользователей
|
|
10
|
+
*/
|
|
11
|
+
type UserType = (typeof UserType)[keyof typeof UserType];
|
|
12
|
+
/**
|
|
13
|
+
* Типы видимости для репозиториев и пользователей
|
|
14
|
+
*/
|
|
15
|
+
declare const VisibilityType: {
|
|
16
|
+
readonly Limited: "limited"
|
|
17
|
+
readonly Private: "private"
|
|
18
|
+
readonly Public: "public"
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Тип для типов видимости
|
|
22
|
+
*/
|
|
23
|
+
type VisibilityType = (typeof VisibilityType)[keyof typeof VisibilityType];
|
|
24
|
+
/**
|
|
25
|
+
* Состояния issue
|
|
26
|
+
*/
|
|
27
|
+
declare const IssueState: {
|
|
28
|
+
readonly Closed: "closed"
|
|
29
|
+
readonly Open: "open"
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Тип для состояний issue
|
|
33
|
+
*/
|
|
34
|
+
type IssueState = (typeof IssueState)[keyof typeof IssueState];
|
|
35
|
+
/**
|
|
36
|
+
* Интерфейс пользователя
|
|
37
|
+
*/
|
|
38
|
+
interface User2 {
|
|
39
|
+
/** Уникальный идентификатор пользователя */
|
|
40
|
+
id: number;
|
|
41
|
+
/** Имя пользователя */
|
|
42
|
+
name?: string;
|
|
43
|
+
/** Логин пользователя */
|
|
44
|
+
login: string;
|
|
45
|
+
/** Полное имя пользователя */
|
|
46
|
+
full_name?: string;
|
|
47
|
+
/** Тип аккаунта: пользователь или организация */
|
|
48
|
+
type: UserType;
|
|
49
|
+
/** Биография пользователя */
|
|
50
|
+
bio?: string;
|
|
51
|
+
/** Электронная почта пользователя */
|
|
52
|
+
email?: string;
|
|
53
|
+
/** URL аватара пользователя */
|
|
54
|
+
avatar_url: string;
|
|
55
|
+
/** Веб-ссылка на профиль пользователя */
|
|
56
|
+
html_url: string;
|
|
57
|
+
/** API-ссылка на профиль пользователя */
|
|
58
|
+
url?: string;
|
|
59
|
+
/** API-ссылка на список подписчиков пользователя */
|
|
60
|
+
followers_url?: string;
|
|
61
|
+
/** API-ссылка на репозитории пользователя */
|
|
62
|
+
repos_url?: string;
|
|
63
|
+
/** API-ссылка на организации пользователя */
|
|
64
|
+
organizations_url?: string;
|
|
65
|
+
/** Права администратора */
|
|
66
|
+
site_admin: boolean;
|
|
67
|
+
/** Местоположение пользователя */
|
|
68
|
+
location?: string;
|
|
69
|
+
/** Верификация аккаунта */
|
|
70
|
+
is_verified?: boolean;
|
|
71
|
+
/** Настройки приватности профиля */
|
|
72
|
+
visibility?: VisibilityType;
|
|
73
|
+
/** Персональный веб-сайт */
|
|
74
|
+
website?: string;
|
|
75
|
+
/** Количество подписчиков */
|
|
76
|
+
followers?: number;
|
|
77
|
+
/** Количество подписок */
|
|
78
|
+
following?: number;
|
|
79
|
+
/** Количество публичных репозиториев */
|
|
80
|
+
public_repos?: number;
|
|
81
|
+
/** Количество репозиториев, отмеченных звездой */
|
|
82
|
+
stars_count?: number;
|
|
83
|
+
/** Дата создания аккаунта */
|
|
84
|
+
created_at: string;
|
|
85
|
+
/** Дата последнего обновления аккаунта */
|
|
86
|
+
updated_at?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Интерфейс метки (label) для issues и pull requests
|
|
90
|
+
*/
|
|
91
|
+
interface Label {
|
|
92
|
+
/** Идентификатор метки */
|
|
93
|
+
id: number;
|
|
94
|
+
/** Имя метки */
|
|
95
|
+
name: string;
|
|
96
|
+
/** Описание метки */
|
|
97
|
+
description?: string;
|
|
98
|
+
/** Цвет метки в формате HEX */
|
|
99
|
+
color: string;
|
|
100
|
+
/** URL метки */
|
|
101
|
+
url?: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Интерфейс майлстоуна (milestone)
|
|
105
|
+
*/
|
|
106
|
+
interface Milestone {
|
|
107
|
+
/** Идентификатор майлстоуна */
|
|
108
|
+
id: number;
|
|
109
|
+
/** Номер майлстоуна */
|
|
110
|
+
number: number;
|
|
111
|
+
/** Название майлстоуна */
|
|
112
|
+
title: string;
|
|
113
|
+
/** Описание майлстоуна */
|
|
114
|
+
description?: string;
|
|
115
|
+
/** Создатель майлстоуна */
|
|
116
|
+
creator: User2;
|
|
117
|
+
/** Состояние майлстоуна (open/closed) */
|
|
118
|
+
state: "open" | "closed";
|
|
119
|
+
/** Количество открытых задач */
|
|
120
|
+
open_issues: number;
|
|
121
|
+
/** Количество закрытых задач */
|
|
122
|
+
closed_issues: number;
|
|
123
|
+
/** Дата создания */
|
|
124
|
+
created_at: string;
|
|
125
|
+
/** Дата обновления */
|
|
126
|
+
updated_at: string;
|
|
127
|
+
/** Дата окончания (due date) */
|
|
128
|
+
due_on?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Интерфейс issue
|
|
132
|
+
*/
|
|
133
|
+
interface Issue {
|
|
134
|
+
/** Уникальный идентификатор issue */
|
|
135
|
+
id: number;
|
|
136
|
+
/** Номер issue в репозитории */
|
|
137
|
+
number: number;
|
|
138
|
+
/** Заголовок issue */
|
|
139
|
+
title: string;
|
|
140
|
+
/** Описание issue */
|
|
141
|
+
body?: string;
|
|
142
|
+
/** Состояние issue */
|
|
143
|
+
state: IssueState;
|
|
144
|
+
/** Пользователь, создавший issue */
|
|
145
|
+
user: User2;
|
|
146
|
+
/** Список меток */
|
|
147
|
+
labels: Label[];
|
|
148
|
+
/** Назначенные пользователи */
|
|
149
|
+
assignees?: User2[];
|
|
150
|
+
/** Дата создания */
|
|
151
|
+
created_at: string;
|
|
152
|
+
/** Дата обновления */
|
|
153
|
+
updated_at: string;
|
|
154
|
+
/** Дата закрытия */
|
|
155
|
+
closed_at?: string | null;
|
|
156
|
+
/** Количество комментариев */
|
|
157
|
+
comments: number;
|
|
158
|
+
/** Веб-ссылка на issue */
|
|
159
|
+
html_url: string;
|
|
160
|
+
/** API-ссылка на issue */
|
|
161
|
+
url: string;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Интерфейс комментария к issue или pull request
|
|
165
|
+
*/
|
|
166
|
+
interface Comment {
|
|
167
|
+
/** Уникальный идентификатор комментария */
|
|
168
|
+
id: number;
|
|
169
|
+
/** Текст комментария */
|
|
170
|
+
body: string;
|
|
171
|
+
/** Пользователь, создавший комментарий */
|
|
172
|
+
user: User2;
|
|
173
|
+
/** Дата создания */
|
|
174
|
+
created_at: string;
|
|
175
|
+
/** Дата обновления */
|
|
176
|
+
updated_at: string;
|
|
177
|
+
/** Веб-ссылка на комментарий */
|
|
178
|
+
html_url: string;
|
|
179
|
+
/** API-ссылка на комментарий */
|
|
180
|
+
url: string;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Интерфейс события в timeline issue
|
|
184
|
+
*/
|
|
185
|
+
interface TimelineEvent {
|
|
186
|
+
/** Уникальный идентификатор события */
|
|
187
|
+
id: number;
|
|
188
|
+
/** Тип события */
|
|
189
|
+
event: string;
|
|
190
|
+
/** Пользователь, вызвавший событие */
|
|
191
|
+
actor: User2;
|
|
192
|
+
/** Дата создания события */
|
|
193
|
+
created_at: string;
|
|
194
|
+
/** Метка (для событий с метками) */
|
|
195
|
+
label?: Label;
|
|
196
|
+
/** Milestone (для событий с milestone) */
|
|
197
|
+
milestone?: Milestone;
|
|
198
|
+
/** Переименование (для событий переименования) */
|
|
199
|
+
rename?: {
|
|
200
|
+
from: string
|
|
201
|
+
to: string
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Предупреждение об устаревшей версии API
|
|
206
|
+
*/
|
|
207
|
+
declare class ApiVersionWarning {
|
|
208
|
+
/** Текущая используемая версия */
|
|
209
|
+
readonly currentVersion: string;
|
|
210
|
+
/** Последняя доступная версия */
|
|
211
|
+
readonly latestVersion: string;
|
|
212
|
+
/** Дата вывода из эксплуатации */
|
|
213
|
+
readonly decommissioning?: string;
|
|
214
|
+
constructor(currentVersion: string, latestVersion: string, decommissioning?: string);
|
|
215
|
+
/**
|
|
216
|
+
* Возвращает сообщение о предупреждении
|
|
217
|
+
*/
|
|
218
|
+
getMessage(): string;
|
|
219
|
+
}
|
|
220
|
+
declare const HTTPMethods: {
|
|
221
|
+
readonly DELETE: "DELETE"
|
|
222
|
+
readonly GET: "GET"
|
|
223
|
+
readonly PATCH: "PATCH"
|
|
224
|
+
readonly POST: "POST"
|
|
225
|
+
readonly PUT: "PUT"
|
|
226
|
+
};
|
|
227
|
+
type HTTPMethods = (typeof HTTPMethods)[keyof typeof HTTPMethods];
|
|
228
|
+
/**
|
|
229
|
+
* Параметры для конфигурации GitVerse клиента
|
|
230
|
+
*/
|
|
231
|
+
interface GitVerseClientConfig {
|
|
232
|
+
/**
|
|
233
|
+
* Базовый URL API GitVerse
|
|
234
|
+
* @default 'https://api.gitverse.ru'
|
|
235
|
+
*/
|
|
236
|
+
baseUrl?: string;
|
|
237
|
+
/**
|
|
238
|
+
* Токен доступа для авторизации в API
|
|
239
|
+
*/
|
|
240
|
+
token?: string;
|
|
241
|
+
/**
|
|
242
|
+
* Версия API
|
|
243
|
+
* @default '1'
|
|
244
|
+
*/
|
|
245
|
+
apiVersion?: string;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Основной класс для работы с GitVerse API
|
|
249
|
+
*/
|
|
250
|
+
declare class GitVerseClient {
|
|
251
|
+
private baseUrl;
|
|
252
|
+
private token?;
|
|
253
|
+
private apiVersion;
|
|
254
|
+
/**
|
|
255
|
+
* Callback для обработки предупреждений об устаревшей версии API
|
|
256
|
+
*/
|
|
257
|
+
onApiVersionWarning?: (warning: ApiVersionWarning) => void;
|
|
258
|
+
/**
|
|
259
|
+
* Создает новый экземпляр GitVerse клиента
|
|
260
|
+
* @param config Конфигурация клиента
|
|
261
|
+
*/
|
|
262
|
+
constructor(config?: GitVerseClientConfig);
|
|
263
|
+
/**
|
|
264
|
+
* Устанавливает токен авторизации
|
|
265
|
+
* @param token Токен доступа
|
|
266
|
+
*/
|
|
267
|
+
setToken(token: string): void;
|
|
268
|
+
/**
|
|
269
|
+
* Извлекает информацию о Rate Limit из заголовков ответа
|
|
270
|
+
*/
|
|
271
|
+
private extractRateLimitInfo;
|
|
272
|
+
/**
|
|
273
|
+
* Извлекает информацию о версии API из заголовков ответа
|
|
274
|
+
*/
|
|
275
|
+
private extractApiVersionInfo;
|
|
276
|
+
/**
|
|
277
|
+
* Извлекает метаданные из заголовков ответа
|
|
278
|
+
*/
|
|
279
|
+
private extractMetadata;
|
|
280
|
+
/**
|
|
281
|
+
* Выполняет API-запрос с учетом авторизации и версии API
|
|
282
|
+
* @param path Путь к API-ресурсу
|
|
283
|
+
* @param method HTTP-метод
|
|
284
|
+
* @param body Тело запроса (опционально)
|
|
285
|
+
* @returns Ответ от API
|
|
286
|
+
* @throws {RateLimitError} При превышении лимита запросов (429)
|
|
287
|
+
* @throws {GitVerseApiError} При других ошибках API
|
|
288
|
+
*/
|
|
289
|
+
request<T>(path: string, method: HTTPMethods, body?: unknown): Promise<T>;
|
|
290
|
+
/**
|
|
291
|
+
* Выполняет GET-запрос
|
|
292
|
+
* @param path Путь к API-ресурсу
|
|
293
|
+
* @returns Ответ от API
|
|
294
|
+
*/
|
|
295
|
+
get<T>(path: string): Promise<T>;
|
|
296
|
+
/**
|
|
297
|
+
* Выполняет POST-запрос
|
|
298
|
+
* @param path Путь к API-ресурсу
|
|
299
|
+
* @param body Тело запроса
|
|
300
|
+
* @returns Ответ от API
|
|
301
|
+
*/
|
|
302
|
+
post<T>(path: string, body?: unknown): Promise<T>;
|
|
303
|
+
/**
|
|
304
|
+
* Выполняет PUT-запрос
|
|
305
|
+
* @param path Путь к API-ресурсу
|
|
306
|
+
* @param body Тело запроса
|
|
307
|
+
* @returns Ответ от API
|
|
308
|
+
*/
|
|
309
|
+
put<T>(path: string, body?: unknown): Promise<T>;
|
|
310
|
+
/**
|
|
311
|
+
* Выполняет DELETE-запрос
|
|
312
|
+
* @param path Путь к API-ресурсу
|
|
313
|
+
* @param body Тело запроса (опционально)
|
|
314
|
+
* @returns Ответ от API
|
|
315
|
+
*/
|
|
316
|
+
delete<T>(path: string, body?: unknown): Promise<T>;
|
|
317
|
+
/**
|
|
318
|
+
* Выполняет PATCH-запрос
|
|
319
|
+
* @param path Путь к API-ресурсу
|
|
320
|
+
* @param body Тело запроса
|
|
321
|
+
* @returns Ответ от API
|
|
322
|
+
*/
|
|
323
|
+
patch<T>(path: string, body?: unknown): Promise<T>;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Класс для работы с issues репозитория
|
|
327
|
+
*/
|
|
328
|
+
declare class IssuesApi {
|
|
329
|
+
private client;
|
|
330
|
+
constructor(client: GitVerseClient);
|
|
331
|
+
/**
|
|
332
|
+
* Получить список issues репозитория
|
|
333
|
+
* @param {string} owner - Владелец репозитория
|
|
334
|
+
* @param {string} repo - Название репозитория
|
|
335
|
+
* @param {IssueState} [state] - Фильтр по состоянию issue
|
|
336
|
+
* @returns {Promise<Issue[]>} Массив issues
|
|
337
|
+
*/
|
|
338
|
+
list(owner: string, repo: string, state?: IssueState): Promise<Issue[]>;
|
|
339
|
+
/**
|
|
340
|
+
* Получить конкретный issue
|
|
341
|
+
* @param {string} owner - Владелец репозитория
|
|
342
|
+
* @param {string} repo - Название репозитория
|
|
343
|
+
* @param {number} index - Номер issue
|
|
344
|
+
* @returns {Promise<Issue>} Информация об issue
|
|
345
|
+
*/
|
|
346
|
+
get(owner: string, repo: string, index: number): Promise<Issue>;
|
|
347
|
+
/**
|
|
348
|
+
* Получить комментарий по ID
|
|
349
|
+
* @param {string} owner - Владелец репозитория
|
|
350
|
+
* @param {string} repo - Название репозитория
|
|
351
|
+
* @param {number} id - ID комментария
|
|
352
|
+
* @returns {Promise<Comment>} Информация о комментарии
|
|
353
|
+
*/
|
|
354
|
+
getComment(owner: string, repo: string, id: number): Promise<Comment>;
|
|
355
|
+
/**
|
|
356
|
+
* Получить список комментариев к issue
|
|
357
|
+
* @param {string} owner - Владелец репозитория
|
|
358
|
+
* @param {string} repo - Название репозитория
|
|
359
|
+
* @param {number} index - Номер issue
|
|
360
|
+
* @returns {Promise<Comment[]>} Массив комментариев
|
|
361
|
+
*/
|
|
362
|
+
getComments(owner: string, repo: string, index: number): Promise<Comment[]>;
|
|
363
|
+
/**
|
|
364
|
+
* Получить список меток issue
|
|
365
|
+
* @param {string} owner - Владелец репозитория
|
|
366
|
+
* @param {string} repo - Название репозитория
|
|
367
|
+
* @param {number} index - Номер issue
|
|
368
|
+
* @returns {Promise<Label[]>} Массив меток
|
|
369
|
+
*/
|
|
370
|
+
getLabels(owner: string, repo: string, index: number): Promise<Label[]>;
|
|
371
|
+
/**
|
|
372
|
+
* Получить timeline событий issue
|
|
373
|
+
* @param {string} owner - Владелец репозитория
|
|
374
|
+
* @param {string} repo - Название репозитория
|
|
375
|
+
* @param {number} index - Номер issue
|
|
376
|
+
* @returns {Promise<TimelineEvent[]>} Массив событий timeline
|
|
377
|
+
*/
|
|
378
|
+
getTimeline(owner: string, repo: string, index: number): Promise<TimelineEvent[]>;
|
|
379
|
+
}
|
|
380
|
+
export { IssuesApi };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
class A{client;constructor(c){this.client=c}list(c,h,f){let j=new URLSearchParams;if(f)j.append("state",f);let k=j.toString(),z=`/repos/${c}/${h}/issues${k?`?${k}`:""}`;return this.client.get(z)}get(c,h,f){return this.client.get(`/repos/${c}/${h}/issues/${f}`)}getComment(c,h,f){return this.client.get(`/repos/${c}/${h}/issues/comments/${f}`)}getComments(c,h,f){return this.client.get(`/repos/${c}/${h}/issues/${f}/comments`)}getLabels(c,h,f){return this.client.get(`/repos/${c}/${h}/issues/${f}/labels`)}getTimeline(c,h,f){return this.client.get(`/repos/${c}/${h}/issues/${f}/timeline`)}}export{A as IssuesApi};
|
|
2
|
+
export{A as e};
|
|
3
|
+
|
|
4
|
+
//# debugId=289B1FCE01AEA6F664756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/api/issues.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import type { GitVerseClient } from \"../client\";\nimport type { IssueState } from \"../enums\";\nimport type { Comment, Issue, Label, TimelineEvent } from \"../types\";\n\n/**\n * Класс для работы с issues репозитория\n */\nexport class IssuesApi {\n constructor(private client: GitVerseClient) {}\n\n /**\n * Получить список issues репозитория\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @param {IssueState} [state] - Фильтр по состоянию issue\n * @returns {Promise<Issue[]>} Массив issues\n */\n list(owner: string, repo: string, state?: IssueState): Promise<Issue[]> {\n const params = new URLSearchParams();\n if (state) {\n params.append(\"state\", state);\n }\n\n const queryString = params.toString();\n const url = `/repos/${owner}/${repo}/issues${queryString ? `?${queryString}` : \"\"}`;\n\n return this.client.get<Issue[]>(url);\n }\n\n /**\n * Получить конкретный issue\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @param {number} index - Номер issue\n * @returns {Promise<Issue>} Информация об issue\n */\n get(owner: string, repo: string, index: number): Promise<Issue> {\n return this.client.get<Issue>(`/repos/${owner}/${repo}/issues/${index}`);\n }\n\n /**\n * Получить комментарий по ID\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @param {number} id - ID комментария\n * @returns {Promise<Comment>} Информация о комментарии\n */\n getComment(owner: string, repo: string, id: number): Promise<Comment> {\n return this.client.get<Comment>(`/repos/${owner}/${repo}/issues/comments/${id}`);\n }\n\n /**\n * Получить список комментариев к issue\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @param {number} index - Номер issue\n * @returns {Promise<Comment[]>} Массив комментариев\n */\n getComments(owner: string, repo: string, index: number): Promise<Comment[]> {\n return this.client.get<Comment[]>(`/repos/${owner}/${repo}/issues/${index}/comments`);\n }\n\n /**\n * Получить список меток issue\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @param {number} index - Номер issue\n * @returns {Promise<Label[]>} Массив меток\n */\n getLabels(owner: string, repo: string, index: number): Promise<Label[]> {\n return this.client.get<Label[]>(`/repos/${owner}/${repo}/issues/${index}/labels`);\n }\n\n /**\n * Получить timeline событий issue\n * @param {string} owner - Владелец репозитория\n * @param {string} repo - Название репозитория\n * @param {number} index - Номер issue\n * @returns {Promise<TimelineEvent[]>} Массив событий timeline\n */\n getTimeline(owner: string, repo: string, index: number): Promise<TimelineEvent[]> {\n return this.client.get<TimelineEvent[]>(`/repos/${owner}/${repo}/issues/${index}/timeline`);\n }\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "AAOO,MAAM,CAAU,CACD,OAApB,WAAW,CAAS,EAAwB,CAAxB,cASpB,IAAI,CAAC,EAAe,EAAc,EAAsC,CACtE,IAAM,EAAS,IAAI,gBACnB,GAAI,EACF,EAAO,OAAO,QAAS,CAAK,EAG9B,IAAM,EAAc,EAAO,SAAS,EAC9B,EAAM,UAAU,KAAS,WAAc,EAAc,IAAI,IAAgB,KAE/E,OAAO,KAAK,OAAO,IAAa,CAAG,EAUrC,GAAG,CAAC,EAAe,EAAc,EAA+B,CAC9D,OAAO,KAAK,OAAO,IAAW,UAAU,KAAS,YAAe,GAAO,EAUzE,UAAU,CAAC,EAAe,EAAc,EAA8B,CACpE,OAAO,KAAK,OAAO,IAAa,UAAU,KAAS,qBAAwB,GAAI,EAUjF,WAAW,CAAC,EAAe,EAAc,EAAmC,CAC1E,OAAO,KAAK,OAAO,IAAe,UAAU,KAAS,YAAe,YAAgB,EAUtF,SAAS,CAAC,EAAe,EAAc,EAAiC,CACtE,OAAO,KAAK,OAAO,IAAa,UAAU,KAAS,YAAe,UAAc,EAUlF,WAAW,CAAC,EAAe,EAAc,EAAyC,CAChF,OAAO,KAAK,OAAO,IAAqB,UAAU,KAAS,YAAe,YAAgB,EAE9F",
|
|
8
|
+
"debugId": "289B1FCE01AEA6F664756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|