256 lines
7.6 KiB
YAML
256 lines
7.6 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: ALHP API
|
|
description: |-
|
|
The ALHP API allows to retrieve package information and general build statistics.
|
|
|
|
Useful resources:
|
|
- [ALHP Git Repository](https://somegit.dev/ALHP/ALHP.GO)
|
|
- [ALHP Web Frontend Repository](https://somegit.dev/ALHP/alhp-web)
|
|
|
|
version: 1.0.2
|
|
|
|
servers:
|
|
- url: https://api.alhp.dev
|
|
|
|
tags:
|
|
- name: package
|
|
description: Endpoints related to package data and metadata
|
|
- name: general
|
|
description: Endpoints providing overall project status and statistics
|
|
|
|
paths:
|
|
/packages:
|
|
get:
|
|
tags:
|
|
- package
|
|
summary: Retrieve package information
|
|
description: Fetch packages from the ALHP system. You can filter results using query parameters.
|
|
operationId: getPackages
|
|
parameters:
|
|
- name: status
|
|
in: query
|
|
description: Filter by package status. Accepts multiple values via repeated parameters.
|
|
required: false
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- latest
|
|
- failed
|
|
- built
|
|
- skipped
|
|
- delayed
|
|
- building
|
|
- signing
|
|
- unknown
|
|
- queued
|
|
example: [ "latest", "failed" ]
|
|
- name: pkgbase
|
|
in: query
|
|
description: Filter by the base package name (`pkgbase`). This is often the main identifier of a package group.
|
|
required: false
|
|
schema:
|
|
type: string
|
|
example: "linux-zen"
|
|
- name: exact
|
|
in: query
|
|
description: If present, matches the `pkgbase` exactly. If not provided, allows partial matches.
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
example: true
|
|
- name: repo
|
|
in: query
|
|
description: Filter by repository name.
|
|
required: false
|
|
schema:
|
|
type: string
|
|
example: "extra-x86-64-v4"
|
|
- name: offset
|
|
in: query
|
|
description: Number of results to skip (for pagination).
|
|
required: true
|
|
schema:
|
|
type: number
|
|
example: 0
|
|
- name: limit
|
|
in: query
|
|
description: Maximum number of results to return.
|
|
required: true
|
|
schema:
|
|
type: number
|
|
example: 25
|
|
responses:
|
|
'200':
|
|
description: Package data retrieved successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
packages:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Package'
|
|
total:
|
|
type: integer
|
|
format: int64
|
|
description: Total number of matching packages
|
|
example: 1423
|
|
offset:
|
|
type: integer
|
|
format: int64
|
|
example: 0
|
|
limit:
|
|
type: integer
|
|
format: int64
|
|
example: 25
|
|
'404':
|
|
description: No packages found matching the specified filters
|
|
'500':
|
|
description: Internal server error occurred
|
|
|
|
/stats:
|
|
get:
|
|
tags:
|
|
- general
|
|
summary: Retrieve general build statistics
|
|
operationId: getStats
|
|
responses:
|
|
'200':
|
|
description: General statistics retrieved successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Stats'
|
|
'500':
|
|
description: Internal server error occurred
|
|
|
|
components:
|
|
schemas:
|
|
Package:
|
|
type: object
|
|
properties:
|
|
pkgbase:
|
|
type: string
|
|
description: The base name of the package
|
|
example: "linux-zen"
|
|
repo:
|
|
type: string
|
|
description: Repository from which the package originates
|
|
example: "extra-x86-64-v4"
|
|
split_packages:
|
|
type: array
|
|
description: List of package names split from the base package
|
|
items:
|
|
type: string
|
|
example: [ "linux-zen", "linux-zen-headers", "linux-zen-docs" ]
|
|
status:
|
|
type: string
|
|
description: Current build or repository status of the package
|
|
enum:
|
|
- latest
|
|
- failed
|
|
- built
|
|
- skipped
|
|
- delayed
|
|
- building
|
|
- signing
|
|
- unknown
|
|
- queued
|
|
example: "latest"
|
|
skip_reason:
|
|
type: string
|
|
description: Reason for skipping the package build (if any)
|
|
example: "blacklisted"
|
|
lto:
|
|
type: string
|
|
description: Link Time Optimization (LTO) status for the package
|
|
enum:
|
|
- enabled
|
|
- unknown
|
|
- disabled
|
|
- auto_disabled
|
|
example: "enabled"
|
|
debug_symbols:
|
|
type: string
|
|
description: Availability of debug symbols in the package
|
|
enum:
|
|
- available
|
|
- unknown
|
|
- not_available
|
|
example: "available"
|
|
arch_version:
|
|
type: string
|
|
description: Version available in the official Arch Linux repositories
|
|
example: "1.3.4-2"
|
|
repo_version:
|
|
type: string
|
|
description: Version available in ALHP repositories (may be empty if not built)
|
|
example: "1.3.4-2.1"
|
|
build_date:
|
|
type: string
|
|
description: Date and time when the package was built (RFC1123 format)
|
|
example: "Fri, 15 Dec 2023 03:43:11 UTC"
|
|
peak_mem:
|
|
type: string
|
|
description: Peak memory usage during the build process (human-readable format)
|
|
example: "5 GB"
|
|
|
|
Stats:
|
|
type: object
|
|
description: Aggregated statistics across all packages
|
|
properties:
|
|
failed:
|
|
type: integer
|
|
format: int64
|
|
description: Number of packages that failed to build
|
|
example: 17
|
|
skipped:
|
|
type: integer
|
|
format: int64
|
|
description: Number of packages that were skipped
|
|
example: 29
|
|
latest:
|
|
type: integer
|
|
format: int64
|
|
description: Number of packages that are up-to-date
|
|
example: 743
|
|
queued:
|
|
type: integer
|
|
format: int64
|
|
description: Number of packages currently in the build queue
|
|
example: 5
|
|
building:
|
|
type: integer
|
|
format: int64
|
|
description: Number of packages currently building
|
|
example: 11
|
|
last_mirror_timestamp:
|
|
type: integer
|
|
format: int64
|
|
description: Latest mirror timestamp to detect outdated mirrors (Unix timestamp)
|
|
example: 1702612991
|
|
lto:
|
|
type: object
|
|
description: LTO status summary across all packages
|
|
properties:
|
|
enabled:
|
|
type: integer
|
|
format: int64
|
|
description: Number of packages with LTO enabled
|
|
example: 532
|
|
disabled:
|
|
type: integer
|
|
format: int64
|
|
description: Number of packages with LTO explicitly disabled
|
|
example: 203
|
|
unknown:
|
|
type: integer
|
|
format: int64
|
|
description: Number of packages with unknown LTO status
|
|
example: 11
|