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'));