mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-02 01:58:11 +08:00
103 lines
3.1 KiB
JavaScript
103 lines
3.1 KiB
JavaScript
const noFound = 'Auto: Route No Found';
|
|
const whiteListedUser = ['dependabot[bot]'];
|
|
|
|
module.exports = async ({ github, context, core }, body, number) => {
|
|
core.debug(`sender: ${context.payload.sender.login}`);
|
|
core.debug(`body: ${body}`);
|
|
const m = body.match(/```routes\r\n((.|\r\n)*)```/);
|
|
core.debug(`match: ${m}`);
|
|
let res = null;
|
|
|
|
const removeLabel = async () =>
|
|
github.issues
|
|
.removeLabel({
|
|
issue_number: number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
name: noFound,
|
|
})
|
|
.catch((e) => {
|
|
core.warning(e);
|
|
});
|
|
|
|
if (whiteListedUser.includes(context.payload.sender.login)) {
|
|
core.info('PR created by a whitelisted user, passing');
|
|
await removeLabel();
|
|
await github.issues
|
|
.addLabels({
|
|
issue_number: number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
labels: ['Auto: whitelisted'],
|
|
})
|
|
.catch((e) => {
|
|
core.warning(e);
|
|
});
|
|
return;
|
|
} else {
|
|
core.debug('PR created by ' + context.payload.sender.login);
|
|
}
|
|
|
|
if (m && m[1]) {
|
|
res = m[1].trim().split('\r\n');
|
|
core.info(`routes detected: ${res}`);
|
|
|
|
if (res.length > 0 && res[0] === 'NOROUTE') {
|
|
core.info('PR stated no route, passing');
|
|
await removeLabel();
|
|
await github.issues
|
|
.addLabels({
|
|
issue_number: number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
labels: ['Auto: No Route Needed'],
|
|
})
|
|
.catch((e) => {
|
|
core.warning(e);
|
|
});
|
|
|
|
return;
|
|
} else if (res.length > 0) {
|
|
core.exportVariable('TEST_CONTINUE', true);
|
|
await removeLabel();
|
|
return res;
|
|
}
|
|
}
|
|
|
|
core.warning('seems no route found, failing');
|
|
|
|
await github.issues
|
|
.addLabels({
|
|
issue_number: number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
labels: [noFound],
|
|
})
|
|
.catch((e) => {
|
|
core.warning(e);
|
|
});
|
|
await github.issues
|
|
.createComment({
|
|
issue_number: number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
body: `自动检测失败, 请确认PR正文部分符合格式规范并重新开启, 详情请检查日志
|
|
Auto Route test failed, please check your PR body format and reopen pull request. Check logs for more details`,
|
|
})
|
|
.catch((e) => {
|
|
core.warning(e);
|
|
});
|
|
await github.pulls
|
|
.update({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
pull_number: number,
|
|
state: 'closed',
|
|
})
|
|
.catch((e) => {
|
|
core.warning(e);
|
|
});
|
|
|
|
throw 'Please follow the PR rules: failed to detect route';
|
|
};
|