@@ -56,7 +56,6 @@ const getGithubURL = (searchParams, resultsOptions = {}) => {
56
56
57
57
const defaultParams = {
58
58
org : config . get ( "githubApi.org" ) ,
59
- type : "pr" ,
60
59
} ;
61
60
62
61
const finalSearchParams = Object . assign ( { } , defaultParams , searchParams ) ;
@@ -102,6 +101,7 @@ const fetchPRsByUser = async (username) => {
102
101
const { user } = await fetchUser ( { username } ) ;
103
102
const url = getGithubURL ( {
104
103
author : user . github_id ,
104
+ type : "pr" ,
105
105
} ) ;
106
106
return getFetch ( url ) ;
107
107
} catch ( err ) {
@@ -111,55 +111,115 @@ const fetchPRsByUser = async (username) => {
111
111
} ;
112
112
113
113
/**
114
- * Fetches the oldest open `per_page` requests
114
+ * Fetches the latest `per_page` open PRs
115
+ *
116
+ * Order by default is desc, which will fetch latest open PRs,
117
+ * to fetch stale PRs just change pass order as asc
118
+ *
115
119
*/
116
- const fetchStalePRs = async ( perPage = 10 , page = 1 ) => {
120
+ const fetchOpenPRs = async ( params = { } ) => {
121
+ const { perPage = 100 , page = 1 , searchParams = { } , resultOptions = { } } = params ;
122
+
117
123
try {
118
124
const url = getGithubURL (
119
125
{
126
+ type : "pr" ,
120
127
is : "open" ,
128
+ ...searchParams ,
121
129
} ,
122
130
{
123
131
sort : "created" ,
124
- order : "asc" ,
132
+ ... resultOptions ,
125
133
per_page : perPage ,
126
134
page,
127
135
}
128
136
) ;
129
137
return getFetch ( url ) ;
130
138
} catch ( err ) {
131
- logger . error ( `Error while fetching pull requests: ${ err } ` ) ;
139
+ logger . error ( `Error while fetching open pull requests: ${ err } ` ) ;
132
140
throw err ;
133
141
}
134
142
} ;
135
143
136
- /**
137
- * Fetches the latest `per_page` open PRs
138
- */
139
- const fetchOpenPRs = async ( perPage = 10 , page = 1 ) => {
144
+ const fetchMergedPRs = async ( params = { } ) => {
145
+ const { perPage = 100 , page = 1 , searchParams = { } , resultOptions = { } } = params ;
146
+
140
147
try {
141
148
const url = getGithubURL (
142
149
{
150
+ type : "pr" ,
151
+ is : "merged" ,
152
+ ...searchParams ,
153
+ } ,
154
+ {
155
+ sort : "updated" ,
156
+ ...resultOptions ,
157
+ per_page : perPage ,
158
+ page,
159
+ }
160
+ ) ;
161
+
162
+ return getFetch ( url ) ;
163
+ } catch ( err ) {
164
+ logger . error ( `Error while fetching closed pull requests: ${ err } ` ) ;
165
+ throw err ;
166
+ }
167
+ } ;
168
+
169
+ const fetchOpenIssues = async ( params = { } ) => {
170
+ const { perPage = 100 , page = 1 , searchParams = { } , resultOptions = { } } = params ;
171
+
172
+ try {
173
+ const url = getGithubURL (
174
+ {
175
+ type : "issue" ,
143
176
is : "open" ,
177
+ ...searchParams ,
144
178
} ,
145
179
{
146
180
sort : "created" ,
147
- order : "desc" ,
181
+ ... resultOptions ,
148
182
per_page : perPage ,
149
183
page,
150
184
}
151
185
) ;
152
186
return getFetch ( url ) ;
153
187
} catch ( err ) {
154
- logger . error ( `Error while fetching pull requests: ${ err } ` ) ;
188
+ logger . error ( `Error while fetching open issues: ${ err } ` ) ;
189
+ throw err ;
190
+ }
191
+ } ;
192
+
193
+ const fetchClosedIssues = async ( params = { } ) => {
194
+ const { perPage = 100 , page = 1 , searchParams = { } , resultOptions = { } } = params ;
195
+
196
+ try {
197
+ const url = getGithubURL (
198
+ {
199
+ type : "issue" ,
200
+ is : "closed" ,
201
+ ...searchParams ,
202
+ } ,
203
+ {
204
+ sort : "updated" ,
205
+ ...resultOptions ,
206
+ per_page : perPage ,
207
+ page,
208
+ }
209
+ ) ;
210
+ return getFetch ( url ) ;
211
+ } catch ( err ) {
212
+ logger . error ( `Error while fetching closed issues: ${ err } ` ) ;
155
213
throw err ;
156
214
}
157
215
} ;
158
216
159
217
module . exports = {
160
218
fetchPRsByUser,
161
219
fetchOpenPRs,
162
- fetchStalePRs ,
220
+ fetchMergedPRs ,
163
221
getFetch,
164
222
extractPRdetails,
223
+ fetchOpenIssues,
224
+ fetchClosedIssues,
165
225
} ;
0 commit comments