From f934792db4c3c1b44550b79cee893aa545164c59 Mon Sep 17 00:00:00 2001 From: sunadoi <57832553+sunadoi@users.noreply.github.com> Date: Mon, 10 Oct 2022 05:11:25 +0900 Subject: infra: add CI step to detect generate script diffs (#1405) --- .github/workflows/commentCodeGeneration.ts | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/commentCodeGeneration.ts (limited to '.github/workflows/commentCodeGeneration.ts') diff --git a/.github/workflows/commentCodeGeneration.ts b/.github/workflows/commentCodeGeneration.ts new file mode 100644 index 00000000..715854cd --- /dev/null +++ b/.github/workflows/commentCodeGeneration.ts @@ -0,0 +1,48 @@ +import type { context as ctx, GitHub } from '@actions/github/lib/utils'; + +/** + * Notifies the PR about uncommitted changes generated by the `generate:*` commands. + * + * This script is used by github-script + * https://github.com/actions/github-script + * + * @param github A pre-authenticated octokit/rest.js client with pagination plugins + * @param context An object containing the context of the workflow run + * @param isSuccess A boolean indicating whether the workflow was successful + */ +module.exports = async ( + github: InstanceType, + context: typeof ctx, + isSuccess: boolean +) => { + const { data: comments } = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + }); + + const body = `Uncommitted changes were detected after runnning generate:* commands.\nPlease run pnpm run generate:locales and pnpm run generate:api-docs to generate/update the related files, and commit them.`; + + const botComment = comments.find( + (comment) => comment.user?.type === 'Bot' && comment.body?.includes(body) + ); + + if (isSuccess) { + if (!botComment) return; + await github.rest.issues.deleteComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: botComment.id, + }); + return; + } + + if (!botComment) { + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body, + }); + } +}; -- cgit v1.2.3