diff --git a/.github/workflows/auto-assign.yaml b/.github/workflows/auto-assign.yaml index a4268bc6..5d2ab078 100644 --- a/.github/workflows/auto-assign.yaml +++ b/.github/workflows/auto-assign.yaml @@ -15,32 +15,33 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const comment = context.payload.comment; - const issue = context.issue; const owner = 'keyshade-xyz'; const repo = 'keyshade'; const userMaxConcurrentIssueCount = process.env.USER_MAX_CONCURRENT_ISSUE_COUNT || 5; - async function listIssueEvents(issue) { - const allEvents = []; + console.dir(context); + + async function listIssueEvents(issueNumber) { + const events = []; let page = 1; let hasNextPage = true; while (hasNextPage) { - const issuesResponse = await github.rest.issues.listEventsForTimeline({ + const eventsResponse = await github.rest.issues.listEventsForTimeline({ owner, repo, - issue_number: issue.number, + issue_number: issueNumber, per_page: 100, page }); - allEvents.push(...issuesResponse.data); + events.push(...eventsResponse.data); - hasNextPage = issuesResponse.headers.link && issuesResponse.headers.link.includes('rel="next"'); + hasNextPage = eventsResponse.headers.link && eventsResponse.headers.link.includes('rel="next"'); page++; } - return allEvents; + return events; } async function listUserOpenIssuesWithoutActivePullRequest(user) { @@ -55,7 +56,7 @@ jobs: }); for (const issue of userOpenIssues) { - const events = await listIssueEvents(issue); + const events = await listIssueEvents(issue.number); const userPullRequestIssues = events .filter(event => event.event === 'cross-referenced') .map(event => event.source.issue) @@ -117,6 +118,12 @@ jobs: } if (comment.body.startsWith('/attempt')) { + const issue = await github.rest.issues.get({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number + }); + if (!issue.assignee) { const userActiveIssues = await listUserOpenIssuesWithoutActivePullRequest(comment.user);