export async function putReaction()

in scan/src/utils.ts [522:565]


export async function putReaction(
  newReaction: Reaction,
  oldReaction: string
): Promise<void> {
  const pr = github.context.payload.pull_request as
    | PullRequestPayload
    | undefined
  if (!pr) {
    return
  }
  const client = github.getOctokit(getInputs().githubToken)
  const issue_number = pr.number

  if (oldReaction !== '') {
    try {
      const {data: reactions} = await client.rest.reactions.listForIssue({
        ...github.context.repo,
        issue_number
      })
      const previousReaction = reactions.find(r => r.content === oldReaction)
      if (previousReaction) {
        await client.rest.reactions.deleteForIssue({
          ...github.context.repo,
          issue_number,
          reaction_id: previousReaction.id
        })
      }
    } catch (error) {
      core.debug(
        `Failed to delete the initial reaction – ${(error as Error).message}`
      )
    }
  }

  try {
    await client.rest.reactions.createForIssue({
      ...github.context.repo,
      issue_number,
      content: newReaction
    })
  } catch (error) {
    core.debug(`Failed to set reaction – ${(error as Error).message}`)
  }
}