mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
Gitea ships no MCP server, so the role runs the project-owned gitea-mcp package as a sidecar next to it and points it at the instance over the container network. Two things the image forces. Its command carries the binary path explicitly because the image declares no ENTRYPOINT, so a bare flag list would replace the binary instead of extending it. The port is stringified because Ansible's native types make a bare lookup an int, and compose rejects a non-string in a command array. Keep the surface internal. The public vhost answers a bearerless probe with an SSO redirect, so the guest spec pins maxRedirects to 0 and asserts no MCP response is ever served; following the redirect would land on a login page and pass for the wrong reason. Calls run with administrator rights, so the tool policy is pinned read-only and the sidecar starts with the read-only flag and a scope list. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
21 lines
655 B
JavaScript
21 lines
655 B
JavaScript
// Gitea Playwright spec — orchestration only. Shared env + persona
|
|
// helpers live in `_shared.js`; each scenario is registered from its
|
|
// own `test-*.js` companion module so each test stays atomar and
|
|
// individually inspectable.
|
|
|
|
const { test } = require("@playwright/test");
|
|
|
|
const shared = require("./_shared");
|
|
|
|
test.use({
|
|
ignoreHTTPSErrors: true,
|
|
});
|
|
|
|
test.beforeEach(shared.beforeEach);
|
|
|
|
require("./test-healthz-ready").register(shared);
|
|
require("./test-mcp-guest").register(shared);
|
|
require("./test-guest-persona").register(shared);
|
|
require("./test-biber-persona").register(shared);
|
|
require("./test-administrator-persona").register(shared);
|