Update a commit comment

Used to update the contents of a comment. Only the content of the comment can be updated. ``` $ curl https://api.bitbucket.org/2.0/repositories/atlassian/prlinks/commit/7f71b5/comments/5728901 \ -X PUT -u evzijst \ -H 'Content-Type: application/json' \ -d '{"content": {"raw": "One more thing!"}' ```

Script bitbucket Verified

by hugo697 ยท 10/24/2023

The script

Submitted by hugo697 Typescript (fetch-only)
Verified 375 days ago
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