Maintainers

Package info

github.com/krzysztofzylka/forgejo

pkg:composer/krzysztofzylka/forgejo

Statistics

Installs: 122

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.1 2026-02-25 18:45 UTC

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()