@@ -111,6 +111,27 @@ public PullRequest getPullRequest(IRepositoryIdProvider repository, int id)
111111 request .setType (PullRequest .class );
112112 return (PullRequest ) client .get (request ).getBody ();
113113 }
114+
115+ /**
116+ * Create request for single pull request
117+ *
118+ * @param repository
119+ * @param state
120+ * @param head
121+ * @param base
122+ * @return request
123+ */
124+ public PullRequest getPullRequest (IRepositoryIdProvider repository , String state , String head , String base )
125+ throws IOException {
126+ PullRequest pullRequest = null ;
127+ List <PullRequest > pullRequests = getAll (pagePullRequests (repository , state , head , base ));
128+ if (pullRequests .size () > 1 ) {
129+ throw new RuntimeException ("Expected just one pull request" );
130+ } else if (!pullRequests .isEmpty ()) {
131+ pullRequest = pullRequests .get (0 );
132+ }
133+ return pullRequest ;
134+ }
114135
115136 /**
116137 * Create paged request for fetching pull requests
@@ -136,7 +157,7 @@ protected PagedRequest<PullRequest> createPagedRequest(IRepositoryIdProvider pro
136157 if (head != null ) {
137158 params .put (PR_HEAD , head );
138159 }
139- if (head != null ) {
160+ if (base != null ) {
140161 params .put (PR_BASE , base );
141162 }
142163 if (!params .isEmpty ()) {
@@ -157,7 +178,7 @@ protected PagedRequest<PullRequest> createPagedRequest(IRepositoryIdProvider pro
157178 */
158179 public List <PullRequest > getPullRequests (IRepositoryIdProvider repository ,
159180 String state ) throws IOException {
160- return getAll (pagePullRequests (repository , state ));
181+ return getAll (pagePullRequests (repository , state , null , null ));
161182 }
162183
163184 /**
@@ -168,8 +189,8 @@ public List<PullRequest> getPullRequests(IRepositoryIdProvider repository,
168189 * @return iterator over pages of pull requests
169190 */
170191 public PageIterator <PullRequest > pagePullRequests (
171- IRepositoryIdProvider repository , String state ) {
172- return pagePullRequests (repository , state , PAGE_SIZE );
192+ IRepositoryIdProvider repository , String state , String head , String base ) {
193+ return pagePullRequests (repository , state , head , base , PAGE_SIZE );
173194 }
174195
175196 /**
@@ -181,8 +202,8 @@ public PageIterator<PullRequest> pagePullRequests(
181202 * @return iterator over pages of pull requests
182203 */
183204 public PageIterator <PullRequest > pagePullRequests (
184- IRepositoryIdProvider repository , String state , int size ) {
185- return pagePullRequests (repository , state , PAGE_FIRST , size );
205+ IRepositoryIdProvider repository , String state , String head , String base , int size ) {
206+ return pagePullRequests (repository , state , head , base , PAGE_FIRST , size );
186207 }
187208
188209 /**
@@ -195,51 +216,12 @@ public PageIterator<PullRequest> pagePullRequests(
195216 * @return iterator over pages of pull requests
196217 */
197218 public PageIterator <PullRequest > pagePullRequests (
198- IRepositoryIdProvider repository , String state , int start , int size ) {
199- PagedRequest <PullRequest > request = createPullsRequest (repository ,
200- state , start , size );
219+ IRepositoryIdProvider repository , String state , String head , String base , int start , int size ) {
220+ PagedRequest <PullRequest > request = createPagedRequest (repository ,
221+ state , head , base , start , size );
201222 return createPageIterator (request );
202223 }
203224
204- private Map <String , String > createPrMap (PullRequest request ) {
205- Map <String , String > params = new HashMap <String , String >();
206- if (request != null ) {
207- String title = request .getTitle ();
208- if (title != null )
209- params .put (PR_TITLE , title );
210- String body = request .getBody ();
211- if (body != null )
212- params .put (PR_BODY , body );
213- PullRequestMarker baseMarker = request .getBase ();
214- if (baseMarker != null ) {
215- String base = baseMarker .getLabel ();
216- if (base != null )
217- params .put (PR_BASE , base );
218- }
219- PullRequestMarker headMarker = request .getHead ();
220- if (headMarker != null ) {
221- String head = headMarker .getLabel ();
222- if (head != null )
223- params .put (PR_HEAD , head );
224- }
225- }
226- return params ;
227- }
228-
229- private Map <String , String > editPrMap (PullRequest request ) {
230- Map <String , String > params = new HashMap <String , String >();
231- String title = request .getTitle ();
232- if (title != null )
233- params .put (PR_TITLE , title );
234- String body = request .getBody ();
235- if (body != null )
236- params .put (PR_BODY , body );
237- String state = request .getState ();
238- if (state != null )
239- params .put (PR_STATE , state );
240- return params ;
241- }
242-
243225 /**
244226 * Create pull request
245227 *
0 commit comments