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'")
}