krzysztofzylka / forgejo
1.0.1
2026-02-25 18:45 UTC
Requires
- php: >=8.2
- ext-curl: *
This package is auto-updated.
Last update: 2026-02-25 18:46:22 UTC
README
Lightweight PHP client for Forgejo API v1.
Install
composer require krzysztofzylka/forgejo
Usage
<?php use krzysztofzylka\forgejo\Forgejo; use krzysztofzylka\forgejo\Auth\TokenAuth; $forgejo = new Forgejo(new TokenAuth('YOUR_TOKEN')); $forgejo->setBaseUrl('https://forgejo.example.com/api/v1'); $repo = $forgejo->repositories()->get('owner', 'repo');
Custom base URL
$forgejo = new Forgejo(); $forgejo->setBaseUrl('https://forgejo.example.com/api/v1');
Auth
$forgejo = new Forgejo(); $forgejo->authenticate(new TokenAuth('YOUR_TOKEN'));
Basic auth:
use krzysztofzylka\forgejo\Auth\BasicAuth; $forgejo = new Forgejo(); $forgejo->authenticate(new BasicAuth('username', 'password'));
Token header auth:
use krzysztofzylka\forgejo\Auth\TokenHeaderAuth; $forgejo = new Forgejo(); $forgejo->authenticate(new TokenHeaderAuth('YOUR_TOKEN'));
Pagination
$forgejo = new Forgejo(new TokenAuth('YOUR_TOKEN')); // Fetch all pages $repos = $forgejo->getClient()->paginate('/user/repos'); // Limit number of pages $repos = $forgejo->getClient()->paginate('/user/repos', [], 3);
Debug
$forgejo = new Forgejo(new TokenAuth('YOUR_TOKEN')); $forgejo->getClient()->setDebug(true);
API
- Repositories:
$forgejo->repositories() - Pull requests:
$forgejo->pullRequests() - Issues:
$forgejo->issues() - Users:
$forgejo->users() - Organizations:
$forgejo->organizations() - Authorization:
$forgejo->authorization()