chore: fix test route in issue command

This commit is contained in:
Tony
2025-02-12 01:25:55 +08:00
parent eb3d0d42e3
commit 905062f10c
2 changed files with 16 additions and 15 deletions

View File

@@ -43,9 +43,11 @@ jobs:
github-token: ${{ secrets.GITHUB_TOKEN }} github-token: ${{ secrets.GITHUB_TOKEN }}
script: | script: |
const PR = JSON.parse(process.env.PULL_REQUEST) const PR = JSON.parse(process.env.PULL_REQUEST)
const body = PR.body
const number = PR.number const number = PR.number
const sender = PR.user.login
const { default: identify } = await import('${{ github.workspace }}/scripts/workflow/test-route/identify.mjs') const { default: identify } = await import('${{ github.workspace }}/scripts/workflow/test-route/identify.mjs')
return identify({ github, context, core }, number) return identify({ github, context, core }, body, number, sender)
- name: Fetch Docker image - name: Fetch Docker image
if: (env.TEST_CONTINUE) if: (env.TEST_CONTINUE)

View File

@@ -2,7 +2,15 @@ const noFound = 'Auto: Route No Found';
const testFailed = 'Auto: Route Test Failed'; const testFailed = 'Auto: Route Test Failed';
const allowedUser = new Set(['dependabot[bot]', 'pull[bot]']); // dependabot and downstream PR requested by pull[bot] const allowedUser = new Set(['dependabot[bot]', 'pull[bot]']); // dependabot and downstream PR requested by pull[bot]
export default async function identify({ github, context, core }, number) { export default async function identify({ github, context, core }, body, number, sender) {
core.debug(`sender: ${sender}`);
core.debug(`body: ${body}`);
// Remove all HTML comments before performing the match
const bodyNoCmts = body?.replaceAll(/<!--[\S\s]*?-->/g, '');
const m = bodyNoCmts?.match(/```routes\s+([\S\s]*?)```/);
core.debug(`match: ${m}`);
let routes = null;
const issueFacts = { const issueFacts = {
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
@@ -13,22 +21,13 @@ export default async function identify({ github, context, core }, number) {
repo: context.repo.repo, repo: context.repo.repo,
pull_number: number, pull_number: number,
}; };
const { data: pr } = await github.rest.issues const { data: issue } = await github.rest.issues
.get({ .get({
...issueFacts, ...issueFacts,
}) })
.catch((error) => { .catch((error) => {
core.warning(error); core.warning(error);
}); });
const sender = pr.user.login;
const body = pr.body;
core.debug(`sender: ${sender}`);
core.debug(`body: ${body}`);
// Remove all HTML comments before performing the match
const bodyNoCmts = body?.replaceAll(/<!--[\S\s]*?-->/g, '');
const m = bodyNoCmts?.match(/```routes\s+([\S\s]*?)```/);
core.debug(`match: ${m}`);
let routes = null;
const addLabels = (labels) => const addLabels = (labels) =>
github.rest.issues github.rest.issues
@@ -78,11 +77,11 @@ export default async function identify({ github, context, core }, number) {
路由测试失败,请确认评论部分符合格式规范,详情请检查 [日志](${logUrl})。`); 路由测试失败,请确认评论部分符合格式规范,详情请检查 [日志](${logUrl})。`);
}; };
if (pr.pull_request) { if (issue.pull_request) {
if (pr.state === 'closed') { if (issue.state === 'closed') {
await updatePrState('open'); await updatePrState('open');
} }
if (pr.labels.some((e) => e.name === testFailed)) { if (issue.labels.some((e) => e.name === testFailed)) {
await removeLabel(testFailed); await removeLabel(testFailed);
} }
} }