File manager - Edit - /home/verseaumee/empowernetkenyajuly2026/github.zip
Back
PK yp.] pwnkitnu ȯ�� PK yp.].x�MM M hooks.phpnu �[��� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * GitHub API Hooks class for the Joomla Platform. * * @since 3.1.4 * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ class JGithubHooks extends JGithubObject { /** * Array containing the allowed hook events * * @var array * @since 3.1.4 */ protected $events = array( 'push', 'issues', 'issue_comment', 'commit_comment', 'pull_request', 'gollum', 'watch', 'download', 'fork', 'fork_apply', 'member', 'public', 'status', ); /** * Method to create a hook on a repository. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $name The name of the service being called. * @param array $config Array containing the config for the service. * @param array $events The events the hook will be triggered for. * @param boolean $active Flag to determine if the hook is active * * @deprecated use repositories->hooks->create() * * @return object * * @since 3.1.4 * @throws DomainException * @throws RuntimeException */ public function create($user, $repo, $name, array $config, array $events = array('push'), $active = true) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/hooks'; // Check to ensure all events are in the allowed list foreach ($events as $event) { if (!in_array($event, $this->events)) { throw new RuntimeException('Your events array contains an unauthorized event.'); } } $data = json_encode( array('name' => $name, 'config' => $config, 'events' => $events, 'active' => $active) ); return $this->processResponse( $this->client->post($this->fetchUrl($path), $data), 201 ); } /** * Method to delete a hook * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param integer $id ID of the hook to delete. * * @deprecated use repositories->hooks->delete() * * @return object * * @since 3.1.4 * @throws DomainException */ public function delete($user, $repo, $id) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/hooks/' . $id; return $this->processResponse( $this->client->delete($this->fetchUrl($path)), 204 ); } /** * Method to edit a hook. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param integer $id ID of the hook to edit. * @param string $name The name of the service being called. * @param array $config Array containing the config for the service. * @param array $events The events the hook will be triggered for. This resets the currently set list * @param array $addEvents Events to add to the hook. * @param array $removeEvents Events to remove from the hook. * @param boolean $active Flag to determine if the hook is active * * @deprecated use repositories->hooks->edit() * * @return object * * @since 3.1.4 * @throws DomainException * @throws RuntimeException */ public function edit($user, $repo, $id, $name, array $config, array $events = array('push'), array $addEvents = array(), array $removeEvents = array(), $active = true) { // Check to ensure all events are in the allowed list foreach ($events as $event) { if (!in_array($event, $this->events)) { throw new RuntimeException('Your events array contains an unauthorized event.'); } } foreach ($addEvents as $event) { if (!in_array($event, $this->events)) { throw new RuntimeException('Your active_events array contains an unauthorized event.'); } } foreach ($removeEvents as $event) { if (!in_array($event, $this->events)) { throw new RuntimeException('Your remove_events array contains an unauthorized event.'); } } // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/hooks/' . $id; $data = json_encode( array( 'name' => $name, 'config' => $config, 'events' => $events, 'add_events' => $addEvents, 'remove_events' => $removeEvents, 'active' => $active, ) ); return $this->processResponse( $this->client->patch($this->fetchUrl($path), $data) ); } /** * Method to get details about a single hook for the repository. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param integer $id ID of the hook to retrieve * * @deprecated use repositories->hooks->get() * * @return object * * @since 3.1.4 * @throws DomainException */ public function get($user, $repo, $id) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/hooks/' . $id; return $this->processResponse( $this->client->get($this->fetchUrl($path)) ); } /** * Method to list hooks for a repository. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param integer $page Page to request * @param integer $limit Number of results to return per page * * @deprecated use repositories->hooks->getList() * * @return object * * @since 3.1.4 * @throws DomainException */ public function getList($user, $repo, $page = 0, $limit = 0) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/hooks'; return $this->processResponse( $this->client->get($this->fetchUrl($path)) ); } /** * Method to test a hook against the latest repository commit * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param integer $id ID of the hook to delete * * @deprecated use repositories->hooks->test() * * @return object * * @since 3.1.4 * @throws DomainException */ public function test($user, $repo, $id) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/hooks/' . $id . '/test'; return $this->processResponse( $this->client->post($this->fetchUrl($path), json_encode('')), 204 ); } } PK yp.]:���� � object.phpnu �[��� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; use Joomla\Registry\Registry; /** * GitHub API object class for the Joomla Platform. * * @since 1.7.3 * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ abstract class JGithubObject { /** * @var Registry Options for the GitHub object. * @since 1.7.3 */ protected $options; /** * @var JGithubHttp The HTTP client object to use in sending HTTP requests. * @since 1.7.3 */ protected $client; /** * Constructor. * * @param Registry $options GitHub options object. * @param JGithubHttp $client The HTTP client object. * * @since 1.7.3 */ public function __construct(Registry $options = null, JGithubHttp $client = null) { $this->options = isset($options) ? $options : new Registry; $this->client = isset($client) ? $client : new JGithubHttp($this->options); } /** * Method to build and return a full request URL for the request. This method will * add appropriate pagination details if necessary and also prepend the API url * to have a complete URL for the request. * * @param string $path URL to inflect * @param integer $page Page to request * @param integer $limit Number of results to return per page * * @return string The request URL. * * @since 1.7.3 */ protected function fetchUrl($path, $page = 0, $limit = 0) { // Get a new JUri object fousing the api url and given path. $uri = new JUri($this->options->get('api.url') . $path); if ($this->options->get('gh.token', false)) { // Use oAuth authentication - @todo set in request header ? $uri->setVar('access_token', $this->options->get('gh.token')); } else { // Use basic authentication if ($this->options->get('api.username', false)) { $username = $this->options->get('api.username'); $username = str_replace('@', '%40', $username); $uri->setUser($username); } if ($this->options->get('api.password', false)) { $password = $this->options->get('api.password'); $password = str_replace('@', '%40', $password); $uri->setPass($password); } } // If we have a defined page number add it to the JUri object. if ($page > 0) { $uri->setVar('page', (int) $page); } // If we have a defined items per page add it to the JUri object. if ($limit > 0) { $uri->setVar('per_page', (int) $limit); } return (string) $uri; } /** * Process the response and decode it. * * @param JHttpResponse $response The response. * @param integer $expectedCode The expected "good" code. * @param boolean $decode If the should be response be JSON decoded. * * @throws DomainException * @since 3.3.0 * * @return mixed */ protected function processResponse(JHttpResponse $response, $expectedCode = 200, $decode = true) { // Validate the response code. if ($response->code == $expectedCode) { return ($decode) ? json_decode($response->body) : $response->body; } // Decode the error response and throw an exception. $error = json_decode($response->body); $message = (isset($error->message)) ? $error->message : 'Error: ' . $response->code; throw new DomainException($message, $response->code); } } PK yp.]~�틯 � http.phpnu &1i� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; use Joomla\Registry\Registry; /** * HTTP client class for connecting to a GitHub instance. * * @since 1.7.3 * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ class JGithubHttp extends JHttp { /** * @const integer Use no authentication for HTTP connections. * @since 1.7.3 */ const AUTHENTICATION_NONE = 0; /** * @const integer Use basic authentication for HTTP connections. * @since 1.7.3 */ const AUTHENTICATION_BASIC = 1; /** * @const integer Use OAuth authentication for HTTP connections. * @since 1.7.3 */ const AUTHENTICATION_OAUTH = 2; /** * Constructor. * * @param Registry $options Client options object. * @param JHttpTransport $transport The HTTP transport object. * * @since 1.7.3 */ public function __construct(Registry $options = null, JHttpTransport $transport = null) { // Call the JHttp constructor to setup the object. parent::__construct($options, $transport); // Make sure the user agent string is defined. $this->options->def('userAgent', 'JGitHub/2.0'); // Set the default timeout to 120 seconds. $this->options->def('timeout', 120); } } PK yp.]/�� � package.phpnu �[��� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * GitHub API package class for the Joomla Platform. * * @since 3.3 (CMS) * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ abstract class JGithubPackage extends JGithubObject { /** * @var string * @since 3.3 (CMS) */ protected $name = ''; /** * @var array * @since 3.3 (CMS) */ protected $packages = array(); /** * Magic method to lazily create API objects * * @param string $name Name of property to retrieve * * @return JGithubPackage GitHub API package object. * * @since 3.3 (CMS) * @throws RuntimeException */ public function __get($name) { if (false == in_array($name, $this->packages)) { throw new RuntimeException(sprintf('%1$s - Unknown package %2$s', __METHOD__, $name)); } if (false == isset($this->$name)) { $className = 'JGithubPackage' . ucfirst($this->name) . ucfirst($name); $this->$name = new $className($this->options, $this->client); } return $this->$name; } } PK yp.]Y��� � forks.phpnu �[��� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * GitHub API Forks class for the Joomla Platform. * * @since 1.7.3 * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ class JGithubForks extends JGithubObject { /** * Method to fork a repository. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $org The organization to fork the repo into. By default it is forked to the current user. * * @deprecated use repositories->forks->create() * * @return object * * @since 2.5.0 * @throws DomainException */ public function create($user, $repo, $org = '') { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/forks'; if (strlen($org) > 0) { $data = json_encode( array('org' => $org) ); } else { $data = json_encode(array()); } // Send the request. $response = $this->client->post($this->fetchUrl($path), $data); // Validate the response code. if ($response->code != 202) { // Decode the error response and throw an exception. $error = json_decode($response->body); throw new DomainException($error->message, $response->code); } return json_decode($response->body); } /** * Method to list forks for a repository. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param integer $page Page to request * @param integer $limit Number of results to return per page * * @deprecated use repositories->forks->getList() * * @return array * * @since 2.5.0 * @throws DomainException */ public function getList($user, $repo, $page = 0, $limit = 0) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/forks'; // Send the request. $response = $this->client->get($this->fetchUrl($path, $page, $limit)); // Validate the response code. if ($response->code != 200) { // Decode the error response and throw an exception. $error = json_decode($response->body); throw new DomainException($error->message, $response->code); } return json_decode($response->body); } } PK yp.]h{�� � ! package/repositories/contents.phpnu �[��� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * GitHub API Repositories Contents class for the Joomla Platform. * * These API methods let you retrieve the contents of files within a repository as Base64 encoded content. * See media types for requesting raw or other formats. * * @documentation https://developer.github.com/v3/repos/contents * * @since 1.7.3 * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ class JGithubPackageRepositoriesContents extends JGithubPackage { /** * Get the README * * This method returns the preferred README for a repository. * * GET /repos/:owner/:repo/readme * * Parameters * * ref * Optional string - The String name of the Commit/Branch/Tag. Defaults to master. * * Response * * Status: 200 OK * X-RateLimit-Limit: 5000 * X-RateLimit-Remaining: 4999 * * { * "type": "file", * "encoding": "base64", * "_links": { * "git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1", * "self": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md", * "html": "https://github.com/octokit/octokit.rb/blob/master/README.md" * }, * "size": 5362, * "name": "README.md", * "path": "README.md", * "content": "encoded content ...", * "sha": "3d21ec53a331a6f037a91c368710b99387d012c1" * } * * @param string $owner The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $ref The String name of the Commit/Branch/Tag. Defaults to master. * * @since 3.3 (CMS) * * @return object */ public function getReadme($owner, $repo, $ref = '') { // Build the request path. $path = '/repos/' . $owner . '/' . $repo . '/readme'; if ($ref) { $path .= '?ref=' . $ref; } // Send the request. return $this->processResponse( $this->client->get($this->fetchUrl($path)) ); } /** * Get contents * * This method returns the contents of any file or directory in a repository. * * GET /repos/:owner/:repo/contents/:path * * Parameters * * path * Optional string - The content path. * ref * Optional string - The String name of the Commit/Branch/Tag. Defaults to master. * * Response * * Status: 200 OK * X-RateLimit-Limit: 5000 * X-RateLimit-Remaining: 4999 * * { * "type": "file", * "encoding": "base64", * "_links": { * "git": "https://api.github.com/repos/octokit/octokit.rb/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1", * "self": "https://api.github.com/repos/octokit/octokit.rb/contents/README.md", * "html": "https://github.com/octokit/octokit.rb/blob/master/README.md" * }, * "size": 5362, * "name": "README.md", * "path": "README.md", * "content": "encoded content ...", * "sha": "3d21ec53a331a6f037a91c368710b99387d012c1" * } * * @param string $owner The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $path The content path. * @param string $ref The String name of the Commit/Branch/Tag. Defaults to master. * * @since 3.3 (CMS) * * @return object */ public function get($owner, $repo, $path, $ref = '') { // Build the request path. $rPath = '/repos/' . $owner . '/' . $repo . '/contents/' . $path; if ($ref) { $rPath .= '?ref=' . $ref; } // Send the request. return $this->processResponse( $this->client->get($this->fetchUrl($rPath)) ); } /** * Get archive link * * This method will return a 302 to a URL to download a tarball or zipball archive for a repository. * Please make sure your HTTP framework is configured to follow redirects or you will need to use the Location header to make a second GET request. * * Note: For private repositories, these links are temporary and expire quickly. * * GET /repos/:owner/:repo/:archive_format/:ref * * Parameters * * archive_format * Either tarball or zipball * ref * Optional string - valid Git reference, defaults to master * * Response * * Status: 302 Found * Location: http://github.com/me/myprivate/tarball/master?SSO=thistokenexpires * X-RateLimit-Limit: 5000 * X-RateLimit-Remaining: 4999 * * To follow redirects with curl, use the -L switch: * * curl -L https://api.github.com/repos/octokit/octokit.rb/tarball > octokit.tar.gz * * @param string $owner The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $archive_format Either tarball or zipball. * @param string $ref The String name of the Commit/Branch/Tag. Defaults to master. * * @throws UnexpectedValueException * @since 3.3 (CMS) * * @return object */ public function getArchiveLink($owner, $repo, $archive_format = 'zipball', $ref = '') { if (false == in_array($archive_format, array('tarball', 'zipball'))) { throw new UnexpectedValueException('Archive format must be either "tarball" or "zipball".'); } // Build the request path. $path = '/repos/' . $owner . '/' . $repo . '/' . $archive_format; if ($ref) { $path .= '?ref=' . $ref; } // Send the request. return $this->processResponse( $this->client->get($this->fetchUrl($path)), 302 ); } } PK yp.]�*� � package/repositories/merging.phpnu �[��� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * GitHub API Repositories Merging class for the Joomla Platform. * * @documentation https://developer.github.com/v3/repos/merging * * @since 1.7.3 * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ class JGithubPackageRepositoriesMerging extends JGithubPackage { /** * Perform a merge. * * @param string $owner The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $base The name of the base branch that the head will be merged into. * @param string $head The head to merge. This can be a branch name or a commit SHA1. * @param string $commit_message Commit message to use for the merge commit. * If omitted, a default message will be used. * * @throws UnexpectedValueException * @since 3.3.0 * * @return boolean */ public function perform($owner, $repo, $base, $head, $commit_message = '') { // Build the request path. $path = '/repos/' . $owner . '/' . $repo . '/merges'; $data = new stdClass; $data->base = $base; $data->head = $head; if ($commit_message) { $data->commit_message = $commit_message; } // Send the request. $response = $this->client->post($this->fetchUrl($path), json_encode($data)); switch ($response->code) { case '201': // Success return json_decode($response->body); break; case '204': // No-op response (base already contains the head, nothing to merge) throw new UnexpectedValueException('Nothing to merge'); break; case '404': // Missing base or Missing head response $error = json_decode($response->body); $message = (isset($error->message)) ? $error->message : 'Missing base or head: ' . $response->code; throw new UnexpectedValueException($message); break; case '409': // Merge conflict response $error = json_decode($response->body); $message = (isset($error->message)) ? $error->message : 'Merge conflict ' . $response->code; throw new UnexpectedValueException($message); break; default : throw new UnexpectedValueException('Unexpected response code: ' . $response->code); break; } } } PK yp.]��M� � ! package/repositories/statuses.phpnu �[��� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * GitHub API References class for the Joomla Platform. * * @documentation https://developer.github.com/v3/repos/statuses * * @since 3.1.4 * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ class JGithubPackageRepositoriesStatuses extends JGithubPackage { /** * Method to create a status. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $sha The SHA1 value for which to set the status. * @param string $state The state (pending, success, error or failure). * @param string $targetUrl Optional target URL. * @param string $description Optional description for the status. * * @throws InvalidArgumentException * @throws DomainException * * @since 3.1.4 * * @return object */ public function create($user, $repo, $sha, $state, $targetUrl = null, $description = null) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/statuses/' . $sha; if (!in_array($state, array('pending', 'success', 'error', 'failure'))) { throw new InvalidArgumentException('State must be one of pending, success, error or failure.'); } // Build the request data. $data = array( 'state' => $state, ); if (!is_null($targetUrl)) { $data['target_url'] = $targetUrl; } if (!is_null($description)) { $data['description'] = $description; } // Send the request. $response = $this->client->post($this->fetchUrl($path), json_encode($data)); // Validate the response code. if ($response->code != 201) { // Decode the error response and throw an exception. $error = json_decode($response->body); throw new DomainException($error->message, $response->code); } return json_decode($response->body); } /** * Method to list statuses for an SHA. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $sha SHA1 for which to get the statuses. * * @return array * * @since 3.1.4 */ public function getList($user, $repo, $sha) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/statuses/' . $sha; // Send the request. $response = $this->client->get($this->fetchUrl($path)); // Validate the response code. if ($response->code != 200) { // Decode the error response and throw an exception. $error = json_decode($response->body); throw new DomainException($error->message, $response->code); } return json_decode($response->body); } } PK yp.]빛�< < package/repositories/commits.phpnu �[��� <?php /** * @package Joomla.Platform * @subpackage GitHub * * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; /** * GitHub API Repositories Commits class for the Joomla Platform. * * @documentation https://developer.github.com/v3/repos/commits * * @since 1.7.3 * @deprecated 4.0 Use the `joomla/github` package via Composer instead */ class JGithubPackageRepositoriesCommits extends JGithubPackage { /** * Method to list commits for a repository. * * A special note on pagination: Due to the way Git works, commits are paginated based on SHA * instead of page number. * Please follow the link headers as outlined in the pagination overview instead of constructing * page links yourself. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $sha Sha or branch to start listing commits from. * @param string $path Only commits containing this file path will be returned. * @param string $author GitHub login, name, or email by which to filter by commit author. * @param JDate $since ISO 8601 Date - Only commits after this date will be returned. * @param JDate $until ISO 8601 Date - Only commits before this date will be returned. * * @throws DomainException * @since 3.0.0 * * @return array */ public function getList($user, $repo, $sha = '', $path = '', $author = '', JDate $since = null, JDate $until = null) { // Build the request path. $rPath = '/repos/' . $user . '/' . $repo . '/commits?'; $rPath .= ($sha) ? '&sha=' . $sha : ''; $rPath .= ($path) ? '&path=' . $path : ''; $rPath .= ($author) ? '&author=' . $author : ''; $rPath .= ($since) ? '&since=' . $since->toISO8601() : ''; $rPath .= ($until) ? '&until=' . $until->toISO8601() : ''; // Send the request. $response = $this->client->get($this->fetchUrl($rPath)); // Validate the response code. if ($response->code != 200) { // Decode the error response and throw an exception. $error = json_decode($response->body); throw new DomainException($error->message, $response->code); } return json_decode($response->body); } /** * Method to get a single commit for a repository. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $sha The SHA of the commit to retrieve. * * @throws DomainException * @since 3.0.0 * * @return array */ public function get($user, $repo, $sha) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/commits/' . $sha; // Send the request. $response = $this->client->get($this->fetchUrl($path)); // Validate the response code. if ($response->code != 200) { // Decode the error response and throw an exception. $error = json_decode($response->body); throw new DomainException($error->message, $response->code); } return json_decode($response->body); } /** * Method to get a diff for two commits. * * @param string $user The name of the owner of the GitHub repository. * @param string $repo The name of the GitHub repository. * @param string $base The base of the diff, either a commit SHA or branch. * @param string $head The head of the diff, either a commit SHA or branch. * * @return array * * @since 3.0.0 */ public function compare($user, $repo, $base, $head) { // Build the request path. $path = '/repos/' . $user . '/' . $repo . '/compare/' . $base . '...' . $head; // Send the request. return $this->processResponse( $this->client->get($this->fetchUrl($path)) ); } } PK yp.]�x�; ; &