Edits history of script submission #1342 for ' Create a comment on a pull request (bitbucket)'

  • nativets
    One script reply has been approved by the moderators
    Ap­pro­ved
    type Bitbucket = {
      username: string;
      password: string;
    };
    /**
     * Create a comment on a pull request
     * Creates a new pull request comment.
    
    Returns the newly created pull request comment.
     */
    export async function main(
      auth: Bitbucket,
      pull_request_id: string,
      repo_slug: string,
      workspace: string,
      body: ({ type: string; [k: string]: unknown } & {
        id?: number;
        created_on?: string;
        updated_on?: string;
        content?: {
          raw?: string;
          markup?: "markdown" | "creole" | "plaintext";
          html?: string;
        };
        user?: { type: string; [k: string]: unknown } & {
          links?: {
            avatar?: { href?: string; name?: string };
            [k: string]: unknown;
          };
          created_on?: string;
          display_name?: string;
          username?: string;
          uuid?: string;
          [k: string]: unknown;
        };
        deleted?: boolean;
        parent?: unknown;
        inline?: { from?: number; to?: number; path: string };
        links?: {
          self?: { href?: string; name?: string };
          html?: { href?: string; name?: string };
          code?: { href?: string; name?: string };
        };
        [k: string]: unknown;
      }) & {
        pullrequest?: { type: string; [k: string]: unknown } & {
          links?: {
            self?: { href?: string; name?: string };
            html?: { href?: string; name?: string };
            commits?: { href?: string; name?: string };
            approve?: { href?: string; name?: string };
            diff?: { href?: string; name?: string };
            diffstat?: { href?: string; name?: string };
            comments?: { href?: string; name?: string };
            activity?: { href?: string; name?: string };
            merge?: { href?: string; name?: string };
            decline?: { href?: string; name?: string };
          };
          id?: number;
          title?: string;
          rendered?: {
            title?: {
              raw?: string;
              markup?: "markdown" | "creole" | "plaintext";
              html?: string;
            };
            description?: {
              raw?: string;
              markup?: "markdown" | "creole" | "plaintext";
              html?: string;
            };
            reason?: {
              raw?: string;
              markup?: "markdown" | "creole" | "plaintext";
              html?: string;
            };
          };
          summary?: {
            raw?: string;
            markup?: "markdown" | "creole" | "plaintext";
            html?: string;
          };
          state?: "OPEN" | "MERGED" | "DECLINED" | "SUPERSEDED";
          author?: { type: string; [k: string]: unknown } & {
            links?: {
              avatar?: { href?: string; name?: string };
              [k: string]: unknown;
            };
            created_on?: string;
            display_name?: string;
            username?: string;
            uuid?: string;
            [k: string]: unknown;
          };
          source?: {
            repository?: { type: string; [k: string]: unknown } & {
              links?: {
                self?: { href?: string; name?: string };
                html?: { href?: string; name?: string };
                avatar?: { href?: string; name?: string };
                pullrequests?: { href?: string; name?: string };
                commits?: { href?: string; name?: string };
                forks?: { href?: string; name?: string };
                watchers?: { href?: string; name?: string };
                downloads?: { href?: string; name?: string };
                clone?: { href?: string; name?: string }[];
                hooks?: { href?: string; name?: string };
              };
              uuid?: string;
              full_name?: string;
              is_private?: boolean;
              parent?: unknown;
              scm?: "git";
              owner?: { type: string; [k: string]: unknown } & {
                links?: {
                  avatar?: { href?: string; name?: string };
                  [k: string]: unknown;
                };
                created_on?: string;
                display_name?: string;
                username?: string;
                uuid?: string;
                [k: string]: unknown;
              };
              name?: string;
              description?: string;
              created_on?: string;
              updated_on?: string;
              size?: number;
              language?: string;
              has_issues?: boolean;
              has_wiki?: boolean;
              fork_policy?: "allow_forks" | "no_public_forks" | "no_forks";
              project?: { type: string; [k: string]: unknown } & {
                links?: {
                  html?: { href?: string; name?: string };
                  avatar?: { href?: string; name?: string };
                };
                uuid?: string;
                key?: string;
                owner?: ({ type: string; [k: string]: unknown } & {
                  links?: {
                    avatar?: { href?: string; name?: string };
                    [k: string]: unknown;
                  };
                  created_on?: string;
                  display_name?: string;
                  username?: string;
                  uuid?: string;
                  [k: string]: unknown;
                }) & {
                  links?: {
                    avatar?: { href?: string; name?: string };
                    [k: string]: unknown;
                  } & {
                    self?: { href?: string; name?: string };
                    html?: { href?: string; name?: string };
                    members?: { href?: string; name?: string };
                    projects?: { href?: string; name?: string };
                    repositories?: { href?: string; name?: string };
                    [k: string]: unknown;
                  };
                  [k: string]: unknown;
                };
                name?: string;
                description?: string;
                is_private?: boolean;
                created_on?: string;
                updated_on?: string;
                has_publicly_visible_repos?: boolean;
                [k: string]: unknown;
              };
              mainbranch?: {
                type: string;
                links?: {
                  self?: { href?: string; name?: string };
                  commits?: { href?: string; name?: string };
                  html?: { href?: string; name?: string };
                };
                name?: string;
                target?: ({ type: string; [k: string]: unknown } & {
                  hash?: string;
                  date?: string;
                  author?: { type: string; [k: string]: unknown } & {
                    raw?: string;
                    user?: { type: string; [k: string]: unknown } & {
                      links?: {
                        avatar?: { href?: string; name?: string };
                        [k: string]: unknown;
                      };
                      created_on?: string;
                      display_name?: string;
                      username?: string;
                      uuid?: string;
                      [k: string]: unknown;
                    };
                    [k: string]: unknown;
                  };
                  message?: string;
                  summary?: {
                    raw?: string;
                    markup?: "markdown" | "creole" | "plaintext";
                    html?: string;
                  };
                  parents?: unknown[];
                  [k: string]: unknown;
                }) & {
                  repository?: unknown;
                  participants?: ({ type: string; [k: string]: unknown } & {
                    user?: { type: string; [k: string]: unknown } & {
                      links?: {
                        avatar?: { href?: string; name?: string };
                        [k: string]: unknown;
                      };
                      created_on?: string;
                      display_name?: string;
                      username?: string;
                      uuid?: string;
                      [k: string]: unknown;
                    };
                    role?: "PARTICIPANT" | "REVIEWER";
                    approved?: boolean;
                    state?: "approved" | "changes_requested" | null;
                    participated_on?: string;
                    [k: string]: unknown;
                  })[];
                  [k: string]: unknown;
                };
                [k: string]: unknown;
              } & {
                merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
                default_merge_strategy?: string;
                [k: string]: unknown;
              };
              [k: string]: unknown;
            };
            branch?: {
              name?: string;
              merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
              default_merge_strategy?: string;
            };
            commit?: { hash?: string };
          };
          destination?: {
            repository?: { type: string; [k: string]: unknown } & {
              links?: {
                self?: { href?: string; name?: string };
                html?: { href?: string; name?: string };
                avatar?: { href?: string; name?: string };
                pullrequests?: { href?: string; name?: string };
                commits?: { href?: string; name?: string };
                forks?: { href?: string; name?: string };
                watchers?: { href?: string; name?: string };
                downloads?: { href?: string; name?: string };
                clone?: { href?: string; name?: string }[];
                hooks?: { href?: string; name?: string };
              };
              uuid?: string;
              full_name?: string;
              is_private?: boolean;
              parent?: unknown;
              scm?: "git";
              owner?: { type: string; [k: string]: unknown } & {
                links?: {
                  avatar?: { href?: string; name?: string };
                  [k: string]: unknown;
                };
                created_on?: string;
                display_name?: string;
                username?: string;
                uuid?: string;
                [k: string]: unknown;
              };
              name?: string;
              description?: string;
              created_on?: string;
              updated_on?: string;
              size?: number;
              language?: string;
              has_issues?: boolean;
              has_wiki?: boolean;
              fork_policy?: "allow_forks" | "no_public_forks" | "no_forks";
              project?: { type: string; [k: string]: unknown } & {
                links?: {
                  html?: { href?: string; name?: string };
                  avatar?: { href?: string; name?: string };
                };
                uuid?: string;
                key?: string;
                owner?: ({ type: string; [k: string]: unknown } & {
                  links?: {
                    avatar?: { href?: string; name?: string };
                    [k: string]: unknown;
                  };
                  created_on?: string;
                  display_name?: string;
                  username?: string;
                  uuid?: string;
                  [k: string]: unknown;
                }) & {
                  links?: {
                    avatar?: { href?: string; name?: string };
                    [k: string]: unknown;
                  } & {
                    self?: { href?: string; name?: string };
                    html?: { href?: string; name?: string };
                    members?: { href?: string; name?: string };
                    projects?: { href?: string; name?: string };
                    repositories?: { href?: string; name?: string };
                    [k: string]: unknown;
                  };
                  [k: string]: unknown;
                };
                name?: string;
                description?: string;
                is_private?: boolean;
                created_on?: string;
                updated_on?: string;
                has_publicly_visible_repos?: boolean;
                [k: string]: unknown;
              };
              mainbranch?: {
                type: string;
                links?: {
                  self?: { href?: string; name?: string };
                  commits?: { href?: string; name?: string };
                  html?: { href?: string; name?: string };
                };
                name?: string;
                target?: ({ type: string; [k: string]: unknown } & {
                  hash?: string;
                  date?: string;
                  author?: { type: string; [k: string]: unknown } & {
                    raw?: string;
                    user?: { type: string; [k: string]: unknown } & {
                      links?: {
                        avatar?: { href?: string; name?: string };
                        [k: string]: unknown;
                      };
                      created_on?: string;
                      display_name?: string;
                      username?: string;
                      uuid?: string;
                      [k: string]: unknown;
                    };
                    [k: string]: unknown;
                  };
                  message?: string;
                  summary?: {
                    raw?: string;
                    markup?: "markdown" | "creole" | "plaintext";
                    html?: string;
                  };
                  parents?: unknown[];
                  [k: string]: unknown;
                }) & {
                  repository?: unknown;
                  participants?: ({ type: string; [k: string]: unknown } & {
                    user?: { type: string; [k: string]: unknown } & {
                      links?: {
                        avatar?: { href?: string; name?: string };
                        [k: string]: unknown;
                      };
                      created_on?: string;
                      display_name?: string;
                      username?: string;
                      uuid?: string;
                      [k: string]: unknown;
                    };
                    role?: "PARTICIPANT" | "REVIEWER";
                    approved?: boolean;
                    state?: "approved" | "changes_requested" | null;
                    participated_on?: string;
                    [k: string]: unknown;
                  })[];
                  [k: string]: unknown;
                };
                [k: string]: unknown;
              } & {
                merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
                default_merge_strategy?: string;
                [k: string]: unknown;
              };
              [k: string]: unknown;
            };
            branch?: {
              name?: string;
              merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
              default_merge_strategy?: string;
            };
            commit?: { hash?: string };
          };
          merge_commit?: { hash?: string };
          comment_count?: number;
          task_count?: number;
          close_source_branch?: boolean;
          closed_by?: { type: string; [k: string]: unknown } & {
            links?: {
              avatar?: { href?: string; name?: string };
              [k: string]: unknown;
            };
            created_on?: string;
            display_name?: string;
            username?: string;
            uuid?: string;
            [k: string]: unknown;
          };
          reason?: string;
          created_on?: string;
          updated_on?: string;
          reviewers?: ({ type: string; [k: string]: unknown } & {
            links?: {
              avatar?: { href?: string; name?: string };
              [k: string]: unknown;
            };
            created_on?: string;
            display_name?: string;
            username?: string;
            uuid?: string;
            [k: string]: unknown;
          })[];
          participants?: ({ type: string; [k: string]: unknown } & {
            user?: { type: string; [k: string]: unknown } & {
              links?: {
                avatar?: { href?: string; name?: string };
                [k: string]: unknown;
              };
              created_on?: string;
              display_name?: string;
              username?: string;
              uuid?: string;
              [k: string]: unknown;
            };
            role?: "PARTICIPANT" | "REVIEWER";
            approved?: boolean;
            state?: "approved" | "changes_requested" | null;
            participated_on?: string;
            [k: string]: unknown;
          })[];
          [k: string]: unknown;
        };
        resolution?: {
          type: string;
          user?: { type: string; [k: string]: unknown } & {
            links?: {
              avatar?: { href?: string; name?: string };
              [k: string]: unknown;
            };
            created_on?: string;
            display_name?: string;
            username?: string;
            uuid?: string;
            [k: string]: unknown;
          };
          created_on?: string;
          [k: string]: unknown;
        };
        pending?: boolean;
        [k: string]: unknown;
      }
    ) {
      const url = new URL(
        `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pullrequests/${pull_request_id}/comments`
      );
    
      const response = await fetch(url, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
        },
        body: JSON.stringify(body),
      });
      if (!response.ok) {
        const text = await response.text();
        throw new Error(`${response.status} ${text}`);
      }
      return await response.json();
    }
    

    Submitted by hugo697 375 days ago

  • nativets
    type Bitbucket = {
      username: string;
      password: string;
    };
    /**
     * Create a comment on a pull request
     * Creates a new pull request comment.
    
    Returns the newly created pull request comment.
     */
    export async function main(
      auth: Bitbucket,
      pull_request_id: string,
      repo_slug: string,
      workspace: string,
      body: ({ type: string; [k: string]: unknown } & {
        id?: number;
        created_on?: string;
        updated_on?: string;
        content?: {
          raw?: string;
          markup?: "markdown" | "creole" | "plaintext";
          html?: string;
        };
        user?: { type: string; [k: string]: unknown } & {
          links?: {
            avatar?: { href?: string; name?: string };
            [k: string]: unknown;
          };
          created_on?: string;
          display_name?: string;
          username?: string;
          uuid?: string;
          [k: string]: unknown;
        };
        deleted?: boolean;
        parent?: unknown;
        inline?: { from?: number; to?: number; path: string };
        links?: {
          self?: { href?: string; name?: string };
          html?: { href?: string; name?: string };
          code?: { href?: string; name?: string };
        };
        [k: string]: unknown;
      }) & {
        pullrequest?: { type: string; [k: string]: unknown } & {
          links?: {
            self?: { href?: string; name?: string };
            html?: { href?: string; name?: string };
            commits?: { href?: string; name?: string };
            approve?: { href?: string; name?: string };
            diff?: { href?: string; name?: string };
            diffstat?: { href?: string; name?: string };
            comments?: { href?: string; name?: string };
            activity?: { href?: string; name?: string };
            merge?: { href?: string; name?: string };
            decline?: { href?: string; name?: string };
          };
          id?: number;
          title?: string;
          rendered?: {
            title?: {
              raw?: string;
              markup?: "markdown" | "creole" | "plaintext";
              html?: string;
            };
            description?: {
              raw?: string;
              markup?: "markdown" | "creole" | "plaintext";
              html?: string;
            };
            reason?: {
              raw?: string;
              markup?: "markdown" | "creole" | "plaintext";
              html?: string;
            };
          };
          summary?: {
            raw?: string;
            markup?: "markdown" | "creole" | "plaintext";
            html?: string;
          };
          state?: "OPEN" | "MERGED" | "DECLINED" | "SUPERSEDED";
          author?: { type: string; [k: string]: unknown } & {
            links?: {
              avatar?: { href?: string; name?: string };
              [k: string]: unknown;
            };
            created_on?: string;
            display_name?: string;
            username?: string;
            uuid?: string;
            [k: string]: unknown;
          };
          source?: {
            repository?: { type: string; [k: string]: unknown } & {
              links?: {
                self?: { href?: string; name?: string };
                html?: { href?: string; name?: string };
                avatar?: { href?: string; name?: string };
                pullrequests?: { href?: string; name?: string };
                commits?: { href?: string; name?: string };
                forks?: { href?: string; name?: string };
                watchers?: { href?: string; name?: string };
                downloads?: { href?: string; name?: string };
                clone?: { href?: string; name?: string }[];
                hooks?: { href?: string; name?: string };
              };
              uuid?: string;
              full_name?: string;
              is_private?: boolean;
              parent?: unknown;
              scm?: "git";
              owner?: { type: string; [k: string]: unknown } & {
                links?: {
                  avatar?: { href?: string; name?: string };
                  [k: string]: unknown;
                };
                created_on?: string;
                display_name?: string;
                username?: string;
                uuid?: string;
                [k: string]: unknown;
              };
              name?: string;
              description?: string;
              created_on?: string;
              updated_on?: string;
              size?: number;
              language?: string;
              has_issues?: boolean;
              has_wiki?: boolean;
              fork_policy?: "allow_forks" | "no_public_forks" | "no_forks";
              project?: { type: string; [k: string]: unknown } & {
                links?: {
                  html?: { href?: string; name?: string };
                  avatar?: { href?: string; name?: string };
                };
                uuid?: string;
                key?: string;
                owner?: ({ type: string; [k: string]: unknown } & {
                  links?: {
                    avatar?: { href?: string; name?: string };
                    [k: string]: unknown;
                  };
                  created_on?: string;
                  display_name?: string;
                  username?: string;
                  uuid?: string;
                  [k: string]: unknown;
                }) & {
                  links?: {
                    avatar?: { href?: string; name?: string };
                    [k: string]: unknown;
                  } & {
                    self?: { href?: string; name?: string };
                    html?: { href?: string; name?: string };
                    members?: { href?: string; name?: string };
                    projects?: { href?: string; name?: string };
                    repositories?: { href?: string; name?: string };
                    [k: string]: unknown;
                  };
                  [k: string]: unknown;
                };
                name?: string;
                description?: string;
                is_private?: boolean;
                created_on?: string;
                updated_on?: string;
                has_publicly_visible_repos?: boolean;
                [k: string]: unknown;
              };
              mainbranch?: {
                type: string;
                links?: {
                  self?: { href?: string; name?: string };
                  commits?: { href?: string; name?: string };
                  html?: { href?: string; name?: string };
                };
                name?: string;
                target?: ({ type: string; [k: string]: unknown } & {
                  hash?: string;
                  date?: string;
                  author?: { type: string; [k: string]: unknown } & {
                    raw?: string;
                    user?: { type: string; [k: string]: unknown } & {
                      links?: {
                        avatar?: { href?: string; name?: string };
                        [k: string]: unknown;
                      };
                      created_on?: string;
                      display_name?: string;
                      username?: string;
                      uuid?: string;
                      [k: string]: unknown;
                    };
                    [k: string]: unknown;
                  };
                  message?: string;
                  summary?: {
                    raw?: string;
                    markup?: "markdown" | "creole" | "plaintext";
                    html?: string;
                  };
                  parents?: unknown[];
                  [k: string]: unknown;
                }) & {
                  repository?: unknown;
                  participants?: ({ type: string; [k: string]: unknown } & {
                    user?: { type: string; [k: string]: unknown } & {
                      links?: {
                        avatar?: { href?: string; name?: string };
                        [k: string]: unknown;
                      };
                      created_on?: string;
                      display_name?: string;
                      username?: string;
                      uuid?: string;
                      [k: string]: unknown;
                    };
                    role?: "PARTICIPANT" | "REVIEWER";
                    approved?: boolean;
                    state?: "approved" | "changes_requested" | null;
                    participated_on?: string;
                    [k: string]: unknown;
                  })[];
                  [k: string]: unknown;
                };
                [k: string]: unknown;
              } & {
                merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
                default_merge_strategy?: string;
                [k: string]: unknown;
              };
              [k: string]: unknown;
            };
            branch?: {
              name?: string;
              merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
              default_merge_strategy?: string;
            };
            commit?: { hash?: string };
          };
          destination?: {
            repository?: { type: string; [k: string]: unknown } & {
              links?: {
                self?: { href?: string; name?: string };
                html?: { href?: string; name?: string };
                avatar?: { href?: string; name?: string };
                pullrequests?: { href?: string; name?: string };
                commits?: { href?: string; name?: string };
                forks?: { href?: string; name?: string };
                watchers?: { href?: string; name?: string };
                downloads?: { href?: string; name?: string };
                clone?: { href?: string; name?: string }[];
                hooks?: { href?: string; name?: string };
              };
              uuid?: string;
              full_name?: string;
              is_private?: boolean;
              parent?: unknown;
              scm?: "git";
              owner?: { type: string; [k: string]: unknown } & {
                links?: {
                  avatar?: { href?: string; name?: string };
                  [k: string]: unknown;
                };
                created_on?: string;
                display_name?: string;
                username?: string;
                uuid?: string;
                [k: string]: unknown;
              };
              name?: string;
              description?: string;
              created_on?: string;
              updated_on?: string;
              size?: number;
              language?: string;
              has_issues?: boolean;
              has_wiki?: boolean;
              fork_policy?: "allow_forks" | "no_public_forks" | "no_forks";
              project?: { type: string; [k: string]: unknown } & {
                links?: {
                  html?: { href?: string; name?: string };
                  avatar?: { href?: string; name?: string };
                };
                uuid?: string;
                key?: string;
                owner?: ({ type: string; [k: string]: unknown } & {
                  links?: {
                    avatar?: { href?: string; name?: string };
                    [k: string]: unknown;
                  };
                  created_on?: string;
                  display_name?: string;
                  username?: string;
                  uuid?: string;
                  [k: string]: unknown;
                }) & {
                  links?: {
                    avatar?: { href?: string; name?: string };
                    [k: string]: unknown;
                  } & {
                    self?: { href?: string; name?: string };
                    html?: { href?: string; name?: string };
                    members?: { href?: string; name?: string };
                    projects?: { href?: string; name?: string };
                    repositories?: { href?: string; name?: string };
                    [k: string]: unknown;
                  };
                  [k: string]: unknown;
                };
                name?: string;
                description?: string;
                is_private?: boolean;
                created_on?: string;
                updated_on?: string;
                has_publicly_visible_repos?: boolean;
                [k: string]: unknown;
              };
              mainbranch?: {
                type: string;
                links?: {
                  self?: { href?: string; name?: string };
                  commits?: { href?: string; name?: string };
                  html?: { href?: string; name?: string };
                };
                name?: string;
                target?: ({ type: string; [k: string]: unknown } & {
                  hash?: string;
                  date?: string;
                  author?: { type: string; [k: string]: unknown } & {
                    raw?: string;
                    user?: { type: string; [k: string]: unknown } & {
                      links?: {
                        avatar?: { href?: string; name?: string };
                        [k: string]: unknown;
                      };
                      created_on?: string;
                      display_name?: string;
                      username?: string;
                      uuid?: string;
                      [k: string]: unknown;
                    };
                    [k: string]: unknown;
                  };
                  message?: string;
                  summary?: {
                    raw?: string;
                    markup?: "markdown" | "creole" | "plaintext";
                    html?: string;
                  };
                  parents?: unknown[];
                  [k: string]: unknown;
                }) & {
                  repository?: unknown;
                  participants?: ({ type: string; [k: string]: unknown } & {
                    user?: { type: string; [k: string]: unknown } & {
                      links?: {
                        avatar?: { href?: string; name?: string };
                        [k: string]: unknown;
                      };
                      created_on?: string;
                      display_name?: string;
                      username?: string;
                      uuid?: string;
                      [k: string]: unknown;
                    };
                    role?: "PARTICIPANT" | "REVIEWER";
                    approved?: boolean;
                    state?: "approved" | "changes_requested" | null;
                    participated_on?: string;
                    [k: string]: unknown;
                  })[];
                  [k: string]: unknown;
                };
                [k: string]: unknown;
              } & {
                merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
                default_merge_strategy?: string;
                [k: string]: unknown;
              };
              [k: string]: unknown;
            };
            branch?: {
              name?: string;
              merge_strategies?: ("merge_commit" | "squash" | "fast_forward")[];
              default_merge_strategy?: string;
            };
            commit?: { hash?: string };
          };
          merge_commit?: { hash?: string };
          comment_count?: number;
          task_count?: number;
          close_source_branch?: boolean;
          closed_by?: { type: string; [k: string]: unknown } & {
            links?: {
              avatar?: { href?: string; name?: string };
              [k: string]: unknown;
            };
            created_on?: string;
            display_name?: string;
            username?: string;
            uuid?: string;
            [k: string]: unknown;
          };
          reason?: string;
          created_on?: string;
          updated_on?: string;
          reviewers?: ({ type: string; [k: string]: unknown } & {
            links?: {
              avatar?: { href?: string; name?: string };
              [k: string]: unknown;
            };
            created_on?: string;
            display_name?: string;
            username?: string;
            uuid?: string;
            [k: string]: unknown;
          })[];
          participants?: ({ type: string; [k: string]: unknown } & {
            user?: { type: string; [k: string]: unknown } & {
              links?: {
                avatar?: { href?: string; name?: string };
                [k: string]: unknown;
              };
              created_on?: string;
              display_name?: string;
              username?: string;
              uuid?: string;
              [k: string]: unknown;
            };
            role?: "PARTICIPANT" | "REVIEWER";
            approved?: boolean;
            state?: "approved" | "changes_requested" | null;
            participated_on?: string;
            [k: string]: unknown;
          })[];
          [k: string]: unknown;
        };
        resolution?: {
          type: string;
          user?: { type: string; [k: string]: unknown } & {
            links?: {
              avatar?: { href?: string; name?: string };
              [k: string]: unknown;
            };
            created_on?: string;
            display_name?: string;
            username?: string;
            uuid?: string;
            [k: string]: unknown;
          };
          created_on?: string;
          [k: string]: unknown;
        };
        pending?: boolean;
        [k: string]: unknown;
      }
    ) {
      const url = new URL(
        `https://api.bitbucket.org/2.0/repositories/${workspace}/${repo_slug}/pullrequests/${pull_request_id}/comments`
      );
    
      const response = await fetch(url, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          Authorization: "Basic " + btoa(`${auth.username}:${auth.password}`),
        },
        body: JSON.stringify(body),
      });
      if (!response.ok) {
        const text = await response.text();
        throw new Error(`${response.status} ${text}`);
      }
      return await response.json();
    }
    

    Submitted by hugo697 935 days ago