NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Git for Laravel

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

ObjektPolia
PullRequestprovider, id, number, title, body, state, sourceBranch, targetBranch, author, url, createdAt, draft
Issueprovider, id, number, title, body, state, author, url, createdAt
Tagprovider, name, sha, url
Releaseprovider, id, tagName, name, body, draft, prerelease, url, createdAt
FileContentpath, content (dekódovaný), sha, size, url
Comparisonbase, head, aheadBy, behindBy, files (zoznam ComparisonFile: filename, status, additions, deletions)
Contributorid, name, avatar, contributions
Commentid, body, author, url, createdAt
Author / Ownername, 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 kryptomien

Odoslaní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.