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

Dátový model a surové dáta

Každý objekt zdroja je nezávislý od platformy: nesie ProviderName, z ktorého pochádza, normalizovaný enum ResourceState namiesto surového reťazca open/opened/OPEN a metódu raw(), ktorá vráti presný dekódovaný payload platformy pre akékoľvek pole, ktoré objekt nemodeluje. raw sa nikdy neserializuje do toArray() ani toJson():

use RoundlyConsulting\Git\Enums\ResourceState;

$pr = Git::github()->repo('acme/api')->pullRequest(1)->get();

$pr->state;                          // ResourceState::Open — identical across GitHub/GitLab/Bitbucket
$pr->state === ResourceState::Merged;
$pr->draft;                          // bool
$pr->provider;                       // ProviderName::Github
$pr->raw()['mergeable'];             // any unmodelled provider field, still reachable

$pr->toArray();                      // canonical shape — raw is never serialized
$pr->toJson();

Mapovanie stavov

Pull requesty a issues normalizujú stav na každej platforme rovnako; nerozpoznané hodnoty sa namiesto výnimky zmenia na Unknown a pôvodný reťazec zostáva dostupný cez raw():

ResourceStateGitHubGitLabBitbucket
OpenopenopenedOPEN
Closedclosedclosed, lockedDECLINED, SUPERSEDED
MergedmergedmergedMERGED
Unknownčokoľvek inéčokoľvek inéčokoľvek iné

Stav konceptu (draft) je samostatná booleovská hodnota — PullRequest::$draft — nie stav.

Enumy

Feature, ProviderName, ResourceState, MergeMethod, ReviewEvent a DiffSide zdieľajú pomocné metódy z enums-for-laravel — values(), labels(), options(), validationRule() a vyhľadávanie prípadov:

use RoundlyConsulting\Git\Enums\ProviderName;

ProviderName::values();           // Collection: github, gitlab, bitbucket
ProviderName::options();          // {value, label, name} options for a select
ProviderName::validationRule();   // "in:github,gitlab,bitbucket"
ProviderName::Github->label();    // "GitHub"

$request->validate(['provider' => ['required', ProviderName::validationRule()]]);

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.