---
title: "Provideri a prihlásenie — Git for Laravel | Roundly"
description: "Získajte GitHub, GitLab či Bitbucket z fasády Git, prihláste sa tokenom, cez OAuth alebo GitHub App, prípadne čítajte verejné repozitáre anonymne."
url: https://roundly-consulting.com/sk/open-source/navody/git-for-laravel/provideri
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Git for Laravel](https://roundly-consulting.com/sk/open-source/navody/git-for-laravel.md)

# Provideri a prihlásenie

Providera získate cez fasádu Git. S tokenom v konfigurácii nemusíte odovzdávať žiadne prihlasovacie údaje; explicitne odovzdané údaje majú vždy prednosť pred konfiguráciou:

```php
use RoundlyConsulting\Git\Dto\Credentials\Token;
use RoundlyConsulting\Git\Enums\ProviderName;
use RoundlyConsulting\Git\Facades\Git;
use RoundlyConsulting\Git\Providers\Gitlab;

$github = Git::github();                       // uses config('git.providers.github.token')
$github = Git::github(Token::from('ghp_...')); // explicit override
$gitlab = Git::gitlab();
$bitbucket = Git::bitbucket();

$gitlab = Git::provider('gitlab');             // by string,
$gitlab = Git::provider(ProviderName::Gitlab); // by ProviderName enum,
$gitlab = Git::provider(Gitlab::class);        // or by class-string
```

## Ako sa vyberajú predvolené údaje

- Ak sú nastavené git.providers.github.app.id, installation\_id aj private\_key, vytvorí sa z nich samoobnovujúci sa GithubAppToken.
- Ak niektorá z troch hodnôt chýba, token providera (GITHUB\_TOKEN, GITLAB\_TOKEN, BITBUCKET\_TOKEN) sa použije ako statický Token. Aplikácia nastavená len pre Git::githubApp() — id a kľúč, pričom id inštalácií prichádzajú pre každého zákazníka zvlášť — je bežné nastavenie, nie chyba.
- Bez oboch je provider neprihlásený a verejné repozitáre číta anonymne — neposiela sa žiadna hlavička Authorization a platí anonymná kvóta platformy (na GitHube 60 požiadaviek za hodinu). Zápisy vyhodia InvalidCredentialsException.

## Typy prihlasovacích údajov

| Prihlasovacie údaje | Vytvorenie | Podporuje |
| --- | --- | --- |
| `Token` | `Token::from($token)` | GitHub, GitLab, Bitbucket — statický osobný alebo API token. |
| `OauthToken` | `OauthToken::forProvider(…) / OauthToken::for(…)` | GitHub, GitLab — samoobnovujúci sa OAuth prístupový token. |
| `GithubAppToken` | `GithubAppToken::for($appId, $installationId, $privateKey)` | GitHub — samoobnovujúci sa inštalačný token, voliteľne obmedzený. |
| `GithubApp` | `GithubApp::for($appId, $privateKey)` | GitHub — vlastný RS256 JWT aplikácie, len pre endpointy /app/\*\*. |

Získaného providera môžete prihlásiť aj sami a zistiť, čo akceptuje:

```php
$provider = Git::provider('github');          // unauthenticated when nothing is configured
$provider->isAuthenticated();                   // false

$provider->authenticate(Token::from($user->github_token));
$provider->isAuthenticated();                   // true

$provider->authenticationMethods();             // [Token::class, GithubAppToken::class, GithubApp::class, OauthToken::class]
$provider->name();                              // "GitHub"
$provider->providerName();                      // ProviderName::Github
```

Ak odovzdáte údaje, ktoré provider neakceptuje, vyhodí sa InvalidCredentialsException so zoznamom podporovaných metód. Každý typ údajov v toArray() a toJson() tajomstvá maskuje (••••), takže sa nikdy nedostanú do logov.

## Chyby prihlásenia

Odpoveď 401 — platforma odmietla samotné prihlasovacie údaje — vyhodí InvalidCredentialsException: „requires authentication“, ak žiadne údaje nie sú nastavené, a „rejected the credential“, ak je token neplatný, zrušený alebo expirovaný (odpoveď platformy nájdete v getPrevious()). Každé iné odmietnutie zostáva výnimkou RequestException z Laravelu, takže z nej prečítate stav: repozitár, ktorý nevidíte, je 404 (GitHub pred volajúcimi bez prístupu súkromné repozitáre skrýva), a obmedzené 403 či 429 zostáva opakovateľné, nezamení sa s pokazenými údajmi. To isté platí pre 401 pri vydávaní inštalačného tokenu GitHub App (zrušený alebo nesprávny kľúč aplikácie) či pri obnove OAuth tokenu.

```php
use Illuminate\Http\Client\RequestException;
use RoundlyConsulting\Git\Exceptions\InvalidCredentialsException;

try {
    $repository = Git::github()->repo('acme/api')->get();
} catch (InvalidCredentialsException $e) {
    // 401: "requires authentication" (none configured) or "rejected the credential"
    report($e->getPrevious());   // the forge's own response
} catch (RequestException $e) {
    $e->response->status();      // 404 = missing or not visible, 403/429 = throttled
}
```

## Rozšírenie manažéra

Balík hovorí s GitHubom, GitLabom a Bitbucketom — provider() rozpozná len tieto tri, podľa kľúča v konfigurácii, triedy drivera alebo ProviderName. Rozšíriť ho môžete na dvoch miestach. GitManager podporuje makrá, takže si nad drivermi zaregistrujete vlastné skratky a voláte ich cez fasádu:

```php
use RoundlyConsulting\Git\Dto\Credentials\Token;
use RoundlyConsulting\Git\Facades\Git;
use RoundlyConsulting\Git\Handles\RepositoryHandle;

Git::macro('app', fn (): RepositoryHandle => $this->github()->repo('acme/app'));
Git::macro('forUser', fn (User $user) => $this->github(Token::from($user->github_token)));

Git::app()->pullRequests();          // same as Git::github()->repo('acme/app')->pullRequests()
Git::forUser($user)->repositories();
```

Drivery sa získavajú z kontajnera a nie sú final, takže vstavaný driver môžete nahradiť podtriedou — napríklad kvôli ďalšiemu endpointu. Git::github(), Git::capabilities() aj matica funkcií vo fake podtriedu prevezmú:

```php
use RoundlyConsulting\Git\Providers\Github;

$this->app->bind(Github::class, AcmeGithub::class); // class AcmeGithub extends Github { … }
```

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/git-for-laravel.md)
