github-php-client

  • Owner: tan-tan-kanarek/github-php-client
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

GitHub API PHP Client

See full API reference

Authenticating

<?php
require_once(__DIR__ . '/client/GitHubClient.php');

$client = new GitHubClient();
$client->setCredentials($username, $password);

Listing commits

<?php
require_once(__DIR__ . '/client/GitHubClient.php');

$owner = 'tan-tan-kanarek';
$repo = 'github-php-client';

$client = new GitHubClient();
$client->setPage();
$client->setPageSize(2);
$commits = $client->repos->commits->listCommitsOnRepository($owner, $repo);

echo "Count: " . count($commits) . "\n";
foreach($commits as $commit)
{
    /* @var $commit GitHubCommit */
    echo get_class($commit) . " - Sha: " . $commit->getSha() . "\n";
}

$commits = $client->getNextPage();

echo "Count: " . count($commits) . "\n";
foreach($commits as $commit)
{
    /* @var $commit GitHubCommit */
    echo get_class($commit) . " - Sha: " . $commit->getSha() . "\n";
}

Listing issues

<?php
require_once(__DIR__ . '/client/GitHubClient.php');

$owner = 'tan-tan-kanarek';
$repo = 'github-php-client';

$client = new GitHubClient();

$client->setPage();
$client->setPageSize(2);
$issues = $client->issues->listIssues($owner, $repo);

foreach ($issues as $issue)
{
    /* @var $issue GitHubIssue */
    echo get_class($issue) . "[" . $issue->getNumber() . "]: " . $issue->getTitle() . "\n";
}

Creating issues

<?php
require_once(__DIR__ . '/client/GitHubClient.php');

$owner = 'tan-tan-kanarek';
$repo = 'github-php-client';
$title = 'Something is broken.'
$body = 'Please fix it.'.

$client = new GitHubClient();
$client->setCredentials($username, $password);
$client->issues->createAnIssue($owner, $repo, $title, $body);

Creating a release

<?php
require_once(__DIR__ . '/client/GitHubClient.php');

$owner = 'tan-tan-kanarek';
$repo = 'github-php-client';
$username = 'tan-tan-kanarek';
$password = 'myPassword';

$tag_name = 'myTag';
$target_commitish = 'master';
$name = 'myReleaseName';
$body = 'My release description';
$draft = false;
$prerelease = true;

$client = new GitHubClient();
$client->setDebug(true);
$client->setCredentials($username, $password);

$release = $client->repos->releases->create($owner, $repo, $tag_name, $target_commitish, $name, $body, $draft, $prerelease);
/* @var $release GitHubReposRelease */
$releaseId = $release->getId();

$filePath = 'C:\myPath\bin\myFile.jar';
$contentType = 'application/java-archive';
$name = 'MyFile-1.0.0.jar';

$client->repos->releases->assets->upload($owner, $repo, $releaseId, $name, $contentType, $filePath);

Pagination

<?php
require_once(__DIR__ . '/client/GitHubClient.php');

$owner = 'tan-tan-kanarek';
$repos = array(
	'github-php-client',
);

$client = new GitHubClient();

foreach($repos as $repo)
{
	$pageSize = 4;
	$client->setPage();
	$client->setPageSize($pageSize);
	
	$commits = $client->repos->commits->listCommitsOnRepository($owner, $repo);
	while(true)
	{
		$page = $client->getPage();
		echo "================ Page $page - " . count($commits) . " items ================\n";
		foreach($commits as $commit)
		{
			/* @var $commit GitHubCommit */
			$sha = $commit->getSha();
			$message = $commit->getCommit()->getMessage();
			
			echo "\t$sha - $message\n";
		}
		

		if(!$client->hasNextPage())
			break;
			
		$commits = $client->getNextPage();
		if($client->getPage() == $page)
			break;
	}
}

*[8/06/2015] Fixed pull request comment function

Bitdeli Badge

Main metrics

Overview
Name With Ownertan-tan-kanarek/github-php-client
Primary LanguagePHP
Program languagePHP (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2013-07-15 06:05:04
Pushed At2021-08-11 14:25:38
Last Commit At2021-08-11 17:25:35
Release Count1
Last Release Name1.0.0 (Posted on )
First Release Name1.0.0 (Posted on )
用户参与
Stargazers Count185
Watchers Count23
Fork Count119
Commits Count191
Has Issues Enabled
Issues Count64
Issue Open Count6
Pull Requests Count66
Pull Requests Open Count2
Pull Requests Close Count8
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private