Simple proxy to serve and unzip github actions artifacts
1.7K
Zero-dependency Go HTTP server that serves GitHub Actions artifact files from a disk cache with rate limiting.
actions:read scopego build -o github-serve-flow .
docker build -t github-serve-flow .
docker run -e GITHUB_TOKEN=ghp_... -e ALLOWED_OWNERS=your-org -p 8080:8080 github-serve-flow
All configuration is via environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
GITHUB_TOKEN | Yes | - | GitHub personal access token |
ALLOWED_OWNERS | Yes | - | Comma-separated list of allowed GitHub owners |
LISTEN_ADDR | No | :8080 | Server listen address |
CACHE_DIR | No | $TMPDIR/github-serve-flow | Disk cache directory |
CACHE_TTL | No | 1h | Cache entry time-to-live |
CACHE_MAX_SIZE | No | 5GB | Maximum cache size on disk |
CLIENT_CACHE_MAX_AGE | No | 3600 | Cache-Control max-age in seconds |
RATE_LIMIT_WINDOW | No | 1m | Rate limit sliding window |
RATE_LIMIT_MAX | No | 60 | Max requests per IP per window |
export GITHUB_TOKEN="ghp_your_token"
export ALLOWED_OWNERS="your-github-username"
go run .
GET /health
GET /{owner}/{repo}/actions/runs/{runId}/artifacts/{artifactName}/{filePath}
Example:
curl http://localhost:8080/your-org/your-repo/actions/runs/12345/artifacts/my-site/index.html
I love your input! I want to make contributing to this project as easy and transparent as possible, whether it's:
To get started please read the Contribution Guidelines.
make test
make build
make cover
Content type
Image
Digest
sha256:993aa348f…
Size
8.8 MB
Last updated
6 months ago
docker pull timoreymann/github-serve-flow