diff --git a/README.md b/README.md index ceae647..1adac35 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,12 @@ Canonical profile file (e.g. `~/.config/gitea-tools/profiles.json`): "username": "913443", "auth": { "type": "env", "name": "GITEA_TOKEN_MDCPS" }, "execution_profile": "mdcps" + }, + "mdcps-reviewer": { + "base_url": "https://gitea.dadeschools.net", + "username": "913443", + "auth": { "type": "keychain", "id": "mdcps.gitea.reviewer.token" }, + "execution_profile": "mdcps-reviewer" } } } diff --git a/gitea-mcp.example.json b/gitea-mcp.example.json index 1a9371f..9b8adf6 100644 --- a/gitea-mcp.example.json +++ b/gitea-mcp.example.json @@ -21,6 +21,18 @@ "default_owner": "Contractor", "execution_profile": "mdcps" }, + "mdcps-reviewer": { + "base_url": "https://gitea.dadeschools.net", + "username": "913443", + "auth": { + "type": "keychain", + "id": "mdcps.gitea.reviewer.token" + }, + "default_owner": "MDCPS", + "execution_profile": "mdcps-reviewer", + "allowed_operations": ["read", "review", "approve", "merge"], + "forbidden_operations": ["branch.push", "pr.create"] + }, "prgs-env": { "base_url": "https://gitea.prgs.cc", "username": "jcwalker3", diff --git a/tests/test_config_v2.py b/tests/test_config_v2.py index 1b951c0..4529fec 100644 --- a/tests/test_config_v2.py +++ b/tests/test_config_v2.py @@ -75,7 +75,7 @@ def v2_config(): "identities": { "author": { "role": "author", - "username": "913443", + "username": "jcwalker3", "auth": {"type": "keychain", "id": "mdcps.gitea.author.token"}, "allowed_operations": ["gitea.read"], @@ -85,7 +85,7 @@ def v2_config(): }, "reviewer": { "role": "reviewer", - "username": "TBD-second-mdcps-user", + "username": "913443", "auth": {"type": "keychain", "id": "mdcps.gitea.reviewer.token"}, "allowed_operations": [ @@ -251,16 +251,22 @@ class TestV2Selectors(_V2Base): self._load_raises(mutate, "unknown profile") def test_tbd_username_fails_closed_on_selection(self): - with self.assertRaises(gitea_config.ConfigError) as ctx: - self._resolve("mdcps.gitea.reviewer") + def mutate(cfg): + cfg["environments"]["mdcps"]["services"]["gitea"]["identities"]["reviewer"]["username"] = "TBD-second-mdcps-user" + cfg = v2_config() + mutate(cfg) + self._write(cfg) + with patch.dict(os.environ, self._env("mdcps.gitea.reviewer"), clear=True): + with self.assertRaises(gitea_config.ConfigError) as ctx: + gitea_config.resolve_profile() msg = str(ctx.exception) self.assertIn("TBD", msg) - self.assertIn("provision", msg) + # Note: after #107 provisioning, real username "913443" is used in live config and happy-path tests. def test_tbd_identity_does_not_block_other_identities(self): # Same file contains the TBD reviewer; author still resolves. p = self._resolve("mdcps.gitea.author") - self.assertEqual(p["username"], "913443") + self.assertEqual(p["username"], "jcwalker3") # ---------------------------------------------------------------------------