diff --git a/docs/en/programming.md b/docs/en/programming.md index b044d47c34..4d49e85b3b 100644 --- a/docs/en/programming.md +++ b/docs/en/programming.md @@ -153,7 +153,7 @@ For instance, the `/github/topics/framework/l=php&o=desc&s=stars` route will gen ### Repo Pull Requests - + ### User Followers diff --git a/docs/programming.md b/docs/programming.md index 461fddd1f5..f7609d9bca 100644 --- a/docs/programming.md +++ b/docs/programming.md @@ -253,7 +253,7 @@ GitHub 官方也提供了一些 RSS: ### 仓库 Pull Requests - + ### 用户 Followers diff --git a/lib/v2/github/pulls.js b/lib/v2/github/pulls.js index 0184b09f54..15e7da20fe 100644 --- a/lib/v2/github/pulls.js +++ b/lib/v2/github/pulls.js @@ -4,33 +4,32 @@ const md = require('markdown-it')({ html: true, linkify: true, }); -const queryString = require('query-string'); const { parseDate } = require('@/utils/parse-date'); module.exports = async (ctx) => { const user = ctx.params.user; const repo = ctx.params.repo; const state = ctx.params.state ?? 'open'; + const labels = ctx.params.labels; const host = `https://github.com/${user}/${repo}/pulls`; - const url = `https://api.github.com/repos/${user}/${repo}/pulls`; + const url = `https://api.github.com/repos/${user}/${repo}/issues`; // every PR is also an issue const headers = { Accept: 'application/vnd.github.v3+json' }; if (config.github && config.github.access_token) { headers.Authorization = `token ${config.github.access_token}`; } - const response = await got({ - method: 'get', - url, - searchParams: queryString.stringify({ + const response = await got(url, { + searchParams: { state, + labels, sort: 'created', direction: 'desc', per_page: ctx.query.limit ? (parseInt(ctx.query.limit) <= 100 ? parseInt(ctx.query.limit) : 100) : 100, - }), + }, headers, }); - const data = response.data; + const data = response.data.filter((item) => item.pull_request); ctx.state.data = { allowEmpty: true, diff --git a/lib/v2/github/router.js b/lib/v2/github/router.js index 2e78ef95b7..686fd4fd16 100644 --- a/lib/v2/github/router.js +++ b/lib/v2/github/router.js @@ -5,7 +5,7 @@ module.exports = function (router) { router.get('/contributors/:user/:repo/:order?/:anon?', require('./contributors')); router.get('/file/:user/:repo/:branch/:filepath+', require('./file')); router.get('/issue/:user/:repo/:state?/:labels?', require('./issue')); - router.get('/pull/:user/:repo/:state?', require('./pulls')); + router.get('/pull/:user/:repo/:state?/:labels?', require('./pulls')); router.get('/repos/:user', require('./repos')); router.get('/search/:query/:sort?/:order?', require('./search')); router.get('/starred_repos/:user', require('./starred_repos'));