A PHP GitHub API wrapper wich used the Laravel HTTP Client (based on Guzzle HTTP client).
This package does not require Laravel and can be used in any PHP application.
The API endpoint methods are automatically generated with the references from octokit/openapi.
composer require norman-huth/github-api
<?php
use NormanHuth\GithubApi\Client;
require_once __DIR__ . '/vendor/autoload.php';
$client = new Client('{GITHUB_TOKEN_HERE}');
$response = $client->repos()->reposCreateAFork(
owner: 'Muetze42',
repo: 'github-api',
requestBody: ['organization' => 'MyVendor', 'name' => 'MyRepo']
);
// Get data as array
return $response->json()
// Get data as object
return $response->object()
// More infos: https://laravel.com/docs/http-client#making-requests
Every method returns a \Illuminate\Http\Client\Response
.
<?php
if ($response->successful()) {
return $response->json();
}
See ENDPOINTS.md
For frequently used endpoints for the current authenticated user, there are also additional methods that can be called directly from the client.
Alias for $client->users()->getTheAuthenticatedUser()
.
Use the REST API to get public and private information about authenticated users.
Reference: https://docs.github.com/en/rest/users/users#get-the-authenticated-user
<?php
$client->whoami();
Reference: https://docs.github.com/en/rest/repos/repos#list-repositories-for-the-authenticated-user
Alias for $client->repos()->listRepositoriesForTheAuthenticatedUser()
.
<?php
$client->userRepositories();
Reference: https://docs.github.com/rest/gists/gists#list-gists-for-the-authenticated-user
Alias for $client->gists()->listGistsForTheAuthenticatedUser()
.
<?php
$client->userGists();
Reference: https://docs.github.com/rest/issues/issues#list-issues-assigned-to-the-authenticated-user
Alias for $client->issues()->listIssuesAssignedToTheAuthenticatedUser()
.
<?php
$client->userIssues();
Reference: https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user
Alias for $client->activity()->listNotificationsForTheAuthenticatedUser()
.
<?php
$client->userNotifications();
Alias for $client->issues()->listOrganizationIssuesAssignedToTheAuthenticatedUser()
.
<?php
$client->userOrganizationIssues();
Alias for $client->activity()->listRepositoryNotificationsForTheAuthenticatedUser()
.
<?php
$client->userRepositoryNotifications();