Generic registry
The generic registry stores arbitrary binary artifacts — release archives, installers, signed bundles — that do not belong to a language-specific package format. See README.md for the conventions shared by every registry protocol.
Resource overview
Unlike the other registries, the generic registry is served under the /api/v1
REST prefix, at
/api/v1/repos/{owner}/{repo}/packages/generic/. An artifact is addressed by a
package {name}, a {version}, and a {filename}; a version may hold several
files.
Auth & scopes
Reads are governed by repository visibility;
uploading requires registry write and deletion requires registry delete. The
credential is a session or access-token JWT sent as Authorization: Bearer <token>. See Push scopes.
Endpoints
| Method | Path | Summary |
|---|---|---|
GET |
/api/v1/repos/{owner}/{repo}/packages/generic/{name} |
List versions of a package |
GET |
/api/v1/repos/{owner}/{repo}/packages/generic/{name}/{version} |
List files in a version |
GET |
/api/v1/repos/{owner}/{repo}/packages/generic/{name}/{version}/{filename} |
Download a file |
PUT |
/api/v1/repos/{owner}/{repo}/packages/generic/{name}/{version}/{filename} |
Upload a file |
DELETE |
/api/v1/repos/{owner}/{repo}/packages/generic/{name}/{version}/{filename} |
Delete a file |
GET .../{name}
Lists the versions of a package.
[ { "version": "1.0.0", "size_bytes": 1048576, "created_at": "2026-01-01T00:00:00Z" } ]
GET .../{name}/{version}
Lists the files in a version.
{ "name": "release", "version": "1.0.0", "files": [ { "filename": "app.tar.gz", "digest": "sha256:...", "size": 1048576 } ] }
GET .../{name}/{version}/{filename}
Downloads a single file as application/octet-stream.
PUT .../{name}/{version}/{filename}
Uploads a file. The request body is the raw file content; the file is added to
the named version (creating the package and version if needed). Returns
201 Created.
DELETE .../{name}/{version}/{filename}
Removes a single file from a version. Returns 204 No Content.
Example
# Upload:
curl -X PUT -H "Authorization: Bearer <token>" --data-binary @app.tar.gz \
https://api.gitvetrix.com/api/v1/repos/alice/app/packages/generic/release/1.0.0/app.tar.gz
# Download:
curl -H "Authorization: Bearer <token>" -O \
https://api.gitvetrix.com/api/v1/repos/alice/app/packages/generic/release/1.0.0/app.tar.gz
Errors
Errors are JSON { "error": "<message>" } with the shared status-code
conventions in errors.md: 401 (missing credential on upload or
delete, with a Bearer challenge), 403 (authenticated but lacking write or
delete), and 404 (unknown package, version, or file, or a private repository
the caller may not read).
Rate limits
Metered under the registry scope. See rate-limits.md.