util.ts 697 B

123456789101112131415161718192021222324252627282930
  1. import { Octokit } from '@octokit/action';
  2. import { GitHubClient } from '../src/types';
  3. export const baseIssueMetadata = {
  4. owner: 'tachiyomiorg',
  5. repo: 'issue-moderator-action',
  6. };
  7. async function waitFor(seconds: number) {
  8. await new Promise((r) => setTimeout(r, seconds));
  9. }
  10. export async function waitForClosedIssue(
  11. octokit: Octokit,
  12. issueNumber: number,
  13. ) {
  14. console.log(`Checking issue #${issueNumber}`);
  15. let issue: Awaited<ReturnType<typeof octokit.issues.get>> | undefined;
  16. while (issue?.data?.state !== 'closed') {
  17. await waitFor(5_000);
  18. issue = await octokit.issues.get({
  19. ...baseIssueMetadata,
  20. issue_number: issueNumber,
  21. });
  22. }
  23. return issue;
  24. }