feat: restore Gitea CLI access

This commit is contained in:
Adolfo Reyna
2026-08-16 08:40:47 -04:00
parent 032bc3a580
commit bdf3b55a98
3 changed files with 297 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
from __future__ import annotations
from pathlib import Path
import httpx
from reyna_cli.gitea_direct import GiteaClient, GiteaCredentials, load_credentials, redact_sensitive
def test_load_credentials_prefers_environment_without_exposing_token(monkeypatch):
monkeypatch.setenv("REYNA_GITEA_TOKEN", "test-token-value")
monkeypatch.setenv("REYNA_GITEA_URL", "https://git.example.test/")
credentials = load_credentials()
assert credentials.token == "test-token-value"
assert credentials.source == "REYNA_GITEA_TOKEN"
assert credentials.public_dict() == {
"configured": True,
"host": "git.example.test",
"source": "REYNA_GITEA_TOKEN",
}
assert "token" not in credentials.public_dict()
def test_load_credentials_reads_git_credentials_file(monkeypatch, tmp_path: Path):
credentials_file = tmp_path / "credentials"
credentials_file.write_text(
"https://adolforeyna:stored-secret@git.reynafamily.com\n",
encoding="utf-8",
)
monkeypatch.delenv("REYNA_GITEA_TOKEN", raising=False)
monkeypatch.delenv("GITEA_TOKEN", raising=False)
monkeypatch.setenv("GIT_CREDENTIALS_FILE", str(credentials_file))
credentials = load_credentials()
assert credentials.username == "adolforeyna"
assert credentials.token == "stored-secret"
assert credentials.source == "GIT_CREDENTIALS_FILE"
assert "stored-secret" not in str(credentials.public_dict())
def test_repo_response_is_redacted_and_requests_authenticated_endpoint():
requests: list[httpx.Request] = []
def handler(request: httpx.Request) -> httpx.Response:
requests.append(request)
return httpx.Response(
200,
json={
"full_name": "adolforeyna/reyna-cli",
"permissions": {"push": True},
"token": "response-secret",
},
)
client = GiteaClient(
GiteaCredentials("adolforeyna", "request-secret", "test", "https://git.example.test"),
transport=httpx.MockTransport(handler),
)
result = client.repo("adolforeyna/reyna-cli")
assert requests[0].url.path == "/api/v1/repos/adolforeyna/reyna-cli"
assert requests[0].headers["authorization"] == "token request-secret"
assert result["permissions"]["push"] is True
assert result["token"] == "[REDACTED]"
assert "response-secret" not in str(result)
def test_remote_credential_helper_can_make_a_safe_api_request(monkeypatch):
credentials = GiteaCredentials("", "", "Pi 5 git credential helper", "https://git.example.test")
assert credentials.public_dict()["configured"] is True
client = GiteaClient(credentials)
monkeypatch.setattr(client, "_remote_get", lambda path: {"full_name": "adolforeyna/reyna-cli"})
assert client.repo("adolforeyna/reyna-cli") == {"full_name": "adolforeyna/reyna-cli"}
def test_redact_sensitive_handles_nested_api_values():
assert redact_sensitive(
{"password": "one", "nested": [{"access_token": "two"}], "name": "safe"}
) == {"password": "[REDACTED]", "nested": [{"access_token": "[REDACTED]"}], "name": "safe"}