1 | type Bitbucket = { |
2 | username: string; |
3 | password: string; |
4 | }; |
5 | |
6 | * Update a comment on an issue |
7 | * Updates the content of the specified issue comment. Note that only |
8 | the `content.raw` field can be modified. |
9 |
|
10 | ``` |
11 | $ curl https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/issues/42/comments/5728901 \ |
12 | -X PUT -u evzijst \ |
13 | -H 'Content-Type: application/json' \ |
14 | -d '{"content": {"raw": "Lorem ipsum."}' |
15 | ``` |
16 | */ |
17 | export async function main( |
18 | auth: Bitbucket, |
19 | comment_id: string, |
20 | issue_id: string, |
21 | repo_slug: string, |
22 | workspace: string, |
23 | body: ({ type: string; [k: string]: unknown } & { |
24 | id?: number; |
25 | created_on?: string; |
26 | updated_on?: string; |
27 | content?: { |
28 | raw?: string; |
29 | markup?: "markdown" | "creole" | "plaintext"; |
30 | html?: string; |
31 | }; |
32 | user?: { type: string; [k: string]: unknown } & { |
33 | links?: { |
34 | avatar?: { href?: string; name?: string }; |
35 | [k: string]: unknown; |
36 | }; |
37 | created_on?: string; |
38 | display_name?: string; |
39 | username?: string; |
40 | uuid?: string; |
41 | [k: string]: unknown; |
42 | }; |
43 | deleted?: boolean; |
44 | parent?: unknown; |
45 | inline?: { from?: number; to?: number; path: string }; |
46 | links?: { |
47 | self?: { href?: string; name?: string }; |
48 | html?: { href?: string; name?: string }; |
49 | code?: { href?: string; name?: string }; |
50 | }; |
51 | [k: string]: unknown; |
52 | }) & { |
53 | issue?: { type: string; [k: string]: unknown } & { |
54 | links?: { |
55 | self?: { href?: string; name?: string }; |
56 | html?: { href?: string; name?: string }; |
57 | comments?: { href?: string; name?: string }; |
58 | attachments?: { href?: string; name?: string }; |
59 | watch?: { href?: string; name?: string }; |
60 | vote?: { href?: string; name?: string }; |
61 | }; |
62 | id?: number; |
63 | repository?: { type: string; [k: string]: unknown } & { |
64 | links?: { |
65 | self?: { href?: string; name?: string }; |
66 | html?: { href?: string; name?: string }; |
67 | avatar?: { href?: string; name?: string }; |
68 | pullrequests?: { href?: string; name?: string }; |
69 | commits?: { href?: string; name?: string }; |
70 | forks?: { href?: string; name?: string }; |
71 | watchers?: { href?: string; name?: string }; |
72 | downloads?: { href?: string; name?: string }; |
73 | clone?: { href?: string; name?: string }[]; |
74 | hooks?: { href?: string; name?: string }; |
75 | }; |
76 | uuid?: string; |
77 | full_name?: string; |
78 | is_private?: boolean; |
79 | parent?: unknown; |
80 | scm?: "git"; |
81 | owner?: { type: string; [k: string]: unknown } & { |
82 | links?: { |
83 | avatar?: { href?: string; name?: string }; |
84 | [k: string]: unknown; |
85 | }; |
86 | created_on?: string; |
87 | display_name?: string; |
88 | username?: string; |
89 | uuid?: string; |
90 | [k: string]: unknown; |
91 | }; |
92 | name?: string; |
93 | description?: string; |
94 | created_on?: string; |
95 | updated_on?: string; |
96 | size?: number; |
97 | language?: string; |
98 | has_issues?: boolean; |
99 | has_wiki?: boolean; |
100 | fork_policy?: "allow_forks" | "no_public_forks" | "no_forks"; |
101 | project?: { type: string; [k: string]: unknown } & { |
102 | links?: { |
103 | html?: { href?: string; name?: string }; |
104 | avatar?: { href?: string; name?: string }; |
105 | }; |
106 | uuid?: string; |
107 | key?: string; |
108 | owner?: ({ type: string; [k: string]: unknown } & { |
109 | links?: { |
110 | avatar?: { href?: string; name?: string }; |
111 | [k: string]: unknown; |
112 | }; |
113 | created_on?: string; |
114 | display_name?: string; |
115 | username?: string; |
116 | uuid?: string; |
117 | [k: string]: unknown; |
118 | }) & { |
119 | links?: { |
120 | avatar?: { href?: string; name?: string }; |
121 | [k: string]: unknown; |
122 | } & { |
123 | self?: { href?: string; name?: string }; |
124 | html?: { href?: string; name?: string }; |
125 | members?: { href?: string; name?: string }; |
126 | projects?: { href?: string; name?: string }; |
127 | repositories?: { href?: string; name?: string }; |
128 | [k: string]: unknown; |
129 | }; |
130 | [k: string]: unknown; |
131 | }; |
132 | name?: string; |
133 | description?: string; |
134 | is_private?: boolean; |
135 | created_on?: string; |
136 | updated_on?: string; |
137 | has_publicly_visible_repos?: boolean; |
138 | [k: string]: unknown; |
139 | }; |
140 | mainbranch?: { |
141 | type: string; |
142 | links?: { |
143 | self?: { href?: string; name?: string }; |
144 | commits?: { href?: string; name?: string }; |
145 | html?: { href?: string; name?: string }; |
146 | }; |
147 | name?: string; |
148 | target?: ({ type: string; [k: string]: unknown } & { |
149 | hash?: string; |
150 | date?: string; |
151 | author?: { type: string; [k: string]: unknown } & { |
152 | raw?: string; |
153 | user?: { type: string; [k: string]: unknown } & { |
154 | links?: { |
155 | avatar?: { href?: string; name?: string }; |
156 | [k: string]: unknown; |
157 | }; |
158 | created_on?: string; |
159 | display_name?: string; |
160 | username?: string; |
161 | uuid?: string; |
162 | [k: string]: unknown; |
163 | }; |
164 | [k: string]: unknown; |
165 | }; |
166 | message?: string; |
167 | summary?: { |
168 | raw?: string; |
169 | markup?: "markdown" | "creole" | "plaintext"; |
170 | html?: string; |
171 | }; |
172 | parents?: unknown[]; |
173 | [k: string]: unknown; |
174 | }) & { |
175 | repository?: unknown; |
176 | participants?: ({ type: string; [k: string]: unknown } & { |
177 | user?: { type: string; [k: string]: unknown } & { |
178 | links?: { |
179 | avatar?: { href?: string; name?: string }; |
180 | [k: string]: unknown; |
181 | }; |
182 | created_on?: string; |
183 | display_name?: string; |
184 | username?: string; |
185 | uuid?: string; |
186 | [k: string]: unknown; |
187 | }; |
188 | role?: "PARTICIPANT" | "REVIEWER"; |
189 | approved?: boolean; |
190 | state?: "approved" | "changes_requested" | null; |
191 | participated_on?: string; |
192 | [k: string]: unknown; |
193 | })[]; |
194 | [k: string]: unknown; |
195 | }; |
196 | [k: string]: unknown; |
197 | } & { |
198 | merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[]; |
199 | default_merge_strategy?: string; |
200 | [k: string]: unknown; |
201 | }; |
202 | [k: string]: unknown; |
203 | }; |
204 | title?: string; |
205 | reporter?: { type: string; [k: string]: unknown } & { |
206 | links?: { |
207 | avatar?: { href?: string; name?: string }; |
208 | [k: string]: unknown; |
209 | }; |
210 | created_on?: string; |
211 | display_name?: string; |
212 | username?: string; |
213 | uuid?: string; |
214 | [k: string]: unknown; |
215 | }; |
216 | assignee?: { type: string; [k: string]: unknown } & { |
217 | links?: { |
218 | avatar?: { href?: string; name?: string }; |
219 | [k: string]: unknown; |
220 | }; |
221 | created_on?: string; |
222 | display_name?: string; |
223 | username?: string; |
224 | uuid?: string; |
225 | [k: string]: unknown; |
226 | }; |
227 | created_on?: string; |
228 | updated_on?: string; |
229 | edited_on?: string; |
230 | state?: |
231 | | "submitted" |
232 | | "new" |
233 | | "open" |
234 | | "resolved" |
235 | | "on hold" |
236 | | "invalid" |
237 | | "duplicate" |
238 | | "wontfix" |
239 | | "closed"; |
240 | kind?: "bug" | "enhancement" | "proposal" | "task"; |
241 | priority?: "trivial" | "minor" | "major" | "critical" | "blocker"; |
242 | milestone?: { type: string; [k: string]: unknown } & { |
243 | links?: { self?: { href?: string; name?: string } }; |
244 | name?: string; |
245 | id?: number; |
246 | [k: string]: unknown; |
247 | }; |
248 | version?: { type: string; [k: string]: unknown } & { |
249 | links?: { self?: { href?: string; name?: string } }; |
250 | name?: string; |
251 | id?: number; |
252 | [k: string]: unknown; |
253 | }; |
254 | component?: { type: string; [k: string]: unknown } & { |
255 | links?: { self?: { href?: string; name?: string } }; |
256 | name?: string; |
257 | id?: number; |
258 | [k: string]: unknown; |
259 | }; |
260 | votes?: number; |
261 | content?: { |
262 | raw?: string; |
263 | markup?: "markdown" | "creole" | "plaintext"; |
264 | html?: string; |
265 | }; |
266 | [k: string]: unknown; |
267 | }; |
268 | [k: string]: unknown; |
269 | } |
270 | ) { |
271 | const url = new URL( |
272 | `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/issues/${issue_id}/comments/${comment_id}` |
273 | ); |
274 |
|
275 | const response = await fetch(url, { |
276 | method: "PUT", |
277 | headers: { |
278 | "Content-Type": "application/json", |
279 | Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`), |
280 | }, |
281 | body: JSON.stringify(body), |
282 | }); |
283 | if (!response.ok) { |
284 | const text = await response.text(); |
285 | throw new Error(`${response.status} ${text}`); |
286 | } |
287 | return await response.json(); |
288 | } |
289 |
|