runtime: publish GITEA-V4-STAGE-RECONCILE-TRANSACTION-V2-20260730T165915Z
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"channel": "homelab-runtime",
|
||||
"command_id": "GITEA-V4-STAGE-RECONCILE-TRANSACTION-V2-20260730T165915Z",
|
||||
"status": "FAIL",
|
||||
"rc": 1,
|
||||
"host": "pve01",
|
||||
"mode": "change",
|
||||
"component": "gitea-machine-identity",
|
||||
"started_at_utc": "2026-07-30T17:00:10Z",
|
||||
"finished_at_utc": "2026-07-30T17:00:11Z",
|
||||
"reference_register_checked": true,
|
||||
"reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
|
||||
"error_register_checked": true,
|
||||
"error_register_sha256": "24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83",
|
||||
"command_sha256": "9ffcea480b54d6707a4308757839917962b95f120e48c04b04f25fc0b25c83a3",
|
||||
"duplicate_failed_command_blocked": false,
|
||||
"block_reason": null,
|
||||
"execution_started": true,
|
||||
"change_declared": true,
|
||||
"result_contract_valid": true,
|
||||
"result_contract_status": "FAIL",
|
||||
"result_contract_error": null,
|
||||
"command_rc": 1,
|
||||
"changes_made": false,
|
||||
"rollback_started": false,
|
||||
"rollback_restored": null,
|
||||
"mutation_outcome": "NO_MUTATION",
|
||||
"sanitized": true,
|
||||
"secrets_included": false,
|
||||
"private_addresses_included": false,
|
||||
"raw_evidence_retained_locally": true,
|
||||
"raw_evidence_sha256": "41d148fc79fd258d1a038ea7d8f91bfc9709c7e4af1deb144bedd32e6004c413",
|
||||
"sanitized_output_sha256": "41d148fc79fd258d1a038ea7d8f91bfc9709c7e4af1deb144bedd32e6004c413",
|
||||
"output_truncated_in_json": false,
|
||||
"full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
|
||||
"output": "HOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"GITEA-V4-STAGE-RECONCILE-TRANSACTION-V2-20260730T165915Z\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\n{\"PLAN_SHA256\":null,\"changes_made\":false,\"command_id\":\"GITEA-V4-STAGE-RECONCILE-TRANSACTION-V2-20260730T165915Z\",\"error\":\"RuntimeError: command failed rc=1 argv=/usr/bin/python3 -B -m unittest discover -s /tmp/gitea-v4-reconcile-2aauj_hx/review/tests -v stdout= stderr=(current, dict):\\\\n fail('current user response')\\\\n actual_login = current.get('login')\\\\n if not isinstance(actual_login, str) or not re.fullmatch(r'[A-Za-z0-9_.-]+', actual_login):\\\\n fail('current login')\\\\n _, permission = client.request(\\\\n 'GET',\\\\n f'/repos/{REPOSITORY}/collaborators/{actual_login}/permission',\\\\n )\\\\n if not isinstance(permission, dict) or permission.get('permission') != 'admin':\\\\n fail('legacy repository permission')\\\\n status, _ = client.request(\\\\n 'GET',\\\\n '/users/' + MACHINE_USER,\\\\n expected=(200, 404),\\\\n )\\\\n if status != 404:\\\\n fail('machine user already present')\\\\n return actual_login\\\\n\\\\n\\\\nparser = argparse.ArgumentParser()\\\\nparser.add_argument('mode', choices=('inspect', 'grant'))\\\\nparser.add_argument('--credential-file', required=True)\\\\nargs = parser.parse_args()\\\\nlogin_value, material_value = read_credential(Path(args.credential_file))\\\\nclient = Client(login_value, material_value)\\\\n\\\\nif args.mode == 'inspect':\\\\n actual_login = inspect(client)\\\\n print('LEGACY_IDENTITY_API_STATUS=OK')\\\\n print('GITEA_VERSION=1.26.2')\\\\n print('LEGACY_AUTHENTICATED_LOGIN=' + actual_login)\\\\n print('LEGACY_REPOSITORY_PERMISSION=admin')\\\\n print('MACHINE_USER_STATE=ABSENT')\\\\n print('API_DEADLINE_SECONDS=10')\\\\n raise SystemExit(0)\\\\n\\\\n_, version = client.request('GET', '/version', authenticated=False)\\\\nif not isinstance(version, dict) or version.get('version') != '1.26.2':\\\\n fail('Gitea version')\\\\n_, current = client.request('GET', '/user')\\\\nif not isinstance(current, dict):\\\\n fail('current user response')\\\\nactual_login = current.get('login')\\\\nif not isinstance(actual_login, str) or not re.fullmatch(r'[A-Za-z0-9_.-]+', actual_login):\\\\n fail('current login')\\\\n_, legacy_permission = client.request(\\\\n 'GET',\\\\n f'/repos/{REPOSITORY}/collaborators/{actual_login}/permission',\\\\n)\\\\nif not isinstance(legacy_permission, dict) or legacy_permission.get('permission') != 'admin':\\\\n fail('legacy repository permission')\\\\n_, machine_user = client.request('GET', '/users/' + MACHINE_USER)\\\\nif not isinstance(machine_user, dict):\\\\n fail('machine user response')\\\\nif machine_user.get('login') != MACHINE_USER or machine_user.get('is_admin') is not False:\\\\n fail('machine user non-admin state')\\\\nclient.request(\\\\n 'PUT',\\\\n f'/repos/{REPOSITORY}/collaborators/{MACHINE_USER}',\\\\n payload={'permission': 'write'},\\\\n expected=(204,),\\\\n)\\\\n_, permission = client.request(\\\\n 'GET',\\\\n f'/repos/{REPOSITORY}/collaborators/{MACHINE_USER}/permission',\\\\n)\\\\nif not isinstance(permission, dict) or permission.get('permission') != 'write':\\\\n fail('machine repository permission')\\\\nprint('LEGACY_IDENTITY_GRANT_STATUS=OK')\\\\nprint('MACHINE_USER_PRESENT=YES')\\\\nprint('MACHINE_USER_ADMIN=NO')\\\\nprint('REPOSITORY_PERMISSION=write')\\\\n\\\"\\n\\n----------------------------------------------------------------------\\nRan 20 tests in 0.002s\\n\\nFAILED (failures=1)\\n\",\"mutation_outcome\":\"NO_MUTATION\",\"rollback_restored\":null,\"rollback_started\":false,\"schema\":1,\"status\":\"FAIL\"}\n"
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
CHAT_OUTPUT_BEGIN
|
||||
COMMAND_ID=GITEA-V4-STAGE-RECONCILE-TRANSACTION-V2-20260730T165915Z
|
||||
STATUS=FAIL
|
||||
RC=1
|
||||
HOST=pve01
|
||||
MODE=change
|
||||
COMPONENT=gitea-machine-identity
|
||||
REFERENCE_REGISTER_CHECK=OK
|
||||
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
|
||||
ERROR_REGISTER_CHECK=OK
|
||||
ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83
|
||||
COMMAND_SHA256=9ffcea480b54d6707a4308757839917962b95f120e48c04b04f25fc0b25c83a3
|
||||
DUPLICATE_FAILED_COMMAND_BLOCKED=false
|
||||
EXECUTION_STARTED=true
|
||||
CHANGE_DECLARED=true
|
||||
RESULT_CONTRACT_VALID=true
|
||||
RESULT_CONTRACT_STATUS=FAIL
|
||||
RESULT_CONTRACT_ERROR=NONE
|
||||
COMMAND_RC=1
|
||||
CHANGES_MADE=false
|
||||
ROLLBACK_STARTED=false
|
||||
ROLLBACK_RESTORED=null
|
||||
MUTATION_OUTCOME=NO_MUTATION
|
||||
SANITIZED=yes
|
||||
SECRETS_INCLUDED=no
|
||||
PRIVATE_ADDRESSES_INCLUDED=no
|
||||
RAW_EVIDENCE_SHA256=41d148fc79fd258d1a038ea7d8f91bfc9709c7e4af1deb144bedd32e6004c413
|
||||
SANITIZED_OUTPUT_SHA256=41d148fc79fd258d1a038ea7d8f91bfc9709c7e4af1deb144bedd32e6004c413
|
||||
OUTPUT_BEGIN
|
||||
HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"GITEA-V4-STAGE-RECONCILE-TRANSACTION-V2-20260730T165915Z","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1}
|
||||
{"PLAN_SHA256":null,"changes_made":false,"command_id":"GITEA-V4-STAGE-RECONCILE-TRANSACTION-V2-20260730T165915Z","error":"RuntimeError: command failed rc=1 argv=/usr/bin/python3 -B -m unittest discover -s /tmp/gitea-v4-reconcile-2aauj_hx/review/tests -v stdout= stderr=(current, dict):\\n fail('current user response')\\n actual_login = current.get('login')\\n if not isinstance(actual_login, str) or not re.fullmatch(r'[A-Za-z0-9_.-]+', actual_login):\\n fail('current login')\\n _, permission = client.request(\\n 'GET',\\n f'/repos/{REPOSITORY}/collaborators/{actual_login}/permission',\\n )\\n if not isinstance(permission, dict) or permission.get('permission') != 'admin':\\n fail('legacy repository permission')\\n status, _ = client.request(\\n 'GET',\\n '/users/' + MACHINE_USER,\\n expected=(200, 404),\\n )\\n if status != 404:\\n fail('machine user already present')\\n return actual_login\\n\\n\\nparser = argparse.ArgumentParser()\\nparser.add_argument('mode', choices=('inspect', 'grant'))\\nparser.add_argument('--credential-file', required=True)\\nargs = parser.parse_args()\\nlogin_value, material_value = read_credential(Path(args.credential_file))\\nclient = Client(login_value, material_value)\\n\\nif args.mode == 'inspect':\\n actual_login = inspect(client)\\n print('LEGACY_IDENTITY_API_STATUS=OK')\\n print('GITEA_VERSION=1.26.2')\\n print('LEGACY_AUTHENTICATED_LOGIN=' + actual_login)\\n print('LEGACY_REPOSITORY_PERMISSION=admin')\\n print('MACHINE_USER_STATE=ABSENT')\\n print('API_DEADLINE_SECONDS=10')\\n raise SystemExit(0)\\n\\n_, version = client.request('GET', '/version', authenticated=False)\\nif not isinstance(version, dict) or version.get('version') != '1.26.2':\\n fail('Gitea version')\\n_, current = client.request('GET', '/user')\\nif not isinstance(current, dict):\\n fail('current user response')\\nactual_login = current.get('login')\\nif not isinstance(actual_login, str) or not re.fullmatch(r'[A-Za-z0-9_.-]+', actual_login):\\n fail('current login')\\n_, legacy_permission = client.request(\\n 'GET',\\n f'/repos/{REPOSITORY}/collaborators/{actual_login}/permission',\\n)\\nif not isinstance(legacy_permission, dict) or legacy_permission.get('permission') != 'admin':\\n fail('legacy repository permission')\\n_, machine_user = client.request('GET', '/users/' + MACHINE_USER)\\nif not isinstance(machine_user, dict):\\n fail('machine user response')\\nif machine_user.get('login') != MACHINE_USER or machine_user.get('is_admin') is not False:\\n fail('machine user non-admin state')\\nclient.request(\\n 'PUT',\\n f'/repos/{REPOSITORY}/collaborators/{MACHINE_USER}',\\n payload={'permission': 'write'},\\n expected=(204,),\\n)\\n_, permission = client.request(\\n 'GET',\\n f'/repos/{REPOSITORY}/collaborators/{MACHINE_USER}/permission',\\n)\\nif not isinstance(permission, dict) or permission.get('permission') != 'write':\\n fail('machine repository permission')\\nprint('LEGACY_IDENTITY_GRANT_STATUS=OK')\\nprint('MACHINE_USER_PRESENT=YES')\\nprint('MACHINE_USER_ADMIN=NO')\\nprint('REPOSITORY_PERMISSION=write')\\n\"\n\n----------------------------------------------------------------------\nRan 20 tests in 0.002s\n\nFAILED (failures=1)\n","mutation_outcome":"NO_MUTATION","rollback_restored":null,"rollback_started":false,"schema":1,"status":"FAIL"}
|
||||
|
||||
OUTPUT_END
|
||||
CHAT_OUTPUT_END
|
||||
Reference in New Issue
Block a user