mirror of
https://github.com/horizon-rust/horizon.git
synced 2026-11-07 11:06:11 -10:00
Its own workspace, as the telemetry server's, for its own Railway service. GitHub sign-in with no scope (the user's token reads the login once and is dropped), signed-cookie sessions, an origin check and a CSRF token, six submissions per account and sixty in all per hour. A submission runs the file's own checks (horizon_mods::index::inspect, the signature, the entry's fields through registry::project), uploads it to the registry's `staging` release as <sha256>.<extension>, writes mods/<id>.toml on a new branch with the submitter as co-author, and opens the pull request. Only an entry's owners publish updates; a key change is a pull request by hand. Shader packs are refused until their format exists. Tested end to end against a mock GitHub: sign-in, the signed sample mod, what lands on GitHub, and what is refused. Co-Authored-By: Claude Opus 5.5 <[email protected]>
35 lines
1.2 KiB
YAML
35 lines
1.2 KiB
YAML
name: mod-registry
|
|
# The submission service is its own workspace (crates/horizon-mod-registry), so the checks job doesn't build
|
|
# it: this one does, when it or horizon-mods (the checks it shares with the launcher and the game) changes.
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'crates/horizon-mods/**'
|
|
- 'crates/horizon-mod-registry/**'
|
|
- '.github/workflows/mod-registry.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'crates/horizon-mods/**'
|
|
- 'crates/horizon-mod-registry/**'
|
|
- '.github/workflows/mod-registry.yml'
|
|
permissions:
|
|
contents: read
|
|
jobs:
|
|
check:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
defaults:
|
|
run:
|
|
working-directory: crates/horizon-mod-registry
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: rustup toolchain install stable --profile minimal --component rustfmt --component clippy
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: crates/horizon-mod-registry
|
|
save-if: ${{ github.ref == 'refs/heads/main' }}
|
|
- run: cargo +stable fmt --check
|
|
- run: cargo +stable clippy --all-targets --locked -- -D warnings
|
|
- run: cargo +stable test --locked
|