api reference
API Reference
All GitLab API calls are made server-side by the portal, authenticated with a personal
access token (PAT) in the PRIVATE-TOKEN header. Clients never see the PAT or interact
with GitLab directly.
Base URL: https://git.eurekaendeavors.com/api/v4/
Project Data
| Purpose | Method | Endpoint |
|---|---|---|
| Project details | GET | /projects/:id |
| README content | GET | /projects/:id/repository/files/README.md/raw?ref=main |
| Releases list | GET | /projects/:id/releases |
| Wiki page list | GET | /projects/:id/wikis |
| Wiki page content | GET | /projects/:id/wikis/:slug |
| Source archive (zip) | GET | /projects/:id/repository/archive.zip?sha=:ref |
Downloads (Proxied)
Release asset URLs are returned in the releases API response. The portal extracts these URLs and proxies requests to them — streaming the response to the client while logging the event to SQLite.
Asset URLs typically follow the pattern:
https://git.eurekaendeavors.com/icarus/:repo/-/package_files/:id/download
The portal never exposes these GitLab-internal URLs to clients.
Git Smart HTTP (Proxied)
These are not GitLab API endpoints — they are the git HTTP protocol endpoints served by GitLab's built-in git server.
| Purpose | Method | Path (on GitLab) |
|---|---|---|
| Ref discovery | GET | /:namespace/:repo.git/info/refs?service=git-upload-pack |
| Pack transfer | POST | /:namespace/:repo.git/git-upload-pack |
The portal maps its public slug routes to these GitLab paths and proxies them with streaming. See Git Clone Proxy for full details.
Project IDs
| ID | Project | Slug | Exposed |
|---|---|---|---|
| 1 | icarus/pets |
pets |
Yes — /pets |
| 2 | root/icarus-bug-reports |
(none) | No — private bug intake |
| 4 | icarus/prospects |
prospects |
Yes — /prospects |
| 5 | icarus/data-catalog |
data-catalog |
Yes — /catalog |
| 6 | icarus/portal |
(none) | No — this project |
| 7 | icarus/core |
(none) | No — pip library |