override def listPullRequests()

in modules/core/src/main/scala/org/scalasteward/core/forge/github/GitHubApiAlg.scala [103:153]


  override def listPullRequests(repo: Repo, head: String, base: Branch): F[List[PullRequestOut]] =
    client.get(url.listPullRequests(repo, head, base), modify)

  /** https://docs.github.com/en/rest/pulls/pulls?apiVersion=2022-11-28#update-a-pull-request */
  override def closePullRequest(repo: Repo, number: PullRequestNumber): F[PullRequestOut] =
    client.patchWithBody[PullRequestOut, UpdateState](
      url.pull(repo, number),
      UpdateState(PullRequestState.Closed),
      modify
    )

  /** https://docs.github.com/en/rest/issues/comments?apiVersion=2022-11-28#create-an-issue-comment
    */
  override def commentPullRequest(
      repo: Repo,
      number: PullRequestNumber,
      comment: String
  ): F[Comment] =
    client
      .postWithBody(url.comments(repo, number), Comment(comment), modify)

  /** https://docs.github.com/en/rest/issues/labels?apiVersion=2022-11-28#add-labels-to-an-issue */
  private def labelPullRequest(
      repo: Repo,
      number: PullRequestNumber,
      labels: List[String]
  ): F[Unit] =
    client
      .postWithBody[io.circe.Json, GitHubLabels](
        url.issueLabels(repo, number),
        GitHubLabels(labels),
        modify
      )
      .adaptErr(SecondaryRateLimitExceeded.fromThrowable)
      .void

  private def addAssignees(
      repo: Repo,
      number: PullRequestNumber,
      assignees: List[String]
  ): F[Unit] =
    client
      .postWithBody[Json, GitHubAssignees](
        url.assignees(repo, number),
        GitHubAssignees(assignees),
        modify
      )
      .void
      .handleErrorWith { error =>
        logger.error(error)(s"cannot add assignees '${assignees.mkString(",")}' to PR '$number'")
      }