renovate 41.40.0 → 41.42.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/dist/config/options/index.js +25 -11
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/forgejo/index.d.ts +5 -0
- package/dist/config/presets/forgejo/index.js +43 -0
- package/dist/config/presets/forgejo/index.js.map +1 -0
- package/dist/config/presets/index.js +6 -4
- package/dist/config/presets/index.js.map +1 -1
- package/dist/config/presets/local/index.js +2 -0
- package/dist/config/presets/local/index.js.map +1 -1
- package/dist/config/presets/parse.js +4 -0
- package/dist/config/presets/parse.js.map +1 -1
- package/dist/constants/platforms.d.ts +2 -1
- package/dist/constants/platforms.js +8 -1
- package/dist/constants/platforms.js.map +1 -1
- package/dist/data/monorepo.json +1 -0
- package/dist/modules/datasource/api.js +4 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/forgejo-releases/index.d.ts +17 -0
- package/dist/modules/datasource/forgejo-releases/index.js +80 -0
- package/dist/modules/datasource/forgejo-releases/index.js.map +1 -0
- package/dist/modules/datasource/forgejo-releases/schema.d.ts +39 -0
- package/dist/modules/datasource/forgejo-releases/schema.js +14 -0
- package/dist/modules/datasource/forgejo-releases/schema.js.map +1 -0
- package/dist/modules/datasource/forgejo-tags/index.d.ts +21 -0
- package/dist/modules/datasource/forgejo-tags/index.js +96 -0
- package/dist/modules/datasource/forgejo-tags/index.js.map +1 -0
- package/dist/modules/datasource/forgejo-tags/schema.d.ts +65 -0
- package/dist/modules/datasource/forgejo-tags/schema.js +19 -0
- package/dist/modules/datasource/forgejo-tags/schema.js.map +1 -0
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/github-actions/extract.js +8 -2
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/platform/api.d.ts +1 -1
- package/dist/modules/platform/api.js +2 -0
- package/dist/modules/platform/api.js.map +1 -1
- package/dist/modules/platform/forgejo/forgejo-helper.d.ts +36 -0
- package/dist/modules/platform/forgejo/forgejo-helper.js +282 -0
- package/dist/modules/platform/forgejo/forgejo-helper.js.map +1 -0
- package/dist/modules/platform/forgejo/index.d.ts +6 -0
- package/dist/modules/platform/forgejo/index.js +749 -0
- package/dist/modules/platform/forgejo/index.js.map +1 -0
- package/dist/modules/platform/forgejo/pr-cache.d.ts +23 -0
- package/dist/modules/platform/forgejo/pr-cache.js +134 -0
- package/dist/modules/platform/forgejo/pr-cache.js.map +1 -0
- package/dist/modules/platform/forgejo/types.d.ts +185 -0
- package/dist/modules/platform/forgejo/types.js +3 -0
- package/dist/modules/platform/forgejo/types.js.map +1 -0
- package/dist/modules/platform/forgejo/utils.d.ts +20 -0
- package/dist/modules/platform/forgejo/utils.js +142 -0
- package/dist/modules/platform/forgejo/utils.js.map +1 -0
- package/dist/modules/platform/gitea/index.js +1 -0
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/scm.d.ts +1 -1
- package/dist/util/cache/package/namespaces.d.ts +1 -1
- package/dist/util/cache/package/namespaces.js +4 -0
- package/dist/util/cache/package/namespaces.js.map +1 -1
- package/dist/util/cache/repository/impl/base.d.ts +1 -1
- package/dist/util/cache/repository/types.d.ts +3 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/common.d.ts +1 -1
- package/dist/util/common.js +10 -3
- package/dist/util/common.js.map +1 -1
- package/dist/util/http/forgejo.d.ts +11 -0
- package/dist/util/http/forgejo.js +57 -0
- package/dist/util/http/forgejo.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/api.js +8 -6
- package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/forgejo/index.d.ts +4 -0
- package/dist/workers/repository/update/pr/changelog/forgejo/index.js +62 -0
- package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/forgejo/source.d.ts +8 -0
- package/dist/workers/repository/update/pr/changelog/forgejo/source.js +20 -0
- package/dist/workers/repository/update/pr/changelog/forgejo/source.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/release-notes.js +17 -12
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
- package/package.json +1 -1
- package/renovate-schema.json +1 -0
@@ -0,0 +1,282 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.renovateToForgejoStatusMapping = exports.forgejoToRenovateStatusMapping = exports.forgejoHttp = void 0;
|
4
|
+
exports.getCurrentUser = getCurrentUser;
|
5
|
+
exports.getVersion = getVersion;
|
6
|
+
exports.searchRepos = searchRepos;
|
7
|
+
exports.orgListRepos = orgListRepos;
|
8
|
+
exports.getRepo = getRepo;
|
9
|
+
exports.getRepoContents = getRepoContents;
|
10
|
+
exports.createPR = createPR;
|
11
|
+
exports.updatePR = updatePR;
|
12
|
+
exports.closePR = closePR;
|
13
|
+
exports.mergePR = mergePR;
|
14
|
+
exports.getPR = getPR;
|
15
|
+
exports.getPRByBranch = getPRByBranch;
|
16
|
+
exports.requestPrReviewers = requestPrReviewers;
|
17
|
+
exports.createIssue = createIssue;
|
18
|
+
exports.updateIssue = updateIssue;
|
19
|
+
exports.updateIssueLabels = updateIssueLabels;
|
20
|
+
exports.closeIssue = closeIssue;
|
21
|
+
exports.searchIssues = searchIssues;
|
22
|
+
exports.getIssue = getIssue;
|
23
|
+
exports.getRepoLabels = getRepoLabels;
|
24
|
+
exports.getOrgLabels = getOrgLabels;
|
25
|
+
exports.unassignLabel = unassignLabel;
|
26
|
+
exports.createComment = createComment;
|
27
|
+
exports.updateComment = updateComment;
|
28
|
+
exports.deleteComment = deleteComment;
|
29
|
+
exports.getComments = getComments;
|
30
|
+
exports.createCommitStatus = createCommitStatus;
|
31
|
+
exports.getCombinedCommitStatus = getCombinedCommitStatus;
|
32
|
+
exports.getBranch = getBranch;
|
33
|
+
const logger_1 = require("../../../logger");
|
34
|
+
const forgejo_1 = require("../../../util/http/forgejo");
|
35
|
+
const url_1 = require("../../../util/url");
|
36
|
+
const utils_1 = require("./utils");
|
37
|
+
exports.forgejoHttp = new forgejo_1.ForgejoHttp();
|
38
|
+
const urlEscape = (raw) => encodeURIComponent(raw);
|
39
|
+
const commitStatusStates = [
|
40
|
+
'unknown',
|
41
|
+
'success',
|
42
|
+
'pending',
|
43
|
+
'warning',
|
44
|
+
'failure',
|
45
|
+
'error',
|
46
|
+
];
|
47
|
+
async function getCurrentUser(options) {
|
48
|
+
const url = `${utils_1.API_PATH}/user`;
|
49
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
50
|
+
return res.body;
|
51
|
+
}
|
52
|
+
async function getVersion(options) {
|
53
|
+
const url = `${utils_1.API_PATH}/version`;
|
54
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
55
|
+
return res.body.version;
|
56
|
+
}
|
57
|
+
async function searchRepos(params, options) {
|
58
|
+
const query = (0, url_1.getQueryString)(params);
|
59
|
+
const url = `${utils_1.API_PATH}/repos/search?${query}`;
|
60
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, {
|
61
|
+
...options,
|
62
|
+
paginate: true,
|
63
|
+
});
|
64
|
+
if (!res.body.ok) {
|
65
|
+
throw new Error('Unable to search for repositories, ok flag has not been set');
|
66
|
+
}
|
67
|
+
return res.body.data;
|
68
|
+
}
|
69
|
+
async function orgListRepos(organization, options) {
|
70
|
+
const url = `${utils_1.API_PATH}/orgs/${organization}/repos`;
|
71
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, {
|
72
|
+
...options,
|
73
|
+
paginate: true,
|
74
|
+
});
|
75
|
+
return res.body;
|
76
|
+
}
|
77
|
+
async function getRepo(repoPath, options) {
|
78
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}`;
|
79
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
80
|
+
return res.body;
|
81
|
+
}
|
82
|
+
async function getRepoContents(repoPath, filePath, ref, options) {
|
83
|
+
const query = (0, url_1.getQueryString)(ref ? { ref } : {});
|
84
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/contents/${urlEscape(filePath)}?${query}`;
|
85
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
86
|
+
if (res.body.content) {
|
87
|
+
res.body.contentString = Buffer.from(res.body.content, 'base64').toString();
|
88
|
+
}
|
89
|
+
return res.body;
|
90
|
+
}
|
91
|
+
async function createPR(repoPath, params, options) {
|
92
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/pulls`;
|
93
|
+
const res = await exports.forgejoHttp.postJson(url, {
|
94
|
+
...options,
|
95
|
+
body: params,
|
96
|
+
});
|
97
|
+
return res.body;
|
98
|
+
}
|
99
|
+
async function updatePR(repoPath, idx, params, options) {
|
100
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/pulls/${idx}`;
|
101
|
+
const res = await exports.forgejoHttp.patchJson(url, {
|
102
|
+
...options,
|
103
|
+
body: params,
|
104
|
+
});
|
105
|
+
return res.body;
|
106
|
+
}
|
107
|
+
async function closePR(repoPath, idx, options) {
|
108
|
+
await updatePR(repoPath, idx, {
|
109
|
+
...options,
|
110
|
+
state: 'closed',
|
111
|
+
});
|
112
|
+
}
|
113
|
+
async function mergePR(repoPath, idx, params, options) {
|
114
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/pulls/${idx}/merge`;
|
115
|
+
await exports.forgejoHttp.postJson(url, {
|
116
|
+
...options,
|
117
|
+
body: params,
|
118
|
+
});
|
119
|
+
}
|
120
|
+
async function getPR(repoPath, idx, options) {
|
121
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/pulls/${idx}`;
|
122
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
123
|
+
return res.body;
|
124
|
+
}
|
125
|
+
async function getPRByBranch(repoPath, base, head, options) {
|
126
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/pulls/${base}/${head}`;
|
127
|
+
try {
|
128
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
129
|
+
return res.body;
|
130
|
+
}
|
131
|
+
catch (err) {
|
132
|
+
logger_1.logger.trace({ err }, 'Error while fetching PR');
|
133
|
+
if (err.statusCode !== 404) {
|
134
|
+
logger_1.logger.debug({ err }, 'Error while fetching PR');
|
135
|
+
}
|
136
|
+
return null;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
async function requestPrReviewers(repoPath, idx, params, options) {
|
140
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/pulls/${idx}/requested_reviewers`;
|
141
|
+
await exports.forgejoHttp.postJson(url, {
|
142
|
+
...options,
|
143
|
+
body: params,
|
144
|
+
});
|
145
|
+
}
|
146
|
+
async function createIssue(repoPath, params, options) {
|
147
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues`;
|
148
|
+
const res = await exports.forgejoHttp.postJson(url, {
|
149
|
+
...options,
|
150
|
+
body: params,
|
151
|
+
});
|
152
|
+
return res.body;
|
153
|
+
}
|
154
|
+
async function updateIssue(repoPath, idx, params, options) {
|
155
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues/${idx}`;
|
156
|
+
const res = await exports.forgejoHttp.patchJson(url, {
|
157
|
+
...options,
|
158
|
+
body: params,
|
159
|
+
});
|
160
|
+
return res.body;
|
161
|
+
}
|
162
|
+
async function updateIssueLabels(repoPath, idx, params, options) {
|
163
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues/${idx}/labels`;
|
164
|
+
const res = await exports.forgejoHttp.putJson(url, {
|
165
|
+
...options,
|
166
|
+
body: params,
|
167
|
+
});
|
168
|
+
return res.body;
|
169
|
+
}
|
170
|
+
async function closeIssue(repoPath, idx, options) {
|
171
|
+
await updateIssue(repoPath, idx, {
|
172
|
+
...options,
|
173
|
+
state: 'closed',
|
174
|
+
});
|
175
|
+
}
|
176
|
+
async function searchIssues(repoPath, params, options) {
|
177
|
+
const query = (0, url_1.getQueryString)({ ...params, type: 'issues' });
|
178
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues?${query}`;
|
179
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, {
|
180
|
+
...options,
|
181
|
+
paginate: true,
|
182
|
+
});
|
183
|
+
return res.body;
|
184
|
+
}
|
185
|
+
async function getIssue(repoPath, idx, options) {
|
186
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues/${idx}`;
|
187
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
188
|
+
return res.body;
|
189
|
+
}
|
190
|
+
async function getRepoLabels(repoPath, options) {
|
191
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/labels`;
|
192
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
193
|
+
return res.body;
|
194
|
+
}
|
195
|
+
async function getOrgLabels(orgName, options) {
|
196
|
+
const url = `${utils_1.API_PATH}/orgs/${orgName}/labels`;
|
197
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
198
|
+
return res.body;
|
199
|
+
}
|
200
|
+
async function unassignLabel(repoPath, issue, label, options) {
|
201
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues/${issue}/labels/${label}`;
|
202
|
+
await exports.forgejoHttp.deleteJson(url, options);
|
203
|
+
}
|
204
|
+
async function createComment(repoPath, issue, body, options) {
|
205
|
+
const params = { body };
|
206
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues/${issue}/comments`;
|
207
|
+
const res = await exports.forgejoHttp.postJson(url, {
|
208
|
+
...options,
|
209
|
+
body: params,
|
210
|
+
});
|
211
|
+
return res.body;
|
212
|
+
}
|
213
|
+
async function updateComment(repoPath, idx, body, options) {
|
214
|
+
const params = { body };
|
215
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues/comments/${idx}`;
|
216
|
+
const res = await exports.forgejoHttp.patchJson(url, {
|
217
|
+
...options,
|
218
|
+
body: params,
|
219
|
+
});
|
220
|
+
return res.body;
|
221
|
+
}
|
222
|
+
async function deleteComment(repoPath, idx, options) {
|
223
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues/comments/${idx}`;
|
224
|
+
await exports.forgejoHttp.deleteJson(url, options);
|
225
|
+
}
|
226
|
+
async function getComments(repoPath, issue, options) {
|
227
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/issues/${issue}/comments`;
|
228
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
229
|
+
return res.body;
|
230
|
+
}
|
231
|
+
async function createCommitStatus(repoPath, branchCommit, params, options) {
|
232
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/statuses/${branchCommit}`;
|
233
|
+
const res = await exports.forgejoHttp.postJson(url, {
|
234
|
+
...options,
|
235
|
+
body: params,
|
236
|
+
});
|
237
|
+
return res.body;
|
238
|
+
}
|
239
|
+
exports.forgejoToRenovateStatusMapping = {
|
240
|
+
unknown: 'yellow',
|
241
|
+
success: 'green',
|
242
|
+
pending: 'yellow',
|
243
|
+
warning: 'red',
|
244
|
+
failure: 'red',
|
245
|
+
error: 'red',
|
246
|
+
};
|
247
|
+
exports.renovateToForgejoStatusMapping = {
|
248
|
+
green: 'success',
|
249
|
+
yellow: 'pending',
|
250
|
+
red: 'failure',
|
251
|
+
};
|
252
|
+
function filterStatus(data) {
|
253
|
+
const ret = {};
|
254
|
+
for (const i of data) {
|
255
|
+
if (!ret[i.context] || ret[i.context].id < i.id) {
|
256
|
+
ret[i.context] = i;
|
257
|
+
}
|
258
|
+
}
|
259
|
+
return Object.values(ret);
|
260
|
+
}
|
261
|
+
async function getCombinedCommitStatus(repoPath, branchName, options) {
|
262
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/commits/${urlEscape(branchName)}/statuses`;
|
263
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, {
|
264
|
+
...options,
|
265
|
+
paginate: true,
|
266
|
+
});
|
267
|
+
let worstState = 0;
|
268
|
+
const statuses = filterStatus(res.body);
|
269
|
+
for (const cs of statuses) {
|
270
|
+
worstState = Math.max(worstState, commitStatusStates.indexOf(cs.status));
|
271
|
+
}
|
272
|
+
return {
|
273
|
+
worstStatus: commitStatusStates[worstState],
|
274
|
+
statuses,
|
275
|
+
};
|
276
|
+
}
|
277
|
+
async function getBranch(repoPath, branchName, options) {
|
278
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/branches/${urlEscape(branchName)}`;
|
279
|
+
const res = await exports.forgejoHttp.getJsonUnchecked(url, options);
|
280
|
+
return res.body;
|
281
|
+
}
|
282
|
+
//# sourceMappingURL=forgejo-helper.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"forgejo-helper.js","sourceRoot":"","sources":["../../../../lib/modules/platform/forgejo/forgejo-helper.ts"],"names":[],"mappings":";;;AA6CA,wCAMC;AAED,gCASC;AAED,kCAkBC;AAED,oCAWC;AAED,0BAOC;AAED,0CAiBC;AAED,4BAYC;AAED,4BAaC;AAED,0BASC;AAED,0BAWC;AAED,sBAQC;AAED,sCAiBC;AAED,gDAWC;AAED,kCAYC;AAED,kCAaC;AAED,8CAaC;AAED,gCASC;AAED,oCAaC;AAED,4BAQC;AAED,sCAQC;AAED,oCAQC;AAED,sCAQC;AAED,sCAcC;AAED,sCAcC;AAED,sCAOC;AAED,kCASC;AAED,gDAaC;AAiCD,0DAuBC;AAED,8BASC;AA9cD,4CAAyC;AAGzC,wDAAyD;AACzD,2CAAmD;AA2BnD,mCAAmC;AAEtB,QAAA,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;AAE7C,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACnE,MAAM,kBAAkB,GAAuB;IAC7C,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,OAAO;CACR,CAAC;AAEK,KAAK,UAAU,cAAc,CAClC,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,OAAO,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAO,GAAG,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAC5C,GAAG,EACH,OAAO,CACR,CAAC;IACF,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1B,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,MAAwB,EACxB,OAA4B;IAE5B,MAAM,KAAK,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,GAAG,gBAAQ,iBAAiB,KAAK,EAAE,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAoB,GAAG,EAAE;QACrE,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,YAAoB,EACpB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,SAAS,YAAY,QAAQ,CAAC;IACrD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAS,GAAG,EAAE;QAC1D,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,QAAgB,EAChB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAO,GAAG,EAAE,OAAO,CAAC,CAAC;IACnE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,QAAgB,EAChB,GAAmB,EACnB,OAA4B;IAE5B,MAAM,KAAK,GAAG,IAAA,oBAAc,EAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,aAAa,SAAS,CAC7D,QAAQ,CACT,IAAI,KAAK,EAAE,CAAC;IACb,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAe,GAAG,EAAE,OAAO,CAAC,CAAC;IAE3E,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9E,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,MAAsB,EACtB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,QAAQ,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,QAAQ,CAAK,GAAG,EAAE;QAC9C,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,GAAW,EACX,MAAsB,EACtB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,UAAU,GAAG,EAAE,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,SAAS,CAAK,GAAG,EAAE;QAC/C,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,QAAgB,EAChB,GAAW,EACX,OAA4B;IAE5B,MAAM,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC5B,GAAG,OAAO;QACV,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,QAAgB,EAChB,GAAW,EACX,MAAqB,EACrB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,UAAU,GAAG,QAAQ,CAAC;IAC/D,MAAM,mBAAW,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC9B,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,KAAK,CACzB,QAAgB,EAChB,GAAW,EACX,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,UAAU,GAAG,EAAE,CAAC;IACzD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAK,GAAG,EAAE,OAAO,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,IAAY,EACZ,IAAY,EACZ,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAK,GAAG,EAAE,OAAO,CAAC,CAAC;QACjE,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3B,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,GAAW,EACX,MAAyB,EACzB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,UAAU,GAAG,sBAAsB,CAAC;IAC7E,MAAM,mBAAW,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC9B,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,MAAyB,EACzB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,SAAS,CAAC;IACnD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,QAAQ,CAAQ,GAAG,EAAE;QACjD,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,GAAW,EACX,MAAyB,EACzB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,WAAW,GAAG,EAAE,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,SAAS,CAAQ,GAAG,EAAE;QAClD,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,GAAW,EACX,MAA+B,EAC/B,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,WAAW,GAAG,SAAS,CAAC;IACjE,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,OAAO,CAAU,GAAG,EAAE;QAClD,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,GAAW,EACX,OAA4B;IAE5B,MAAM,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC/B,GAAG,OAAO;QACV,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,MAAyB,EACzB,OAA4B;IAE5B,MAAM,KAAK,GAAG,IAAA,oBAAc,EAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,WAAW,KAAK,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAU,GAAG,EAAE;QAC3D,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAC5B,QAAgB,EAChB,GAAW,EACX,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,WAAW,GAAG,EAAE,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAQ,GAAG,EAAE,OAAO,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,SAAS,CAAC;IACnD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAU,GAAG,EAAE,OAAO,CAAC,CAAC;IAEtE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,SAAS,OAAO,SAAS,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAU,GAAG,EAAE,OAAO,CAAC,CAAC;IAEtE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,KAAa,EACb,KAAa,EACb,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,WAAW,KAAK,WAAW,KAAK,EAAE,CAAC;IAC5E,MAAM,mBAAW,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,KAAa,EACb,IAAY,EACZ,OAA4B;IAE5B,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,WAAW,KAAK,WAAW,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,QAAQ,CAAU,GAAG,EAAE;QACnD,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,GAAW,EACX,IAAY,EACZ,OAA4B;IAE5B,MAAM,MAAM,GAAwB,EAAE,IAAI,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,oBAAoB,GAAG,EAAE,CAAC;IACnE,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,SAAS,CAAU,GAAG,EAAE;QACpD,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,GAAW,EACX,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,oBAAoB,GAAG,EAAE,CAAC;IACnE,MAAM,mBAAW,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,KAAa,EACb,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,WAAW,KAAK,WAAW,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAY,GAAG,EAAE,OAAO,CAAC,CAAC;IAExE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,YAAoB,EACpB,MAAgC,EAChC,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,aAAa,YAAY,EAAE,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,QAAQ,CAAe,GAAG,EAAE;QACxD,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;KACb,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAEY,QAAA,8BAA8B,GAGvC;IACF,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;CACb,CAAC;AAEW,QAAA,8BAA8B,GAGvC;IACF,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;CACf,CAAC;AAEF,SAAS,YAAY,CAAC,IAAoB;IACxC,MAAM,GAAG,GAAiC,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;YAChD,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAC3C,QAAgB,EAChB,UAAkB,EAClB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,YAAY,SAAS,CAC5D,UAAU,CACX,WAAW,CAAC;IACb,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAiB,GAAG,EAAE;QAClE,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO;QACL,WAAW,EAAE,kBAAkB,CAAC,UAAU,CAAC;QAC3C,QAAQ;KACT,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,UAAkB,EAClB,OAA4B;IAE5B,MAAM,GAAG,GAAG,GAAG,gBAAQ,UAAU,QAAQ,aAAa,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;IAC9E,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,gBAAgB,CAAS,GAAG,EAAE,OAAO,CAAC,CAAC;IAErE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC","sourcesContent":["import { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport type { ForgejoHttpOptions } from '../../../util/http/forgejo';\nimport { ForgejoHttp } from '../../../util/http/forgejo';\nimport { getQueryString } from '../../../util/url';\nimport type {\n Branch,\n CombinedCommitStatus,\n Comment,\n CommentCreateParams,\n CommentUpdateParams,\n CommitStatus,\n CommitStatusCreateParams,\n CommitStatusType,\n Issue,\n IssueCreateParams,\n IssueSearchParams,\n IssueUpdateLabelsParams,\n IssueUpdateParams,\n Label,\n PR,\n PRCreateParams,\n PRMergeParams,\n PRUpdateParams,\n PrReviewersParams,\n Repo,\n RepoContents,\n RepoSearchParams,\n RepoSearchResults,\n User,\n} from './types';\nimport { API_PATH } from './utils';\n\nexport const forgejoHttp = new ForgejoHttp();\n\nconst urlEscape = (raw: string): string => encodeURIComponent(raw);\nconst commitStatusStates: CommitStatusType[] = [\n 'unknown',\n 'success',\n 'pending',\n 'warning',\n 'failure',\n 'error',\n];\n\nexport async function getCurrentUser(\n options?: ForgejoHttpOptions,\n): Promise<User> {\n const url = `${API_PATH}/user`;\n const res = await forgejoHttp.getJsonUnchecked<User>(url, options);\n return res.body;\n}\n\nexport async function getVersion(\n options?: ForgejoHttpOptions,\n): Promise<string> {\n const url = `${API_PATH}/version`;\n const res = await forgejoHttp.getJsonUnchecked<{ version: string }>(\n url,\n options,\n );\n return res.body.version;\n}\n\nexport async function searchRepos(\n params: RepoSearchParams,\n options?: ForgejoHttpOptions,\n): Promise<Repo[]> {\n const query = getQueryString(params);\n const url = `${API_PATH}/repos/search?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<RepoSearchResults>(url, {\n ...options,\n paginate: true,\n });\n\n if (!res.body.ok) {\n throw new Error(\n 'Unable to search for repositories, ok flag has not been set',\n );\n }\n\n return res.body.data;\n}\n\nexport async function orgListRepos(\n organization: string,\n options?: ForgejoHttpOptions,\n): Promise<Repo[]> {\n const url = `${API_PATH}/orgs/${organization}/repos`;\n const res = await forgejoHttp.getJsonUnchecked<Repo[]>(url, {\n ...options,\n paginate: true,\n });\n\n return res.body;\n}\n\nexport async function getRepo(\n repoPath: string,\n options?: ForgejoHttpOptions,\n): Promise<Repo> {\n const url = `${API_PATH}/repos/${repoPath}`;\n const res = await forgejoHttp.getJsonUnchecked<Repo>(url, options);\n return res.body;\n}\n\nexport async function getRepoContents(\n repoPath: string,\n filePath: string,\n ref?: string | null,\n options?: ForgejoHttpOptions,\n): Promise<RepoContents> {\n const query = getQueryString(ref ? { ref } : {});\n const url = `${API_PATH}/repos/${repoPath}/contents/${urlEscape(\n filePath,\n )}?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<RepoContents>(url, options);\n\n if (res.body.content) {\n res.body.contentString = Buffer.from(res.body.content, 'base64').toString();\n }\n\n return res.body;\n}\n\nexport async function createPR(\n repoPath: string,\n params: PRCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls`;\n const res = await forgejoHttp.postJson<PR>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updatePR(\n repoPath: string,\n idx: number,\n params: PRUpdateParams,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}`;\n const res = await forgejoHttp.patchJson<PR>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function closePR(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n await updatePR(repoPath, idx, {\n ...options,\n state: 'closed',\n });\n}\n\nexport async function mergePR(\n repoPath: string,\n idx: number,\n params: PRMergeParams,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}/merge`;\n await forgejoHttp.postJson(url, {\n ...options,\n body: params,\n });\n}\n\nexport async function getPR(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<PR> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}`;\n const res = await forgejoHttp.getJsonUnchecked<PR>(url, options);\n return res.body;\n}\n\nexport async function getPRByBranch(\n repoPath: string,\n base: string,\n head: string,\n options?: ForgejoHttpOptions,\n): Promise<PR | null> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${base}/${head}`;\n try {\n const res = await forgejoHttp.getJsonUnchecked<PR>(url, options);\n return res.body;\n } catch (err) {\n logger.trace({ err }, 'Error while fetching PR');\n if (err.statusCode !== 404) {\n logger.debug({ err }, 'Error while fetching PR');\n }\n return null;\n }\n}\n\nexport async function requestPrReviewers(\n repoPath: string,\n idx: number,\n params: PrReviewersParams,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/pulls/${idx}/requested_reviewers`;\n await forgejoHttp.postJson(url, {\n ...options,\n body: params,\n });\n}\n\nexport async function createIssue(\n repoPath: string,\n params: IssueCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues`;\n const res = await forgejoHttp.postJson<Issue>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateIssue(\n repoPath: string,\n idx: number,\n params: IssueUpdateParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}`;\n const res = await forgejoHttp.patchJson<Issue>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateIssueLabels(\n repoPath: string,\n idx: number,\n params: IssueUpdateLabelsParams,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}/labels`;\n const res = await forgejoHttp.putJson<Label[]>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function closeIssue(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n await updateIssue(repoPath, idx, {\n ...options,\n state: 'closed',\n });\n}\n\nexport async function searchIssues(\n repoPath: string,\n params: IssueSearchParams,\n options?: ForgejoHttpOptions,\n): Promise<Issue[]> {\n const query = getQueryString({ ...params, type: 'issues' });\n const url = `${API_PATH}/repos/${repoPath}/issues?${query}`;\n const res = await forgejoHttp.getJsonUnchecked<Issue[]>(url, {\n ...options,\n paginate: true,\n });\n\n return res.body;\n}\n\nexport async function getIssue(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<Issue> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${idx}`;\n const res = await forgejoHttp.getJsonUnchecked<Issue>(url, options);\n return res.body;\n}\n\nexport async function getRepoLabels(\n repoPath: string,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/repos/${repoPath}/labels`;\n const res = await forgejoHttp.getJsonUnchecked<Label[]>(url, options);\n\n return res.body;\n}\n\nexport async function getOrgLabels(\n orgName: string,\n options?: ForgejoHttpOptions,\n): Promise<Label[]> {\n const url = `${API_PATH}/orgs/${orgName}/labels`;\n const res = await forgejoHttp.getJsonUnchecked<Label[]>(url, options);\n\n return res.body;\n}\n\nexport async function unassignLabel(\n repoPath: string,\n issue: number,\n label: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/labels/${label}`;\n await forgejoHttp.deleteJson(url, options);\n}\n\nexport async function createComment(\n repoPath: string,\n issue: number,\n body: string,\n options?: ForgejoHttpOptions,\n): Promise<Comment> {\n const params: CommentCreateParams = { body };\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/comments`;\n const res = await forgejoHttp.postJson<Comment>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function updateComment(\n repoPath: string,\n idx: number,\n body: string,\n options?: ForgejoHttpOptions,\n): Promise<Comment> {\n const params: CommentUpdateParams = { body };\n const url = `${API_PATH}/repos/${repoPath}/issues/comments/${idx}`;\n const res = await forgejoHttp.patchJson<Comment>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport async function deleteComment(\n repoPath: string,\n idx: number,\n options?: ForgejoHttpOptions,\n): Promise<void> {\n const url = `${API_PATH}/repos/${repoPath}/issues/comments/${idx}`;\n await forgejoHttp.deleteJson(url, options);\n}\n\nexport async function getComments(\n repoPath: string,\n issue: number,\n options?: ForgejoHttpOptions,\n): Promise<Comment[]> {\n const url = `${API_PATH}/repos/${repoPath}/issues/${issue}/comments`;\n const res = await forgejoHttp.getJsonUnchecked<Comment[]>(url, options);\n\n return res.body;\n}\n\nexport async function createCommitStatus(\n repoPath: string,\n branchCommit: string,\n params: CommitStatusCreateParams,\n options?: ForgejoHttpOptions,\n): Promise<CommitStatus> {\n const url = `${API_PATH}/repos/${repoPath}/statuses/${branchCommit}`;\n const res = await forgejoHttp.postJson<CommitStatus>(url, {\n ...options,\n body: params,\n });\n\n return res.body;\n}\n\nexport const forgejoToRenovateStatusMapping: Record<\n CommitStatusType,\n BranchStatus | null\n> = {\n unknown: 'yellow',\n success: 'green',\n pending: 'yellow',\n warning: 'red',\n failure: 'red',\n error: 'red',\n};\n\nexport const renovateToForgejoStatusMapping: Record<\n BranchStatus,\n CommitStatusType\n> = {\n green: 'success',\n yellow: 'pending',\n red: 'failure',\n};\n\nfunction filterStatus(data: CommitStatus[]): CommitStatus[] {\n const ret: Record<string, CommitStatus> = {};\n for (const i of data) {\n if (!ret[i.context] || ret[i.context].id < i.id) {\n ret[i.context] = i;\n }\n }\n return Object.values(ret);\n}\n\nexport async function getCombinedCommitStatus(\n repoPath: string,\n branchName: string,\n options?: ForgejoHttpOptions,\n): Promise<CombinedCommitStatus> {\n const url = `${API_PATH}/repos/${repoPath}/commits/${urlEscape(\n branchName,\n )}/statuses`;\n const res = await forgejoHttp.getJsonUnchecked<CommitStatus[]>(url, {\n ...options,\n paginate: true,\n });\n\n let worstState = 0;\n const statuses = filterStatus(res.body);\n for (const cs of statuses) {\n worstState = Math.max(worstState, commitStatusStates.indexOf(cs.status));\n }\n\n return {\n worstStatus: commitStatusStates[worstState],\n statuses,\n };\n}\n\nexport async function getBranch(\n repoPath: string,\n branchName: string,\n options?: ForgejoHttpOptions,\n): Promise<Branch> {\n const url = `${API_PATH}/repos/${repoPath}/branches/${urlEscape(branchName)}`;\n const res = await forgejoHttp.getJsonUnchecked<Branch>(url, options);\n\n return res.body;\n}\n"]}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import type { BranchStatus } from '../../../types';
|
2
|
+
import type { AutodiscoverConfig, BranchStatusConfig, CreatePRConfig, EnsureCommentConfig, EnsureIssueConfig, FindPRConfig, Issue, MergePRConfig, PlatformParams, PlatformResult, Pr, RepoParams, RepoResult, UpdatePrConfig } from '../types';
|
3
|
+
export declare const id = "forgejo";
|
4
|
+
export declare function resetPlatform(): void;
|
5
|
+
export declare function maxBodyLength(): number;
|
6
|
+
export declare const addAssignees: (number: number, assignees: string[]) => Promise<void>, addReviewers: (number: number, reviewers: string[]) => Promise<void>, createPr: (prConfig: CreatePRConfig) => Promise<Pr | null>, deleteLabel: (number: number, label: string) => Promise<void>, ensureComment: (ensureComment: EnsureCommentConfig) => Promise<boolean>, ensureCommentRemoval: (ensureCommentRemoval: import("../types").EnsureCommentRemovalConfigByTopic | import("../types").EnsureCommentRemovalConfigByContent) => Promise<void>, ensureIssue: (issueConfig: EnsureIssueConfig) => Promise<import("../types").EnsureIssueResult | null>, ensureIssueClosing: (title: string) => Promise<void>, findIssue: (title: string) => Promise<Issue | null>, findPr: (findPRConfig: FindPRConfig) => Promise<Pr | null>, getBranchPr: (branchName: string, targetBranch?: string) => Promise<Pr | null>, getBranchStatus: (branchName: string, internalChecksAsSuccess: boolean) => Promise<BranchStatus>, getBranchStatusCheck: (branchName: string, context: string | null | undefined) => Promise<BranchStatus | null>, getIssue: ((number: number, memCache?: boolean) => Promise<Issue | null>) | undefined, getRawFile: (fileName: string, repoName?: string, branchOrTag?: string) => Promise<string | null>, getJsonFile: (fileName: string, repoName?: string, branchOrTag?: string) => Promise<any>, getIssueList: () => Promise<Issue[]>, getPr: (number: number) => Promise<Pr | null>, massageMarkdown: (prBody: string, rebaseLabel?: string) => string, getPrList: () => Promise<Pr[]>, getRepos: (config?: AutodiscoverConfig) => Promise<string[]>, initPlatform: (config: PlatformParams) => Promise<PlatformResult>, initRepo: (config: RepoParams) => Promise<RepoResult>, mergePr: (config: MergePRConfig) => Promise<boolean>, setBranchStatus: (branchStatusConfig: BranchStatusConfig) => Promise<void>, updatePr: (prConfig: UpdatePrConfig) => Promise<void>;
|