1 | type Bitbucket = { |
2 | username: string; |
3 | password: string; |
4 | }; |
5 | |
6 | * Update a commit comment |
7 | * Used to update the contents of a comment. Only the content of the comment can be updated. |
8 |
|
9 | ``` |
10 | $ curl https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/commit/7f71b5/comments/5728901 \ |
11 | -X PUT -u evzijst \ |
12 | -H 'Content-Type: application/json' \ |
13 | -d '{"content": {"raw": "One more thing!"}' |
14 | ``` |
15 | */ |
16 | export async function main( |
17 | auth: Bitbucket, |
18 | comment_id: string, |
19 | commit: string, |
20 | repo_slug: string, |
21 | workspace: string, |
22 | body: ({ type: string; [k: string]: unknown } & { |
23 | id?: number; |
24 | created_on?: string; |
25 | updated_on?: string; |
26 | content?: { |
27 | raw?: string; |
28 | markup?: "markdown" | "creole" | "plaintext"; |
29 | html?: string; |
30 | }; |
31 | user?: { type: string; [k: string]: unknown } & { |
32 | links?: { |
33 | avatar?: { href?: string; name?: string }; |
34 | [k: string]: unknown; |
35 | }; |
36 | created_on?: string; |
37 | display_name?: string; |
38 | username?: string; |
39 | uuid?: string; |
40 | [k: string]: unknown; |
41 | }; |
42 | deleted?: boolean; |
43 | parent?: unknown; |
44 | inline?: { from?: number; to?: number; path: string }; |
45 | links?: { |
46 | self?: { href?: string; name?: string }; |
47 | html?: { href?: string; name?: string }; |
48 | code?: { href?: string; name?: string }; |
49 | }; |
50 | [k: string]: unknown; |
51 | }) & { |
52 | commit?: ({ type: string; [k: string]: unknown } & { |
53 | hash?: string; |
54 | date?: string; |
55 | author?: { type: string; [k: string]: unknown } & { |
56 | raw?: string; |
57 | user?: { type: string; [k: string]: unknown } & { |
58 | links?: { |
59 | avatar?: { href?: string; name?: string }; |
60 | [k: string]: unknown; |
61 | }; |
62 | created_on?: string; |
63 | display_name?: string; |
64 | username?: string; |
65 | uuid?: string; |
66 | [k: string]: unknown; |
67 | }; |
68 | [k: string]: unknown; |
69 | }; |
70 | message?: string; |
71 | summary?: { |
72 | raw?: string; |
73 | markup?: "markdown" | "creole" | "plaintext"; |
74 | html?: string; |
75 | }; |
76 | parents?: unknown[]; |
77 | [k: string]: unknown; |
78 | }) & { |
79 | repository?: { type: string; [k: string]: unknown } & { |
80 | links?: { |
81 | self?: { href?: string; name?: string }; |
82 | html?: { href?: string; name?: string }; |
83 | avatar?: { href?: string; name?: string }; |
84 | pullrequests?: { href?: string; name?: string }; |
85 | commits?: { href?: string; name?: string }; |
86 | forks?: { href?: string; name?: string }; |
87 | watchers?: { href?: string; name?: string }; |
88 | downloads?: { href?: string; name?: string }; |
89 | clone?: { href?: string; name?: string }[]; |
90 | hooks?: { href?: string; name?: string }; |
91 | }; |
92 | uuid?: string; |
93 | full_name?: string; |
94 | is_private?: boolean; |
95 | parent?: unknown; |
96 | scm?: "git"; |
97 | owner?: { type: string; [k: string]: unknown } & { |
98 | links?: { |
99 | avatar?: { href?: string; name?: string }; |
100 | [k: string]: unknown; |
101 | }; |
102 | created_on?: string; |
103 | display_name?: string; |
104 | username?: string; |
105 | uuid?: string; |
106 | [k: string]: unknown; |
107 | }; |
108 | name?: string; |
109 | description?: string; |
110 | created_on?: string; |
111 | updated_on?: string; |
112 | size?: number; |
113 | language?: string; |
114 | has_issues?: boolean; |
115 | has_wiki?: boolean; |
116 | fork_policy?: "allow_forks" | "no_public_forks" | "no_forks"; |
117 | project?: { type: string; [k: string]: unknown } & { |
118 | links?: { |
119 | html?: { href?: string; name?: string }; |
120 | avatar?: { href?: string; name?: string }; |
121 | }; |
122 | uuid?: string; |
123 | key?: string; |
124 | owner?: ({ type: string; [k: string]: unknown } & { |
125 | links?: { |
126 | avatar?: { href?: string; name?: string }; |
127 | [k: string]: unknown; |
128 | }; |
129 | created_on?: string; |
130 | display_name?: string; |
131 | username?: string; |
132 | uuid?: string; |
133 | [k: string]: unknown; |
134 | }) & { |
135 | links?: { |
136 | avatar?: { href?: string; name?: string }; |
137 | [k: string]: unknown; |
138 | } & { |
139 | self?: { href?: string; name?: string }; |
140 | html?: { href?: string; name?: string }; |
141 | members?: { href?: string; name?: string }; |
142 | projects?: { href?: string; name?: string }; |
143 | repositories?: { href?: string; name?: string }; |
144 | [k: string]: unknown; |
145 | }; |
146 | [k: string]: unknown; |
147 | }; |
148 | name?: string; |
149 | description?: string; |
150 | is_private?: boolean; |
151 | created_on?: string; |
152 | updated_on?: string; |
153 | has_publicly_visible_repos?: boolean; |
154 | [k: string]: unknown; |
155 | }; |
156 | mainbranch?: { |
157 | type: string; |
158 | links?: { |
159 | self?: { href?: string; name?: string }; |
160 | commits?: { href?: string; name?: string }; |
161 | html?: { href?: string; name?: string }; |
162 | }; |
163 | name?: string; |
164 | target?: unknown; |
165 | [k: string]: unknown; |
166 | } & { |
167 | merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[]; |
168 | default_merge_strategy?: string; |
169 | [k: string]: unknown; |
170 | }; |
171 | [k: string]: unknown; |
172 | }; |
173 | participants?: ({ type: string; [k: string]: unknown } & { |
174 | user?: { type: string; [k: string]: unknown } & { |
175 | links?: { |
176 | avatar?: { href?: string; name?: string }; |
177 | [k: string]: unknown; |
178 | }; |
179 | created_on?: string; |
180 | display_name?: string; |
181 | username?: string; |
182 | uuid?: string; |
183 | [k: string]: unknown; |
184 | }; |
185 | role?: "PARTICIPANT" | "REVIEWER"; |
186 | approved?: boolean; |
187 | state?: "approved" | "changes_requested" | null; |
188 | participated_on?: string; |
189 | [k: string]: unknown; |
190 | })[]; |
191 | [k: string]: unknown; |
192 | }; |
193 | [k: string]: unknown; |
194 | } |
195 | ) { |
196 | const url = new URL( |
197 | `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/commit/${commit}/comments/${comment_id}` |
198 | ); |
199 |
|
200 | const response = await fetch(url, { |
201 | method: "PUT", |
202 | headers: { |
203 | "Content-Type": "application/json", |
204 | Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`), |
205 | }, |
206 | body: JSON.stringify(body), |
207 | }); |
208 | if (!response.ok) { |
209 | const text = await response.text(); |
210 | throw new Error(`${response.status} ${text}`); |
211 | } |
212 | return await response.text(); |
213 | } |
214 |
|