Pull requesty, issues a súbory
Všetky ostatné čítania fungujú rovnako — zoznamy vracajú Page, jednotlivé zdroje typovaný objekt:
$repo = Git::github()->repo('acme/api');
$repo->pullRequests(); // Page<PullRequest>, open by default
$repo->pullRequests('closed', perPage: 50);
$repo->pullRequest(7)->get(); // GitLab MRs, Bitbucket PRs
$repo->issues(); // Page<Issue>
$repo->issue(12);
$repo->tags(); // Page<Tag>
$repo->releases(); // Page<Release>
$repo->release('v1.0'); // by tag or id
$repo->contents('README.md', ref: 'main'); // FileContent (decoded); no ref = the default branch
$repo->compare('main', 'feature'); // Comparison
$repo->contributors(); // Page<Contributor>
$repo->languages(); // ['PHP' => 12345, ...]pullRequests() a issues() prijímajú stav (predvolene open); balík ho preloží do zápisu konkrétnej platformy, takže open znamená opened na GitLabe a OPEN na Bitbuckete. Merge requesty z GitLabu aj pull requesty z Bitbucketu sa vracajú ako ten istý objekt PullRequest. contents() bez refu číta na každej platforme predvolenú vetvu.
Súbory a diffy
$repo = Git::github()->repo('acme/api');
$file = $repo->contents('composer.json', ref: 'main');
$file->path; // "composer.json"
$file->content; // the decoded file body
$file->sha; // blob sha — what updateFile() needs
$file->size; // bytes
$diff = $repo->compare('main', 'feature/ci');
$diff->aheadBy;
$diff->behindBy;
foreach ($diff->files as $changed) { // list<ComparisonFile>
$changed->filename;
$changed->status; // e.g. "modified"
$changed->additions;
$changed->deletions;
}Výsledné objekty
| Objekt | Polia |
|---|---|
PullRequest | provider, id, number, title, body, state, sourceBranch, targetBranch, author, url, createdAt, draft |
Issue | provider, id, number, title, body, state, author, url, createdAt |
Tag | provider, name, sha, url |
Release | provider, id, tagName, name, body, draft, prerelease, url, createdAt |
FileContent | path, content (dekódovaný), sha, size, url |
Comparison | base, head, aheadBy, behindBy, files (zoznam ComparisonFile: filename, status, additions, deletions) |
Contributor | id, name, avatar, contributions |
Comment | id, body, author, url, createdAt |
Author / Owner | name, email, avatar / id, name, avatar |
Schopnosti sa medzi providermi líšia — napríklad Bitbucket tu nemá issues, tagy ani releasy. Volanie, ktoré provider nepodporuje, vyhodí FeatureNotSupportedException; ak sa chcete rozhodovať podľa podpory, pozrite sekciu Detekcia funkcií.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.