👨🏻‍💻👩🏻‍💻 Use Ant Design like a Pro!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

85 lines
2.0 KiB

const Octokit = require('@octokit/core');
const octokit = new Octokit.Octokit({
auth: process.env.GITHUB_TOKEN || process.env.GITHUB_AUTH,
});
const queryIssue = ({ title, id }) => {
return octokit
.request('GET /search/issues', {
q: title,
per_page: 5,
})
.then(({ data }) => {
const list = data.items
.map((item) => {
return {
title: item.title,
url: item.html_url,
id: item.id,
};
})
.filter((item) => {
return item.id !== id;
});
if (list.length > 0) {
return `
> Issue Robot generation
### 以下的issue可能会帮助到你 :
${list
.map((item) => {
return `* [${item.title}](${item.url})`;
})
.join('\n')}`;
}
return null;
})
.then(async (markdown) => {
return markdown;
});
};
const findIssue = async (issueId) => {
const { data } = await octokit.request('GET /repos/{owner}/{repo}/issues/{issue_number}', {
owner: 'ant-design',
repo: 'ant-design-pro',
issue_number: issueId,
});
return data;
};
const closeIssue = async (issueId) => {
await octokit.request('PATCH /repos/{owner}/{repo}/issues/{issue_number}', {
owner: 'ant-design',
repo: 'ant-design-pro',
issue_number: issueId,
state: 'closed',
});
};
const replyCommit = async (issueId, markdown) => {
await octokit.request('POST /repos/{owner}/{repo}/issues/{issue_number}/comments', {
owner: 'ant-design',
repo: 'ant-design-pro',
issue_number: issueId,
body: markdown,
});
};
const reply = async () => {
const issueId = process.env.ISSUE_NUMBER;
const issue = await findIssue(issueId);
if (!issue.title || issue.title.length < 12) {
replyCommit(issueId, '**请写标题!**');
closeIssue(issueId);
return;
}
// const markdown = await queryIssue({
// title: issue.title,
// id: issue.id,
// });
// replyCommit(issueId, markdown);
};
reply();