radarrplexorganizrnginxsonarrdashboardsabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepage
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							177 lines
						
					
					
						
							6.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							177 lines
						
					
					
						
							6.7 KiB
						
					
					
				| <?php | |
| 
 | |
| namespace Github\Api\PullRequest; | |
| 
 | |
| use Github\Api\AbstractApi; | |
| use Github\Api\AcceptHeaderTrait; | |
| use Github\Exception\InvalidArgumentException; | |
| use Github\Exception\MissingArgumentException; | |
| 
 | |
| /** | |
|  * API for accessing Pull Request Reviews from your Git/Github repositories. | |
|  * | |
|  * @link https://developer.github.com/v3/pulls/reviews/ | |
|  * | |
|  * @author Christian Flothmann <christian.flothmann@sensiolabs.de> | |
|  */ | |
| class Review extends AbstractApi | |
| { | |
|     use AcceptHeaderTrait; | |
| 
 | |
|     public function configure() | |
|     { | |
|         return $this; | |
|     } | |
| 
 | |
|     /** | |
|      * Get a listing of a pull request's reviews by the username, repository and pull request number. | |
|      * | |
|      * @link https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request | |
|      * | |
|      * @param string $username    the username | |
|      * @param string $repository  the repository | |
|      * @param int    $pullRequest the pull request number | |
|      * @param array  $params      a list of extra parameters. | |
|      * | |
|      * @return array array of pull request reviews for the pull request | |
|      */ | |
|     public function all($username, $repository, $pullRequest, array $params = []) | |
|     { | |
|         $parameters = array_merge([ | |
|             'page' => 1, | |
|             'per_page' => 30, | |
|         ], $params); | |
| 
 | |
|         return $this->get('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.$pullRequest.'/reviews', $parameters); | |
|     } | |
| 
 | |
|     /** | |
|      * Get a single pull request review by the username, repository, pull request number and the review id. | |
|      * | |
|      * @link https://developer.github.com/v3/pulls/reviews/#get-a-single-review | |
|      * | |
|      * @param string $username    the username | |
|      * @param string $repository  the repository | |
|      * @param int    $pullRequest the pull request number | |
|      * @param int    $id          the review id | |
|      * | |
|      * @return array the pull request review | |
|      */ | |
|     public function show($username, $repository, $pullRequest, $id) | |
|     { | |
|         return $this->get('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.$pullRequest.'/reviews/'.$id); | |
|     } | |
| 
 | |
|     /** | |
|      * Delete a single pull request review by the username, repository, pull request number and the review id. | |
|      * | |
|      * @link https://developer.github.com/v3/pulls/reviews/#delete-a-pending-review | |
|      * | |
|      * @param string $username    the username | |
|      * @param string $repository  the repository | |
|      * @param int    $pullRequest the pull request number | |
|      * @param int    $id          the review id | |
|      * | |
|      * @return array|string | |
|      */ | |
|     public function remove($username, $repository, $pullRequest, $id) | |
|     { | |
|         return $this->delete('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.$pullRequest.'/reviews/'.$id); | |
|     } | |
| 
 | |
|     /** | |
|      * Get comments for a single pull request review. | |
|      * | |
|      * @link https://developer.github.com/v3/pulls/reviews/#get-comments-for-a-single-review | |
|      * | |
|      * @param string $username    the username | |
|      * @param string $repository  the repository | |
|      * @param int    $pullRequest the pull request number | |
|      * @param int    $id          the review id | |
|      * | |
|      * @return array|string | |
|      */ | |
|     public function comments($username, $repository, $pullRequest, $id) | |
|     { | |
|         return $this->get('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.rawurlencode($pullRequest).'/reviews/'.rawurlencode($id).'/comments'); | |
|     } | |
| 
 | |
|     /** | |
|      * Create a pull request review by the username, repository and pull request number. | |
|      * | |
|      * @link https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review | |
|      * | |
|      * @param string $username    the username | |
|      * @param string $repository  the repository | |
|      * @param int    $pullRequest the pull request number | |
|      * @param array  $params      a list of extra parameters. | |
|      * | |
|      * @throws MissingArgumentException | |
|      * | |
|      * @return array the pull request review | |
|      */ | |
|     public function create($username, $repository, $pullRequest, array $params = []) | |
|     { | |
|         if (array_key_exists('event', $params) && !in_array($params['event'], ['APPROVE', 'REQUEST_CHANGES', 'COMMENT'], true)) { | |
|             throw new InvalidArgumentException(sprintf('"event" must be one of ["APPROVE", "REQUEST_CHANGES", "COMMENT"] ("%s" given).', $params['event'])); | |
|         } | |
| 
 | |
|         return $this->post('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.$pullRequest.'/reviews', $params); | |
|     } | |
| 
 | |
|     /** | |
|      * Submit a pull request review by the username, repository, pull request number and the review id. | |
|      * | |
|      * @link https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review | |
|      * | |
|      * @param string $username    the username | |
|      * @param string $repository  the repository | |
|      * @param int    $pullRequest the pull request number | |
|      * @param int    $id          the review id | |
|      * @param array  $params      a list of extra parameters. | |
|      * | |
|      * @throws MissingArgumentException | |
|      * | |
|      * @return array the pull request review | |
|      */ | |
|     public function submit($username, $repository, $pullRequest, $id, array $params = []) | |
|     { | |
|         if (!isset($params['event'])) { | |
|             throw new MissingArgumentException('event'); | |
|         } | |
| 
 | |
|         if (!in_array($params['event'], ['APPROVE', 'REQUEST_CHANGES', 'COMMENT'], true)) { | |
|             throw new InvalidArgumentException(sprintf('"event" must be one of ["APPROVE", "REQUEST_CHANGES", "COMMENT"] ("%s" given).', $params['event'])); | |
|         } | |
| 
 | |
|         return $this->post('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.$pullRequest.'/reviews/'.$id.'/events', $params); | |
|     } | |
| 
 | |
|     /** | |
|      * Dismiss a pull request review by the username, repository, pull request number and the review id. | |
|      * | |
|      * @link https://developer.github.com/v3/pulls/reviews/#dismiss-a-pull-request-review | |
|      * | |
|      * @param string $username    the username | |
|      * @param string $repository  the repository | |
|      * @param int    $pullRequest the pull request number | |
|      * @param int    $id          the review id | |
|      * @param string $message     a mandatory dismissal message | |
|      * | |
|      * @return array|string | |
|      */ | |
|     public function dismiss($username, $repository, $pullRequest, $id, $message) | |
|     { | |
|         if (!is_string($message)) { | |
|             throw new InvalidArgumentException(sprintf('"message" must be a valid string ("%s" given).', gettype($message))); | |
|         } | |
| 
 | |
|         if (empty($message)) { | |
|             throw new InvalidArgumentException('"message" is mandatory and cannot be empty'); | |
|         } | |
| 
 | |
|         return $this->put('/repos/'.rawurlencode($username).'/'.rawurlencode($repository).'/pulls/'.$pullRequest.'/reviews/'.$id.'/dismissals', [ | |
|           'message' => $message, | |
|         ]); | |
|     } | |
| }
 | |
| 
 |