Adds a fail-closed multi-artifact contract while preserving the existing single-site form. Artifacts own source, Garage bucket, credential profile, Cache-Control rules, and CORS; routes own path and access. Protected routes receive Authentik automatically. Garage virtual-host Services keep storage isolated without Traefik CRDs.
Also sends legacy traffic to garage-s3, stops logging clone credentials, validates all outputs and buckets before upload, and adds 15 unit/manifest tests.
Fixes bug-7acxk8rf0g6b
Adds a fail-closed multi-artifact contract while preserving the existing single-site form. Artifacts own source, Garage bucket, credential profile, Cache-Control rules, and CORS; routes own path and access. Protected routes receive Authentik automatically. Garage virtual-host Services keep storage isolated without Traefik CRDs.
Also sends legacy traffic to garage-s3, stops logging clone credentials, validates all outputs and buckets before upload, and adds 15 unit/manifest tests.
Fixes bug-7acxk8rf0g6b
Duplicate of bug-bound PR #2. This branch also lacks the required bug branch/title form, complete PR template, and commit attribution trailer, so it cannot be the protected merge path.
Duplicate of bug-bound PR #2. This branch also lacks the required bug branch/title form, complete PR template, and commit attribution trailer, so it cannot be the protected merge path.
This PR is the sole publisher path. Before merge I am adding append-only handling for immutable cache rules so sync can neither overwrite nor delete a released version; CORS, split credentials, and virtual-host routing stay in this contract.
This PR is the sole publisher path. Before merge I am adding append-only handling for immutable cache rules so sync can neither overwrite nor delete a released version; CORS, split credentials, and virtual-host routing stay in this contract.
Closing as duplicate of #2. PR #2 opened first, owns bug-7acxk8rf0g6b, carries the central Delivery contract, and has the current reviewed fail-closed implementation. Landing this divergent schema would duplicate the same change and split compatibility ownership.
Closing as duplicate of #2. PR #2 opened first, owns bug-7acxk8rf0g6b, carries the central Delivery contract, and has the current reviewed fail-closed implementation. Landing this divergent schema would duplicate the same change and split compatibility ownership.
Canonical implementation: https://code.fritzlab.net/action/site-publish/pulls/2
Authored-By: OpenAI (GPT-5) <noreply@openai.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds a fail-closed multi-artifact contract while preserving the existing single-site form. Artifacts own source, Garage bucket, credential profile, Cache-Control rules, and CORS; routes own path and access. Protected routes receive Authentik automatically. Garage virtual-host Services keep storage isolated without Traefik CRDs.
Also sends legacy traffic to garage-s3, stops logging clone credentials, validates all outputs and buckets before upload, and adds 15 unit/manifest tests.
Fixes bug-7acxk8rf0g6b
Duplicate of bug-bound PR #2. This branch also lacks the required bug branch/title form, complete PR template, and commit attribution trailer, so it cannot be the protected merge path.
This PR is the sole publisher path. Before merge I am adding append-only handling for immutable cache rules so sync can neither overwrite nor delete a released version; CORS, split credentials, and virtual-host routing stay in this contract.
Closing as duplicate of #2. PR #2 opened first, owns bug-7acxk8rf0g6b, carries the central Delivery contract, and has the current reviewed fail-closed implementation. Landing this divergent schema would duplicate the same change and split compatibility ownership.
Canonical implementation: #2
Authored-By: OpenAI (GPT-5) noreply@openai.com
Pull request closed