Search by

particle-academy / fancy-git-gitlab

wishborn

GitLab.com and Self-Managed adapter for particle-academy/fancy-git.

Package info

github.com/Particle-Academy/fancy-git-gitlab-php

pkg:composer/particle-academy/fancy-git-gitlab

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.3.0 2026-09-14 03:10 UTC

This package is auto-updated.

Last update: 2026-09-14 19:08:40 UTC


README

Fancified

GitLab.com and GitLab Self-Managed implementation of the Fancy Git provider contract, over a small first-party GitLab REST v4 client.

use FancyGit\GitLab\GitLabClient;
use FancyGit\GitLab\GitLabProvider;
use FancyGit\GitLab\TokenType;

// GitLab.com, or a self-managed instance by its https URL.
$gitlab = GitLabProvider::withToken($token);
$gitlab = GitLabProvider::withToken($token, 'https://gitlab.example.com');

// OAuth or CI job tokens, or your own Guzzle client (proxy, CA bundle, timeouts).
$gitlab = new GitLabProvider(new GitLabClient('https://gitlab.example.com', $token, TokenType::OAuth, $guzzle));
  • The base URL is the instance URL (a relative URL root such as https://example.com/gitlab works); /api/v4 is added for you. It must be https, with no credentials, query or fragment.
  • The base URL is trusted configuration. Private and loopback addresses are allowed on purpose, because that is where most self-managed instances live — so if end users can supply it, check the host against your own allowlist first.
  • Requests only ever go to that instance. Redirects are not followed, and a pagination link pointing anywhere else is refused, because every request carries the token.
  • Failures are FancyGit\Error\GitException with a GitErrorCode (auth, not_found, conflict, invalid_argument, rate_limited, …); the HTTP status is the exception code, and a 429 message says when to retry.