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

Vytváranie repozitárov

createRepository() zvolí cestu podľa vstupu: template vygeneruje repozitár zo šablóny (POST /repos/{template}/generate), owner ho vytvorí v danej organizácii (POST /orgs/{owner}/repos) a bez oboch vznikne pod prihláseným účtom (POST /user/repos):

use RoundlyConsulting\Git\Dto\Input\NewRepository;

$repo = Git::github()->createRepository(new NewRepository(
    name: 'widget-for-laravel',
    private: true,
    owner: 'acme',
    template: 'acme/package-template',
));

Úvodný commit a predvolená vetva

Commit má hneď po vytvorení len repozitár zo šablóny — zvyšné dve cesty vytvoria prázdny repozitár, pokiaľ neodovzdáte autoInit: true, a klonovanie prázdneho repozitára s --branch zlyhá. defaultBranch sa uplatní premenovaním úvodnej vetvy po vytvorení, pretože GitHub pri vytváraní default_branch neprijíma; preto vyžaduje autoInit alebo šablónu:

// An empty repository cannot be cloned with --branch — ask for an initial commit:
$repo = Git::github()->createRepository(new NewRepository(
    name: 'widget',
    private: true,
    description: 'Internal widget service',
    autoInit: true,
    defaultBranch: 'develop',   // requires autoInit or a template
));

Oprávnenia v organizácii

Vytvorenie v organizácii vyžaduje, aby GitHub App mala oprávnenie organizácie administration: write — schvaľuje ho vlastník organizácie na existujúcej inštalácii. Token naň vydajte až v momente potreby a nechajte ho zaniknúť:

use RoundlyConsulting\Git\Dto\Credentials\GithubAppToken;
use RoundlyConsulting\Git\Dto\Input\InstallationTokenScope;

$credentials = GithubAppToken::for($appId, $installationId, $privateKey)
    ->forScope(InstallationTokenScope::administrationOnly());

Git::github($credentials)->createRepository(new NewRepository(
    name: 'widget',
    owner: 'acme',
    autoInit: true,
));

Keď GitHub vytvorenie odmietne s 403 bez známok obmedzenia rýchlosti, balík vyhodí InvalidCredentialsException s názvom chýbajúceho oprávnenia namiesto nejasného „Resource not accessible by integration“ od GitHubu.

Na GitLabe a Bitbuckete

  • GitLab mapuje owner na číselné namespace_id (nečíselný owner vyhodí InvalidArgumentException), autoInit na initialize_with_readme a defaultBranch prijíma priamo pri vytvorení.
  • Bitbucket mapuje owner na workspace — zadajte ho. Nemá možnosť úvodného commitu, preto autoInit alebo defaultBranch vyhodí FeatureNotSupportedException, namiesto aby sa potichu zahodili.
  • Generovanie zo šablóny je len na GitHube, inde vyhodí FeatureNotSupportedException.

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.