1 | type Bitbucket = { |
2 | username: string; |
3 | password: string; |
4 | }; |
5 | |
6 | * Update a comment on a pull request |
7 | * Updates a specific pull request comment. |
8 | */ |
9 | export async function main( |
10 | auth: Bitbucket, |
11 | comment_id: string, |
12 | pull_request_id: string, |
13 | repo_slug: string, |
14 | workspace: string, |
15 | body: ({ type: string; [k: string]: unknown } & { |
16 | id?: number; |
17 | created_on?: string; |
18 | updated_on?: string; |
19 | content?: { |
20 | raw?: string; |
21 | markup?: "markdown" | "creole" | "plaintext"; |
22 | html?: string; |
23 | }; |
24 | user?: { type: string; [k: string]: unknown } & { |
25 | links?: { |
26 | avatar?: { href?: string; name?: string }; |
27 | [k: string]: unknown; |
28 | }; |
29 | created_on?: string; |
30 | display_name?: string; |
31 | username?: string; |
32 | uuid?: string; |
33 | [k: string]: unknown; |
34 | }; |
35 | deleted?: boolean; |
36 | parent?: unknown; |
37 | inline?: { from?: number; to?: number; path: string }; |
38 | links?: { |
39 | self?: { href?: string; name?: string }; |
40 | html?: { href?: string; name?: string }; |
41 | code?: { href?: string; name?: string }; |
42 | }; |
43 | [k: string]: unknown; |
44 | }) & { |
45 | pullrequest?: { type: string; [k: string]: unknown } & { |
46 | links?: { |
47 | self?: { href?: string; name?: string }; |
48 | html?: { href?: string; name?: string }; |
49 | commits?: { href?: string; name?: string }; |
50 | approve?: { href?: string; name?: string }; |
51 | diff?: { href?: string; name?: string }; |
52 | diffstat?: { href?: string; name?: string }; |
53 | comments?: { href?: string; name?: string }; |
54 | activity?: { href?: string; name?: string }; |
55 | merge?: { href?: string; name?: string }; |
56 | decline?: { href?: string; name?: string }; |
57 | }; |
58 | id?: number; |
59 | title?: string; |
60 | rendered?: { |
61 | title?: { |
62 | raw?: string; |
63 | markup?: "markdown" | "creole" | "plaintext"; |
64 | html?: string; |
65 | }; |
66 | description?: { |
67 | raw?: string; |
68 | markup?: "markdown" | "creole" | "plaintext"; |
69 | html?: string; |
70 | }; |
71 | reason?: { |
72 | raw?: string; |
73 | markup?: "markdown" | "creole" | "plaintext"; |
74 | html?: string; |
75 | }; |
76 | }; |
77 | summary?: { |
78 | raw?: string; |
79 | markup?: "markdown" | "creole" | "plaintext"; |
80 | html?: string; |
81 | }; |
82 | state?: "OPEN" | "MERGED" | "DECLINED" | "SUPERSEDED"; |
83 | author?: { type: string; [k: string]: unknown } & { |
84 | links?: { |
85 | avatar?: { href?: string; name?: string }; |
86 | [k: string]: unknown; |
87 | }; |
88 | created_on?: string; |
89 | display_name?: string; |
90 | username?: string; |
91 | uuid?: string; |
92 | [k: string]: unknown; |
93 | }; |
94 | source?: { |
95 | repository?: { type: string; [k: string]: unknown } & { |
96 | links?: { |
97 | self?: { href?: string; name?: string }; |
98 | html?: { href?: string; name?: string }; |
99 | avatar?: { href?: string; name?: string }; |
100 | pullrequests?: { href?: string; name?: string }; |
101 | commits?: { href?: string; name?: string }; |
102 | forks?: { href?: string; name?: string }; |
103 | watchers?: { href?: string; name?: string }; |
104 | downloads?: { href?: string; name?: string }; |
105 | clone?: { href?: string; name?: string }[]; |
106 | hooks?: { href?: string; name?: string }; |
107 | }; |
108 | uuid?: string; |
109 | full_name?: string; |
110 | is_private?: boolean; |
111 | parent?: unknown; |
112 | scm?: "git"; |
113 | owner?: { type: string; [k: string]: unknown } & { |
114 | links?: { |
115 | avatar?: { href?: string; name?: string }; |
116 | [k: string]: unknown; |
117 | }; |
118 | created_on?: string; |
119 | display_name?: string; |
120 | username?: string; |
121 | uuid?: string; |
122 | [k: string]: unknown; |
123 | }; |
124 | name?: string; |
125 | description?: string; |
126 | created_on?: string; |
127 | updated_on?: string; |
128 | size?: number; |
129 | language?: string; |
130 | has_issues?: boolean; |
131 | has_wiki?: boolean; |
132 | fork_policy?: "allow_forks" | "no_public_forks" | "no_forks"; |
133 | project?: { type: string; [k: string]: unknown } & { |
134 | links?: { |
135 | html?: { href?: string; name?: string }; |
136 | avatar?: { href?: string; name?: string }; |
137 | }; |
138 | uuid?: string; |
139 | key?: string; |
140 | owner?: ({ type: string; [k: string]: unknown } & { |
141 | links?: { |
142 | avatar?: { href?: string; name?: string }; |
143 | [k: string]: unknown; |
144 | }; |
145 | created_on?: string; |
146 | display_name?: string; |
147 | username?: string; |
148 | uuid?: string; |
149 | [k: string]: unknown; |
150 | }) & { |
151 | links?: { |
152 | avatar?: { href?: string; name?: string }; |
153 | [k: string]: unknown; |
154 | } & { |
155 | self?: { href?: string; name?: string }; |
156 | html?: { href?: string; name?: string }; |
157 | members?: { href?: string; name?: string }; |
158 | projects?: { href?: string; name?: string }; |
159 | repositories?: { href?: string; name?: string }; |
160 | [k: string]: unknown; |
161 | }; |
162 | [k: string]: unknown; |
163 | }; |
164 | name?: string; |
165 | description?: string; |
166 | is_private?: boolean; |
167 | created_on?: string; |
168 | updated_on?: string; |
169 | has_publicly_visible_repos?: boolean; |
170 | [k: string]: unknown; |
171 | }; |
172 | mainbranch?: { |
173 | type: string; |
174 | links?: { |
175 | self?: { href?: string; name?: string }; |
176 | commits?: { href?: string; name?: string }; |
177 | html?: { href?: string; name?: string }; |
178 | }; |
179 | name?: string; |
180 | target?: ({ type: string; [k: string]: unknown } & { |
181 | hash?: string; |
182 | date?: string; |
183 | author?: { type: string; [k: string]: unknown } & { |
184 | raw?: string; |
185 | user?: { type: string; [k: string]: unknown } & { |
186 | links?: { |
187 | avatar?: { href?: string; name?: string }; |
188 | [k: string]: unknown; |
189 | }; |
190 | created_on?: string; |
191 | display_name?: string; |
192 | username?: string; |
193 | uuid?: string; |
194 | [k: string]: unknown; |
195 | }; |
196 | [k: string]: unknown; |
197 | }; |
198 | message?: string; |
199 | summary?: { |
200 | raw?: string; |
201 | markup?: "markdown" | "creole" | "plaintext"; |
202 | html?: string; |
203 | }; |
204 | parents?: unknown[]; |
205 | [k: string]: unknown; |
206 | }) & { |
207 | repository?: unknown; |
208 | participants?: ({ type: string; [k: string]: unknown } & { |
209 | user?: { type: string; [k: string]: unknown } & { |
210 | links?: { |
211 | avatar?: { href?: string; name?: string }; |
212 | [k: string]: unknown; |
213 | }; |
214 | created_on?: string; |
215 | display_name?: string; |
216 | username?: string; |
217 | uuid?: string; |
218 | [k: string]: unknown; |
219 | }; |
220 | role?: "PARTICIPANT" | "REVIEWER"; |
221 | approved?: boolean; |
222 | state?: "approved" | "changes_requested" | null; |
223 | participated_on?: string; |
224 | [k: string]: unknown; |
225 | })[]; |
226 | [k: string]: unknown; |
227 | }; |
228 | [k: string]: unknown; |
229 | } & { |
230 | merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[]; |
231 | default_merge_strategy?: string; |
232 | [k: string]: unknown; |
233 | }; |
234 | [k: string]: unknown; |
235 | }; |
236 | branch?: { |
237 | name?: string; |
238 | merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[]; |
239 | default_merge_strategy?: string; |
240 | }; |
241 | commit?: { hash?: string }; |
242 | }; |
243 | destination?: { |
244 | repository?: { type: string; [k: string]: unknown } & { |
245 | links?: { |
246 | self?: { href?: string; name?: string }; |
247 | html?: { href?: string; name?: string }; |
248 | avatar?: { href?: string; name?: string }; |
249 | pullrequests?: { href?: string; name?: string }; |
250 | commits?: { href?: string; name?: string }; |
251 | forks?: { href?: string; name?: string }; |
252 | watchers?: { href?: string; name?: string }; |
253 | downloads?: { href?: string; name?: string }; |
254 | clone?: { href?: string; name?: string }[]; |
255 | hooks?: { href?: string; name?: string }; |
256 | }; |
257 | uuid?: string; |
258 | full_name?: string; |
259 | is_private?: boolean; |
260 | parent?: unknown; |
261 | scm?: "git"; |
262 | owner?: { type: string; [k: string]: unknown } & { |
263 | links?: { |
264 | avatar?: { href?: string; name?: string }; |
265 | [k: string]: unknown; |
266 | }; |
267 | created_on?: string; |
268 | display_name?: string; |
269 | username?: string; |
270 | uuid?: string; |
271 | [k: string]: unknown; |
272 | }; |
273 | name?: string; |
274 | description?: string; |
275 | created_on?: string; |
276 | updated_on?: string; |
277 | size?: number; |
278 | language?: string; |
279 | has_issues?: boolean; |
280 | has_wiki?: boolean; |
281 | fork_policy?: "allow_forks" | "no_public_forks" | "no_forks"; |
282 | project?: { type: string; [k: string]: unknown } & { |
283 | links?: { |
284 | html?: { href?: string; name?: string }; |
285 | avatar?: { href?: string; name?: string }; |
286 | }; |
287 | uuid?: string; |
288 | key?: string; |
289 | owner?: ({ type: string; [k: string]: unknown } & { |
290 | links?: { |
291 | avatar?: { href?: string; name?: string }; |
292 | [k: string]: unknown; |
293 | }; |
294 | created_on?: string; |
295 | display_name?: string; |
296 | username?: string; |
297 | uuid?: string; |
298 | [k: string]: unknown; |
299 | }) & { |
300 | links?: { |
301 | avatar?: { href?: string; name?: string }; |
302 | [k: string]: unknown; |
303 | } & { |
304 | self?: { href?: string; name?: string }; |
305 | html?: { href?: string; name?: string }; |
306 | members?: { href?: string; name?: string }; |
307 | projects?: { href?: string; name?: string }; |
308 | repositories?: { href?: string; name?: string }; |
309 | [k: string]: unknown; |
310 | }; |
311 | [k: string]: unknown; |
312 | }; |
313 | name?: string; |
314 | description?: string; |
315 | is_private?: boolean; |
316 | created_on?: string; |
317 | updated_on?: string; |
318 | has_publicly_visible_repos?: boolean; |
319 | [k: string]: unknown; |
320 | }; |
321 | mainbranch?: { |
322 | type: string; |
323 | links?: { |
324 | self?: { href?: string; name?: string }; |
325 | commits?: { href?: string; name?: string }; |
326 | html?: { href?: string; name?: string }; |
327 | }; |
328 | name?: string; |
329 | target?: ({ type: string; [k: string]: unknown } & { |
330 | hash?: string; |
331 | date?: string; |
332 | author?: { type: string; [k: string]: unknown } & { |
333 | raw?: string; |
334 | user?: { type: string; [k: string]: unknown } & { |
335 | links?: { |
336 | avatar?: { href?: string; name?: string }; |
337 | [k: string]: unknown; |
338 | }; |
339 | created_on?: string; |
340 | display_name?: string; |
341 | username?: string; |
342 | uuid?: string; |
343 | [k: string]: unknown; |
344 | }; |
345 | [k: string]: unknown; |
346 | }; |
347 | message?: string; |
348 | summary?: { |
349 | raw?: string; |
350 | markup?: "markdown" | "creole" | "plaintext"; |
351 | html?: string; |
352 | }; |
353 | parents?: unknown[]; |
354 | [k: string]: unknown; |
355 | }) & { |
356 | repository?: unknown; |
357 | participants?: ({ type: string; [k: string]: unknown } & { |
358 | user?: { type: string; [k: string]: unknown } & { |
359 | links?: { |
360 | avatar?: { href?: string; name?: string }; |
361 | [k: string]: unknown; |
362 | }; |
363 | created_on?: string; |
364 | display_name?: string; |
365 | username?: string; |
366 | uuid?: string; |
367 | [k: string]: unknown; |
368 | }; |
369 | role?: "PARTICIPANT" | "REVIEWER"; |
370 | approved?: boolean; |
371 | state?: "approved" | "changes_requested" | null; |
372 | participated_on?: string; |
373 | [k: string]: unknown; |
374 | })[]; |
375 | [k: string]: unknown; |
376 | }; |
377 | [k: string]: unknown; |
378 | } & { |
379 | merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[]; |
380 | default_merge_strategy?: string; |
381 | [k: string]: unknown; |
382 | }; |
383 | [k: string]: unknown; |
384 | }; |
385 | branch?: { |
386 | name?: string; |
387 | merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[]; |
388 | default_merge_strategy?: string; |
389 | }; |
390 | commit?: { hash?: string }; |
391 | }; |
392 | merge_commit?: { hash?: string }; |
393 | comment_count?: number; |
394 | task_count?: number; |
395 | close_source_branch?: boolean; |
396 | closed_by?: { type: string; [k: string]: unknown } & { |
397 | links?: { |
398 | avatar?: { href?: string; name?: string }; |
399 | [k: string]: unknown; |
400 | }; |
401 | created_on?: string; |
402 | display_name?: string; |
403 | username?: string; |
404 | uuid?: string; |
405 | [k: string]: unknown; |
406 | }; |
407 | reason?: string; |
408 | created_on?: string; |
409 | updated_on?: string; |
410 | reviewers?: ({ type: string; [k: string]: unknown } & { |
411 | links?: { |
412 | avatar?: { href?: string; name?: string }; |
413 | [k: string]: unknown; |
414 | }; |
415 | created_on?: string; |
416 | display_name?: string; |
417 | username?: string; |
418 | uuid?: string; |
419 | [k: string]: unknown; |
420 | })[]; |
421 | participants?: ({ type: string; [k: string]: unknown } & { |
422 | user?: { type: string; [k: string]: unknown } & { |
423 | links?: { |
424 | avatar?: { href?: string; name?: string }; |
425 | [k: string]: unknown; |
426 | }; |
427 | created_on?: string; |
428 | display_name?: string; |
429 | username?: string; |
430 | uuid?: string; |
431 | [k: string]: unknown; |
432 | }; |
433 | role?: "PARTICIPANT" | "REVIEWER"; |
434 | approved?: boolean; |
435 | state?: "approved" | "changes_requested" | null; |
436 | participated_on?: string; |
437 | [k: string]: unknown; |
438 | })[]; |
439 | [k: string]: unknown; |
440 | }; |
441 | resolution?: { |
442 | type: string; |
443 | user?: { type: string; [k: string]: unknown } & { |
444 | links?: { |
445 | avatar?: { href?: string; name?: string }; |
446 | [k: string]: unknown; |
447 | }; |
448 | created_on?: string; |
449 | display_name?: string; |
450 | username?: string; |
451 | uuid?: string; |
452 | [k: string]: unknown; |
453 | }; |
454 | created_on?: string; |
455 | [k: string]: unknown; |
456 | }; |
457 | pending?: boolean; |
458 | [k: string]: unknown; |
459 | } |
460 | ) { |
461 | const url = new URL( |
462 | `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pullrequests/${pull_request_id}/comments/${comment_id}` |
463 | ); |
464 |
|
465 | const response = await fetch(url, { |
466 | method: "PUT", |
467 | headers: { |
468 | "Content-Type": "application/json", |
469 | Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`), |
470 | }, |
471 | body: JSON.stringify(body), |
472 | }); |
473 | if (!response.ok) { |
474 | const text = await response.text(); |
475 | throw new Error(`${response.status} ${text}`); |
476 | } |
477 | return await response.json(); |
478 | } |
479 |
|