master
 1import { task } from '../../task.js'
 2import { paginate } from '../../utils.js'
 3import { ReactionsQuery } from './reactions.graphql.js'
 4
 5export default task({
 6  name: 'reactions-discussion-comments' as const,
 7  run: async ({ octokit, data }, { id }: { id: string }) => {
 8    const discussionReactions = paginate(octokit, ReactionsQuery, {
 9      id: id,
10    })
11
12    const discussionComment = data.discussionComments.find((x) => x.id === id)
13    if (!discussionComment) {
14      throw new Error(`Discussion comment ${id} not found`)
15    }
16
17    discussionComment.reactions = []
18
19    for await (const resp of discussionReactions) {
20      if (!resp.node?.reactions.nodes) {
21        throw new Error('Failed to load discussion comment reactions')
22      }
23
24      for (const reaction of resp.node.reactions.nodes) {
25        discussionComment.reactions.push(reaction)
26      }
27
28      octokit.log.info(
29        `| discussion comment reactions ${discussionComment.reactions.length}/${resp.node.reactions.totalCount} (cost: ${resp.rateLimit?.cost}, remaining: ${resp.rateLimit?.remaining})`,
30      )
31    }
32  },
33})