Verify PostgreSQL source recovery and preserve tracing context across hooks
This commit is contained in:
parent
1b8dc0a8fd
commit
83078392c0
119 changed files with 24438 additions and 0 deletions
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"objective": "Finish what you found missing and finish CUST-WP-0080",
|
||||
"status": "active",
|
||||
"observed_at": "2026-10-18T01:27:45.628916+00:00",
|
||||
"full_scope_baseline": {
|
||||
"path": "docs/changes/netkingdom-target-2026-10-18/cust80-completion-r1/completion-audit.json",
|
||||
"sha256": "sha256:9bdee9a790db598956fe35d5954137bb4582c9f3810d2392f7ef3236c369b065",
|
||||
"all_requirements_retained": true
|
||||
},
|
||||
"normative_architecture": {
|
||||
"path": "docs/netkingdom-target-security-architecture.md",
|
||||
"sha256": "ec2079be18c7cdb8a1e4fdbd22131c08c83721d7a1bf18b4802bc5e229520f35"
|
||||
},
|
||||
"acceptance_gates": [
|
||||
{
|
||||
"id": "TSA-01",
|
||||
"required_outcome": "Every inventoried privileged PEP authenticates its decision",
|
||||
"required_evidence": "PEP denominator; admitted signer/channel; forged, altered, wrong-key/pin, unsigned/downgrade, expired and rotation refusals. Start SECRETS-WP-0014.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-02",
|
||||
"required_outcome": "Exact approval produces one bounded protected operation",
|
||||
"required_evidence": "SECRETS-WP-0013/RPF-WP-0035-T12 native effect; Approval T01/T05 issuer/tenant provenance; wrong actor/tenant/body, expiry, replay and unavailable refusal.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-03",
|
||||
"required_outcome": "Crashes preserve uncertainty and cleanup",
|
||||
"required_evidence": "Actual ledger restart/concurrency, consumed-before-effect failure, target reconciliation, scoped cleanup and revocation evidence; no blind replay.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-04",
|
||||
"required_outcome": "First reusable browser case is accepted",
|
||||
"required_evidence": "NK-WP-0048 and named Mason/Warden/KeyCape adapters; independent native structure, sign-in/denial, delivery, revocation and rollback.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-05",
|
||||
"required_outcome": "Human and browser consumers can use the delivered identity",
|
||||
"required_evidence": "KEY-WP-0040/U08 real-factor recovery; User Engine journey; NK-WP-0050 and CUST-WP-0080-T05 human/agent Playwright acceptance.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-06",
|
||||
"required_outcome": "Actual agent and runner authority is bounded",
|
||||
"required_evidence": "CUST-WP-0073/GLAS-WP-0012 admitted runtime read-denial/tool-effect proof; Forge/Platform per-job credential and repository-workflow abuse tests.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-07",
|
||||
"required_outcome": "Credential lifecycle is inventoried and simplified",
|
||||
"required_evidence": "Current owner/consumer denominator, unknown/orphan findings, native-identity elimination candidates; sampled replacement/adoption/old-refusal and deletion semantics. G04/G09/G12.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-08",
|
||||
"required_outcome": "Recovery is independent and measured",
|
||||
"required_evidence": "NK-WP-0049 plus platform/root owners; isolated recovery with ordinary issuer unavailable, restore/reconnect/audit continuity and measured RTO/RPO. G08/G11.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-09",
|
||||
"required_outcome": "Security effects have independently reconciled evidence",
|
||||
"required_evidence": "Admitted source/class inventory, atomic outbox, receiver readback, lag/duplicate/boundary accounting and missing-class findings. Approval/Audit/Tenant/Secrets owners.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-10",
|
||||
"required_outcome": "Source and delivery controls cover declared entry paths",
|
||||
"required_evidence": "FORGE-WP-0006/RMGR-WP-0021: denominator, SSH/HTTP/UI/new repo/import/mirror coverage, required checks/provenance, private synthetic finding through resolution.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-11",
|
||||
"required_outcome": "Discovery remains accurate",
|
||||
"required_evidence": "All reviewed IDs exactly once, owner/index parity, usable source links, current limits/version aliases, drift checks and package-family disposition. Reuse/Repo Manager/provider owners.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-12",
|
||||
"required_outcome": "Improvement operates without repeated manual polling",
|
||||
"required_evidence": "CUST-WP-0079/Activity accepted schedule, unassisted firing, checkpoint and changed-state notifications; adopted cadence runtime/receiver receipts; owner change and native remeasurement.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-13",
|
||||
"required_outcome": "Shared adapters reduce per-consumer implementation",
|
||||
"required_evidence": "Producer-format cross-language fixtures, two real consumers, version compatibility, denied-path parity, upgrades and rollback; no second PDP.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-14",
|
||||
"required_outcome": "Minimal profiles are independently reusable",
|
||||
"required_evidence": "Version/provider lock, dependency and optional-provider declaration, provider adapters, second clean installation, complete positive/negative journeys and upgrade/recovery instructions.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-15",
|
||||
"required_outcome": "Optimization improves measured operations",
|
||||
"required_evidence": "Baseline and repeat measurements of onboarding time/touches, p50/p95 decision/effect latency, scanner throughput/failure, resources/headroom and owner effort with unchanged control coverage.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
},
|
||||
{
|
||||
"id": "TSA-16",
|
||||
"required_outcome": "Governance and exceptions remain truthful",
|
||||
"required_evidence": "Existing SEC-DSM ledger and close-down controls reconciled to exact evidence; real authority for changes, explicit residual promotions, preserved deferrals and no invented owner assent.",
|
||||
"status": "incomplete",
|
||||
"completion_evidence": []
|
||||
}
|
||||
],
|
||||
"sec_dsm_requirements": {
|
||||
"path": "docs/evidence/2026-10-12-netkingdom-security/sec-dsm-requirement-ledger.json",
|
||||
"sha256": "sha256:ad81f7186ada04aa1cc410932fc8669d69dc2232f3c0be00657b17f3aa3a8184",
|
||||
"count": 116,
|
||||
"status_counts": {
|
||||
"unverified": 84,
|
||||
"incomplete": 12,
|
||||
"reference": 20
|
||||
},
|
||||
"closure_status_unchanged": true
|
||||
},
|
||||
"gap_ids": [
|
||||
"G01",
|
||||
"G02",
|
||||
"G03",
|
||||
"G04",
|
||||
"G05",
|
||||
"G06",
|
||||
"G07",
|
||||
"G08",
|
||||
"G09",
|
||||
"G10",
|
||||
"G11",
|
||||
"G12",
|
||||
"G13"
|
||||
],
|
||||
"separate_required_deliverables": [
|
||||
"G01-G13 current closure evidence or already applicable approved exceptions",
|
||||
"SEC-DSM requirement ledger reconciled with exact evidence",
|
||||
"T05 real human and agent Playwright acceptance and supported discovery",
|
||||
"Second real consumer and clean installation proves reuse",
|
||||
"Residual handoffs before workplan finish; no required work left only in prose"
|
||||
],
|
||||
"source_progress": {
|
||||
"packet": "docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1",
|
||||
"producer_source_commit": "git:ca0cb75729a63c9288b7333382d0fa3eb1e8c9a3",
|
||||
"consumer_owner_commit": "git:308e83fcfbf9ec98dbe6b0286cbe8ec7be8899b3",
|
||||
"consumer_paths": 40,
|
||||
"patch_sha256": "sha256:feb1079399a43989742ae0a946c1ada50113d1821e6541f97f0b5592ee1fc20c",
|
||||
"postgreSQL_test_subtest_passes": 37,
|
||||
"database_schema_profiles": [
|
||||
"default",
|
||||
"explicit-public",
|
||||
"named"
|
||||
],
|
||||
"separate_client_crash_recovery": true,
|
||||
"actual_database_server_restart_recovery": true,
|
||||
"controlled_missing_lock_and_private_marker_counterexamples": true,
|
||||
"following_query_hook_context_panic_corrected": true,
|
||||
"selected_composed_passes_including_subtests": 94,
|
||||
"source_skips": 0,
|
||||
"release": {
|
||||
"frontend_and_static_backend": "passed",
|
||||
"release_version": "11.0.3+cust80.feb10793",
|
||||
"binary_sha256": "sha256:92efb26614d3fca22c400920d92c4cd022e32ab86c1f562f60699ab5f750cd28",
|
||||
"embedded_assets_exact": 2234,
|
||||
"actual_release_CLI_checks": 48,
|
||||
"exact_local_OCI_exports": 2,
|
||||
"manifest": "sha256:9d127b0a75d3d53b1598e7f380dce29f23f42c2e69056fdfc9a42122d98c41c7",
|
||||
"native_admission": false
|
||||
},
|
||||
"independent_owner_assent": false,
|
||||
"production_database": false,
|
||||
"native_gates_closed": 0
|
||||
},
|
||||
"current_work": "Current authenticated operation/inverse sessions and evidence; exclusion of all application/Helm/release writers; private journal custody/retention; ongoing HTTP/API/Git/SSH authorization; exact owner and native admission. All sixteen gates, G01-G13 and 116 SEC-DSM entries remain in scope.",
|
||||
"workplan_finished": false,
|
||||
"goal_complete": false,
|
||||
"preceding_audit": {
|
||||
"path": "docs/changes/netkingdom-target-2026-10-18/cust80-completion-r2/completion-audit.json",
|
||||
"sha256": "sha256:001ede40ad6d7cadcfc575a101828f782f65ea0c75e6a5e0f6b0afe761420b0d"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
# Forgejo PostgreSQL source verification and tracing context correction
|
||||
|
||||
This packet verifies the actual composed Forgejo 11.0.3 source on a disposable
|
||||
PostgreSQL 16.14 instance. It retains the source correction, failed setup and
|
||||
test attempts, controlled counterexamples, exact sandbox/command receipts and
|
||||
complete rebuilt release evidence. Apps commit `308e83fc` integrates the new
|
||||
40-path source patch and build lock. Independent owner review and operational
|
||||
admission remain open.
|
||||
|
||||
The actual production engine initialization and registered model schemas run
|
||||
under default, explicit-public and named schemas. OAuth configuration values use
|
||||
the actual application type. All 37 PostgreSQL test/subtest results pass:
|
||||
create/reconcile/inverse, exact raw restoration, unchanged source retention,
|
||||
private drift refusal, local/external account-link refusal, unexpected trigger
|
||||
rollback, raw SQL writer exclusion on all four protected tables, concurrent
|
||||
preparation and private driver-error diagnostics. A PostgreSQL trigger places
|
||||
private synthetic configuration in its driver error; the application's actual
|
||||
slow/error/trace hooks and returned operation error suppress that configuration.
|
||||
An unmarked query provides a positive diagnostic control.
|
||||
|
||||
The diagnostics test exposed a real hook-composition crash. XORM 1.3.9 passes
|
||||
the same ContextHook to each BeforeProcess hook without feeding the previous
|
||||
returned context into it. A hook after tracing could therefore discard the task
|
||||
context and make tracing's AfterProcess panic. The correction publishes the
|
||||
new task context into ContextHook as well as returning it. This preserves the
|
||||
incoming private-query marker and ordinary context values. Actual SQLite query
|
||||
success/failure and private/ordinary trace cases cover the corrected composition.
|
||||
The six focused DB checks and all 94 selected composed package results pass
|
||||
without skips. The test-only PostgreSQL tag adds no runtime route or authority.
|
||||
|
||||
Separate client processes prepare an intent, die immediately after the actual
|
||||
source INSERT, reconcile the rolled-back prepared state, and confirm an apply.
|
||||
The actual PostgreSQL server then restarts with the same synthetic volume.
|
||||
Further fresh processes reconcile the committed apply, perform the inverse and
|
||||
verify the reverted journal and source absence. This is transaction/recovery
|
||||
mechanics evidence, not a real initiating principal, current inverse authority,
|
||||
signed evidence/outbox or a deployed-database acceptance receipt.
|
||||
|
||||
Controlled source copies independently remove the PostgreSQL table lock and
|
||||
the private-query marker. Both fail their intended tests in all three schema
|
||||
profiles. Those expected counterexamples are separate from successful normal
|
||||
runs; the canonical runtime source is not weakened. See
|
||||
`controlled-counterexamples.json` and `source-equivalence.json`.
|
||||
|
||||
The first two container setup attempts failed because the image's initialization
|
||||
script explicitly clears PGHOST and requires its default socket. The first
|
||||
suite also exposed an incomplete user fixture; its replacement uses the actual
|
||||
user model. The initial tracing regression had an incorrect AddHook API call.
|
||||
The first combined run reused an already-consumed file-replacement fixture;
|
||||
the final run provisions fresh read-only and writable-alias fixtures. All
|
||||
original failures remain retained. None is counted as a source success.
|
||||
|
||||
The database has no TCP listener, published port or network. Only its exact
|
||||
synthetic Unix socket is exposed to the network/PID-isolated test process.
|
||||
The image is immutable and recorded; the workload is limited to one CPU and
|
||||
512 MiB. Local trust authentication is solely a disposable fixture, not a
|
||||
credential-custody proof. Exact labeled containers and volumes from all three
|
||||
setup attempts were removed; cleanup receipts are retained.
|
||||
|
||||
For reproduction, use a new prepared workspace from the companion release
|
||||
recipe, explicit public module/build caches, and unused attempt/workspace names.
|
||||
`database_runtime.py start --attempt N` creates the owned database fixture.
|
||||
`run_postgres.py build --source-workspace ... --module-cache ... --go-cache ...`
|
||||
compiles the real test binary, and `suite` / `combined-regressions` execute the
|
||||
normal checks. Supply the same `--runtime-attempt N` and test `--workspace`.
|
||||
The recovery actions are `prepare`, `crash` (expected process exit 73),
|
||||
`recover-prepared`, server `restart`, `recover-applied`, and `recover-inverse`.
|
||||
The optional build controls are `omit-postgres-lock` and `omit-private-context`;
|
||||
their suite failures must match the recorded target tests. Finish with exact
|
||||
owned `database_runtime.py cleanup --attempt N`. Existing receipts and trial
|
||||
directories refuse overwrite. The early fixed-path receipt replay is retained;
|
||||
the final combined run exercises the explicit-workspace interface.
|
||||
|
||||
The new patch independently replays all 40 postimages from the pinned official
|
||||
archive. The complete frontend/static release builds; all 2,234 embedded assets
|
||||
are exact and all 48 actual CLI/SQLite subprocess checks pass on its binary.
|
||||
Two fresh no-cache local OCI exports reproduce identical archive, manifest,
|
||||
config and index. Base layers and rootless runtime settings remain exact.
|
||||
This is one source build and two exports. No image is loaded, pushed or deployed.
|
||||
Published asset digests have explicit `sha256:` types; their derivation restores
|
||||
the runtime's original manifest byte for byte. Scanner rules are unchanged.
|
||||
|
||||
Existing T08/T34/T42 still require current authenticated operation/inverse
|
||||
sessions, exclusion of every application/Helm/release writer, private journal
|
||||
reader/backup custody, retention and native deployed-database acceptance. T07's
|
||||
chart/private-mount admission and T09/T43's ongoing HTTP/API/Git/SSH authorization
|
||||
remain open. All sixteen target gates and the full SEC-DSM ledger remain in
|
||||
scope; no native gate is closed by these source checks.
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
"""Publish explicitly typed public asset digests, retaining byte-exact evidence."""
|
||||
from pathlib import Path
|
||||
import hashlib
|
||||
import json
|
||||
|
||||
HERE = Path(__file__).resolve().parent
|
||||
path = HERE / 'release-evidence/embedded-files.json'
|
||||
raw = path.read_bytes()
|
||||
records = json.loads(raw)
|
||||
work = Path('/tmp/custodian-forgejo-release-r4')
|
||||
verification = json.loads((HERE / 'release-evidence/verification.json').read_text())
|
||||
sha = lambda data: hashlib.sha256(data).hexdigest()
|
||||
assert sha(raw) == verification['embedded_file_manifest_sha256']
|
||||
assert raw == (work / 'embedded-files.json').read_bytes()
|
||||
for name, value in records.items():
|
||||
assert sha((work / 'source' / name).read_bytes()) == value, name
|
||||
assert sha((work / 'embedded-extracted' / name).read_bytes()) == value, name
|
||||
published = (json.dumps({name: 'sha256:' + value for name, value in records.items()},
|
||||
indent=2, sort_keys=True) + '\n').encode()
|
||||
restored = (json.dumps({name: value.removeprefix('sha256:')
|
||||
for name, value in json.loads(published).items()},
|
||||
indent=2, sort_keys=True) + '\n').encode()
|
||||
assert restored == raw
|
||||
path.write_bytes(published)
|
||||
(HERE / 'release-evidence/embedded-manifest-derivation.json').write_text(json.dumps({
|
||||
'scope': 'Public generated/embedded asset SHA-256 identifiers only',
|
||||
'assets_verified_against_both_actual_source_and_extracted_binary': len(records),
|
||||
'runtime_original_manifest_sha256': 'sha256:' + sha(raw),
|
||||
'published_manifest_sha256': 'sha256:' + sha(published),
|
||||
'original_byte_exact_reconstructed': True,
|
||||
'reconstruction': 'Remove the sha256: value prefix and serialize with json.dumps(indent=2, sort_keys=True) plus one newline.',
|
||||
'runtime_verification_receipt_preserved': True,
|
||||
'scanner_rules_or_allowlists_changed': False,
|
||||
'credential_values_transformed': False,
|
||||
}, indent=2) + '\n')
|
||||
print(json.dumps({'public_asset_digests_verified': len(records), 'original_byte_exact_reconstructed': True}))
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"paths_verified": 40,
|
||||
"all_postimages_exact": true,
|
||||
"patch_sha256": "sha256:feb1079399a43989742ae0a946c1ada50113d1821e6541f97f0b5592ee1fc20c",
|
||||
"workspace": "/tmp/custodian-forgejo-pg-composite-k93fv80k",
|
||||
"native_changes": false
|
||||
}
|
||||
|
|
@ -0,0 +1,219 @@
|
|||
{
|
||||
"schema": "custodian.forgejo-composed-source.v1",
|
||||
"status": "source-tested PostgreSQL/context correction; complete release rebuild pending",
|
||||
"archive_sha256": "1ddd8c926ca07d40436897971458ace7dcf1d3496a0813ab9e0d869edef2365c",
|
||||
"forgejo_version": "11.0.3",
|
||||
"producer_source_commit": "ca0cb75729a63c9288b7333382d0fa3eb1e8c9a3",
|
||||
"issuer_source_commit": "git:d803e9282a47b49daf930fb905312fa5104c0ace",
|
||||
"patch_sha256": "feb1079399a43989742ae0a946c1ada50113d1821e6541f97f0b5592ee1fc20c",
|
||||
"files": [
|
||||
{
|
||||
"path": "cmd/admin_auth_oauth.go",
|
||||
"before_sha256": "d5faee30ffbb9a560256c92a0e05e652b79e95e016448cbac7dbb6ad0fdad937",
|
||||
"after_sha256": "d718d817c46f6393488a9c5a894b7535640cd0ec1a1ae3f72f8411a2bbec3b38"
|
||||
},
|
||||
{
|
||||
"path": "cmd/admin_auth_oauth_secret_linux.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "6741961f1df67c1afbf34c796e549425f0e04a0d0678c6eedb05f66d4754c64b"
|
||||
},
|
||||
{
|
||||
"path": "cmd/admin_auth_oauth_secret_linux_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "b28c2369dfab9bf2ca48e707e01b4394a36c8be5490cfe5bb658017bb626c4b2"
|
||||
},
|
||||
{
|
||||
"path": "cmd/admin_auth_oauth_secret_other.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "54056c989a4757e73db0252130e7c16bf16f5ec8eaaca2468f019ba2ef5c532d"
|
||||
},
|
||||
{
|
||||
"path": "go.mod",
|
||||
"before_sha256": "652162a4a95c6d1c349d2a8c0b514def5abd837f001137b77b7b3f4a0f162d00",
|
||||
"after_sha256": "130138c4c3ecc29fa0d7f1e2eef0589ddf3b06071f3cc0448aa7b2326847653a"
|
||||
},
|
||||
{
|
||||
"path": "models/auth/source_operation.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31"
|
||||
},
|
||||
{
|
||||
"path": "models/auth/source_operation_internal_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb"
|
||||
},
|
||||
{
|
||||
"path": "models/auth/source_operation_postgres_export_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d"
|
||||
},
|
||||
{
|
||||
"path": "models/auth/source_operation_postgres_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe"
|
||||
},
|
||||
{
|
||||
"path": "models/auth/source_operation_process_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd"
|
||||
},
|
||||
{
|
||||
"path": "models/auth/source_operation_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428"
|
||||
},
|
||||
{
|
||||
"path": "models/db/context.go",
|
||||
"before_sha256": "10774e272206c7a8d6ebfb106b37d535de77f7e96ba57657b4dad960639f8519",
|
||||
"after_sha256": "d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7"
|
||||
},
|
||||
{
|
||||
"path": "models/db/engine.go",
|
||||
"before_sha256": "774cedc74e1a8d9ae6f9e5f106c6cbb66f12c11b42e99ef07a7affd03269c3d2",
|
||||
"after_sha256": "d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8"
|
||||
},
|
||||
{
|
||||
"path": "models/db/sensitive_sql.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584"
|
||||
},
|
||||
{
|
||||
"path": "models/db/sensitive_sql_logging_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7"
|
||||
},
|
||||
{
|
||||
"path": "models/db/sensitive_sql_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b"
|
||||
},
|
||||
{
|
||||
"path": "models/db/tracing_context_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
{
|
||||
"path": "routers/web/admin/auths.go",
|
||||
"before_sha256": "eeed6999e4655993b55873bb51efb4fcd946532255b9473d16e086e04a1ec911",
|
||||
"after_sha256": "3498229e06fb9ff52396bcb5e68c0cc2d2ad24e6494533d8717d7c833f3e2923"
|
||||
},
|
||||
{
|
||||
"path": "routers/web/auth/oauth.go",
|
||||
"before_sha256": "6f454b3550b150178a8597a9437adb0c626556f34c15a13778c15d675b05659b",
|
||||
"after_sha256": "58bff778e0dc17a521706289bf45c3e0d76a759a0874f76c379b3d1ddb419b17"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/access_engine.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "d5f07f9491ac2212410e1fa8c0248d68ba3a723e7ca99e363627c5292d187aa8"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/access_engine_assurance.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "42de751b1e9a243301d566260954813b770558ecb449639acaeab307fe788642"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/access_engine_assurance_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "44e7459f6c1106a264093c19d61d01a8365f6ad22682906552d832ba39d61dd3"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/access_engine_azp_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "5f94f43ade9a79b6b7ef529c80115a8c32acfece425dc8ed3f24e6ad839fc0ce"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/access_engine_callback_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "5cea36b630c895a9473dc876b7128526ddef65d9395b2fddc56343e162452472"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/access_engine_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "99edd6cfe3e834d73e0447a7915f52cc4ab7b82644669c5ae61963f850b447e8"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/providers_openid.go",
|
||||
"before_sha256": "6ddca7fb4ab8b16e6b096481cfb40ca5abdf3a327f38c895b95b3846cc7c2248",
|
||||
"after_sha256": "5dd9b906cce434c774968d57fcc790cb678147345fea4d2e58477ec6eed70bcf"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/required_claim_values.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "29f16d07464bbe12e3f65616b6c1eb60561d04cd8ff89ecbfb56f93dbeaf1cda"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/required_claim_values_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "54a8bd97dc51c524a9adf0c6aefb9a19fa152d234b3bb929bf1a90932662d3d0"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/source.go",
|
||||
"before_sha256": "a6ee5146c07d8efb1837ef91f1ab5f3139f69a1ff66f814d5e9c6053bf9b0d8b",
|
||||
"after_sha256": "44e99883c2ec479427b3f72c73353fe33936eed2e5c962b2fa40803576aa5642"
|
||||
},
|
||||
{
|
||||
"path": "services/auth/source/oauth2/source_callout.go",
|
||||
"before_sha256": "c30c418182d4cb98b1e448f621c93322accfbbf92d6a59e6df1ae45a7aa8fc7b",
|
||||
"after_sha256": "6abba69df97afc62467f0328eaa5a6383cfb4900202a081dec4b84a21b37349c"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/LICENSE",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "ff413f361a3b3bf44cf50f110fbcc4837064d57eefbcef89df2b43997c6262b6"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/go.mod",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "fea700810e47c1ba5638b86a168f8531c083a6e1222ca80bd2a8947b2ea6f2c3"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/internal/sign/sign.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "0df9515922e90775ebbfac798361dcafb20da8a4213796b44e246b8a92046cde"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/pkg/api/canonical.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "a122a2e8cd524333b13c5939c7a3685e41efbe47497a64e0c7297c92b7f10d19"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/pkg/api/caring.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "1907156f0f889e7b9e9c14970cf7a86a20d00478a496efaf92c7231f27fec5e3"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/pkg/api/resource_manifest.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "f0fa4080287d389ed48c2b1d6af96cc62e57ef72c902333f677f964420be133f"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/pkg/decisionpep/client.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "0d57f6ddaca5c3f81ce426c0e8b14ba14ea5962096d3be5909aa456eef19eeba"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/pkg/decisionpep/client_test.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "1a6be3485f580f95a1f1406fb76e525f2c4bf02fe04a424cfe0095bb728e3f62"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/producer-source.json",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "c1d83e3d79f9860ffaa61ec19a6b3415e914d3058b11b07cdd05a7d1182cdceb"
|
||||
},
|
||||
{
|
||||
"path": "third_party/access-engine-pep/testsupport/signfixture/sign.go",
|
||||
"before_sha256": null,
|
||||
"after_sha256": "fe4aa86f444dc20145aefbaca35b24f046264b2c5c8b4e3b057a4496b77a4d29"
|
||||
}
|
||||
],
|
||||
"test_only_postgres_tag": "source_operation_postgres",
|
||||
"remaining_native_work": [
|
||||
"Independent owner/source/package/type admission",
|
||||
"Current authenticated operation/inverse sessions and release-wide writer exclusion",
|
||||
"Private evidence/retention/custody and actual deployed database acceptance",
|
||||
"Ongoing HTTP/API/Git/SSH protected paths and native identity/factor journeys"
|
||||
],
|
||||
"native_gates_closed": 0
|
||||
}
|
||||
|
|
@ -0,0 +1,391 @@
|
|||
// Copyright 2014 The Gogs Authors. All rights reserved.
|
||||
// Copyright 2018 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"reflect"
|
||||
"runtime/trace"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"forgejo.org/modules/log"
|
||||
"forgejo.org/modules/setting"
|
||||
|
||||
"xorm.io/xorm"
|
||||
"xorm.io/xorm/contexts"
|
||||
"xorm.io/xorm/names"
|
||||
"xorm.io/xorm/schemas"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql" // Needed for the MySQL driver
|
||||
_ "github.com/lib/pq" // Needed for the Postgresql driver
|
||||
)
|
||||
|
||||
var (
|
||||
x *xorm.Engine
|
||||
tables []any
|
||||
initFuncs []func() error
|
||||
)
|
||||
|
||||
// Engine represents a xorm engine or session.
|
||||
type Engine interface {
|
||||
Table(tableNameOrBean any) *xorm.Session
|
||||
Count(...any) (int64, error)
|
||||
Decr(column string, arg ...any) *xorm.Session
|
||||
Delete(...any) (int64, error)
|
||||
Truncate(...any) (int64, error)
|
||||
Exec(...any) (sql.Result, error)
|
||||
Find(any, ...any) error
|
||||
Get(beans ...any) (bool, error)
|
||||
ID(any) *xorm.Session
|
||||
In(string, ...any) *xorm.Session
|
||||
Incr(column string, arg ...any) *xorm.Session
|
||||
Insert(...any) (int64, error)
|
||||
Iterate(any, xorm.IterFunc) error
|
||||
IsTableExist(any) (bool, error)
|
||||
Join(joinOperator string, tablename, condition any, args ...any) *xorm.Session
|
||||
SQL(any, ...any) *xorm.Session
|
||||
Where(any, ...any) *xorm.Session
|
||||
Asc(colNames ...string) *xorm.Session
|
||||
Desc(colNames ...string) *xorm.Session
|
||||
Limit(limit int, start ...int) *xorm.Session
|
||||
NoAutoTime() *xorm.Session
|
||||
SumInt(bean any, columnName string) (res int64, err error)
|
||||
Sync(...any) error
|
||||
Select(string) *xorm.Session
|
||||
SetExpr(string, any) *xorm.Session
|
||||
NotIn(string, ...any) *xorm.Session
|
||||
OrderBy(any, ...any) *xorm.Session
|
||||
Exist(...any) (bool, error)
|
||||
Distinct(...string) *xorm.Session
|
||||
Query(...any) ([]map[string][]byte, error)
|
||||
Cols(...string) *xorm.Session
|
||||
Context(ctx context.Context) *xorm.Session
|
||||
Ping() error
|
||||
}
|
||||
|
||||
// TableInfo returns table's information via an object
|
||||
func TableInfo(v any) (*schemas.Table, error) {
|
||||
return x.TableInfo(v)
|
||||
}
|
||||
|
||||
// DumpTables dump tables information
|
||||
func DumpTables(tables []*schemas.Table, w io.Writer, tp ...schemas.DBType) error {
|
||||
return x.DumpTables(tables, w, tp...)
|
||||
}
|
||||
|
||||
// RegisterModel registers model, if initfunc provided, it will be invoked after data model sync
|
||||
func RegisterModel(bean any, initFunc ...func() error) {
|
||||
tables = append(tables, bean)
|
||||
if len(initFuncs) > 0 && initFunc[0] != nil {
|
||||
initFuncs = append(initFuncs, initFunc[0])
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
gonicNames := []string{"SSL", "UID"}
|
||||
for _, name := range gonicNames {
|
||||
names.LintGonicMapper[name] = true
|
||||
}
|
||||
}
|
||||
|
||||
// newXORMEngine returns a new XORM engine from the configuration
|
||||
func newXORMEngine() (*xorm.Engine, error) {
|
||||
connStr, err := setting.DBConnStr()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var engine *xorm.Engine
|
||||
|
||||
if setting.Database.Type.IsPostgreSQL() && len(setting.Database.Schema) > 0 {
|
||||
// OK whilst we sort out our schema issues - create a schema aware postgres
|
||||
registerPostgresSchemaDriver()
|
||||
engine, err = xorm.NewEngine("postgresschema", connStr)
|
||||
} else {
|
||||
engine, err = xorm.NewEngine(setting.Database.Type.String(), connStr)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if setting.Database.Type.IsMySQL() {
|
||||
engine.Dialect().SetParams(map[string]string{"rowFormat": "DYNAMIC"})
|
||||
}
|
||||
engine.SetSchema(setting.Database.Schema)
|
||||
return engine, nil
|
||||
}
|
||||
|
||||
// SyncAllTables sync the schemas of all tables, is required by unit test code
|
||||
func SyncAllTables() error {
|
||||
_, err := x.StoreEngine("InnoDB").SyncWithOptions(xorm.SyncOptions{
|
||||
WarnIfDatabaseColumnMissed: true,
|
||||
}, tables...)
|
||||
return err
|
||||
}
|
||||
|
||||
// InitEngine initializes the xorm.Engine and sets it as db.DefaultContext
|
||||
func InitEngine(ctx context.Context) error {
|
||||
xormEngine, err := newXORMEngine()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to connect to database: %w", err)
|
||||
}
|
||||
|
||||
xormEngine.SetMapper(names.GonicMapper{})
|
||||
// WARNING: for serv command, MUST remove the output to os.stdout,
|
||||
// so use log file to instead print to stdout.
|
||||
xormEngine.SetLogger(NewXORMLogger(setting.Database.LogSQL))
|
||||
xormEngine.ShowSQL(setting.Database.LogSQL)
|
||||
xormEngine.SetMaxOpenConns(setting.Database.MaxOpenConns)
|
||||
xormEngine.SetMaxIdleConns(setting.Database.MaxIdleConns)
|
||||
xormEngine.SetConnMaxLifetime(setting.Database.ConnMaxLifetime)
|
||||
xormEngine.SetConnMaxIdleTime(setting.Database.ConnMaxIdleTime)
|
||||
xormEngine.SetDefaultContext(ctx)
|
||||
|
||||
if setting.Database.SlowQueryThreshold > 0 {
|
||||
xormEngine.AddHook(&SlowQueryHook{
|
||||
Treshold: setting.Database.SlowQueryThreshold,
|
||||
Logger: log.GetLogger("xorm"),
|
||||
})
|
||||
}
|
||||
|
||||
errorLogger := log.GetLogger("xorm")
|
||||
if setting.IsInTesting {
|
||||
errorLogger = log.GetLogger(log.DEFAULT)
|
||||
}
|
||||
|
||||
xormEngine.AddHook(&ErrorQueryHook{
|
||||
Logger: errorLogger,
|
||||
})
|
||||
|
||||
xormEngine.AddHook(&TracingHook{})
|
||||
|
||||
SetDefaultEngine(ctx, xormEngine)
|
||||
return nil
|
||||
}
|
||||
|
||||
// SetDefaultEngine sets the default engine for db
|
||||
func SetDefaultEngine(ctx context.Context, eng *xorm.Engine) {
|
||||
x = eng
|
||||
DefaultContext = &Context{
|
||||
Context: ctx,
|
||||
e: x,
|
||||
}
|
||||
}
|
||||
|
||||
// UnsetDefaultEngine closes and unsets the default engine
|
||||
// We hope the SetDefaultEngine and UnsetDefaultEngine can be paired, but it's impossible now,
|
||||
// there are many calls to InitEngine -> SetDefaultEngine directly to overwrite the `x` and DefaultContext without close
|
||||
// Global database engine related functions are all racy and there is no graceful close right now.
|
||||
func UnsetDefaultEngine() {
|
||||
if x != nil {
|
||||
_ = x.Close()
|
||||
x = nil
|
||||
}
|
||||
DefaultContext = nil
|
||||
}
|
||||
|
||||
// InitEngineWithMigration initializes a new xorm.Engine and sets it as the db.DefaultContext
|
||||
// This function must never call .Sync() if the provided migration function fails.
|
||||
// When called from the "doctor" command, the migration function is a version check
|
||||
// that prevents the doctor from fixing anything in the database if the migration level
|
||||
// is different from the expected value.
|
||||
func InitEngineWithMigration(ctx context.Context, migrateFunc func(*xorm.Engine) error) (err error) {
|
||||
if err = InitEngine(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = x.Ping(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
preprocessDatabaseCollation(x)
|
||||
|
||||
// We have to run migrateFunc here in case the user is re-running installation on a previously created DB.
|
||||
// If we do not then table schemas will be changed and there will be conflicts when the migrations run properly.
|
||||
//
|
||||
// Installation should only be being re-run if users want to recover an old database.
|
||||
// However, we should think carefully about should we support re-install on an installed instance,
|
||||
// as there may be other problems due to secret reinitialization.
|
||||
if err = migrateFunc(x); err != nil {
|
||||
return fmt.Errorf("migrate: %w", err)
|
||||
}
|
||||
|
||||
if err = SyncAllTables(); err != nil {
|
||||
return fmt.Errorf("sync database struct error: %w", err)
|
||||
}
|
||||
|
||||
for _, initFunc := range initFuncs {
|
||||
if err := initFunc(); err != nil {
|
||||
return fmt.Errorf("initFunc failed: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// NamesToBean return a list of beans or an error
|
||||
func NamesToBean(names ...string) ([]any, error) {
|
||||
beans := []any{}
|
||||
if len(names) == 0 {
|
||||
beans = append(beans, tables...)
|
||||
return beans, nil
|
||||
}
|
||||
// Need to map provided names to beans...
|
||||
beanMap := make(map[string]any)
|
||||
for _, bean := range tables {
|
||||
beanMap[strings.ToLower(reflect.Indirect(reflect.ValueOf(bean)).Type().Name())] = bean
|
||||
beanMap[strings.ToLower(x.TableName(bean))] = bean
|
||||
beanMap[strings.ToLower(x.TableName(bean, true))] = bean
|
||||
}
|
||||
|
||||
gotBean := make(map[any]bool)
|
||||
for _, name := range names {
|
||||
bean, ok := beanMap[strings.ToLower(strings.TrimSpace(name))]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("no table found that matches: %s", name)
|
||||
}
|
||||
if !gotBean[bean] {
|
||||
beans = append(beans, bean)
|
||||
gotBean[bean] = true
|
||||
}
|
||||
}
|
||||
return beans, nil
|
||||
}
|
||||
|
||||
// DumpDatabase dumps all data from database according the special database SQL syntax to file system.
|
||||
func DumpDatabase(filePath, dbType string) error {
|
||||
var tbs []*schemas.Table
|
||||
for _, t := range tables {
|
||||
t, err := x.TableInfo(t)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
tbs = append(tbs, t)
|
||||
}
|
||||
|
||||
type Version struct {
|
||||
ID int64 `xorm:"pk autoincr"`
|
||||
Version int64
|
||||
}
|
||||
t, err := x.TableInfo(&Version{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
tbs = append(tbs, t)
|
||||
|
||||
if len(dbType) > 0 {
|
||||
return x.DumpTablesToFile(tbs, filePath, schemas.DBType(dbType))
|
||||
}
|
||||
return x.DumpTablesToFile(tbs, filePath)
|
||||
}
|
||||
|
||||
// MaxBatchInsertSize returns the table's max batch insert size
|
||||
func MaxBatchInsertSize(bean any) int {
|
||||
t, err := x.TableInfo(bean)
|
||||
if err != nil {
|
||||
return 50
|
||||
}
|
||||
return 999 / len(t.ColumnsSeq())
|
||||
}
|
||||
|
||||
// IsTableNotEmpty returns true if table has at least one record
|
||||
func IsTableNotEmpty(beanOrTableName any) (bool, error) {
|
||||
return x.Table(beanOrTableName).Exist()
|
||||
}
|
||||
|
||||
// DeleteAllRecords will delete all the records of this table
|
||||
func DeleteAllRecords(tableName string) error {
|
||||
_, err := x.Exec(fmt.Sprintf("DELETE FROM %s", tableName))
|
||||
return err
|
||||
}
|
||||
|
||||
// GetMaxID will return max id of the table
|
||||
func GetMaxID(beanOrTableName any) (maxID int64, err error) {
|
||||
_, err = x.Select("MAX(id)").Table(beanOrTableName).Get(&maxID)
|
||||
return maxID, err
|
||||
}
|
||||
|
||||
func SetLogSQL(ctx context.Context, on bool) {
|
||||
e := GetEngine(ctx)
|
||||
if x, ok := e.(*xorm.Engine); ok {
|
||||
x.ShowSQL(on)
|
||||
} else if sess, ok := e.(*xorm.Session); ok {
|
||||
sess.Engine().ShowSQL(on)
|
||||
}
|
||||
}
|
||||
|
||||
type TracingHook struct{}
|
||||
|
||||
var _ contexts.Hook = &TracingHook{}
|
||||
|
||||
type sqlTask struct{}
|
||||
|
||||
func (TracingHook) BeforeProcess(c *contexts.ContextHook) (context.Context, error) {
|
||||
ctx, task := trace.NewTask(c.Ctx, "sql")
|
||||
ctx = context.WithValue(ctx, sqlTask{}, task)
|
||||
// XORM passes the same ContextHook to every BeforeProcess hook. Publish
|
||||
// the task there too, so a later hook returning c.Ctx retains it.
|
||||
c.Ctx = ctx
|
||||
if isSensitiveSQL(c.Ctx) {
|
||||
trace.Log(ctx, "query", "[owner-confined query]")
|
||||
} else {
|
||||
trace.Log(ctx, "query", c.SQL)
|
||||
trace.Logf(ctx, "args", "%v", c.Args)
|
||||
}
|
||||
return ctx, nil
|
||||
}
|
||||
|
||||
func (TracingHook) AfterProcess(c *contexts.ContextHook) error {
|
||||
c.Ctx.Value(sqlTask{}).(*trace.Task).End()
|
||||
return nil
|
||||
}
|
||||
|
||||
type SlowQueryHook struct {
|
||||
Treshold time.Duration
|
||||
Logger log.Logger
|
||||
}
|
||||
|
||||
var _ contexts.Hook = &SlowQueryHook{}
|
||||
|
||||
func (SlowQueryHook) BeforeProcess(c *contexts.ContextHook) (context.Context, error) {
|
||||
return c.Ctx, nil
|
||||
}
|
||||
|
||||
func (h *SlowQueryHook) AfterProcess(c *contexts.ContextHook) error {
|
||||
if c.ExecuteTime >= h.Treshold {
|
||||
if isSensitiveSQL(c.Ctx) {
|
||||
h.Logger.Log(8, log.WARN, "[Slow SQL Query] [owner-confined query] - %v", c.ExecuteTime)
|
||||
} else {
|
||||
h.Logger.Log(8, log.WARN, "[Slow SQL Query] %s %v - %v", c.SQL, c.Args, c.ExecuteTime)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type ErrorQueryHook struct {
|
||||
Logger log.Logger
|
||||
}
|
||||
|
||||
var _ contexts.Hook = &ErrorQueryHook{}
|
||||
|
||||
func (ErrorQueryHook) BeforeProcess(c *contexts.ContextHook) (context.Context, error) {
|
||||
return c.Ctx, nil
|
||||
}
|
||||
|
||||
func (h *ErrorQueryHook) AfterProcess(c *contexts.ContextHook) error {
|
||||
if c.Err != nil && !errors.Is(c.Err, context.Canceled) {
|
||||
if isSensitiveSQL(c.Ctx) {
|
||||
h.Logger.Log(8, log.ERROR, "[Error SQL Query] [owner-confined query]")
|
||||
} else {
|
||||
h.Logger.Log(8, log.ERROR, "[Error SQL Query] %s %v - %v", c.SQL, c.Args, c.Err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
package db
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"runtime/trace"
|
||||
"testing"
|
||||
|
||||
"xorm.io/xorm"
|
||||
"xorm.io/xorm/contexts"
|
||||
)
|
||||
|
||||
type followingQueryHook struct{}
|
||||
|
||||
func (followingQueryHook) BeforeProcess(c *contexts.ContextHook) (context.Context, error) {
|
||||
return c.Ctx, nil
|
||||
}
|
||||
func (followingQueryHook) AfterProcess(*contexts.ContextHook) error { return nil }
|
||||
|
||||
func TestTracingContextSurvivesFollowingHooks(t *testing.T) {
|
||||
for _, sensitive := range []bool{false, true} {
|
||||
for _, fail := range []bool{false, true} {
|
||||
engine, err := xorm.NewEngine("sqlite3", ":memory:")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
engine.AddHook(TracingHook{})
|
||||
engine.AddHook(followingQueryHook{})
|
||||
ctx := context.Background()
|
||||
if sensitive {
|
||||
ctx = WithSensitiveSQL(ctx)
|
||||
}
|
||||
var output bytes.Buffer
|
||||
if err := trace.Start(&output); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
func() {
|
||||
defer trace.Stop()
|
||||
query := "SELECT ?"
|
||||
if fail {
|
||||
query = "SELECT missing_synthetic_function(?)"
|
||||
}
|
||||
_, err = engine.Context(ctx).Exec(query, "synthetic-following-hook-sentinel")
|
||||
}()
|
||||
_ = engine.Close()
|
||||
if (err != nil) != fail {
|
||||
t.Fatal("unexpected real SQLite query outcome")
|
||||
}
|
||||
if bytes.Contains(output.Bytes(), []byte("synthetic-following-hook-sentinel")) == sensitive {
|
||||
t.Fatal("following hook changed private or ordinary trace disclosure")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"controls": [
|
||||
{
|
||||
"receipt": "postgres-suite-attempt5.json",
|
||||
"mutation": {
|
||||
"mutation": "omit-postgres-lock",
|
||||
"original_source_sha256": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"controlled_source_sha256": "sha256:137bcc05baf724abfcb9c48a2ef45d5064a6a163c4ba98269364eafb9a1096cd",
|
||||
"production_source_changed": false
|
||||
},
|
||||
"failed_tests": [
|
||||
"TestSourceOperationPostgres/default/uncooperative-writers-excluded",
|
||||
"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner",
|
||||
"TestSourceOperationPostgres/default",
|
||||
"TestSourceOperationPostgres/public/uncooperative-writers-excluded",
|
||||
"TestSourceOperationPostgres/public",
|
||||
"TestSourceOperationPostgres/named/uncooperative-writers-excluded",
|
||||
"TestSourceOperationPostgres/named",
|
||||
"TestSourceOperationPostgres"
|
||||
],
|
||||
"all_three_database_profiles_detect_the_removed_control": true
|
||||
},
|
||||
{
|
||||
"receipt": "postgres-suite-attempt6.json",
|
||||
"mutation": {
|
||||
"mutation": "omit-private-context",
|
||||
"original_source_sha256": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"controlled_source_sha256": "sha256:0b9e248b685a950cfbf31f76aafd54e1b99272402a2f05bc6d8b742bc2657d82",
|
||||
"production_source_changed": false
|
||||
},
|
||||
"failed_tests": [
|
||||
"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics",
|
||||
"TestSourceOperationPostgres/default",
|
||||
"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics",
|
||||
"TestSourceOperationPostgres/public",
|
||||
"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics",
|
||||
"TestSourceOperationPostgres/named",
|
||||
"TestSourceOperationPostgres"
|
||||
],
|
||||
"all_three_database_profiles_detect_the_removed_control": true
|
||||
}
|
||||
],
|
||||
"production_source_changed": false,
|
||||
"counterexamples_are_not_successful_normal_runs": true
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"container_state": {
|
||||
"Status": "exited",
|
||||
"Running": false,
|
||||
"Paused": false,
|
||||
"Restarting": false,
|
||||
"OOMKilled": false,
|
||||
"Dead": false,
|
||||
"Pid": 0,
|
||||
"ExitCode": 2,
|
||||
"Error": "",
|
||||
"StartedAt": "2026-10-18T00:52:30.648750486Z",
|
||||
"FinishedAt": "2026-10-18T00:52:33.100722803Z"
|
||||
},
|
||||
"test_packages_executed": false,
|
||||
"real_credentials": false
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
The files belonging to this database system will be owned by user "postgres".
|
||||
This user must also own the server process.
|
||||
|
||||
The database cluster will be initialized with locale "en_US.utf8".
|
||||
The default database encoding has accordingly been set to "UTF8".
|
||||
The default text search configuration will be set to "english".
|
||||
|
||||
Data page checksums are disabled.
|
||||
|
||||
fixing permissions on existing directory /var/lib/postgresql/data ... ok
|
||||
creating subdirectories ... ok
|
||||
selecting dynamic shared memory implementation ... posix
|
||||
selecting default max_connections ... 100
|
||||
selecting default shared_buffers ... 128MB
|
||||
selecting default time zone ... UTC
|
||||
creating configuration files ... ok
|
||||
running bootstrap script ... ok
|
||||
performing post-bootstrap initialization ... ok
|
||||
syncing data to disk ... ok
|
||||
|
||||
|
||||
Success. You can now start the database server using:
|
||||
|
||||
pg_ctl -D /var/lib/postgresql/data -l logfile start
|
||||
|
||||
waiting for server to start....2026-10-18 00:52:33.016 UTC [66] LOG: starting PostgreSQL 16.14 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
|
||||
2026-10-18 00:52:33.019 UTC [66] LOG: listening on Unix socket "/socket/.s.PGSQL.5432"
|
||||
2026-10-18 00:52:33.030 UTC [69] LOG: database system was shut down at 2026-10-18 00:52:32 UTC
|
||||
2026-10-18 00:52:33.039 UTC [66] LOG: database system is ready to accept connections
|
||||
done
|
||||
server started
|
||||
https://www.postgresql.org/docs/current/auth-trust.html
|
||||
In Docker's default configuration, this is effectively any other
|
||||
container on the same system.
|
||||
|
||||
It is not recommended to use POSTGRES_HOST_AUTH_METHOD=trust. Replace
|
||||
it with "-e POSTGRES_PASSWORD=password" instead to set a password in
|
||||
"docker run".
|
||||
********************************************************************************
|
||||
sh: locale: not found
|
||||
2026-10-18 00:52:31.773 UTC [48] WARNING: no usable system locales were found
|
||||
initdb: warning: enabling "trust" authentication for local connections
|
||||
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
|
||||
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
|
||||
Is the server running locally and accepting connections on that socket?
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"exact_owned_container_removed": true,
|
||||
"exact_owned_volume_removed": true,
|
||||
"container_id": "cb87f8327d5572b8a2ebe875db17fbc1b1ecfefa27b63f6282531e152f583005",
|
||||
"volume": "custodian-forgejo-pg-b8712ab62110-data",
|
||||
"real_credentials": false
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"exact_owned_container_removed": true,
|
||||
"exact_owned_volume_removed": true,
|
||||
"container_id": "60dd3cdc9ee384ace5f008fc7d58c1e19eb120cd8585527e7a4752f79d05a659",
|
||||
"volume": "custodian-forgejo-pg-96ce905f445a-data",
|
||||
"real_credentials": false
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"exact_owned_container_removed": true,
|
||||
"exact_owned_volume_removed": true,
|
||||
"container_id": "282c533dff17e9d0cbaf5f3ecfdbad4ecbd9b6dc6038c75746a3fcd5880100d9",
|
||||
"volume": "custodian-forgejo-pg-f1a9a061ff4e-data",
|
||||
"real_credentials": false
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"container_state": {
|
||||
"Status": "exited",
|
||||
"Running": false,
|
||||
"Paused": false,
|
||||
"Restarting": false,
|
||||
"OOMKilled": false,
|
||||
"Dead": false,
|
||||
"Pid": 0,
|
||||
"ExitCode": 2,
|
||||
"Error": "",
|
||||
"StartedAt": "2026-10-18T00:50:01.120178159Z",
|
||||
"FinishedAt": "2026-10-18T00:50:07.2845179Z"
|
||||
},
|
||||
"runtime_setup_failed": true,
|
||||
"test_packages_executed": false,
|
||||
"real_credentials": false
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
The database cluster will be initialized with locale "en_US.utf8".
|
||||
The default database encoding has accordingly been set to "UTF8".
|
||||
The default text search configuration will be set to "english".
|
||||
|
||||
Data page checksums are disabled.
|
||||
|
||||
fixing permissions on existing directory /var/lib/postgresql/data ... ok
|
||||
creating subdirectories ... ok
|
||||
selecting dynamic shared memory implementation ... posix
|
||||
selecting default max_connections ... 100
|
||||
selecting default shared_buffers ... 128MB
|
||||
selecting default time zone ... UTC
|
||||
creating configuration files ... ok
|
||||
running bootstrap script ... ok
|
||||
performing post-bootstrap initialization ... ok
|
||||
syncing data to disk ... ok
|
||||
|
||||
|
||||
Success. You can now start the database server using:
|
||||
|
||||
pg_ctl -D /var/lib/postgresql/data -l logfile start
|
||||
|
||||
waiting for server to start....2026-10-18 00:50:07.195 UTC [55] LOG: starting PostgreSQL 16.14 on x86_64-pc-linux-musl, compiled by gcc (Alpine 15.2.0) 15.2.0, 64-bit
|
||||
2026-10-18 00:50:07.198 UTC [55] LOG: listening on Unix socket "/socket/.s.PGSQL.5432"
|
||||
2026-10-18 00:50:07.209 UTC [64] LOG: database system was shut down at 2026-10-18 00:50:06 UTC
|
||||
2026-10-18 00:50:07.218 UTC [55] LOG: database system is ready to accept connections
|
||||
2026-10-18 00:50:07.253 UTC [68] FATAL: database "custodian_source" does not exist
|
||||
done
|
||||
server started
|
||||
sh: locale: not found
|
||||
2026-10-18 00:50:05.943 UTC [42] WARNING: no usable system locales were found
|
||||
initdb: warning: enabling "trust" authentication for local connections
|
||||
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
|
||||
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
|
||||
Is the server running locally and accepting connections on that socket?
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"status": "ready_after_actual_server_restart",
|
||||
"container_id": "60dd3cdc9ee384ace5f008fc7d58c1e19eb120cd8585527e7a4752f79d05a659",
|
||||
"retained_volume": "custodian-forgejo-pg-96ce905f445a-data",
|
||||
"server_version_num": 160014,
|
||||
"synthetic_data_only": true
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"trial": "custodian-forgejo-pg-b8712ab62110",
|
||||
"container_id": "cb87f8327d5572b8a2ebe875db17fbc1b1ecfefa27b63f6282531e152f583005",
|
||||
"volume": "custodian-forgejo-pg-b8712ab62110-data",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"creation_argv": [
|
||||
"docker",
|
||||
"create",
|
||||
"--name",
|
||||
"custodian-forgejo-pg-b8712ab62110",
|
||||
"--label",
|
||||
"custodian.source-test=custodian-forgejo-pg-b8712ab62110",
|
||||
"--network",
|
||||
"none",
|
||||
"--memory",
|
||||
"512m",
|
||||
"--cpus",
|
||||
"1",
|
||||
"--pids-limit",
|
||||
"128",
|
||||
"--shm-size",
|
||||
"64m",
|
||||
"--mount",
|
||||
"type=volume,source=custodian-forgejo-pg-b8712ab62110-data,target=/var/lib/postgresql/data",
|
||||
"--mount",
|
||||
"type=bind,source=/tmp/custodian-forgejo-postgres-r1-attempt2/socket,target=/socket",
|
||||
"--env",
|
||||
"POSTGRES_USER=custodian_test",
|
||||
"--env",
|
||||
"POSTGRES_DB=custodian_source",
|
||||
"--env",
|
||||
"PGHOST=/socket",
|
||||
"--env",
|
||||
"POSTGRES_HOST_AUTH_METHOD=trust",
|
||||
"sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"postgres",
|
||||
"-c",
|
||||
"listen_addresses=",
|
||||
"-c",
|
||||
"unix_socket_directories=/socket",
|
||||
"-c",
|
||||
"unix_socket_permissions=0777",
|
||||
"-c",
|
||||
"log_statement=none",
|
||||
"-c",
|
||||
"log_min_error_statement=panic"
|
||||
],
|
||||
"synthetic_data_only": true,
|
||||
"real_credentials": false,
|
||||
"network": "none",
|
||||
"ports_published": false,
|
||||
"authentication": "trust on private synthetic Unix-socket fixture; not a custody/authentication proof"
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"trial": "custodian-forgejo-pg-96ce905f445a",
|
||||
"container_id": "60dd3cdc9ee384ace5f008fc7d58c1e19eb120cd8585527e7a4752f79d05a659",
|
||||
"volume": "custodian-forgejo-pg-96ce905f445a-data",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"creation_argv": [
|
||||
"docker",
|
||||
"create",
|
||||
"--name",
|
||||
"custodian-forgejo-pg-96ce905f445a",
|
||||
"--label",
|
||||
"custodian.source-test=custodian-forgejo-pg-96ce905f445a",
|
||||
"--network",
|
||||
"none",
|
||||
"--memory",
|
||||
"512m",
|
||||
"--cpus",
|
||||
"1",
|
||||
"--pids-limit",
|
||||
"128",
|
||||
"--shm-size",
|
||||
"64m",
|
||||
"--mount",
|
||||
"type=volume,source=custodian-forgejo-pg-96ce905f445a-data,target=/var/lib/postgresql/data",
|
||||
"--mount",
|
||||
"type=bind,source=/tmp/custodian-forgejo-postgres-r1-attempt3/socket,target=/socket",
|
||||
"--env",
|
||||
"POSTGRES_USER=custodian_test",
|
||||
"--env",
|
||||
"POSTGRES_DB=custodian_source",
|
||||
"--env",
|
||||
"PGHOST=/socket",
|
||||
"--env",
|
||||
"POSTGRES_HOST_AUTH_METHOD=trust",
|
||||
"sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"postgres",
|
||||
"-c",
|
||||
"listen_addresses=",
|
||||
"-c",
|
||||
"unix_socket_directories=/var/run/postgresql,/socket",
|
||||
"-c",
|
||||
"unix_socket_permissions=0777",
|
||||
"-c",
|
||||
"log_statement=none",
|
||||
"-c",
|
||||
"log_min_error_statement=panic"
|
||||
],
|
||||
"synthetic_data_only": true,
|
||||
"real_credentials": false,
|
||||
"network": "none",
|
||||
"ports_published": false,
|
||||
"authentication": "trust on private synthetic Unix-socket fixture; not a custody/authentication proof",
|
||||
"server_version_num": 160014,
|
||||
"status": "ready"
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"trial": "custodian-forgejo-pg-f1a9a061ff4e",
|
||||
"container_id": "282c533dff17e9d0cbaf5f3ecfdbad4ecbd9b6dc6038c75746a3fcd5880100d9",
|
||||
"volume": "custodian-forgejo-pg-f1a9a061ff4e-data",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"creation_argv": [
|
||||
"docker",
|
||||
"create",
|
||||
"--name",
|
||||
"custodian-forgejo-pg-f1a9a061ff4e",
|
||||
"--label",
|
||||
"custodian.source-test=custodian-forgejo-pg-f1a9a061ff4e",
|
||||
"--network",
|
||||
"none",
|
||||
"--memory",
|
||||
"512m",
|
||||
"--cpus",
|
||||
"1",
|
||||
"--pids-limit",
|
||||
"128",
|
||||
"--shm-size",
|
||||
"64m",
|
||||
"--mount",
|
||||
"type=volume,source=custodian-forgejo-pg-f1a9a061ff4e-data,target=/var/lib/postgresql/data",
|
||||
"--mount",
|
||||
"type=bind,source=/tmp/custodian-forgejo-postgres-r1/socket,target=/socket",
|
||||
"--env",
|
||||
"POSTGRES_USER=custodian_test",
|
||||
"--env",
|
||||
"POSTGRES_DB=custodian_source",
|
||||
"--env",
|
||||
"POSTGRES_HOST_AUTH_METHOD=trust",
|
||||
"sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"postgres",
|
||||
"-c",
|
||||
"listen_addresses=",
|
||||
"-c",
|
||||
"unix_socket_directories=/socket",
|
||||
"-c",
|
||||
"unix_socket_permissions=0777",
|
||||
"-c",
|
||||
"log_statement=none",
|
||||
"-c",
|
||||
"log_min_error_statement=panic"
|
||||
],
|
||||
"synthetic_data_only": true,
|
||||
"real_credentials": false,
|
||||
"network": "none",
|
||||
"ports_published": false,
|
||||
"authentication": "trust on private synthetic Unix-socket fixture; not a custody/authentication proof"
|
||||
}
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
"""Own one disposable local PostgreSQL container and its synthetic volume."""
|
||||
from pathlib import Path
|
||||
import argparse
|
||||
import json
|
||||
import subprocess
|
||||
import time
|
||||
import uuid
|
||||
|
||||
HERE = Path(__file__).resolve().parent
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('action', choices=['start', 'ready', 'restart', 'cleanup'])
|
||||
parser.add_argument('--attempt', type=int, default=1)
|
||||
args = parser.parse_args()
|
||||
suffix = '' if args.attempt == 1 else '-attempt' + str(args.attempt)
|
||||
WORK = Path('/tmp/custodian-forgejo-postgres-r1' + suffix)
|
||||
if args.action == 'start':
|
||||
WORK.mkdir(exist_ok=True)
|
||||
(WORK / 'home').mkdir(exist_ok=True)
|
||||
(WORK / 'docker-config').mkdir(exist_ok=True)
|
||||
ENV = {'PATH': '/usr/bin:/bin', 'HOME': str(WORK / 'home'),
|
||||
'DOCKER_CONFIG': str(WORK / 'docker-config'), 'DOCKER_HOST': 'unix:///var/run/docker.sock'}
|
||||
|
||||
def docker(*arguments):
|
||||
result = subprocess.run(['docker', *arguments], env=ENV, capture_output=True,
|
||||
text=True, timeout=90)
|
||||
assert result.returncode == 0, 'local synthetic database command refused'
|
||||
return result.stdout.strip()
|
||||
|
||||
def inspect(cid):
|
||||
return json.loads(docker('inspect', '--format', '{{json .}}', cid))
|
||||
|
||||
def owned(state):
|
||||
item = inspect(state['container_id'])
|
||||
assert item['Config']['Labels']['custodian.source-test'] == state['trial']
|
||||
assert item['HostConfig']['NetworkMode'] == 'none'
|
||||
assert not item['HostConfig']['Privileged'] and not item['HostConfig']['PortBindings']
|
||||
assert item['Image'] == state['image_id']
|
||||
mounts = item['Mounts']
|
||||
assert len(mounts) == 2
|
||||
assert any(m['Type'] == 'volume' and m['Name'] == state['volume'] and m['Destination'] == '/var/lib/postgresql/data' for m in mounts)
|
||||
assert any(m['Type'] == 'bind' and m['Source'] == str(WORK / 'socket') and m['Destination'] == '/socket' for m in mounts)
|
||||
return item
|
||||
|
||||
def ready(state):
|
||||
for _ in range(30):
|
||||
# pg_isready can succeed against the entrypoint's temporary init server,
|
||||
# before the requested database exists. Require final PID 1 plus a real
|
||||
# query in that exact synthetic database instead.
|
||||
process = subprocess.run(['docker', 'exec', state['container_id'], 'cat', '/proc/1/comm'],
|
||||
env=ENV, capture_output=True, text=True, timeout=5)
|
||||
result = subprocess.run(['docker', 'exec', state['container_id'], 'psql',
|
||||
'-h', '/socket', '-U', 'custodian_test', '-d', 'custodian_source',
|
||||
'-At', '-c', 'SHOW server_version_num'],
|
||||
env=ENV, capture_output=True, text=True, timeout=5)
|
||||
if process.returncode == result.returncode == 0 and process.stdout.strip() == 'postgres' and result.stdout.strip().isdecimal():
|
||||
break
|
||||
time.sleep(1)
|
||||
else:
|
||||
raise AssertionError('synthetic PostgreSQL did not become ready; retained')
|
||||
version = result.stdout.strip()
|
||||
assert version.isdecimal() and int(version) // 10000 == 16
|
||||
state['server_version_num'] = int(version)
|
||||
|
||||
state_path = HERE / ('database-runtime' + suffix + '.json')
|
||||
if args.action == 'start':
|
||||
assert not state_path.exists()
|
||||
trial = 'custodian-forgejo-pg-' + uuid.uuid4().hex[:12]
|
||||
image = json.loads((HERE / 'public-database-image.json').read_text())['image_id']
|
||||
volume = trial + '-data'
|
||||
socket = WORK / 'socket'
|
||||
socket.mkdir(mode=0o777)
|
||||
socket.chmod(0o777) # Synthetic Unix socket only, in this new /tmp trial.
|
||||
docker('volume', 'create', '--label', 'custodian.source-test=' + trial, volume)
|
||||
argv = ['create', '--name', trial, '--label', 'custodian.source-test=' + trial,
|
||||
'--network', 'none', '--memory', '512m', '--cpus', '1', '--pids-limit', '128',
|
||||
'--shm-size', '64m', '--mount', 'type=volume,source=' + volume + ',target=/var/lib/postgresql/data',
|
||||
'--mount', 'type=bind,source=' + str(socket) + ',target=/socket',
|
||||
'--env', 'POSTGRES_USER=custodian_test', '--env', 'POSTGRES_DB=custodian_source',
|
||||
'--env', 'PGHOST=/socket',
|
||||
'--env', 'POSTGRES_HOST_AUTH_METHOD=trust', image, 'postgres',
|
||||
'-c', 'listen_addresses=', '-c', 'unix_socket_directories=/var/run/postgresql,/socket',
|
||||
'-c', 'unix_socket_permissions=0777', '-c', 'log_statement=none',
|
||||
'-c', 'log_min_error_statement=panic']
|
||||
cid = docker(*argv)
|
||||
state = dict(trial=trial, container_id=cid, volume=volume, image_id=image,
|
||||
creation_argv=['docker', *argv], synthetic_data_only=True,
|
||||
real_credentials=False, network='none', ports_published=False,
|
||||
authentication='trust on private synthetic Unix-socket fixture; not a custody/authentication proof')
|
||||
state_path.write_text(json.dumps(state, indent=2) + '\n')
|
||||
owned(state)
|
||||
docker('start', cid)
|
||||
ready(state)
|
||||
state['status'] = 'ready'
|
||||
state_path.write_text(json.dumps(state, indent=2) + '\n')
|
||||
else:
|
||||
state = json.loads(state_path.read_text())
|
||||
owned(state)
|
||||
if args.action == 'ready':
|
||||
assert inspect(state['container_id'])['State']['Running']
|
||||
ready(state)
|
||||
state['status'] = 'ready'
|
||||
state_path.write_text(json.dumps(state, indent=2) + '\n')
|
||||
elif args.action == 'restart':
|
||||
docker('restart', '--time', '10', state['container_id'])
|
||||
ready(state)
|
||||
(HERE / ('database-restart' + suffix + '.json')).write_text(json.dumps(dict(
|
||||
status='ready_after_actual_server_restart', container_id=state['container_id'],
|
||||
retained_volume=state['volume'], server_version_num=state['server_version_num'],
|
||||
synthetic_data_only=True), indent=2) + '\n')
|
||||
else:
|
||||
docker('stop', '--time', '10', state['container_id'])
|
||||
owned(state)
|
||||
docker('rm', state['container_id'])
|
||||
volume = json.loads(docker('volume', 'inspect', '--format', '{{json .}}', state['volume']))
|
||||
assert volume['Labels']['custodian.source-test'] == state['trial']
|
||||
docker('volume', 'rm', state['volume'])
|
||||
(HERE / ('database-cleanup' + suffix + '.json')).write_text(json.dumps(dict(
|
||||
exact_owned_container_removed=True, exact_owned_volume_removed=True,
|
||||
container_id=state['container_id'], volume=state['volume'],
|
||||
real_credentials=False), indent=2) + '\n')
|
||||
print(json.dumps({'action': args.action, 'trial': state['trial'], 'synthetic_data_only': True}))
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
"""Apply the tested build candidate, preserving every unrelated owner file."""
|
||||
from pathlib import Path
|
||||
import hashlib
|
||||
import json
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
HERE = Path(__file__).resolve().parent
|
||||
ROOT = Path('/home/worsch/railiance-apps')
|
||||
cfg = json.loads((HERE / 'source-manifest.json').read_text())
|
||||
sha = lambda data: hashlib.sha256(data).hexdigest()
|
||||
def git(*args):
|
||||
return subprocess.check_output(['git', '-C', str(ROOT), *args], text=True).strip()
|
||||
assert git('rev-parse', 'HEAD') == cfg['base_revision']
|
||||
assert git('ls-remote', 'origin', 'refs/heads/main').split()[0] == cfg['base_revision']
|
||||
assert set(git('diff', '--name-only', 'HEAD').splitlines()) <= {'.custodian-brief.md', 'WORK-RECORDS.md'}
|
||||
tracked = git('ls-files').splitlines()
|
||||
protected = {name: sha((ROOT / name).read_bytes()) for name in tracked
|
||||
if (ROOT / name).is_file() and name not in {row['path'] for row in cfg['files']}}
|
||||
index = git('ls-files', '--stage', '--', '.custodian-brief.md', 'WORK-RECORDS.md')
|
||||
plan = 'workplans/RAPPS-WP-0016-forgejo-netkingdom-login.md'
|
||||
before = re.findall(r'```task\n.*?```', (ROOT / plan).read_text(), re.S)
|
||||
assert len(before) == 9
|
||||
for row in cfg['files']:
|
||||
current = ROOT / row['path']
|
||||
if row['before_sha256'] is None:
|
||||
assert not current.exists(), row['path']
|
||||
else:
|
||||
assert sha(current.read_bytes()) == row['before_sha256'], row['path']
|
||||
assert sha(Path(row['source']).read_bytes()) == row['sha256'], row['path']
|
||||
for row in cfg['files']:
|
||||
target = ROOT / row['path']
|
||||
target.parent.mkdir(parents=True, exist_ok=True)
|
||||
target.write_bytes(Path(row['source']).read_bytes())
|
||||
after = re.findall(r'```task\n.*?```', (ROOT / plan).read_text(), re.S)
|
||||
assert before == after
|
||||
assert all(sha((ROOT / name).read_bytes()) == value for name, value in protected.items())
|
||||
assert git('ls-files', '--stage', '--', '.custodian-brief.md', 'WORK-RECORDS.md') == index
|
||||
receipt = dict(owner=cfg['owner'], base_revision='git:' + cfg['base_revision'],
|
||||
files=cfg['files'], preserved_other_tracked_files=len(protected),
|
||||
original_task_uuids_preserved=9, status_change=None,
|
||||
native_actions=False, independent_owner_review=False, operational_admission=False)
|
||||
(HERE / 'source-application.json').write_text(json.dumps(receipt, indent=2) + '\n')
|
||||
publication = dict(owner=cfg['owner'], base_revision=cfg['base_revision'],
|
||||
message='Verify Forgejo PostgreSQL operations and preserve tracing hook context',
|
||||
files=[dict(path=row['path'], sha256=row['sha256']) for row in cfg['files']])
|
||||
(HERE / 'publication-inputs.json').write_text(json.dumps(publication, indent=2) + '\n')
|
||||
print(json.dumps(dict(status='source_applied', files=len(cfg['files']), native_actions=False)))
|
||||
|
|
@ -0,0 +1,393 @@
|
|||
{
|
||||
"repo_slug": "railiance-apps",
|
||||
"repo_path": "/home/worsch/railiance-apps",
|
||||
"source_revision": "308e83fcfbf9ec98dbe6b0286cbe8ec7be8899b3",
|
||||
"source_revision_reason": null,
|
||||
"issues": [
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager warning: .repo-classification.yaml: category is project but slug is not prj-*; not every category:project is a prj- repo",
|
||||
"file_path": ".repo-classification.yaml",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager missing: README.md: README.md is required for flavor project",
|
||||
"file_path": "README.md",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager warning: workplans/: repository uses more than one workplan prefix: ['RAILIANCE-WP', 'RAPPS-WP']",
|
||||
"file_path": "workplans/",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager contradictory: workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-1: task id 'RAILIANCE-WP-0004-I01' is not accepted by the canon kind registry",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-1",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager contradictory: workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-2: task id 'RAILIANCE-WP-0004-I02' is not accepted by the canon kind registry",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-2",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager contradictory: workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-3: task id 'RAILIANCE-WP-0004-I03' is not accepted by the canon kind registry",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-3",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager contradictory: workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-4: task id 'RAILIANCE-WP-0004-I04' is not accepted by the canon kind registry",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-4",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager contradictory: workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-5: task id 'RAILIANCE-WP-0004-I05' is not accepted by the canon kind registry",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-5",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager contradictory: workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-6: task id 'RAILIANCE-WP-0004-I06' is not accepted by the canon kind registry",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-6",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-35",
|
||||
"message": "Repo Manager contradictory: workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-7: task id 'RAILIANCE-WP-0004-I07' is not accepted by the canon kind registry",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-7",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-31",
|
||||
"message": "[workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md] id 'RAILIANCE-WP-0004-I01' matches no kind in the canon work-record type registry \u2014 unregistered species become sidetracks needing manual reintegration (work-record-types_v0.1)",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-31",
|
||||
"message": "[workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md] id 'RAILIANCE-WP-0004-I02' matches no kind in the canon work-record type registry \u2014 unregistered species become sidetracks needing manual reintegration (work-record-types_v0.1)",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-31",
|
||||
"message": "[workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md] id 'RAILIANCE-WP-0004-I03' matches no kind in the canon work-record type registry \u2014 unregistered species become sidetracks needing manual reintegration (work-record-types_v0.1)",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-31",
|
||||
"message": "[workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md] id 'RAILIANCE-WP-0004-I04' matches no kind in the canon work-record type registry \u2014 unregistered species become sidetracks needing manual reintegration (work-record-types_v0.1)",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-31",
|
||||
"message": "[workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md] id 'RAILIANCE-WP-0004-I05' matches no kind in the canon work-record type registry \u2014 unregistered species become sidetracks needing manual reintegration (work-record-types_v0.1)",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-31",
|
||||
"message": "[workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md] id 'RAILIANCE-WP-0004-I06' matches no kind in the canon work-record type registry \u2014 unregistered species become sidetracks needing manual reintegration (work-record-types_v0.1)",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-31",
|
||||
"message": "[workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md] id 'RAILIANCE-WP-0004-I07' matches no kind in the canon work-record type registry \u2014 unregistered species become sidetracks needing manual reintegration (work-record-types_v0.1)",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-33",
|
||||
"message": "WORK-RECORDS.md is missing or stale \u2014 regenerate via fix-consistency (CUST-WP-0061-T04 generated work-record index)",
|
||||
"file_path": "WORK-RECORDS.md",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-39",
|
||||
"message": "Wait task 'RAPPS-WP-0015-T04' in workplan 'RAPPS-WP-0015' has neither depends_on, needs_human: true, blocked_on: message-from:\u2026 nor wait_until \u2014 unqualified wait",
|
||||
"file_path": "workplans/RAPPS-WP-0015-coulomb-personal-content-release.md#RAPPS-WP-0015-T04",
|
||||
"db_id": "",
|
||||
"file_value": "wait",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'KEY-WP-0038' is not linked to State Hub",
|
||||
"file_path": "workplans/RAPPS-WP-0016-forgejo-netkingdom-login.md",
|
||||
"db_id": "",
|
||||
"file_value": "KEY-WP-0038",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-39",
|
||||
"message": "Human wait task 'RAPPS-WP-0016-T04' in workplan 'RAPPS-WP-0016' has needs_human: true without decision_id \u2014 unrouted human gate",
|
||||
"file_path": "workplans/RAPPS-WP-0016-forgejo-netkingdom-login.md#RAPPS-WP-0016-T04",
|
||||
"db_id": "",
|
||||
"file_value": "needs_human: true",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-22",
|
||||
"message": "Task description drift 'RAPPS-WP-0016-T08': file content differs from DB (file wins)",
|
||||
"file_path": "workplans/RAPPS-WP-0016-forgejo-netkingdom-login.md#RAPPS-WP-0016-T08",
|
||||
"db_id": "4ab8a5e7-ab32-5ee2-aaf2-6da246d1b0c8",
|
||||
"file_value": "Implement actual owner database primitives that record operation intent/outcome\nin the same durable database, compare co",
|
||||
"db_value": "Implement actual owner database primitives that record operation intent/outcome\nin the same durable database, compare co",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'RPF-WP-0058' is not linked to State Hub",
|
||||
"file_path": "workplans/RAPPS-WP-0017-reuse-private-reader-release.md",
|
||||
"db_id": "",
|
||||
"file_value": "RPF-WP-0058",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-20",
|
||||
"message": "Workplan dependency target 'REUSE-WP-0025' is not linked to State Hub",
|
||||
"file_path": "workplans/RAPPS-WP-0017-reuse-private-reader-release.md",
|
||||
"db_id": "",
|
||||
"file_value": "REUSE-WP-0025",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'railiance-wp-0006@retired-20260826' (id=1960b22b\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "1960b22b-82ae-4b67-9fff-397bd38bdd65",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'railiance-wp-0005@retired-20260826' (id=685f1c18\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "685f1c18-33c0-400d-a2b1-e1dae0f27c3e",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'railiance-wp-0009@retired-20260826' (id=21c3fcdc\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "21c3fcdc-f014-4858-8028-0ac3038212b7",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'railiance-wp-0011@retired-20260826' (id=98cf42ae\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "98cf42ae-9b64-4736-97e1-bae325ded1f9",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'railiance-wp-0008@retired-20260826' (id=41b9deea\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "41b9deea-a935-4372-8916-b3981336f597",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'railiance-wp-0018@retired-20260826' (id=1b9af4e8\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "1b9af4e8-7579-5141-837b-c736b85204a0",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'railiance-wp-0007@retired-20260826' (id=7da18dd8\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "7da18dd8-76b9-4a70-b9d7-de541afc65c0",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "INFO",
|
||||
"check_id": "C-08",
|
||||
"message": "Retired DB workstream 'railiance-wp-0010@retired-20260826' (id=a4f301bb\u2026, status=finished) has no backing workplan file \u2014 projection tombstone, not live work",
|
||||
"file_path": "",
|
||||
"db_id": "a4f301bb-3f49-450a-8dbd-5cf6a16b8e0f",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-28",
|
||||
"message": "2 unread inbox message(s) older than 3 day(s): the-custodian:23172cb2, the-custodian:51e9eace",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-28",
|
||||
"message": "2 unread message(s) lack thread_id for supersession tracking: the-custodian:23172cb2, the-custodian:51e9eace",
|
||||
"file_path": "",
|
||||
"db_id": "",
|
||||
"file_value": "",
|
||||
"db_value": "",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'RAIL-AP-WP-0001' uses prefix 'RAIL-AP-WP' but repo canonical prefix is 'RAPPS-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/archived/260605-RAIL-AP-WP-0001-gitea-container-registry.md",
|
||||
"db_id": "",
|
||||
"file_value": "RAIL-AP-WP-0001",
|
||||
"db_value": "RAPPS-WP",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'RAILIANCE-WP-0002' uses prefix 'RAILIANCE-WP' but repo canonical prefix is 'RAPPS-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0002-vergabe-teilnahme-on-railiance01.md",
|
||||
"db_id": "",
|
||||
"file_value": "RAILIANCE-WP-0002",
|
||||
"db_value": "RAPPS-WP",
|
||||
"fixable": false
|
||||
},
|
||||
{
|
||||
"severity": "WARN",
|
||||
"check_id": "C-26",
|
||||
"message": "Workplan id 'RAILIANCE-WP-0004' uses prefix 'RAILIANCE-WP' but repo canonical prefix is 'RAPPS-WP' \u2014 new plans must conform",
|
||||
"file_path": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md",
|
||||
"db_id": "",
|
||||
"file_value": "RAILIANCE-WP-0004",
|
||||
"db_value": "RAPPS-WP",
|
||||
"fixable": false
|
||||
}
|
||||
],
|
||||
"fixes_applied": [
|
||||
"bindings: synced 20/20",
|
||||
"C-17 cleared: pushed 1 backlogged commit(s)",
|
||||
"C-33 fixed: regenerated WORK-RECORDS.md",
|
||||
"C-22 fixed: task 4ab8a5e7\u2026 description updated",
|
||||
"brief: .custodian-brief.md updated",
|
||||
"push: pushed"
|
||||
],
|
||||
"summary": {
|
||||
"fail": 0,
|
||||
"automation_error": 0,
|
||||
"warn": 29,
|
||||
"info": 8
|
||||
},
|
||||
"result": "warn"
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
WARN: git commit failed for writeback: Generated-only commits rejected: staged
|
||||
|
|
@ -0,0 +1,172 @@
|
|||
{
|
||||
"ok": true,
|
||||
"status": "applied",
|
||||
"repo_slug": "railiance-apps",
|
||||
"commit": "308e83fcfbf9ec98dbe6b0286cbe8ec7be8899b3",
|
||||
"requests": 2,
|
||||
"elapsed_ms": 2055.9,
|
||||
"git": {
|
||||
"upstream": "origin/main",
|
||||
"behind": 0,
|
||||
"ahead": 0
|
||||
},
|
||||
"identifiers": {
|
||||
"schema": "repo-manager.identifier-assignment.v1",
|
||||
"ok": true,
|
||||
"executed": true,
|
||||
"repo": "railiance-apps",
|
||||
"namespace": "helixforge",
|
||||
"assignments": [],
|
||||
"historical_invalid_identifiers": [
|
||||
{
|
||||
"kind": "task",
|
||||
"id": "RAILIANCE-WP-0004-I01",
|
||||
"source": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-1"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"id": "RAILIANCE-WP-0004-I02",
|
||||
"source": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-2"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"id": "RAILIANCE-WP-0004-I03",
|
||||
"source": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-3"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"id": "RAILIANCE-WP-0004-I04",
|
||||
"source": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-4"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"id": "RAILIANCE-WP-0004-I05",
|
||||
"source": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-5"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"id": "RAILIANCE-WP-0004-I06",
|
||||
"source": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-6"
|
||||
},
|
||||
{
|
||||
"kind": "task",
|
||||
"id": "RAILIANCE-WP-0004-I07",
|
||||
"source": "workplans/archived/260702-railiance-apps-WP-0004-app-deployment-improvements.md#task-block-7"
|
||||
}
|
||||
],
|
||||
"historical_identity_collisions": [],
|
||||
"files_changed": []
|
||||
},
|
||||
"receipt": {
|
||||
"schema": "state-hub.repository-projection-reconcile.v1",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit": "308e83fcfbf9ec98dbe6b0286cbe8ec7be8899b3",
|
||||
"derived_commit": "308e83fcfbf9ec98dbe6b0286cbe8ec7be8899b3",
|
||||
"outcome": {
|
||||
"schema": "state-hub.projection-reset.v1",
|
||||
"repo_slug": "railiance-apps",
|
||||
"commit": "308e83fcfbf9ec98dbe6b0286cbe8ec7be8899b3",
|
||||
"status": "applied",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"updated": 20,
|
||||
"retired": 0,
|
||||
"refused": 0,
|
||||
"released": 0,
|
||||
"created_tasks": 0,
|
||||
"updated_tasks": 0,
|
||||
"cancelled_tasks": 0,
|
||||
"created_edges": 0,
|
||||
"removed_edges": 0,
|
||||
"unresolved_edges": 0,
|
||||
"external_edges": 5
|
||||
},
|
||||
"created": [],
|
||||
"updated": [
|
||||
"RAIL-AP-WP-0001",
|
||||
"RAILIANCE-WP-0002",
|
||||
"RAILIANCE-WP-0004",
|
||||
"RAPPS-WP-0001",
|
||||
"RAPPS-WP-0002",
|
||||
"RAPPS-WP-0003",
|
||||
"RAPPS-WP-0004",
|
||||
"RAPPS-WP-0005",
|
||||
"RAPPS-WP-0006",
|
||||
"RAPPS-WP-0007",
|
||||
"RAPPS-WP-0008",
|
||||
"RAPPS-WP-0009",
|
||||
"RAPPS-WP-0010",
|
||||
"RAPPS-WP-0011",
|
||||
"RAPPS-WP-0012",
|
||||
"RAPPS-WP-0013",
|
||||
"RAPPS-WP-0014",
|
||||
"RAPPS-WP-0015",
|
||||
"RAPPS-WP-0016",
|
||||
"RAPPS-WP-0017"
|
||||
],
|
||||
"retired": [],
|
||||
"released": [],
|
||||
"created_tasks": [],
|
||||
"updated_tasks": [],
|
||||
"cancelled_tasks": [],
|
||||
"created_edges": [],
|
||||
"removed_edges": [],
|
||||
"unresolved_edges": [],
|
||||
"external_edges": [
|
||||
{
|
||||
"workplan": "RAPPS-WP-0016",
|
||||
"from": "RAPPS-WP-0016-T02",
|
||||
"target": "RAPPS-WP-0016-T01",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "f6b1d6f6-0abb-5774-87b9-bf3cfb640a3b",
|
||||
"from_task_id": "13cd3aec-c87d-5d3f-a421-39d8ff131edd",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "98004ed0-83e6-5f6e-9b18-15b8b2aec2e7"
|
||||
},
|
||||
{
|
||||
"workplan": "RAPPS-WP-0016",
|
||||
"from": "RAPPS-WP-0016-T02",
|
||||
"target": "KEY-WP-0038-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "f6b1d6f6-0abb-5774-87b9-bf3cfb640a3b",
|
||||
"from_task_id": "13cd3aec-c87d-5d3f-a421-39d8ff131edd",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "ddcfb482-8f33-5c81-9ce8-84be8fa5dc30"
|
||||
},
|
||||
{
|
||||
"workplan": "RAPPS-WP-0016",
|
||||
"from": "RAPPS-WP-0016-T04",
|
||||
"target": "RAPPS-WP-0016-T03",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "f6b1d6f6-0abb-5774-87b9-bf3cfb640a3b",
|
||||
"from_task_id": "32c54737-c40f-5fde-9b91-163f8dcb0068",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "81f072aa-c316-511e-a2cd-21dd1b1d0a00"
|
||||
},
|
||||
{
|
||||
"workplan": "RAPPS-WP-0016",
|
||||
"from": "RAPPS-WP-0016-T05",
|
||||
"target": "RAPPS-WP-0016-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "f6b1d6f6-0abb-5774-87b9-bf3cfb640a3b",
|
||||
"from_task_id": "728786c9-f1f9-5983-a6a4-dea21faf67f5",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "13cd3aec-c87d-5d3f-a421-39d8ff131edd"
|
||||
},
|
||||
{
|
||||
"workplan": "RAPPS-WP-0016",
|
||||
"from": "RAPPS-WP-0016-T03",
|
||||
"target": "RAPPS-WP-0016-T02",
|
||||
"relationship_type": "starts_after",
|
||||
"from_workplan_id": "f6b1d6f6-0abb-5774-87b9-bf3cfb640a3b",
|
||||
"from_task_id": "81f072aa-c316-511e-a2cd-21dd1b1d0a00",
|
||||
"to_workplan_id": null,
|
||||
"to_task_id": "13cd3aec-c87d-5d3f-a421-39d8ff131edd"
|
||||
}
|
||||
],
|
||||
"refused": [],
|
||||
"notes": []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"exit_code": 0,
|
||||
"commit": "308e83fcfbf9ec98dbe6b0286cbe8ec7be8899b3",
|
||||
"base": "3fb031a47ff5379358fd8cc230b40961b3b5d3a8",
|
||||
"files": [
|
||||
{
|
||||
"path": "build/forgejo/inputs.lock.json",
|
||||
"sha256": "5a4d0e5126b6b9dd66fe2828ff78bfe6ac0cadc34b96ca739225d622b963b768"
|
||||
},
|
||||
{
|
||||
"path": "build/forgejo/forgejo-security-extension.patch",
|
||||
"sha256": "feb1079399a43989742ae0a946c1ada50113d1821e6541f97f0b5592ee1fc20c"
|
||||
},
|
||||
{
|
||||
"path": "build/forgejo/README.md",
|
||||
"sha256": "8e4edcfa386efe78e4df0b36f8463d229450cd12fc20b46efdba387f7f21bdfe"
|
||||
},
|
||||
{
|
||||
"path": "workplans/RAPPS-WP-0016-forgejo-netkingdom-login.md",
|
||||
"sha256": "58d09d6af665bd7ad8981f87ccad5552d78f749432cfe21703d6c2a30f8bdbae"
|
||||
}
|
||||
],
|
||||
"stdout": "[main 308e83f] Verify Forgejo PostgreSQL operations and preserve tracing hook context\n 4 files changed, 521 insertions(+), 9 deletions(-)\n",
|
||||
"stderr": ""
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"owner": "railiance-apps",
|
||||
"base_revision": "3fb031a47ff5379358fd8cc230b40961b3b5d3a8",
|
||||
"message": "Verify Forgejo PostgreSQL operations and preserve tracing hook context",
|
||||
"files": [
|
||||
{
|
||||
"path": "build/forgejo/inputs.lock.json",
|
||||
"sha256": "5a4d0e5126b6b9dd66fe2828ff78bfe6ac0cadc34b96ca739225d622b963b768"
|
||||
},
|
||||
{
|
||||
"path": "build/forgejo/forgejo-security-extension.patch",
|
||||
"sha256": "feb1079399a43989742ae0a946c1ada50113d1821e6541f97f0b5592ee1fc20c"
|
||||
},
|
||||
{
|
||||
"path": "build/forgejo/README.md",
|
||||
"sha256": "8e4edcfa386efe78e4df0b36f8463d229450cd12fc20b46efdba387f7f21bdfe"
|
||||
},
|
||||
{
|
||||
"path": "workplans/RAPPS-WP-0016-forgejo-netkingdom-login.md",
|
||||
"sha256": "58d09d6af665bd7ad8981f87ccad5552d78f749432cfe21703d6c2a30f8bdbae"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"owner": "railiance-apps",
|
||||
"base_revision": "git:3fb031a47ff5379358fd8cc230b40961b3b5d3a8",
|
||||
"files": [
|
||||
{
|
||||
"path": "build/forgejo/inputs.lock.json",
|
||||
"source": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1/release-source/build/forgejo/inputs.lock.json",
|
||||
"before_sha256": "acf9859d1b1009d1afe0844f2068f9b95cfadb176591edce0ec42084604e4d65",
|
||||
"sha256": "5a4d0e5126b6b9dd66fe2828ff78bfe6ac0cadc34b96ca739225d622b963b768"
|
||||
},
|
||||
{
|
||||
"path": "build/forgejo/forgejo-security-extension.patch",
|
||||
"source": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1/release-source/build/forgejo/forgejo-security-extension.patch",
|
||||
"before_sha256": "15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"sha256": "feb1079399a43989742ae0a946c1ada50113d1821e6541f97f0b5592ee1fc20c"
|
||||
},
|
||||
{
|
||||
"path": "build/forgejo/README.md",
|
||||
"source": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1/release-source/build/forgejo/README.md",
|
||||
"before_sha256": "6250821cc41d10b92e6d91dde1f2b59b53a9d47d78ada3a597c9d039549c0da4",
|
||||
"sha256": "8e4edcfa386efe78e4df0b36f8463d229450cd12fc20b46efdba387f7f21bdfe"
|
||||
},
|
||||
{
|
||||
"path": "workplans/RAPPS-WP-0016-forgejo-netkingdom-login.md",
|
||||
"source": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1/owner-integration/workplan.md",
|
||||
"before_sha256": "95b48b308d5154f87355b2c230dc9990241aeeb37c2094e164952150ed2fd258",
|
||||
"sha256": "58d09d6af665bd7ad8981f87ccad5552d78f749432cfe21703d6c2a30f8bdbae"
|
||||
}
|
||||
],
|
||||
"preserved_other_tracked_files": 224,
|
||||
"original_task_uuids_preserved": 9,
|
||||
"status_change": null,
|
||||
"native_actions": false,
|
||||
"independent_owner_review": false,
|
||||
"operational_admission": false
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"owner": "railiance-apps",
|
||||
"base_revision": "3fb031a47ff5379358fd8cc230b40961b3b5d3a8",
|
||||
"files": [
|
||||
{
|
||||
"path": "build/forgejo/inputs.lock.json",
|
||||
"source": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1/release-source/build/forgejo/inputs.lock.json",
|
||||
"before_sha256": "acf9859d1b1009d1afe0844f2068f9b95cfadb176591edce0ec42084604e4d65",
|
||||
"sha256": "5a4d0e5126b6b9dd66fe2828ff78bfe6ac0cadc34b96ca739225d622b963b768"
|
||||
},
|
||||
{
|
||||
"path": "build/forgejo/forgejo-security-extension.patch",
|
||||
"source": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1/release-source/build/forgejo/forgejo-security-extension.patch",
|
||||
"before_sha256": "15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"sha256": "feb1079399a43989742ae0a946c1ada50113d1821e6541f97f0b5592ee1fc20c"
|
||||
},
|
||||
{
|
||||
"path": "build/forgejo/README.md",
|
||||
"source": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1/release-source/build/forgejo/README.md",
|
||||
"before_sha256": "6250821cc41d10b92e6d91dde1f2b59b53a9d47d78ada3a597c9d039549c0da4",
|
||||
"sha256": "8e4edcfa386efe78e4df0b36f8463d229450cd12fc20b46efdba387f7f21bdfe"
|
||||
},
|
||||
{
|
||||
"path": "workplans/RAPPS-WP-0016-forgejo-netkingdom-login.md",
|
||||
"source": "/home/worsch/the-custodian/docs/changes/netkingdom-target-2026-10-18/forgejo-postgres-source-r1/owner-integration/workplan.md",
|
||||
"before_sha256": "95b48b308d5154f87355b2c230dc9990241aeeb37c2094e164952150ed2fd258",
|
||||
"sha256": "58d09d6af665bd7ad8981f87ccad5552d78f749432cfe21703d6c2a30f8bdbae"
|
||||
}
|
||||
],
|
||||
"native_actions": false,
|
||||
"independent_owner_review": false
|
||||
}
|
||||
|
|
@ -0,0 +1,283 @@
|
|||
---
|
||||
id: RAPPS-WP-0016
|
||||
type: workplan
|
||||
title: "Forgejo sign-in through NetKingdom, before the forge closes"
|
||||
domain: infotech
|
||||
repo: railiance-apps
|
||||
status: active
|
||||
flavor: implementation
|
||||
owner: claude-code
|
||||
topic_slug: railiance
|
||||
created: "2026-10-08"
|
||||
updated: "2026-10-18"
|
||||
depends_on:
|
||||
- KEY-WP-0038
|
||||
related_repos:
|
||||
- prj-forgejo-org-refactor
|
||||
- key-cape
|
||||
- railiance-platform
|
||||
state_hub_workstream_id: "f6b1d6f6-0abb-5774-87b9-bf3cfb640a3b"
|
||||
---
|
||||
|
||||
# RAPPS-WP-0016 - Forgejo sign-in through NetKingdom, before the forge closes
|
||||
|
||||
## Why
|
||||
|
||||
`forgejo.coulomb.social` is closing: private by default, no anonymous access
|
||||
(prj-forgejo-org-refactor ORGREF-WP-0002, decision
|
||||
`decisions/forge-visibility-policy.md`). The founder's condition is that sign-in
|
||||
runs through NetKingdom first. railiance-apps owns the Forgejo Helm release
|
||||
(`docs/forgejo-on-railiance01.md`: S5 Helm release, ingress, operator Makefile),
|
||||
so the Forgejo side lands here. This plan is ORGREF-WP-0002-T05. The NetKingdom
|
||||
side is key-cape `KEY-WP-0038`.
|
||||
|
||||
## Boundaries
|
||||
|
||||
- **Founder guardrail:** tighten gradually; never lock anyone out; never risk
|
||||
assets; never reach a state that is hard to repair. Every step keeps the
|
||||
current sign-in path working until the new one is proven.
|
||||
- **No visibility change** in this plan. Repositories, packages and
|
||||
`REQUIRE_SIGNIN_VIEW` are ORGREF-WP-0002-T08.
|
||||
- **Configuration in git.** The authentication source is declared in
|
||||
`helm/forgejo-values.yaml` (`gitea.oauth`), with its secret drawn from an
|
||||
ExternalSecret over OpenBao. No click-ops, and no secret value in git.
|
||||
- Open registration is already disabled (`service.DISABLE_REGISTRATION: true`).
|
||||
This plan keeps it that way.
|
||||
|
||||
## Tasks
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T01
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "98004ed0-83e6-5f6e-9b18-15b8b2aec2e7"
|
||||
```
|
||||
|
||||
### T01 — Make the local administrator a sealed break-glass
|
||||
|
||||
Before anything about sign-in changes: confirm the local administrator account
|
||||
works, keep its credential only in OpenBao, and document recovery (who, how,
|
||||
where it is logged) in `docs/forgejo-on-railiance01.md`. Verify one break-glass
|
||||
sign-in and record it without the credential.
|
||||
|
||||
Acceptance: a recorded break-glass sign-in, with the recovery path written down.
|
||||
This is the "never lock ourselves out" floor for every later step.
|
||||
|
||||
Done 2026-10-17: founder sealed `forgejo_admin` into OpenBao
|
||||
`platform/workloads/forgejo/break-glass-admin` (version 1) and verified a local
|
||||
sign-in (HTTP 200, site admin): `docs/evidence/2026-10-17-forgejo-breakglass-signin.json`.
|
||||
Recovery path: `docs/forgejo-on-railiance01.md` § Break-glass administrator.
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T02
|
||||
status: wait
|
||||
depends_on: [RAPPS-WP-0016-T01, KEY-WP-0038-T02]
|
||||
blocking_reason: "Break-glass done (T01); needs the NetKingdom client registered with its secret in custody (KEY-WP-0038-T02)."
|
||||
priority: high
|
||||
state_hub_task_id: "13cd3aec-c87d-5d3f-a421-39d8ff131edd"
|
||||
```
|
||||
|
||||
### T02 — Add the NetKingdom authentication source
|
||||
|
||||
- an ExternalSecret delivering the `forgejo` client secret from OpenBao to a
|
||||
Secret in the `forgejo` namespace. Custody path is
|
||||
`platform/workloads/keycape/forgejo`, field `CLIENT_SECRET`, read by ESO through
|
||||
Kubernetes-auth role `external-secrets-keycape-forgejo-forgejo`, which carries
|
||||
only policy `workload-kv-read-keycape-forgejo-forgejo` (net-kingdom 074b3a0;
|
||||
replaces the earlier `platform/workloads/forgejo/netkingdom-oidc-client` proposal). The
|
||||
SA/SecretStore/ExternalSecret shape follows the NK-WP-0048
|
||||
`deliver-consumer-secret` receipt contract
|
||||
(`docs/evidence/nk48-t16-owner-review/owner-review-railiance-apps.json`)
|
||||
- `gitea.oauth`: name `netkingdom` (must match the redirect URI registered in
|
||||
key-cape), provider `openidConnect`, auto-discovery from
|
||||
`https://kc.coulomb.social/.well-known/openid-configuration`, scopes
|
||||
`openid profile email groups`, group-claim name `groups`
|
||||
- `oauth2_client` settings: no automatic account creation for unknown subjects;
|
||||
account linking to existing local accounts by username after a successful
|
||||
local sign-in (so the founder and agent accounts keep their history)
|
||||
- Helm upgrade with the previous revision noted for rollback
|
||||
|
||||
Local password sign-in stays enabled.
|
||||
|
||||
Acceptance: the "Sign in with netkingdom" option appears. Local sign-in still
|
||||
works. Rollback is one `helm rollback` to the noted revision.
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T03
|
||||
status: wait
|
||||
depends_on: [RAPPS-WP-0016-T02]
|
||||
blocking_reason: "Linking and team mapping follow a working authentication source."
|
||||
priority: high
|
||||
state_hub_task_id: "81f072aa-c316-511e-a2cd-21dd1b1d0a00"
|
||||
```
|
||||
|
||||
### T03 — Link accounts and map groups to teams
|
||||
|
||||
- The founder links their account through NetKingdom (MFA), then signs in again
|
||||
through NetKingdom only and sees the same repositories, organisations and
|
||||
admin rights.
|
||||
- Map NetKingdom groups (names agreed in KEY-WP-0038-T01) to organisation teams:
|
||||
owners and readers at least. Create the read-only teams that
|
||||
ORGREF-WP-0002-T06 consumers will use.
|
||||
- Apply KEY-WP-0038-T03's decision on agents and services: NetKingdom sign-in, or
|
||||
scoped tokens bound to service identities.
|
||||
|
||||
Acceptance: founder and one agent work through NetKingdom; group-to-team mapping
|
||||
verified by adding and removing one test membership; break-glass still works.
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T04
|
||||
status: wait
|
||||
depends_on: [RAPPS-WP-0016-T03]
|
||||
needs_human: true
|
||||
blocking_reason: "Restricting local password sign-in is a founder decision once NetKingdom sign-in is proven."
|
||||
priority: medium
|
||||
state_hub_task_id: "32c54737-c40f-5fde-9b91-163f8dcb0068"
|
||||
```
|
||||
|
||||
### T04 — Decide on local password sign-in
|
||||
|
||||
Once NetKingdom sign-in has been used for a while without problems, the founder
|
||||
decides whether local password sign-in is turned off for everyone except
|
||||
break-glass. This is not required to close the forge; it is the next tightening
|
||||
step, taken separately.
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T05
|
||||
status: wait
|
||||
depends_on: [RAPPS-WP-0016-T02]
|
||||
blocking_reason: "Waits for net-kingdom's answer to the Apps 1.3 needs-change record (the-custodian docs/changes/netkingdom-target-2026-10-17/nk48-1.3-owner-review/owner-review-railiance-apps.json: RAPPS-1.3-C1..C3) and the re-frozen 1.3 candidate."
|
||||
priority: medium
|
||||
state_hub_task_id: "728786c9-f1f9-5983-a6a4-dea21faf67f5"
|
||||
```
|
||||
|
||||
### T05 — Apps owner seams for NK-WP-0048 consumer steps
|
||||
|
||||
Implement the real Apps capabilities behind the `deliver-consumer-secret` and
|
||||
`hand-over` adapters, as owner-run paths (option C): `owner_apply` /
|
||||
`owner_remove` emitting `netkingdom.consumer-secret-delivery.v1` receipts from the
|
||||
T02 objects; a consumer verifier that observes Forgejo sign-in and the T03
|
||||
positive/negative group probes; and a committed-evidence hand-over receipt store.
|
||||
See the owner-review record for the contract.
|
||||
|
||||
Acceptance: receipts produced from the live T02/T03 run validate against the
|
||||
adapters' checks with no value-bearing keys.
|
||||
|
||||
## Also in scope: stale node credential
|
||||
|
||||
The k3s `registries.yaml` on railiance01 still holds a login for the frozen Gitea
|
||||
host `92.205.130.254` (ORGREF-WP-0002-T02). Coordinate its removal with the node
|
||||
owner when ORGREF-WP-0002-T06 adds the forge registry login, in the same change.
|
||||
|
||||
|
||||
## T06 — Package the reviewed consumer source through the Apps build path
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T06
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "08ab8921-7801-5309-b84b-bc2a3ceea1e4"
|
||||
```
|
||||
|
||||
Completed 2026-10-18, source build tooling only. The existing Apps Makefile now
|
||||
has explicit prepare, public-dependency acquisition, offline build, artifact
|
||||
verification and local OCI export targets for the pinned official Forgejo11.0.3
|
||||
source plus reviewed multi-value claim patch. Source/toolchains/locks/compiler
|
||||
inputs/base image are fixed. Third-party application source stays in a new /tmp
|
||||
workspace; Apps holds the release input lock, patch and build recipe.
|
||||
|
||||
The original build profile produced identical frontend assets, bindata sources
|
||||
and complete static executable in two workspaces, and identical local OCI
|
||||
archives in two no-cache exports. Independent review then found host process
|
||||
argv visibility through /proc (APPSBUILD-R1-F01). The revised recipe adds a
|
||||
private PID namespace; exact source and synthetic canary regression are separately
|
||||
reviewed. The original full builds are historical r1-profile evidence; no full
|
||||
r2 build is claimed. Original packet/review and failure history remain in
|
||||
Custodian apps-forgejo-release-build-r1 and apps-release-independent-review-r1;
|
||||
the correction is apps-forgejo-release-build-r2. This is coordinator source
|
||||
integration after independent technical review, not formal owner assent or image
|
||||
admission. Helm values, deployed image, local sign-in and visibility are unchanged.
|
||||
NK-WP-0048-T39 remains progress for the full release acceptance scope.
|
||||
|
||||
## T07 — Keep the client secret out of process arguments
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T07
|
||||
status: progress
|
||||
priority: high
|
||||
state_hub_task_id: "786d6584-6db1-5a10-9324-d7b94db0df94"
|
||||
```
|
||||
|
||||
Implement and independently review a real Forgejo add/update --secret-file path
|
||||
and the actual chart helper/mount adaptation. Preserve the existing CLIENT_SECRET
|
||||
key and custody route; use no agent-value argument or environment fallback. Test
|
||||
bounded stable nofollow file reads, exact existing minted-secret encoding,
|
||||
mutual exclusion/update preservation, fixed errors and actual Helm rendering.
|
||||
Private mount identity/reader set and new package/type revisions need explicit
|
||||
owner/runtime admission. The in-progress isolated candidate is Custodian
|
||||
forgejo-private-input-r1; source completion is distinct from T02 native delivery.
|
||||
|
||||
## T08 — Provide a transactional application-source inverse and durable recovery
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T08
|
||||
status: progress
|
||||
priority: high
|
||||
state_hub_task_id: "4ab8a5e7-ab32-5ee2-aaf2-6da246d1b0c8"
|
||||
```
|
||||
|
||||
Implement actual owner database primitives that record operation intent/outcome
|
||||
in the same durable database, compare complete raw persisted before/post/current
|
||||
source state privately, and serialize conflicting application writers at the DB
|
||||
boundary. Never emit stored credential/config bytes or delete/detach linked users
|
||||
or a preexisting/shared source. SQLite and PostgreSQL transaction semantics must
|
||||
be tested against the real app packages; unsupported backends refuse.
|
||||
|
||||
T05 and NK-WP-0048-T34 additionally require actual authenticated execution and
|
||||
fresh inverse sessions, admitted evidence/recovery and exclusion of every release
|
||||
writer, including Helm/runtime writers. The candidate DB primitive alone does
|
||||
not establish those facilities. Helm rollback/omission does not remove persisted
|
||||
OAuth sources: verify the exact app-state inverse before any image downgrade.
|
||||
If links prevent removal, retain the extended image and reconcile. The earlier
|
||||
T02 single-Helm-rollback statement is not sufficient recovery for this extension;
|
||||
its historical text is retained and corrected here.
|
||||
|
||||
## T09 — Enforce authenticated Access Engine decisions in the application path
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T09
|
||||
status: progress
|
||||
priority: high
|
||||
state_hub_task_id: "d3804638-c73d-5b9f-a456-4262f62f9e6b"
|
||||
```
|
||||
|
||||
Use the producer-owned decision format/canonical bytes and independently admitted
|
||||
signer/policy/request pins. Forgejo must verify the caller's issuer/tenant and
|
||||
assurance facts, obtain and authenticate the exact Access Engine resource/action
|
||||
decision, and refuse missing, stale, wrong-pin, unavailable or malformed replies.
|
||||
Keep the original three-group any-of access set as policy input; its local
|
||||
compatibility gate is not a substitute PDP or an architecture exception. An
|
||||
issuer allowed/denied claim cannot manufacture authorization. Source integration
|
||||
needs real provider/callback/session wiring and meaningful producer-consumer
|
||||
positive/adverse tests before re-freezing the case and package. Existing break-
|
||||
glass/local account and linking behavior remain within the declared owner scope.
|
||||
|
||||
2026-10-18 source continuation for T07/T08/T09: the digest-bound build
|
||||
candidate now composes all 37 paths, including private secret-file input, actual
|
||||
source-state transactions/private SQL hooks, the producer-owned Access Engine
|
||||
Check client from ca0cb757 and guarded OIDC callback enforcement. The parser uses
|
||||
the actual KeyCape typed assurance/authentication-time/provenance contract; its
|
||||
actual issuer fixture/callback suite passes 71 test/subtest results, and selected
|
||||
composed packages pass 93 with no skips. The previous incompatible-string-claim
|
||||
rejection is retained. All patch postimages independently replay from the pinned
|
||||
official archive. Complete release build/verification is tracked in Custodian
|
||||
forgejo-keycape-claims-r1; earlier release outputs do not prove this revision.
|
||||
|
||||
This is coordinator source integration of a tested build candidate; independent
|
||||
owner review and formal operational admission remain open. T07's chart/private
|
||||
mount admission, T08's fresh authenticated operation/inverse and release-wide
|
||||
writer exclusion, T09's ongoing HTTP/API/Git/SSH paths, private evidence/retention,
|
||||
PostgreSQL/native proof and actual issuer/factor/custody acceptance remain open.
|
||||
No trust, deployed image, Helm values, source DB, user/link state or local sign-in
|
||||
is changed by this build-source update. The preserved legacy patch is historical;
|
||||
the input lock now explicitly selects forgejo-security-extension.patch.
|
||||
|
|
@ -0,0 +1,310 @@
|
|||
---
|
||||
id: RAPPS-WP-0016
|
||||
type: workplan
|
||||
title: "Forgejo sign-in through NetKingdom, before the forge closes"
|
||||
domain: infotech
|
||||
repo: railiance-apps
|
||||
status: active
|
||||
flavor: implementation
|
||||
owner: claude-code
|
||||
topic_slug: railiance
|
||||
created: "2026-10-08"
|
||||
updated: "2026-10-18"
|
||||
depends_on:
|
||||
- KEY-WP-0038
|
||||
related_repos:
|
||||
- prj-forgejo-org-refactor
|
||||
- key-cape
|
||||
- railiance-platform
|
||||
state_hub_workstream_id: "f6b1d6f6-0abb-5774-87b9-bf3cfb640a3b"
|
||||
---
|
||||
|
||||
# RAPPS-WP-0016 - Forgejo sign-in through NetKingdom, before the forge closes
|
||||
|
||||
## Why
|
||||
|
||||
`forgejo.coulomb.social` is closing: private by default, no anonymous access
|
||||
(prj-forgejo-org-refactor ORGREF-WP-0002, decision
|
||||
`decisions/forge-visibility-policy.md`). The founder's condition is that sign-in
|
||||
runs through NetKingdom first. railiance-apps owns the Forgejo Helm release
|
||||
(`docs/forgejo-on-railiance01.md`: S5 Helm release, ingress, operator Makefile),
|
||||
so the Forgejo side lands here. This plan is ORGREF-WP-0002-T05. The NetKingdom
|
||||
side is key-cape `KEY-WP-0038`.
|
||||
|
||||
## Boundaries
|
||||
|
||||
- **Founder guardrail:** tighten gradually; never lock anyone out; never risk
|
||||
assets; never reach a state that is hard to repair. Every step keeps the
|
||||
current sign-in path working until the new one is proven.
|
||||
- **No visibility change** in this plan. Repositories, packages and
|
||||
`REQUIRE_SIGNIN_VIEW` are ORGREF-WP-0002-T08.
|
||||
- **Configuration in git.** The authentication source is declared in
|
||||
`helm/forgejo-values.yaml` (`gitea.oauth`), with its secret drawn from an
|
||||
ExternalSecret over OpenBao. No click-ops, and no secret value in git.
|
||||
- Open registration is already disabled (`service.DISABLE_REGISTRATION: true`).
|
||||
This plan keeps it that way.
|
||||
|
||||
## Tasks
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T01
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "98004ed0-83e6-5f6e-9b18-15b8b2aec2e7"
|
||||
```
|
||||
|
||||
### T01 — Make the local administrator a sealed break-glass
|
||||
|
||||
Before anything about sign-in changes: confirm the local administrator account
|
||||
works, keep its credential only in OpenBao, and document recovery (who, how,
|
||||
where it is logged) in `docs/forgejo-on-railiance01.md`. Verify one break-glass
|
||||
sign-in and record it without the credential.
|
||||
|
||||
Acceptance: a recorded break-glass sign-in, with the recovery path written down.
|
||||
This is the "never lock ourselves out" floor for every later step.
|
||||
|
||||
Done 2026-10-17: founder sealed `forgejo_admin` into OpenBao
|
||||
`platform/workloads/forgejo/break-glass-admin` (version 1) and verified a local
|
||||
sign-in (HTTP 200, site admin): `docs/evidence/2026-10-17-forgejo-breakglass-signin.json`.
|
||||
Recovery path: `docs/forgejo-on-railiance01.md` § Break-glass administrator.
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T02
|
||||
status: wait
|
||||
depends_on: [RAPPS-WP-0016-T01, KEY-WP-0038-T02]
|
||||
blocking_reason: "Break-glass done (T01); needs the NetKingdom client registered with its secret in custody (KEY-WP-0038-T02)."
|
||||
priority: high
|
||||
state_hub_task_id: "13cd3aec-c87d-5d3f-a421-39d8ff131edd"
|
||||
```
|
||||
|
||||
### T02 — Add the NetKingdom authentication source
|
||||
|
||||
- an ExternalSecret delivering the `forgejo` client secret from OpenBao to a
|
||||
Secret in the `forgejo` namespace. Custody path is
|
||||
`platform/workloads/keycape/forgejo`, field `CLIENT_SECRET`, read by ESO through
|
||||
Kubernetes-auth role `external-secrets-keycape-forgejo-forgejo`, which carries
|
||||
only policy `workload-kv-read-keycape-forgejo-forgejo` (net-kingdom 074b3a0;
|
||||
replaces the earlier `platform/workloads/forgejo/netkingdom-oidc-client` proposal). The
|
||||
SA/SecretStore/ExternalSecret shape follows the NK-WP-0048
|
||||
`deliver-consumer-secret` receipt contract
|
||||
(`docs/evidence/nk48-t16-owner-review/owner-review-railiance-apps.json`)
|
||||
- `gitea.oauth`: name `netkingdom` (must match the redirect URI registered in
|
||||
key-cape), provider `openidConnect`, auto-discovery from
|
||||
`https://kc.coulomb.social/.well-known/openid-configuration`, scopes
|
||||
`openid profile email groups`, group-claim name `groups`
|
||||
- `oauth2_client` settings: no automatic account creation for unknown subjects;
|
||||
account linking to existing local accounts by username after a successful
|
||||
local sign-in (so the founder and agent accounts keep their history)
|
||||
- Helm upgrade with the previous revision noted for rollback
|
||||
|
||||
Local password sign-in stays enabled.
|
||||
|
||||
Acceptance: the "Sign in with netkingdom" option appears. Local sign-in still
|
||||
works. Rollback is one `helm rollback` to the noted revision.
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T03
|
||||
status: wait
|
||||
depends_on: [RAPPS-WP-0016-T02]
|
||||
blocking_reason: "Linking and team mapping follow a working authentication source."
|
||||
priority: high
|
||||
state_hub_task_id: "81f072aa-c316-511e-a2cd-21dd1b1d0a00"
|
||||
```
|
||||
|
||||
### T03 — Link accounts and map groups to teams
|
||||
|
||||
- The founder links their account through NetKingdom (MFA), then signs in again
|
||||
through NetKingdom only and sees the same repositories, organisations and
|
||||
admin rights.
|
||||
- Map NetKingdom groups (names agreed in KEY-WP-0038-T01) to organisation teams:
|
||||
owners and readers at least. Create the read-only teams that
|
||||
ORGREF-WP-0002-T06 consumers will use.
|
||||
- Apply KEY-WP-0038-T03's decision on agents and services: NetKingdom sign-in, or
|
||||
scoped tokens bound to service identities.
|
||||
|
||||
Acceptance: founder and one agent work through NetKingdom; group-to-team mapping
|
||||
verified by adding and removing one test membership; break-glass still works.
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T04
|
||||
status: wait
|
||||
depends_on: [RAPPS-WP-0016-T03]
|
||||
needs_human: true
|
||||
blocking_reason: "Restricting local password sign-in is a founder decision once NetKingdom sign-in is proven."
|
||||
priority: medium
|
||||
state_hub_task_id: "32c54737-c40f-5fde-9b91-163f8dcb0068"
|
||||
```
|
||||
|
||||
### T04 — Decide on local password sign-in
|
||||
|
||||
Once NetKingdom sign-in has been used for a while without problems, the founder
|
||||
decides whether local password sign-in is turned off for everyone except
|
||||
break-glass. This is not required to close the forge; it is the next tightening
|
||||
step, taken separately.
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T05
|
||||
status: wait
|
||||
depends_on: [RAPPS-WP-0016-T02]
|
||||
blocking_reason: "Waits for net-kingdom's answer to the Apps 1.3 needs-change record (the-custodian docs/changes/netkingdom-target-2026-10-17/nk48-1.3-owner-review/owner-review-railiance-apps.json: RAPPS-1.3-C1..C3) and the re-frozen 1.3 candidate."
|
||||
priority: medium
|
||||
state_hub_task_id: "728786c9-f1f9-5983-a6a4-dea21faf67f5"
|
||||
```
|
||||
|
||||
### T05 — Apps owner seams for NK-WP-0048 consumer steps
|
||||
|
||||
Implement the real Apps capabilities behind the `deliver-consumer-secret` and
|
||||
`hand-over` adapters, as owner-run paths (option C): `owner_apply` /
|
||||
`owner_remove` emitting `netkingdom.consumer-secret-delivery.v1` receipts from the
|
||||
T02 objects; a consumer verifier that observes Forgejo sign-in and the T03
|
||||
positive/negative group probes; and a committed-evidence hand-over receipt store.
|
||||
See the owner-review record for the contract.
|
||||
|
||||
Acceptance: receipts produced from the live T02/T03 run validate against the
|
||||
adapters' checks with no value-bearing keys.
|
||||
|
||||
## Also in scope: stale node credential
|
||||
|
||||
The k3s `registries.yaml` on railiance01 still holds a login for the frozen Gitea
|
||||
host `92.205.130.254` (ORGREF-WP-0002-T02). Coordinate its removal with the node
|
||||
owner when ORGREF-WP-0002-T06 adds the forge registry login, in the same change.
|
||||
|
||||
|
||||
## T06 — Package the reviewed consumer source through the Apps build path
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T06
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "08ab8921-7801-5309-b84b-bc2a3ceea1e4"
|
||||
```
|
||||
|
||||
Completed 2026-10-18, source build tooling only. The existing Apps Makefile now
|
||||
has explicit prepare, public-dependency acquisition, offline build, artifact
|
||||
verification and local OCI export targets for the pinned official Forgejo11.0.3
|
||||
source plus reviewed multi-value claim patch. Source/toolchains/locks/compiler
|
||||
inputs/base image are fixed. Third-party application source stays in a new /tmp
|
||||
workspace; Apps holds the release input lock, patch and build recipe.
|
||||
|
||||
The original build profile produced identical frontend assets, bindata sources
|
||||
and complete static executable in two workspaces, and identical local OCI
|
||||
archives in two no-cache exports. Independent review then found host process
|
||||
argv visibility through /proc (APPSBUILD-R1-F01). The revised recipe adds a
|
||||
private PID namespace; exact source and synthetic canary regression are separately
|
||||
reviewed. The original full builds are historical r1-profile evidence; no full
|
||||
r2 build is claimed. Original packet/review and failure history remain in
|
||||
Custodian apps-forgejo-release-build-r1 and apps-release-independent-review-r1;
|
||||
the correction is apps-forgejo-release-build-r2. This is coordinator source
|
||||
integration after independent technical review, not formal owner assent or image
|
||||
admission. Helm values, deployed image, local sign-in and visibility are unchanged.
|
||||
NK-WP-0048-T39 remains progress for the full release acceptance scope.
|
||||
|
||||
## T07 — Keep the client secret out of process arguments
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T07
|
||||
status: progress
|
||||
priority: high
|
||||
state_hub_task_id: "786d6584-6db1-5a10-9324-d7b94db0df94"
|
||||
```
|
||||
|
||||
Implement and independently review a real Forgejo add/update --secret-file path
|
||||
and the actual chart helper/mount adaptation. Preserve the existing CLIENT_SECRET
|
||||
key and custody route; use no agent-value argument or environment fallback. Test
|
||||
bounded stable nofollow file reads, exact existing minted-secret encoding,
|
||||
mutual exclusion/update preservation, fixed errors and actual Helm rendering.
|
||||
Private mount identity/reader set and new package/type revisions need explicit
|
||||
owner/runtime admission. The in-progress isolated candidate is Custodian
|
||||
forgejo-private-input-r1; source completion is distinct from T02 native delivery.
|
||||
|
||||
## T08 — Provide a transactional application-source inverse and durable recovery
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T08
|
||||
status: progress
|
||||
priority: high
|
||||
state_hub_task_id: "4ab8a5e7-ab32-5ee2-aaf2-6da246d1b0c8"
|
||||
```
|
||||
|
||||
Implement actual owner database primitives that record operation intent/outcome
|
||||
in the same durable database, compare complete raw persisted before/post/current
|
||||
source state privately, and serialize conflicting application writers at the DB
|
||||
boundary. Never emit stored credential/config bytes or delete/detach linked users
|
||||
or a preexisting/shared source. SQLite and PostgreSQL transaction semantics must
|
||||
be tested against the real app packages; unsupported backends refuse.
|
||||
|
||||
T05 and NK-WP-0048-T34 additionally require actual authenticated execution and
|
||||
fresh inverse sessions, admitted evidence/recovery and exclusion of every release
|
||||
writer, including Helm/runtime writers. The candidate DB primitive alone does
|
||||
not establish those facilities. Helm rollback/omission does not remove persisted
|
||||
OAuth sources: verify the exact app-state inverse before any image downgrade.
|
||||
If links prevent removal, retain the extended image and reconcile. The earlier
|
||||
T02 single-Helm-rollback statement is not sufficient recovery for this extension;
|
||||
its historical text is retained and corrected here.
|
||||
|
||||
2026-10-18 PostgreSQL/source-context continuation for T08: actual Forgejo model
|
||||
schemas, OAuth configuration types and production DB initialization run on a
|
||||
disposable PostgreSQL 16.14 instance. All 37 test/subtest results pass across
|
||||
default, explicit-public and named schemas. Separate client processes prove
|
||||
rollback after process death immediately following INSERT, committed apply
|
||||
survival through a real server restart, and subsequent reconciliation/inverse.
|
||||
Exact raw restoration, private drift, linked-user/external-link refusal, trigger
|
||||
rollback, table-writer exclusion and concurrent preparation are covered.
|
||||
Controlled copies with the table lock or private-query context removed fail the
|
||||
corresponding tests in all three schema profiles. All owned fixture containers
|
||||
and volumes were removed; no deployed database or real credential was used.
|
||||
|
||||
The diagnostics check exposed a real tracing-hook composition panic. The new
|
||||
40-path build candidate publishes the task context into XORM's shared query
|
||||
context so subsequent hooks preserve it. Actual private/ordinary SQLite traces
|
||||
and PostgreSQL driver-error hooks cover the correction. Six focused SQLite DB
|
||||
checks and all 94 selected composed package results pass without skips. The
|
||||
previous panic, fixture/compilation failures and refinement history remain in
|
||||
Custodian forgejo-postgres-source-r1. Complete release evidence uses the new
|
||||
feb10793 patch; the prior frozen artifact is historical.
|
||||
|
||||
This proves bounded source/database mechanics. T08 remains progress for current
|
||||
authenticated initiating/inverse sessions, release-wide writer exclusion, private
|
||||
evidence/custody/retention and native deployed-database acceptance. Independent
|
||||
owner review and exact package/type/runtime admission remain open. T07/T09 and
|
||||
all original task UUIDs and statuses are preserved.
|
||||
|
||||
## T09 — Enforce authenticated Access Engine decisions in the application path
|
||||
|
||||
```task
|
||||
id: RAPPS-WP-0016-T09
|
||||
status: progress
|
||||
priority: high
|
||||
state_hub_task_id: "d3804638-c73d-5b9f-a456-4262f62f9e6b"
|
||||
```
|
||||
|
||||
Use the producer-owned decision format/canonical bytes and independently admitted
|
||||
signer/policy/request pins. Forgejo must verify the caller's issuer/tenant and
|
||||
assurance facts, obtain and authenticate the exact Access Engine resource/action
|
||||
decision, and refuse missing, stale, wrong-pin, unavailable or malformed replies.
|
||||
Keep the original three-group any-of access set as policy input; its local
|
||||
compatibility gate is not a substitute PDP or an architecture exception. An
|
||||
issuer allowed/denied claim cannot manufacture authorization. Source integration
|
||||
needs real provider/callback/session wiring and meaningful producer-consumer
|
||||
positive/adverse tests before re-freezing the case and package. Existing break-
|
||||
glass/local account and linking behavior remain within the declared owner scope.
|
||||
|
||||
2026-10-18 source continuation for T07/T08/T09: the digest-bound build
|
||||
candidate now composes all 37 paths, including private secret-file input, actual
|
||||
source-state transactions/private SQL hooks, the producer-owned Access Engine
|
||||
Check client from ca0cb757 and guarded OIDC callback enforcement. The parser uses
|
||||
the actual KeyCape typed assurance/authentication-time/provenance contract; its
|
||||
actual issuer fixture/callback suite passes 71 test/subtest results, and selected
|
||||
composed packages pass 93 with no skips. The previous incompatible-string-claim
|
||||
rejection is retained. All patch postimages independently replay from the pinned
|
||||
official archive. Complete release build/verification is tracked in Custodian
|
||||
forgejo-keycape-claims-r1; earlier release outputs do not prove this revision.
|
||||
|
||||
This is coordinator source integration of a tested build candidate; independent
|
||||
owner review and formal operational admission remain open. T07's chart/private
|
||||
mount admission, T08's fresh authenticated operation/inverse and release-wide
|
||||
writer exclusion, T09's ongoing HTTP/API/Git/SSH paths, private evidence/retention,
|
||||
PostgreSQL/native proof and actual issuer/factor/custody acceptance remain open.
|
||||
No trust, deployed image, Helm values, source DB, user/link state or local sign-in
|
||||
is changed by this build-source update. The preserved legacy patch is historical;
|
||||
the input lock now explicitly selects forgejo-security-extension.patch.
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
{
|
||||
"action": "build",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 13.81,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-c",
|
||||
"-p",
|
||||
"4",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify source_operation_postgres",
|
||||
"-o",
|
||||
"/pg-work/models-auth.test",
|
||||
"./models/auth"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:852bf5cd2d2a8504d3b82723e09f296436e546fefcf6e5c2280e76f2ef1a7f17",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:a58899fab4b0355a6d9436ab726b1aeada01a2987856b3490a15cf3d33984a88"
|
||||
}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
{
|
||||
"action": "build",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 5.88,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt2/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt2",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-c",
|
||||
"-p",
|
||||
"4",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify source_operation_postgres",
|
||||
"-o",
|
||||
"/pg-work/models-auth.test",
|
||||
"./models/auth"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt2",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:0475dfa7d5e31733321134345ff90a3cd9fd8049db9c2b7d54ef1a71c0d70afd",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:9eadebf02dabd91ed50ddd590b62bda1ee4a89cd824069495603ad62b7d144ec"
|
||||
}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
{
|
||||
"action": "build",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 6.08,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt3/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt3",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-c",
|
||||
"-p",
|
||||
"4",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify source_operation_postgres",
|
||||
"-o",
|
||||
"/pg-work/models-auth.test",
|
||||
"./models/auth"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt3",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:b1da12376c4ee8f30e5b8302236fc77b30dd0b39b6c1c570134508bce15f55d8"
|
||||
}
|
||||
|
|
@ -0,0 +1,197 @@
|
|||
{
|
||||
"action": "build",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 12.52,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-c",
|
||||
"-p",
|
||||
"4",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify source_operation_postgres",
|
||||
"-o",
|
||||
"/pg-work/models-auth.test",
|
||||
"./models/auth"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:53d35e31ae9f318d8f77a323fdc5b18bae804bdc86ccb639f335dfbe59e9b17c"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,197 @@
|
|||
{
|
||||
"action": "build",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 6.03,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-c",
|
||||
"-p",
|
||||
"4",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify source_operation_postgres",
|
||||
"-o",
|
||||
"/pg-work/models-auth.test",
|
||||
"./models/auth"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt5",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"action": "build",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 15.24,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-lock/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-lock",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-lock/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-c",
|
||||
"-p",
|
||||
"4",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify source_operation_postgres",
|
||||
"-o",
|
||||
"/pg-work/models-auth.test",
|
||||
"./models/auth"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-control-lock",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:137bcc05baf724abfcb9c48a2ef45d5064a6a163c4ba98269364eafb9a1096cd",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "omit-postgres-lock",
|
||||
"original_source_sha256": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"controlled_source_sha256": "sha256:137bcc05baf724abfcb9c48a2ef45d5064a6a163c4ba98269364eafb9a1096cd",
|
||||
"production_source_changed": false
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:82043a82a461a942ff747c59238a3113b5d06de06a2d927c7946df3b22d89498"
|
||||
}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"action": "build",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 7.8,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-private/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-private",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-private/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-c",
|
||||
"-p",
|
||||
"4",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify source_operation_postgres",
|
||||
"-o",
|
||||
"/pg-work/models-auth.test",
|
||||
"./models/auth"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-control-private",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:0b9e248b685a950cfbf31f76aafd54e1b99272402a2f05bc6d8b742bc2657d82",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "omit-private-context",
|
||||
"original_source_sha256": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"controlled_source_sha256": "sha256:0b9e248b685a950cfbf31f76aafd54e1b99272402a2f05bc6d8b742bc2657d82",
|
||||
"production_source_changed": false
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:e5acaf24f87a94f58b1cd9000f04a08186b35f29e6e848835ecd3c7105a9de72"
|
||||
}
|
||||
|
|
@ -0,0 +1,201 @@
|
|||
{
|
||||
"action": "combined-regressions",
|
||||
"returncode": 1,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": false,
|
||||
"seconds": 113.49,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-p",
|
||||
"1",
|
||||
"-json",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify",
|
||||
"./services/auth/source/oauth2",
|
||||
"./cmd",
|
||||
"./models/auth",
|
||||
"./models/db",
|
||||
"-run",
|
||||
"TestAccessEngine|TestVerifiedApplicationIdentity|TestRequired|TestCurrent|TestPrivateSecret|TestSourceOperation|TestSensitiveSQL|TestTracingContext",
|
||||
"-count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt5",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,437 @@
|
|||
{"Time":"2026-10-18T01:08:37.942357346Z","Action":"start","Package":"forgejo.org/services/auth/source/oauth2"}
|
||||
{"Time":"2026-10-18T01:08:38.02991623Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals"}
|
||||
{"Time":"2026-10-18T01:08:38.029972101Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals\n"}
|
||||
{"Time":"2026-10-18T01:08:38.030052643Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods"}
|
||||
{"Time":"2026-10-18T01:08:38.030060128Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods\n"}
|
||||
{"Time":"2026-10-18T01:08:38.032547509Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.032605661Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.032622902Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods"}
|
||||
{"Time":"2026-10-18T01:08:38.032633263Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods\n"}
|
||||
{"Time":"2026-10-18T01:08:38.03287782Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.032903393Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.032916089Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/missing-at"}
|
||||
{"Time":"2026-10-18T01:08:38.03292388Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/missing-at","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/missing-at\n"}
|
||||
{"Time":"2026-10-18T01:08:38.033385888Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/missing-at","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/missing-at (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.033415275Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/missing-at","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.033425248Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/string-at"}
|
||||
{"Time":"2026-10-18T01:08:38.033432543Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/string-at","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/string-at\n"}
|
||||
{"Time":"2026-10-18T01:08:38.033828689Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/string-at","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/string-at (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.033863369Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/string-at","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.033873279Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-level"}
|
||||
{"Time":"2026-10-18T01:08:38.033903649Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-level","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/wrong-level\n"}
|
||||
{"Time":"2026-10-18T01:08:38.034191579Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-level","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/wrong-level (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.0342135Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-level","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.034221155Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/object-methods"}
|
||||
{"Time":"2026-10-18T01:08:38.034226872Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/object-methods","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/object-methods\n"}
|
||||
{"Time":"2026-10-18T01:08:38.034536047Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/object-methods","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/object-methods (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.034556804Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/object-methods","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.034563928Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/empty-methods"}
|
||||
{"Time":"2026-10-18T01:08:38.034569356Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/empty-methods","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/empty-methods\n"}
|
||||
{"Time":"2026-10-18T01:08:38.034897584Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/empty-methods","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/empty-methods (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.034920632Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/empty-methods","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.03492827Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field"}
|
||||
{"Time":"2026-10-18T01:08:38.034933825Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field\n"}
|
||||
{"Time":"2026-10-18T01:08:38.035216317Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.035238716Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.035247949Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication"}
|
||||
{"Time":"2026-10-18T01:08:38.035253477Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication\n"}
|
||||
{"Time":"2026-10-18T01:08:38.035604437Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.035655493Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.035668388Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/future-authentication"}
|
||||
{"Time":"2026-10-18T01:08:38.035674916Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/future-authentication","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/future-authentication\n"}
|
||||
{"Time":"2026-10-18T01:08:38.035949068Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/future-authentication","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/future-authentication (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.035980105Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/future-authentication","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.036118619Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/fractional-at"}
|
||||
{"Time":"2026-10-18T01:08:38.036129954Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/fractional-at","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/fractional-at\n"}
|
||||
{"Time":"2026-10-18T01:08:38.036407766Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/fractional-at","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/fractional-at (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.036427532Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/fractional-at","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.036434971Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa"}
|
||||
{"Time":"2026-10-18T01:08:38.036444196Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa\n"}
|
||||
{"Time":"2026-10-18T01:08:38.036752288Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.036769718Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.036777076Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa"}
|
||||
{"Time":"2026-10-18T01:08:38.036782613Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa\n"}
|
||||
{"Time":"2026-10-18T01:08:38.037139757Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.037172607Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.037185204Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-source"}
|
||||
{"Time":"2026-10-18T01:08:38.037191066Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-source","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/wrong-source\n"}
|
||||
{"Time":"2026-10-18T01:08:38.037586335Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-source","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/wrong-source (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.037615515Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-source","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.038228381Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.038255127Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.038263323Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds"}
|
||||
{"Time":"2026-10-18T01:08:38.038267769Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds","Output":"=== RUN TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds\n"}
|
||||
{"Time":"2026-10-18T01:08:38.038744348Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds","Output":"--- PASS: TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.038763465Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.038769597Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact"}
|
||||
{"Time":"2026-10-18T01:08:38.038777018Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact","Output":"=== RUN TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact\n"}
|
||||
{"Time":"2026-10-18T01:08:38.039129691Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact","Output":"--- PASS: TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.039146022Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.039151396Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient"}
|
||||
{"Time":"2026-10-18T01:08:38.039155535Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient\n"}
|
||||
{"Time":"2026-10-18T01:08:38.039162406Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty"}
|
||||
{"Time":"2026-10-18T01:08:38.039166383Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty\n"}
|
||||
{"Time":"2026-10-18T01:08:38.039589896Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.039619788Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.039626226Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client"}
|
||||
{"Time":"2026-10-18T01:08:38.03964601Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client\n"}
|
||||
{"Time":"2026-10-18T01:08:38.040082661Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.040112806Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.040119533Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/number"}
|
||||
{"Time":"2026-10-18T01:08:38.040124727Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/number","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient/number\n"}
|
||||
{"Time":"2026-10-18T01:08:38.040412575Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/number","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient/number (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.040441863Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/number","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.040450682Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/array"}
|
||||
{"Time":"2026-10-18T01:08:38.040455552Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/array","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient/array\n"}
|
||||
{"Time":"2026-10-18T01:08:38.040935613Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/array","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient/array (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.040977543Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/array","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.040986488Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.040993333Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.040998977Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyAcceptsAdmittedClient"}
|
||||
{"Time":"2026-10-18T01:08:38.041003793Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyAcceptsAdmittedClient","Output":"=== RUN TestAccessEngineAuthorizedPartyAcceptsAdmittedClient\n"}
|
||||
{"Time":"2026-10-18T01:08:38.041969774Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyAcceptsAdmittedClient","Output":"--- PASS: TestAccessEngineAuthorizedPartyAcceptsAdmittedClient (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.042022831Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyAcceptsAdmittedClient","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.042034039Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision"}
|
||||
{"Time":"2026-10-18T01:08:38.042063941Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision","Output":"=== RUN TestAccessEngineActualCallbackAllowsAuthenticatedDecision\n"}
|
||||
{"Time":"2026-10-18T01:08:38.042081281Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins"}
|
||||
{"Time":"2026-10-18T01:08:38.042087818Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins","Output":"=== RUN TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins\n"}
|
||||
{"Time":"2026-10-18T01:08:38.060386001Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins","Output":"--- PASS: TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.060433171Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:08:38.06044024Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners"}
|
||||
{"Time":"2026-10-18T01:08:38.060443811Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners","Output":"=== RUN TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners\n"}
|
||||
{"Time":"2026-10-18T01:08:38.067923765Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners","Output":"--- PASS: TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.067970564Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.068057013Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers"}
|
||||
{"Time":"2026-10-18T01:08:38.068067193Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers","Output":"=== RUN TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers\n"}
|
||||
{"Time":"2026-10-18T01:08:38.076490055Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers","Output":"--- PASS: TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.076544438Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.076556359Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision","Output":"--- PASS: TestAccessEngineActualCallbackAllowsAuthenticatedDecision (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.076562022Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:08:38.076567946Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP"}
|
||||
{"Time":"2026-10-18T01:08:38.076572797Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP\n"}
|
||||
{"Time":"2026-10-18T01:08:38.07659654Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny"}
|
||||
{"Time":"2026-10-18T01:08:38.076602807Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny\n"}
|
||||
{"Time":"2026-10-18T01:08:38.083463046Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.083516031Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.083524084Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned"}
|
||||
{"Time":"2026-10-18T01:08:38.083528178Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned\n"}
|
||||
{"Time":"2026-10-18T01:08:38.090174922Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.090227925Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.090242686Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key"}
|
||||
{"Time":"2026-10-18T01:08:38.090247312Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key\n"}
|
||||
{"Time":"2026-10-18T01:08:38.097754175Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.097804672Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.097812778Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin"}
|
||||
{"Time":"2026-10-18T01:08:38.097817638Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin\n"}
|
||||
{"Time":"2026-10-18T01:08:38.105249939Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.105298993Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.105308101Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding"}
|
||||
{"Time":"2026-10-18T01:08:38.105313502Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding\n"}
|
||||
{"Time":"2026-10-18T01:08:38.112656204Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.112702697Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.112711795Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired"}
|
||||
{"Time":"2026-10-18T01:08:38.112717593Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired\n"}
|
||||
{"Time":"2026-10-18T01:08:38.12088967Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.120933746Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.120942799Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP (0.04s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.120948552Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP","Elapsed":0.04}
|
||||
{"Time":"2026-10-18T01:08:38.120956181Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP"}
|
||||
{"Time":"2026-10-18T01:08:38.120961077Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP\n"}
|
||||
{"Time":"2026-10-18T01:08:38.120965703Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups"}
|
||||
{"Time":"2026-10-18T01:08:38.120969599Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups\n"}
|
||||
{"Time":"2026-10-18T01:08:38.123261541Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.123328647Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.123346096Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source"}
|
||||
{"Time":"2026-10-18T01:08:38.123354527Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source\n"}
|
||||
{"Time":"2026-10-18T01:08:38.125041159Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.12509896Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.12513016Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider"}
|
||||
{"Time":"2026-10-18T01:08:38.125138708Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider\n"}
|
||||
{"Time":"2026-10-18T01:08:38.127340985Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.127380273Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.12738893Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience"}
|
||||
{"Time":"2026-10-18T01:08:38.127394475Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience\n"}
|
||||
{"Time":"2026-10-18T01:08:38.129019429Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.129064686Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.129071666Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission"}
|
||||
{"Time":"2026-10-18T01:08:38.129076183Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission\n"}
|
||||
{"Time":"2026-10-18T01:08:38.130278038Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.130306551Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.130313539Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity"}
|
||||
{"Time":"2026-10-18T01:08:38.130317985Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity\n"}
|
||||
{"Time":"2026-10-18T01:08:38.13139377Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.131428315Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.131436575Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token"}
|
||||
{"Time":"2026-10-18T01:08:38.131453157Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token\n"}
|
||||
{"Time":"2026-10-18T01:08:38.13267415Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.132719588Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.132727072Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user"}
|
||||
{"Time":"2026-10-18T01:08:38.132731752Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user\n"}
|
||||
{"Time":"2026-10-18T01:08:38.13405843Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.134105735Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.134123129Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject"}
|
||||
{"Time":"2026-10-18T01:08:38.134127827Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject\n"}
|
||||
{"Time":"2026-10-18T01:08:38.135942521Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.136077104Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.136086707Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token"}
|
||||
{"Time":"2026-10-18T01:08:38.136122623Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token\n"}
|
||||
{"Time":"2026-10-18T01:08:38.13805575Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.13809997Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.138116887Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.138122198Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:08:38.138143443Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE"}
|
||||
{"Time":"2026-10-18T01:08:38.138150224Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE\n"}
|
||||
{"Time":"2026-10-18T01:08:38.138630933Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/empty-subject"}
|
||||
{"Time":"2026-10-18T01:08:38.138647218Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/empty-subject","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/empty-subject\n"}
|
||||
{"Time":"2026-10-18T01:08:38.139089192Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/empty-subject","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/empty-subject (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.139124846Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/empty-subject","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.139141573Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/expired"}
|
||||
{"Time":"2026-10-18T01:08:38.139150483Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/expired","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/expired\n"}
|
||||
{"Time":"2026-10-18T01:08:38.139639224Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/expired","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/expired (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.139675113Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/expired","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.139685771Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/future-issued"}
|
||||
{"Time":"2026-10-18T01:08:38.139691226Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/future-issued","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/future-issued\n"}
|
||||
{"Time":"2026-10-18T01:08:38.140187391Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/future-issued","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/future-issued (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.140250999Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/future-issued","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.140263966Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/old-issued"}
|
||||
{"Time":"2026-10-18T01:08:38.140269475Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/old-issued","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/old-issued\n"}
|
||||
{"Time":"2026-10-18T01:08:38.140753837Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/old-issued","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/old-issued (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.14078501Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/old-issued","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.140794694Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-principal"}
|
||||
{"Time":"2026-10-18T01:08:38.140818545Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-principal","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-principal\n"}
|
||||
{"Time":"2026-10-18T01:08:38.141227324Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-principal","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-principal (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.141247351Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-principal","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.141256494Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/issuer"}
|
||||
{"Time":"2026-10-18T01:08:38.14126121Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/issuer","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/issuer\n"}
|
||||
{"Time":"2026-10-18T01:08:38.14175302Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/issuer","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/issuer (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.141777358Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/issuer","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.141786988Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/audience"}
|
||||
{"Time":"2026-10-18T01:08:38.141792065Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/audience","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/audience\n"}
|
||||
{"Time":"2026-10-18T01:08:38.142257129Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/audience","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/audience (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.142284181Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/audience","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.142293893Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-exp"}
|
||||
{"Time":"2026-10-18T01:08:38.142301422Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-exp","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-exp\n"}
|
||||
{"Time":"2026-10-18T01:08:38.142974782Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-exp","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-exp (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.14301747Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-exp","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.143027957Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-iat"}
|
||||
{"Time":"2026-10-18T01:08:38.143032096Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-iat","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-iat\n"}
|
||||
{"Time":"2026-10-18T01:08:38.143567621Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-iat","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-iat (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.143613519Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-iat","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.143665495Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-tenant"}
|
||||
{"Time":"2026-10-18T01:08:38.143682104Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-tenant","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-tenant\n"}
|
||||
{"Time":"2026-10-18T01:08:38.144339272Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-tenant","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-tenant (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.14438893Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-tenant","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.144404693Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-assurance"}
|
||||
{"Time":"2026-10-18T01:08:38.144409968Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-assurance","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-assurance\n"}
|
||||
{"Time":"2026-10-18T01:08:38.145033278Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-assurance","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-assurance (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.145075524Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-assurance","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.145091052Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp"}
|
||||
{"Time":"2026-10-18T01:08:38.14510061Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp\n"}
|
||||
{"Time":"2026-10-18T01:08:38.145490465Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.145520294Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.145527742Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-key"}
|
||||
{"Time":"2026-10-18T01:08:38.14553813Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-key","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/wrong-key\n"}
|
||||
{"Time":"2026-10-18T01:08:38.145833517Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-key","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/wrong-key (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.145853364Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-key","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.145865032Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/unknown-key"}
|
||||
{"Time":"2026-10-18T01:08:38.145877476Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/unknown-key","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/unknown-key\n"}
|
||||
{"Time":"2026-10-18T01:08:38.14606701Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/unknown-key","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/unknown-key (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.14610426Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/unknown-key","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.146110707Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-type"}
|
||||
{"Time":"2026-10-18T01:08:38.146115171Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-type","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/wrong-type\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146244631Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-type","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/wrong-type (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146272882Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-type","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.146282342Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion"}
|
||||
{"Time":"2026-10-18T01:08:38.14628703Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146428322Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146451262Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.146459134Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/none"}
|
||||
{"Time":"2026-10-18T01:08:38.146463435Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/none","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/none\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146472804Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/none","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/none (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146517061Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/none","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.146537863Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146548747Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:08:38.146631282Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimExactAnyOfAndNoMutation"}
|
||||
{"Time":"2026-10-18T01:08:38.146644321Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimExactAnyOfAndNoMutation","Output":"=== RUN TestRequiredClaimExactAnyOfAndNoMutation\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146744863Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimExactAnyOfAndNoMutation","Output":"--- PASS: TestRequiredClaimExactAnyOfAndNoMutation (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146764431Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimExactAnyOfAndNoMutation","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.146803809Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimConfigurationRefusalsAndLegacyIsolation"}
|
||||
{"Time":"2026-10-18T01:08:38.146816208Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimConfigurationRefusalsAndLegacyIsolation","Output":"=== RUN TestRequiredClaimConfigurationRefusalsAndLegacyIsolation\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146828444Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimConfigurationRefusalsAndLegacyIsolation","Output":"--- PASS: TestRequiredClaimConfigurationRefusalsAndLegacyIsolation (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.146835748Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimConfigurationRefusalsAndLegacyIsolation","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.146854883Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable"}
|
||||
{"Time":"2026-10-18T01:08:38.146861393Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable","Output":"=== RUN TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable\n"}
|
||||
{"Time":"2026-10-18T01:08:38.151405928Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable","Output":"--- PASS: TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.15147482Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.151489392Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval"}
|
||||
{"Time":"2026-10-18T01:08:38.151495731Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval","Output":"=== RUN TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval\n"}
|
||||
{"Time":"2026-10-18T01:08:38.151511701Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval","Output":"--- PASS: TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.151535578Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.151548581Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse"}
|
||||
{"Time":"2026-10-18T01:08:38.151556183Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse","Output":"=== RUN TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse\n"}
|
||||
{"Time":"2026-10-18T01:08:38.151579925Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse","Output":"--- PASS: TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:08:38.151600908Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:08:38.151642234Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:08:38.161114359Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Output":"ok \tforgejo.org/services/auth/source/oauth2\t0.218s\n"}
|
||||
{"Time":"2026-10-18T01:08:38.161169977Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Elapsed":0.219}
|
||||
{"Time":"2026-10-18T01:09:36.44937704Z","Action":"start","Package":"forgejo.org/cmd"}
|
||||
{"Time":"2026-10-18T01:09:36.72251156Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722695863Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1279375576/attachments\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722765837Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:36.72278141Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1279375576/avatars\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722791194Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:36.72279884Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1279375576/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722806451Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722813638Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1279375576/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:09:36.72282096Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722827876Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1279375576/packages\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722846578Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722854179Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1279375576/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722861168Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:36.722867985Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:09:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/go-build2012268276/b1034/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:09:36.933855782Z","Action":"run","Package":"forgejo.org/cmd","Test":"TestPrivateSecretMetadata"}
|
||||
{"Time":"2026-10-18T01:09:36.93390342Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretMetadata","Output":"=== RUN TestPrivateSecretMetadata\n"}
|
||||
{"Time":"2026-10-18T01:09:36.933918659Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretMetadata","Output":"--- PASS: TestPrivateSecretMetadata (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:09:36.933933474Z","Action":"pass","Package":"forgejo.org/cmd","Test":"TestPrivateSecretMetadata","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:09:36.934066785Z","Action":"run","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement"}
|
||||
{"Time":"2026-10-18T01:09:36.934079148Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement","Output":"=== RUN TestPrivateSecretOpenedFileReplacement\n"}
|
||||
{"Time":"2026-10-18T01:09:36.93684219Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement","Output":" admin_auth_oauth_secret_linux_test.go:74: rename /run/writable-input/race-replacement /run/writable-input/race: no such file or directory\n"}
|
||||
{"Time":"2026-10-18T01:09:36.936927006Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement","Output":"--- FAIL: TestPrivateSecretOpenedFileReplacement (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:09:36.936948233Z","Action":"fail","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:09:36.937533425Z","Action":"output","Package":"forgejo.org/cmd","Output":"FAIL\n"}
|
||||
{"Time":"2026-10-18T01:09:36.978993641Z","Action":"output","Package":"forgejo.org/cmd","Output":"FAIL\tforgejo.org/cmd\t0.529s\n"}
|
||||
{"Time":"2026-10-18T01:09:36.979049521Z","Action":"fail","Package":"forgejo.org/cmd","Elapsed":0.53}
|
||||
{"Time":"2026-10-18T01:09:59.109713139Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:09:59.339505364Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339577069Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1964458793/attachments\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339586744Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339596014Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1964458793/avatars\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339604157Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339612092Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1964458793/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339619838Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339627674Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1964458793/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339635888Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339643724Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1964458793/packages\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339651398Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339659099Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1964458793/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:09:59.33970093Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:09:59.339723843Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:09:59 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/go-build2012268276/b1314/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:09:59.492752156Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationDatabaseWriterExclusion"}
|
||||
{"Time":"2026-10-18T01:09:59.492810335Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationDatabaseWriterExclusion","Output":"=== RUN TestSourceOperationDatabaseWriterExclusion\n"}
|
||||
{"Time":"2026-10-18T01:09:59.594543385Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationDatabaseWriterExclusion","Output":"--- PASS: TestSourceOperationDatabaseWriterExclusion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:09:59.594628435Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationDatabaseWriterExclusion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:09:59.594650473Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging"}
|
||||
{"Time":"2026-10-18T01:09:59.594656226Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Output":"=== RUN TestSourceOperationRefusesActualXORMArgumentLogging\n"}
|
||||
{"Time":"2026-10-18T01:09:59.594911618Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Output":"[xorm] [info] 2026/10/18 01:09:59.594763 [SQL] BEGIN TRANSACTION [] - 150.209µs\n"}
|
||||
{"Time":"2026-10-18T01:09:59.594942088Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Output":"[xorm] [info] 2026/10/18 01:09:59.594857 [SQL] ROLLBACK [] - 25.772µs\n"}
|
||||
{"Time":"2026-10-18T01:09:59.594963531Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Output":"--- PASS: TestSourceOperationRefusesActualXORMArgumentLogging (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:09:59.59497822Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:09:59.597123297Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationProcessRecovery"}
|
||||
{"Time":"2026-10-18T01:09:59.597176156Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationProcessRecovery","Output":"=== RUN TestSourceOperationProcessRecovery\n"}
|
||||
{"Time":"2026-10-18T01:10:02.249743726Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationProcessRecovery","Output":"--- PASS: TestSourceOperationProcessRecovery (2.65s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.249844818Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationProcessRecovery","Elapsed":2.65}
|
||||
{"Time":"2026-10-18T01:10:02.249877542Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationCreateAndInverse"}
|
||||
{"Time":"2026-10-18T01:10:02.249895423Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationCreateAndInverse","Output":"=== RUN TestSourceOperationCreateAndInverse\n"}
|
||||
{"Time":"2026-10-18T01:10:02.279279803Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationCreateAndInverse","Output":"--- PASS: TestSourceOperationCreateAndInverse (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.279363177Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationCreateAndInverse","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:10:02.27938067Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRestoresExactRawPreexisting"}
|
||||
{"Time":"2026-10-18T01:10:02.279388479Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRestoresExactRawPreexisting","Output":"=== RUN TestSourceOperationRestoresExactRawPreexisting\n"}
|
||||
{"Time":"2026-10-18T01:10:02.301909786Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRestoresExactRawPreexisting","Output":"--- PASS: TestSourceOperationRestoresExactRawPreexisting (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.30197086Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRestoresExactRawPreexisting","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:10:02.301988894Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationUnchangedNeverDeletesPreexisting"}
|
||||
{"Time":"2026-10-18T01:10:02.301997127Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationUnchangedNeverDeletesPreexisting","Output":"=== RUN TestSourceOperationUnchangedNeverDeletesPreexisting\n"}
|
||||
{"Time":"2026-10-18T01:10:02.333928333Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationUnchangedNeverDeletesPreexisting","Output":"--- PASS: TestSourceOperationUnchangedNeverDeletesPreexisting (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.333974736Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationUnchangedNeverDeletesPreexisting","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:10:02.333988235Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses"}
|
||||
{"Time":"2026-10-18T01:10:02.33399461Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses","Output":"=== RUN TestSourceOperationPrivateDriftRefuses\n"}
|
||||
{"Time":"2026-10-18T01:10:02.334242557Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-apply"}
|
||||
{"Time":"2026-10-18T01:10:02.334265416Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-apply","Output":"=== RUN TestSourceOperationPrivateDriftRefuses/before-apply\n"}
|
||||
{"Time":"2026-10-18T01:10:02.359245801Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-apply","Output":"--- PASS: TestSourceOperationPrivateDriftRefuses/before-apply (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.35930967Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-apply","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:10:02.359333971Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-inverse"}
|
||||
{"Time":"2026-10-18T01:10:02.359353403Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-inverse","Output":"=== RUN TestSourceOperationPrivateDriftRefuses/before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:10:02.387167083Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-inverse","Output":"--- PASS: TestSourceOperationPrivateDriftRefuses/before-inverse (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.387212133Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-inverse","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:10:02.387223144Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses","Output":"--- PASS: TestSourceOperationPrivateDriftRefuses (0.05s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.387230493Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses","Elapsed":0.05}
|
||||
{"Time":"2026-10-18T01:10:02.387241241Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationStockCRUDDriftRefuses"}
|
||||
{"Time":"2026-10-18T01:10:02.387247427Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationStockCRUDDriftRefuses","Output":"=== RUN TestSourceOperationStockCRUDDriftRefuses\n"}
|
||||
{"Time":"2026-10-18T01:10:02.411254298Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationStockCRUDDriftRefuses","Output":"--- PASS: TestSourceOperationStockCRUDDriftRefuses (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.411303532Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationStockCRUDDriftRefuses","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:10:02.411332261Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion"}
|
||||
{"Time":"2026-10-18T01:10:02.411338745Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion","Output":"=== RUN TestSourceOperationLinkedSourceRefusesDeletion\n"}
|
||||
{"Time":"2026-10-18T01:10:02.411353551Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/user"}
|
||||
{"Time":"2026-10-18T01:10:02.411359024Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/user","Output":"=== RUN TestSourceOperationLinkedSourceRefusesDeletion/user\n"}
|
||||
{"Time":"2026-10-18T01:10:02.435939087Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/user","Output":"--- PASS: TestSourceOperationLinkedSourceRefusesDeletion/user (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.435988041Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/user","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:10:02.435998772Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/external"}
|
||||
{"Time":"2026-10-18T01:10:02.436004624Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/external","Output":"=== RUN TestSourceOperationLinkedSourceRefusesDeletion/external\n"}
|
||||
{"Time":"2026-10-18T01:10:02.459357759Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/external","Output":"--- PASS: TestSourceOperationLinkedSourceRefusesDeletion/external (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.459418995Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/external","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:10:02.459434964Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion","Output":"--- PASS: TestSourceOperationLinkedSourceRefusesDeletion (0.05s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.459444117Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion","Elapsed":0.05}
|
||||
{"Time":"2026-10-18T01:10:02.459465876Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPreparedCancellationAndIDReuse"}
|
||||
{"Time":"2026-10-18T01:10:02.459473946Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPreparedCancellationAndIDReuse","Output":"=== RUN TestSourceOperationPreparedCancellationAndIDReuse\n"}
|
||||
{"Time":"2026-10-18T01:10:02.483978357Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPreparedCancellationAndIDReuse","Output":"--- PASS: TestSourceOperationPreparedCancellationAndIDReuse (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.484030964Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPreparedCancellationAndIDReuse","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:10:02.4840455Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRejectsUnsafeRuntime"}
|
||||
{"Time":"2026-10-18T01:10:02.484053128Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRejectsUnsafeRuntime","Output":"=== RUN TestSourceOperationRejectsUnsafeRuntime\n"}
|
||||
{"Time":"2026-10-18T01:10:02.513315243Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRejectsUnsafeRuntime","Output":"--- PASS: TestSourceOperationRejectsUnsafeRuntime (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.513387859Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRejectsUnsafeRuntime","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:10:02.513406452Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesSharedManagedSource"}
|
||||
{"Time":"2026-10-18T01:10:02.51344299Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesSharedManagedSource","Output":"=== RUN TestSourceOperationRefusesSharedManagedSource\n"}
|
||||
{"Time":"2026-10-18T01:10:02.545933826Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesSharedManagedSource","Output":"--- PASS: TestSourceOperationRefusesSharedManagedSource (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.546001239Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesSharedManagedSource","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:10:02.546024017Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationBoundsPrivateJournalCustody"}
|
||||
{"Time":"2026-10-18T01:10:02.546033827Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationBoundsPrivateJournalCustody","Output":"=== RUN TestSourceOperationBoundsPrivateJournalCustody\n"}
|
||||
{"Time":"2026-10-18T01:10:02.574522351Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationBoundsPrivateJournalCustody","Output":"--- PASS: TestSourceOperationBoundsPrivateJournalCustody (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.574585716Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationBoundsPrivateJournalCustody","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:10:02.57461164Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRequiresExactPostState"}
|
||||
{"Time":"2026-10-18T01:10:02.57462073Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRequiresExactPostState","Output":"=== RUN TestSourceOperationRequiresExactPostState\n"}
|
||||
{"Time":"2026-10-18T01:10:02.599179436Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRequiresExactPostState","Output":"--- PASS: TestSourceOperationRequiresExactPostState (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:10:02.599231412Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRequiresExactPostState","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:10:02.599583593Z","Action":"output","Package":"forgejo.org/models/auth","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:10:02.639359789Z","Action":"output","Package":"forgejo.org/models/auth","Output":"ok \tforgejo.org/models/auth\t3.529s\n"}
|
||||
{"Time":"2026-10-18T01:10:02.639410908Z","Action":"pass","Package":"forgejo.org/models/auth","Elapsed":3.5300000000000002}
|
||||
{"Time":"2026-10-18T01:10:11.401985609Z","Action":"start","Package":"forgejo.org/models/db"}
|
||||
{"Time":"2026-10-18T01:10:11.729344921Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729432857Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1233407081/attachments\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729449864Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729463723Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1233407081/avatars\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729474679Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729484869Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1233407081/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729495274Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729544283Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1233407081/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729555573Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729572724Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1233407081/packages\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729580415Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729588323Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1233407081/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729597954Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:10:11.729604663Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:10:11 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/go-build2012268276/b1335/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:10:11.912112395Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine"}
|
||||
{"Time":"2026-10-18T01:10:11.912176264Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine\n"}
|
||||
{"Time":"2026-10-18T01:10:11.912338076Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine"}
|
||||
{"Time":"2026-10-18T01:10:11.912371206Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine/engine\n"}
|
||||
{"Time":"2026-10-18T01:10:11.912418663Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine/engine (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:10:11.912435138Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:10:11.912456446Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session"}
|
||||
{"Time":"2026-10-18T01:10:11.912469412Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine/session\n"}
|
||||
{"Time":"2026-10-18T01:10:11.912483867Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine/session (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:10:11.912498295Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:10:11.912528692Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:10:11.912541604Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:10:11.91257248Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks"}
|
||||
{"Time":"2026-10-18T01:10:11.912587042Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Output":"=== RUN TestSensitiveSQLHooks\n"}
|
||||
{"Time":"2026-10-18T01:10:11.917359519Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Output":"--- PASS: TestSensitiveSQLHooks (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:10:11.917418375Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:10:11.91743191Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation"}
|
||||
{"Time":"2026-10-18T01:10:11.917439484Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Output":"=== RUN TestSensitiveSQLActualContextPropagation\n"}
|
||||
{"Time":"2026-10-18T01:10:11.925345301Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Output":"--- PASS: TestSensitiveSQLActualContextPropagation (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:10:11.925393155Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:10:11.925412434Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks"}
|
||||
{"Time":"2026-10-18T01:10:11.925428413Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Output":"=== RUN TestTracingContextSurvivesFollowingHooks\n"}
|
||||
{"Time":"2026-10-18T01:10:11.940422188Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Output":"--- PASS: TestTracingContextSurvivesFollowingHooks (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:10:11.940475534Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:10:11.941079952Z","Action":"output","Package":"forgejo.org/models/db","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:10:11.9794297Z","Action":"output","Package":"forgejo.org/models/db","Output":"ok \tforgejo.org/models/db\t0.577s\n"}
|
||||
{"Time":"2026-10-18T01:10:11.979489755Z","Action":"pass","Package":"forgejo.org/models/db","Elapsed":0.578}
|
||||
|
|
@ -0,0 +1,195 @@
|
|||
{
|
||||
"action": "combined-regressions",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 23.63,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-net",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-release-r4",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/db",
|
||||
"/work/source/models/db",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/descriptor-fixtures-attempt2",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/descriptor-fixtures-attempt2",
|
||||
"/run/writable-input",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-p",
|
||||
"1",
|
||||
"-json",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify",
|
||||
"./services/auth/source/oauth2",
|
||||
"./cmd",
|
||||
"./models/auth",
|
||||
"./models/db",
|
||||
"-run",
|
||||
"TestAccessEngine|TestVerifiedApplicationIdentity|TestRequired|TestCurrent|TestPrivateSecret|TestSourceOperation|TestSensitiveSQL|TestTracingContext",
|
||||
"-count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt5",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
"original_composite_patch": "sha256:feb1079399a43989742ae0a946c1ada50113d1821e6541f97f0b5592ee1fc20c",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,436 @@
|
|||
{"Time":"2026-10-18T01:12:23.107872463Z","Action":"start","Package":"forgejo.org/services/auth/source/oauth2"}
|
||||
{"Time":"2026-10-18T01:12:23.194015099Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals"}
|
||||
{"Time":"2026-10-18T01:12:23.19406675Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals\n"}
|
||||
{"Time":"2026-10-18T01:12:23.194110556Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/object-methods"}
|
||||
{"Time":"2026-10-18T01:12:23.194116624Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/object-methods","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/object-methods\n"}
|
||||
{"Time":"2026-10-18T01:12:23.196052187Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/object-methods","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/object-methods (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.196077408Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/object-methods","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.196089725Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/empty-methods"}
|
||||
{"Time":"2026-10-18T01:12:23.196096254Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/empty-methods","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/empty-methods\n"}
|
||||
{"Time":"2026-10-18T01:12:23.196376546Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/empty-methods","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/empty-methods (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.196396411Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/empty-methods","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.196404689Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field"}
|
||||
{"Time":"2026-10-18T01:12:23.196410586Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field\n"}
|
||||
{"Time":"2026-10-18T01:12:23.196774288Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.196816822Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/unknown-object-field","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.196836723Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/missing-at"}
|
||||
{"Time":"2026-10-18T01:12:23.196843928Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/missing-at","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/missing-at\n"}
|
||||
{"Time":"2026-10-18T01:12:23.197004949Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/missing-at","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/missing-at (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.197022163Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/missing-at","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.197030765Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/string-at"}
|
||||
{"Time":"2026-10-18T01:12:23.197054923Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/string-at","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/string-at\n"}
|
||||
{"Time":"2026-10-18T01:12:23.197302554Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/string-at","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/string-at (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.197319191Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/string-at","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.197326603Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa"}
|
||||
{"Time":"2026-10-18T01:12:23.197332329Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa\n"}
|
||||
{"Time":"2026-10-18T01:12:23.197575957Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.197600808Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/integer-mfa","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.197608987Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa"}
|
||||
{"Time":"2026-10-18T01:12:23.197618356Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa\n"}
|
||||
{"Time":"2026-10-18T01:12:23.197878648Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.197900506Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/inconsistent-mfa","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.197908811Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-source"}
|
||||
{"Time":"2026-10-18T01:12:23.197914672Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-source","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/wrong-source\n"}
|
||||
{"Time":"2026-10-18T01:12:23.19813023Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-source","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/wrong-source (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.198145207Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-source","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.198151979Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-level"}
|
||||
{"Time":"2026-10-18T01:12:23.198157236Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-level","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/wrong-level\n"}
|
||||
{"Time":"2026-10-18T01:12:23.198409449Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-level","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/wrong-level (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.198423912Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/wrong-level","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.198442632Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods"}
|
||||
{"Time":"2026-10-18T01:12:23.198449215Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods\n"}
|
||||
{"Time":"2026-10-18T01:12:23.198727071Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.198752572Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/mixed-methods","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.198760669Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods"}
|
||||
{"Time":"2026-10-18T01:12:23.19876892Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods\n"}
|
||||
{"Time":"2026-10-18T01:12:23.198998807Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.199019375Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/duplicate-methods","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.199026616Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication"}
|
||||
{"Time":"2026-10-18T01:12:23.199031666Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication\n"}
|
||||
{"Time":"2026-10-18T01:12:23.199276998Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.19929148Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/stale-authentication","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.199298108Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/future-authentication"}
|
||||
{"Time":"2026-10-18T01:12:23.199303193Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/future-authentication","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/future-authentication\n"}
|
||||
{"Time":"2026-10-18T01:12:23.199575713Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/future-authentication","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/future-authentication (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.199594838Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/future-authentication","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.199607282Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/fractional-at"}
|
||||
{"Time":"2026-10-18T01:12:23.199615073Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/fractional-at","Output":"=== RUN TestAccessEngineKeyCapeAssuranceRefusals/fractional-at\n"}
|
||||
{"Time":"2026-10-18T01:12:23.199887773Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/fractional-at","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals/fractional-at (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.199911028Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals/fractional-at","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.200351214Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals","Output":"--- PASS: TestAccessEngineKeyCapeAssuranceRefusals (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.200373108Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeAssuranceRefusals","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.200381278Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds"}
|
||||
{"Time":"2026-10-18T01:12:23.200386318Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds","Output":"=== RUN TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds\n"}
|
||||
{"Time":"2026-10-18T01:12:23.200841257Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds","Output":"--- PASS: TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.200867776Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeIdentityFactsAndFreshnessBounds","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.200878047Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact"}
|
||||
{"Time":"2026-10-18T01:12:23.200883313Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact","Output":"=== RUN TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact\n"}
|
||||
{"Time":"2026-10-18T01:12:23.20111869Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact","Output":"--- PASS: TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.20113392Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineKeyCapeLowerAssuranceIsAnIdentityFact","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.201143208Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient"}
|
||||
{"Time":"2026-10-18T01:12:23.2011487Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient\n"}
|
||||
{"Time":"2026-10-18T01:12:23.201157158Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client"}
|
||||
{"Time":"2026-10-18T01:12:23.20116218Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client\n"}
|
||||
{"Time":"2026-10-18T01:12:23.201484069Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.201498776Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/other-client","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.201505855Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/number"}
|
||||
{"Time":"2026-10-18T01:12:23.201525855Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/number","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient/number\n"}
|
||||
{"Time":"2026-10-18T01:12:23.201769979Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/number","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient/number (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.201785065Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/number","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.201791864Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/array"}
|
||||
{"Time":"2026-10-18T01:12:23.201797031Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/array","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient/array\n"}
|
||||
{"Time":"2026-10-18T01:12:23.202041516Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/array","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient/array (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.202060344Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/array","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.202067368Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty"}
|
||||
{"Time":"2026-10-18T01:12:23.202072634Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty","Output":"=== RUN TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty\n"}
|
||||
{"Time":"2026-10-18T01:12:23.202307993Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.202323963Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient/empty","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.202331402Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient","Output":"--- PASS: TestAccessEngineAuthorizedPartyRefusesAnotherClient (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.202347191Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyRefusesAnotherClient","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.202353089Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyAcceptsAdmittedClient"}
|
||||
{"Time":"2026-10-18T01:12:23.202357958Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyAcceptsAdmittedClient","Output":"=== RUN TestAccessEngineAuthorizedPartyAcceptsAdmittedClient\n"}
|
||||
{"Time":"2026-10-18T01:12:23.202770208Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyAcceptsAdmittedClient","Output":"--- PASS: TestAccessEngineAuthorizedPartyAcceptsAdmittedClient (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.202785664Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineAuthorizedPartyAcceptsAdmittedClient","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.202792202Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision"}
|
||||
{"Time":"2026-10-18T01:12:23.202811381Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision","Output":"=== RUN TestAccessEngineActualCallbackAllowsAuthenticatedDecision\n"}
|
||||
{"Time":"2026-10-18T01:12:23.202818829Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins"}
|
||||
{"Time":"2026-10-18T01:12:23.202824123Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins","Output":"=== RUN TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins\n"}
|
||||
{"Time":"2026-10-18T01:12:23.220543576Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins","Output":"--- PASS: TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.220595227Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-admins","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:23.220621332Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners"}
|
||||
{"Time":"2026-10-18T01:12:23.220632126Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners","Output":"=== RUN TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners\n"}
|
||||
{"Time":"2026-10-18T01:12:23.227940064Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners","Output":"--- PASS: TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.227989876Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-owners","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.22799947Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers"}
|
||||
{"Time":"2026-10-18T01:12:23.228004718Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers","Output":"=== RUN TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers\n"}
|
||||
{"Time":"2026-10-18T01:12:23.236625784Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers","Output":"--- PASS: TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.236704316Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision/forge-coulomb-readers","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.236715362Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision","Output":"--- PASS: TestAccessEngineActualCallbackAllowsAuthenticatedDecision (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.236750809Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackAllowsAuthenticatedDecision","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:12:23.236762423Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP"}
|
||||
{"Time":"2026-10-18T01:12:23.2367663Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP\n"}
|
||||
{"Time":"2026-10-18T01:12:23.236964879Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny"}
|
||||
{"Time":"2026-10-18T01:12:23.236984086Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny\n"}
|
||||
{"Time":"2026-10-18T01:12:23.246816005Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.246859153Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/deny","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.246867079Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned"}
|
||||
{"Time":"2026-10-18T01:12:23.246870361Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned\n"}
|
||||
{"Time":"2026-10-18T01:12:23.253818143Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.253866331Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/unsigned","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.253875962Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key"}
|
||||
{"Time":"2026-10-18T01:12:23.253881859Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key\n"}
|
||||
{"Time":"2026-10-18T01:12:23.261820508Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.261865577Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-key","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.261873764Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin"}
|
||||
{"Time":"2026-10-18T01:12:23.26187876Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin\n"}
|
||||
{"Time":"2026-10-18T01:12:23.268416158Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.268461632Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-pin","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.268469712Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding"}
|
||||
{"Time":"2026-10-18T01:12:23.268474193Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding\n"}
|
||||
{"Time":"2026-10-18T01:12:23.275666859Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.275723866Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/wrong-binding","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.275739249Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired"}
|
||||
{"Time":"2026-10-18T01:12:23.275744326Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired","Output":"=== RUN TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired\n"}
|
||||
{"Time":"2026-10-18T01:12:23.282539083Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.282593385Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP/expired","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.282605684Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP","Output":"--- PASS: TestAccessEngineActualCallbackRefusesUnverifiedPDP (0.05s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.282613187Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackRefusesUnverifiedPDP","Elapsed":0.05}
|
||||
{"Time":"2026-10-18T01:12:23.282623331Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP"}
|
||||
{"Time":"2026-10-18T01:12:23.282629715Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP\n"}
|
||||
{"Time":"2026-10-18T01:12:23.282636262Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source"}
|
||||
{"Time":"2026-10-18T01:12:23.282641708Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source\n"}
|
||||
{"Time":"2026-10-18T01:12:23.283829622Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.283870326Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-source","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.283878938Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider"}
|
||||
{"Time":"2026-10-18T01:12:23.283885701Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider\n"}
|
||||
{"Time":"2026-10-18T01:12:23.284814353Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.284849511Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-provider","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.284868312Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience"}
|
||||
{"Time":"2026-10-18T01:12:23.284873777Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience\n"}
|
||||
{"Time":"2026-10-18T01:12:23.285815798Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.285856898Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/wrong-audience","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.285865438Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission"}
|
||||
{"Time":"2026-10-18T01:12:23.285871804Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission\n"}
|
||||
{"Time":"2026-10-18T01:12:23.286694323Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.286719373Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-admission","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.28672821Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token"}
|
||||
{"Time":"2026-10-18T01:12:23.28673307Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token\n"}
|
||||
{"Time":"2026-10-18T01:12:23.289408854Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.289466276Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/expired-token","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.289476502Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity"}
|
||||
{"Time":"2026-10-18T01:12:23.289488008Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity\n"}
|
||||
{"Time":"2026-10-18T01:12:23.29083514Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.290876817Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/untrusted-identity","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.290886015Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token"}
|
||||
{"Time":"2026-10-18T01:12:23.290909415Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token\n"}
|
||||
{"Time":"2026-10-18T01:12:23.293218725Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.293265985Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-token","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.293272757Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups"}
|
||||
{"Time":"2026-10-18T01:12:23.293277446Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups\n"}
|
||||
{"Time":"2026-10-18T01:12:23.294761333Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.294807574Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/missing-groups","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.294814697Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user"}
|
||||
{"Time":"2026-10-18T01:12:23.294831298Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user\n"}
|
||||
{"Time":"2026-10-18T01:12:23.296016273Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.296051152Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-user","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.296057906Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject"}
|
||||
{"Time":"2026-10-18T01:12:23.296061999Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject","Output":"=== RUN TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject\n"}
|
||||
{"Time":"2026-10-18T01:12:23.29729968Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.297345776Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP/mismatched-subject","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.297353964Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP","Output":"--- PASS: TestAccessEngineActualCallbackChecksIdentityBeforePDP (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.297364965Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestAccessEngineActualCallbackChecksIdentityBeforePDP","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.297408518Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE"}
|
||||
{"Time":"2026-10-18T01:12:23.297415011Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE\n"}
|
||||
{"Time":"2026-10-18T01:12:23.297807908Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/issuer"}
|
||||
{"Time":"2026-10-18T01:12:23.297880902Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/issuer","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/issuer\n"}
|
||||
{"Time":"2026-10-18T01:12:23.298159862Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/issuer","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/issuer (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.298178014Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/issuer","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.298186815Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/future-issued"}
|
||||
{"Time":"2026-10-18T01:12:23.298191847Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/future-issued","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/future-issued\n"}
|
||||
{"Time":"2026-10-18T01:12:23.298457278Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/future-issued","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/future-issued (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.298469416Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/future-issued","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.298479046Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-iat"}
|
||||
{"Time":"2026-10-18T01:12:23.298483356Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-iat","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-iat\n"}
|
||||
{"Time":"2026-10-18T01:12:23.298761502Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-iat","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-iat (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.298774316Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-iat","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.298782026Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-assurance"}
|
||||
{"Time":"2026-10-18T01:12:23.298786029Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-assurance","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-assurance\n"}
|
||||
{"Time":"2026-10-18T01:12:23.299056727Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-assurance","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-assurance (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.299068062Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-assurance","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.299073075Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/audience"}
|
||||
{"Time":"2026-10-18T01:12:23.299099027Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/audience","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/audience\n"}
|
||||
{"Time":"2026-10-18T01:12:23.299321753Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/audience","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/audience (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.299334107Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/audience","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.299340743Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/expired"}
|
||||
{"Time":"2026-10-18T01:12:23.299344927Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/expired","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/expired\n"}
|
||||
{"Time":"2026-10-18T01:12:23.299641919Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/expired","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/expired (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.299654012Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/expired","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.299660784Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/old-issued"}
|
||||
{"Time":"2026-10-18T01:12:23.299665049Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/old-issued","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/old-issued\n"}
|
||||
{"Time":"2026-10-18T01:12:23.29995507Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/old-issued","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/old-issued (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.299967704Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/old-issued","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.299973159Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-exp"}
|
||||
{"Time":"2026-10-18T01:12:23.299979606Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-exp","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-exp\n"}
|
||||
{"Time":"2026-10-18T01:12:23.300288276Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-exp","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-exp (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.30031145Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-exp","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.300319331Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-tenant"}
|
||||
{"Time":"2026-10-18T01:12:23.300323398Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-tenant","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-tenant\n"}
|
||||
{"Time":"2026-10-18T01:12:23.3005101Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-tenant","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-tenant (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.300524122Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-tenant","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.300529262Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-principal"}
|
||||
{"Time":"2026-10-18T01:12:23.300544149Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-principal","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/no-principal\n"}
|
||||
{"Time":"2026-10-18T01:12:23.300857362Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-principal","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/no-principal (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.300898444Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/no-principal","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.300908787Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp"}
|
||||
{"Time":"2026-10-18T01:12:23.300913314Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp\n"}
|
||||
{"Time":"2026-10-18T01:12:23.301148213Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.301164877Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/multi-audience-no-azp","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.301173552Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/empty-subject"}
|
||||
{"Time":"2026-10-18T01:12:23.301178286Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/empty-subject","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/empty-subject\n"}
|
||||
{"Time":"2026-10-18T01:12:23.301413681Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/empty-subject","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/empty-subject (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.301425322Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/empty-subject","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.301430435Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-key"}
|
||||
{"Time":"2026-10-18T01:12:23.301434439Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-key","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/wrong-key\n"}
|
||||
{"Time":"2026-10-18T01:12:23.301723721Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-key","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/wrong-key (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.301734785Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-key","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.301747644Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/unknown-key"}
|
||||
{"Time":"2026-10-18T01:12:23.301751828Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/unknown-key","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/unknown-key\n"}
|
||||
{"Time":"2026-10-18T01:12:23.301942002Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/unknown-key","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/unknown-key (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.301966673Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/unknown-key","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.30197404Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-type"}
|
||||
{"Time":"2026-10-18T01:12:23.301978107Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-type","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/wrong-type\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302155665Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-type","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/wrong-type (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302167216Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/wrong-type","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.302172392Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion"}
|
||||
{"Time":"2026-10-18T01:12:23.30217636Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302340447Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302353305Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/algorithm-confusion","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.302359239Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/none"}
|
||||
{"Time":"2026-10-18T01:12:23.302363215Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/none","Output":"=== RUN TestVerifiedApplicationIdentityActualJOSE/none\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302435236Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/none","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE/none (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302447986Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE/none","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.302453622Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE","Output":"--- PASS: TestVerifiedApplicationIdentityActualJOSE (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302458266Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestVerifiedApplicationIdentityActualJOSE","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:23.302603597Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimExactAnyOfAndNoMutation"}
|
||||
{"Time":"2026-10-18T01:12:23.302614634Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimExactAnyOfAndNoMutation","Output":"=== RUN TestRequiredClaimExactAnyOfAndNoMutation\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302648449Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimExactAnyOfAndNoMutation","Output":"--- PASS: TestRequiredClaimExactAnyOfAndNoMutation (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302712868Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimExactAnyOfAndNoMutation","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.3027334Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimConfigurationRefusalsAndLegacyIsolation"}
|
||||
{"Time":"2026-10-18T01:12:23.302737774Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimConfigurationRefusalsAndLegacyIsolation","Output":"=== RUN TestRequiredClaimConfigurationRefusalsAndLegacyIsolation\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302766268Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimConfigurationRefusalsAndLegacyIsolation","Output":"--- PASS: TestRequiredClaimConfigurationRefusalsAndLegacyIsolation (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.302772391Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestRequiredClaimConfigurationRefusalsAndLegacyIsolation","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.302865756Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable"}
|
||||
{"Time":"2026-10-18T01:12:23.302876739Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable","Output":"=== RUN TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable\n"}
|
||||
{"Time":"2026-10-18T01:12:23.30714995Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable","Output":"--- PASS: TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.307206822Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardRejectsMissingMalformedAndUnavailable","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.307223846Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval"}
|
||||
{"Time":"2026-10-18T01:12:23.307229915Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval","Output":"=== RUN TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval\n"}
|
||||
{"Time":"2026-10-18T01:12:23.307251024Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval","Output":"--- PASS: TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.307378799Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoEmptyArrayOverwritesAndGroupRemoval","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.307393893Z","Action":"run","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse"}
|
||||
{"Time":"2026-10-18T01:12:23.307400151Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse","Output":"=== RUN TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse\n"}
|
||||
{"Time":"2026-10-18T01:12:23.307416085Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse","Output":"--- PASS: TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:23.307593817Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Test":"TestCurrentUserInfoGuardIsOptInAndRedirectsRefuse","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:23.307628019Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:12:23.314297011Z","Action":"output","Package":"forgejo.org/services/auth/source/oauth2","Output":"ok \tforgejo.org/services/auth/source/oauth2\t0.206s\n"}
|
||||
{"Time":"2026-10-18T01:12:23.314394623Z","Action":"pass","Package":"forgejo.org/services/auth/source/oauth2","Elapsed":0.207}
|
||||
{"Time":"2026-10-18T01:12:28.829932076Z","Action":"start","Package":"forgejo.org/cmd"}
|
||||
{"Time":"2026-10-18T01:12:29.068524071Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:29.06863574Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata843753395/attachments\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068678085Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:29.06868612Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata843753395/avatars\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068692919Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068699438Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata843753395/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068706454Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068712162Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata843753395/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068732495Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068740151Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata843753395/packages\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068745868Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068752442Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata843753395/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068758222Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:29.068764245Z","Action":"output","Package":"forgejo.org/cmd","Output":"2026/10/18 01:12:29 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/go-build4098959969/b1034/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:12:29.455916688Z","Action":"run","Package":"forgejo.org/cmd","Test":"TestPrivateSecretMetadata"}
|
||||
{"Time":"2026-10-18T01:12:29.455979557Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretMetadata","Output":"=== RUN TestPrivateSecretMetadata\n"}
|
||||
{"Time":"2026-10-18T01:12:29.455996212Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretMetadata","Output":"--- PASS: TestPrivateSecretMetadata (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:29.45601237Z","Action":"pass","Package":"forgejo.org/cmd","Test":"TestPrivateSecretMetadata","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:29.456025175Z","Action":"run","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement"}
|
||||
{"Time":"2026-10-18T01:12:29.456030288Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement","Output":"=== RUN TestPrivateSecretOpenedFileReplacement\n"}
|
||||
{"Time":"2026-10-18T01:12:29.456276964Z","Action":"output","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement","Output":"--- PASS: TestPrivateSecretOpenedFileReplacement (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:29.456321383Z","Action":"pass","Package":"forgejo.org/cmd","Test":"TestPrivateSecretOpenedFileReplacement","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:29.45696085Z","Action":"output","Package":"forgejo.org/cmd","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:12:29.487616123Z","Action":"output","Package":"forgejo.org/cmd","Output":"ok \tforgejo.org/cmd\t0.658s\n"}
|
||||
{"Time":"2026-10-18T01:12:29.487693518Z","Action":"pass","Package":"forgejo.org/cmd","Elapsed":0.658}
|
||||
{"Time":"2026-10-18T01:12:32.24391159Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:12:32.437103083Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:32.437286268Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata55143680/attachments\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439621655Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439680141Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata55143680/avatars\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439689059Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439694514Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata55143680/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439700267Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439705759Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata55143680/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:12:32.43971024Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439714812Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata55143680/packages\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439719411Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439725146Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata55143680/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439730655Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:32.439736327Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:12:32 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/go-build4098959969/b1314/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:12:32.550268519Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationDatabaseWriterExclusion"}
|
||||
{"Time":"2026-10-18T01:12:32.550394769Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationDatabaseWriterExclusion","Output":"=== RUN TestSourceOperationDatabaseWriterExclusion\n"}
|
||||
{"Time":"2026-10-18T01:12:32.651494782Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationDatabaseWriterExclusion","Output":"--- PASS: TestSourceOperationDatabaseWriterExclusion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:12:32.65155059Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationDatabaseWriterExclusion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:12:32.651902326Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging"}
|
||||
{"Time":"2026-10-18T01:12:32.651919314Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Output":"=== RUN TestSourceOperationRefusesActualXORMArgumentLogging\n"}
|
||||
{"Time":"2026-10-18T01:12:32.652187071Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Output":"[xorm] [info] 2026/10/18 01:12:32.652031 [SQL] BEGIN TRANSACTION [] - 85.456µs\n"}
|
||||
{"Time":"2026-10-18T01:12:32.652216693Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Output":"[xorm] [info] 2026/10/18 01:12:32.652121 [SQL] ROLLBACK [] - 31.786µs\n"}
|
||||
{"Time":"2026-10-18T01:12:32.652227982Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Output":"--- PASS: TestSourceOperationRefusesActualXORMArgumentLogging (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:32.652237306Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesActualXORMArgumentLogging","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:32.654015671Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationProcessRecovery"}
|
||||
{"Time":"2026-10-18T01:12:32.654070009Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationProcessRecovery","Output":"=== RUN TestSourceOperationProcessRecovery\n"}
|
||||
{"Time":"2026-10-18T01:12:34.27579293Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationProcessRecovery","Output":"--- PASS: TestSourceOperationProcessRecovery (1.62s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.275865636Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationProcessRecovery","Elapsed":1.62}
|
||||
{"Time":"2026-10-18T01:12:34.27589184Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationCreateAndInverse"}
|
||||
{"Time":"2026-10-18T01:12:34.275900317Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationCreateAndInverse","Output":"=== RUN TestSourceOperationCreateAndInverse\n"}
|
||||
{"Time":"2026-10-18T01:12:34.299633307Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationCreateAndInverse","Output":"--- PASS: TestSourceOperationCreateAndInverse (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.299688502Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationCreateAndInverse","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.299700441Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRestoresExactRawPreexisting"}
|
||||
{"Time":"2026-10-18T01:12:34.299706599Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRestoresExactRawPreexisting","Output":"=== RUN TestSourceOperationRestoresExactRawPreexisting\n"}
|
||||
{"Time":"2026-10-18T01:12:34.321309202Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRestoresExactRawPreexisting","Output":"--- PASS: TestSourceOperationRestoresExactRawPreexisting (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.321366452Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRestoresExactRawPreexisting","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.321393901Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationUnchangedNeverDeletesPreexisting"}
|
||||
{"Time":"2026-10-18T01:12:34.321400998Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationUnchangedNeverDeletesPreexisting","Output":"=== RUN TestSourceOperationUnchangedNeverDeletesPreexisting\n"}
|
||||
{"Time":"2026-10-18T01:12:34.337138315Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationUnchangedNeverDeletesPreexisting","Output":"--- PASS: TestSourceOperationUnchangedNeverDeletesPreexisting (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.337196666Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationUnchangedNeverDeletesPreexisting","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.337208966Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses"}
|
||||
{"Time":"2026-10-18T01:12:34.337217938Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses","Output":"=== RUN TestSourceOperationPrivateDriftRefuses\n"}
|
||||
{"Time":"2026-10-18T01:12:34.337233754Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-apply"}
|
||||
{"Time":"2026-10-18T01:12:34.337251906Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-apply","Output":"=== RUN TestSourceOperationPrivateDriftRefuses/before-apply\n"}
|
||||
{"Time":"2026-10-18T01:12:34.360907139Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-apply","Output":"--- PASS: TestSourceOperationPrivateDriftRefuses/before-apply (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.360966698Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-apply","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.360980548Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-inverse"}
|
||||
{"Time":"2026-10-18T01:12:34.360986058Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-inverse","Output":"=== RUN TestSourceOperationPrivateDriftRefuses/before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:12:34.377005905Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-inverse","Output":"--- PASS: TestSourceOperationPrivateDriftRefuses/before-inverse (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.377080694Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses/before-inverse","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.377093986Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses","Output":"--- PASS: TestSourceOperationPrivateDriftRefuses (0.04s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.377102254Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPrivateDriftRefuses","Elapsed":0.04}
|
||||
{"Time":"2026-10-18T01:12:34.377114635Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationStockCRUDDriftRefuses"}
|
||||
{"Time":"2026-10-18T01:12:34.377218505Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationStockCRUDDriftRefuses","Output":"=== RUN TestSourceOperationStockCRUDDriftRefuses\n"}
|
||||
{"Time":"2026-10-18T01:12:34.392712651Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationStockCRUDDriftRefuses","Output":"--- PASS: TestSourceOperationStockCRUDDriftRefuses (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.392770307Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationStockCRUDDriftRefuses","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.392781948Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion"}
|
||||
{"Time":"2026-10-18T01:12:34.392830082Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion","Output":"=== RUN TestSourceOperationLinkedSourceRefusesDeletion\n"}
|
||||
{"Time":"2026-10-18T01:12:34.392863356Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/user"}
|
||||
{"Time":"2026-10-18T01:12:34.392873969Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/user","Output":"=== RUN TestSourceOperationLinkedSourceRefusesDeletion/user\n"}
|
||||
{"Time":"2026-10-18T01:12:34.410463384Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/user","Output":"--- PASS: TestSourceOperationLinkedSourceRefusesDeletion/user (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.410515693Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/user","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.410528669Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/external"}
|
||||
{"Time":"2026-10-18T01:12:34.410535035Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/external","Output":"=== RUN TestSourceOperationLinkedSourceRefusesDeletion/external\n"}
|
||||
{"Time":"2026-10-18T01:12:34.425620514Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/external","Output":"--- PASS: TestSourceOperationLinkedSourceRefusesDeletion/external (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.425682535Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion/external","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:34.425696755Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion","Output":"--- PASS: TestSourceOperationLinkedSourceRefusesDeletion (0.03s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.425705105Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationLinkedSourceRefusesDeletion","Elapsed":0.03}
|
||||
{"Time":"2026-10-18T01:12:34.425713049Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPreparedCancellationAndIDReuse"}
|
||||
{"Time":"2026-10-18T01:12:34.425720651Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPreparedCancellationAndIDReuse","Output":"=== RUN TestSourceOperationPreparedCancellationAndIDReuse\n"}
|
||||
{"Time":"2026-10-18T01:12:34.440609818Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPreparedCancellationAndIDReuse","Output":"--- PASS: TestSourceOperationPreparedCancellationAndIDReuse (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.440703877Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPreparedCancellationAndIDReuse","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:34.44072752Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRejectsUnsafeRuntime"}
|
||||
{"Time":"2026-10-18T01:12:34.440745103Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRejectsUnsafeRuntime","Output":"=== RUN TestSourceOperationRejectsUnsafeRuntime\n"}
|
||||
{"Time":"2026-10-18T01:12:34.454490186Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRejectsUnsafeRuntime","Output":"--- PASS: TestSourceOperationRejectsUnsafeRuntime (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.454544821Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRejectsUnsafeRuntime","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:34.454556174Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesSharedManagedSource"}
|
||||
{"Time":"2026-10-18T01:12:34.454562053Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesSharedManagedSource","Output":"=== RUN TestSourceOperationRefusesSharedManagedSource\n"}
|
||||
{"Time":"2026-10-18T01:12:34.471808411Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesSharedManagedSource","Output":"--- PASS: TestSourceOperationRefusesSharedManagedSource (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.47190724Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRefusesSharedManagedSource","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.471921632Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationBoundsPrivateJournalCustody"}
|
||||
{"Time":"2026-10-18T01:12:34.471929522Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationBoundsPrivateJournalCustody","Output":"=== RUN TestSourceOperationBoundsPrivateJournalCustody\n"}
|
||||
{"Time":"2026-10-18T01:12:34.486704483Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationBoundsPrivateJournalCustody","Output":"--- PASS: TestSourceOperationBoundsPrivateJournalCustody (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.486759524Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationBoundsPrivateJournalCustody","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:34.487106372Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRequiresExactPostState"}
|
||||
{"Time":"2026-10-18T01:12:34.487137292Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRequiresExactPostState","Output":"=== RUN TestSourceOperationRequiresExactPostState\n"}
|
||||
{"Time":"2026-10-18T01:12:34.504315067Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRequiresExactPostState","Output":"--- PASS: TestSourceOperationRequiresExactPostState (0.02s)\n"}
|
||||
{"Time":"2026-10-18T01:12:34.504408422Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationRequiresExactPostState","Elapsed":0.02}
|
||||
{"Time":"2026-10-18T01:12:34.504693224Z","Action":"output","Package":"forgejo.org/models/auth","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:12:34.529425421Z","Action":"output","Package":"forgejo.org/models/auth","Output":"ok \tforgejo.org/models/auth\t2.285s\n"}
|
||||
{"Time":"2026-10-18T01:12:34.529471463Z","Action":"pass","Package":"forgejo.org/models/auth","Elapsed":2.286}
|
||||
{"Time":"2026-10-18T01:12:40.073004946Z","Action":"start","Package":"forgejo.org/models/db"}
|
||||
{"Time":"2026-10-18T01:12:40.311385857Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311481791Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1533321766/attachments\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311560818Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311622298Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1533321766/avatars\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311631865Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311637411Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1533321766/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311652912Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311665743Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1533321766/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311696357Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:40.31171055Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1533321766/packages\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311794933Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311811245Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1533321766/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311818432Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:12:40.311824194Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:12:40 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/go-build4098959969/b1335/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:12:40.457119609Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine"}
|
||||
{"Time":"2026-10-18T01:12:40.457172378Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine\n"}
|
||||
{"Time":"2026-10-18T01:12:40.457323702Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine"}
|
||||
{"Time":"2026-10-18T01:12:40.457342151Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine/engine\n"}
|
||||
{"Time":"2026-10-18T01:12:40.457356227Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine/engine (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:40.457361024Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:40.457446282Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session"}
|
||||
{"Time":"2026-10-18T01:12:40.457455227Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine/session\n"}
|
||||
{"Time":"2026-10-18T01:12:40.457481098Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine/session (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:40.457487004Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:40.457493668Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:40.457501251Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:40.457650442Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks"}
|
||||
{"Time":"2026-10-18T01:12:40.457664346Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Output":"=== RUN TestSensitiveSQLHooks\n"}
|
||||
{"Time":"2026-10-18T01:12:40.464198995Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Output":"--- PASS: TestSensitiveSQLHooks (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:40.464269663Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:40.464289293Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation"}
|
||||
{"Time":"2026-10-18T01:12:40.464293802Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Output":"=== RUN TestSensitiveSQLActualContextPropagation\n"}
|
||||
{"Time":"2026-10-18T01:12:40.466979632Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Output":"--- PASS: TestSensitiveSQLActualContextPropagation (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:12:40.467034394Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:12:40.467046071Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks"}
|
||||
{"Time":"2026-10-18T01:12:40.467051337Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Output":"=== RUN TestTracingContextSurvivesFollowingHooks\n"}
|
||||
{"Time":"2026-10-18T01:12:40.477503439Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Output":"--- PASS: TestTracingContextSurvivesFollowingHooks (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:12:40.477560338Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:12:40.478000697Z","Action":"output","Package":"forgejo.org/models/db","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:12:40.510473676Z","Action":"output","Package":"forgejo.org/models/db","Output":"ok \tforgejo.org/models/db\t0.437s\n"}
|
||||
{"Time":"2026-10-18T01:12:40.510532243Z","Action":"pass","Package":"forgejo.org/models/db","Elapsed":0.438}
|
||||
|
|
@ -0,0 +1,194 @@
|
|||
{
|
||||
"action": "crash",
|
||||
"returncode": 73,
|
||||
"expected_returncode": 73,
|
||||
"outcome_matches": true,
|
||||
"seconds": 2.22,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/db",
|
||||
"/work/source/models/db",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_STEP",
|
||||
"crash",
|
||||
"--",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgresProcessRecovery$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:53d35e31ae9f318d8f77a323fdc5b18bae804bdc86ccb639f335dfbe59e9b17c"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
2026/10/18 01:02:02 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local
|
||||
2026/10/18 01:02:02 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata4082743399/attachments
|
||||
2026/10/18 01:02:02 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local
|
||||
2026/10/18 01:02:02 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata4082743399/avatars
|
||||
2026/10/18 01:02:02 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
|
||||
2026/10/18 01:02:02 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata4082743399/repo-avatars
|
||||
2026/10/18 01:02:02 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local
|
||||
2026/10/18 01:02:02 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata4082743399/repo-archive
|
||||
2026/10/18 01:02:02 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local
|
||||
2026/10/18 01:02:02 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata4082743399/packages
|
||||
2026/10/18 01:02:02 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local
|
||||
2026/10/18 01:02:02 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata4082743399/actions_log
|
||||
2026/10/18 01:02:02 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local
|
||||
2026/10/18 01:02:02 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts
|
||||
=== RUN TestSourceOperationPostgresProcessRecovery
|
||||
|
|
@ -0,0 +1,198 @@
|
|||
{
|
||||
"action": "db-regressions",
|
||||
"returncode": 1,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": false,
|
||||
"seconds": 2.72,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-p",
|
||||
"1",
|
||||
"-json",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify",
|
||||
"./models/db",
|
||||
"-run",
|
||||
"TestSensitiveSQL|TestTracingContext",
|
||||
"-count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:53d35e31ae9f318d8f77a323fdc5b18bae804bdc86ccb639f335dfbe59e9b17c"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{"ImportPath":"forgejo.org/models/db [forgejo.org/models/db.test]","Action":"build-output","Output":"# forgejo.org/models/db [forgejo.org/models/db.test]\n"}
|
||||
{"ImportPath":"forgejo.org/models/db [forgejo.org/models/db.test]","Action":"build-output","Output":"models/db/tracing_context_test.go:27:34: too many arguments in call to engine.AddHook\n"}
|
||||
{"ImportPath":"forgejo.org/models/db [forgejo.org/models/db.test]","Action":"build-output","Output":"\thave (TracingHook, followingQueryHook)\n"}
|
||||
{"ImportPath":"forgejo.org/models/db [forgejo.org/models/db.test]","Action":"build-output","Output":"\twant (contexts.Hook)\n"}
|
||||
{"ImportPath":"forgejo.org/models/db [forgejo.org/models/db.test]","Action":"build-fail"}
|
||||
{"Time":"2026-10-18T01:00:40.417523842Z","Action":"start","Package":"forgejo.org/models/db"}
|
||||
{"Time":"2026-10-18T01:00:40.417889644Z","Action":"output","Package":"forgejo.org/models/db","Output":"FAIL\tforgejo.org/models/db [build failed]\n"}
|
||||
{"Time":"2026-10-18T01:00:40.417940655Z","Action":"fail","Package":"forgejo.org/models/db","Elapsed":0,"FailedBuild":"forgejo.org/models/db [forgejo.org/models/db.test]"}
|
||||
|
|
@ -0,0 +1,198 @@
|
|||
{
|
||||
"action": "db-regressions",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 80.41,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt5/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"test",
|
||||
"-p",
|
||||
"1",
|
||||
"-json",
|
||||
"-tags",
|
||||
"sqlite sqlite_unlock_notify",
|
||||
"./models/db",
|
||||
"-run",
|
||||
"TestSensitiveSQL|TestTracingContext",
|
||||
"-count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt5",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
{"Time":"2026-10-18T01:03:57.707717899Z","Action":"start","Package":"forgejo.org/models/db"}
|
||||
{"Time":"2026-10-18T01:03:57.90451284Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904818516Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata394576552/attachments\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904834558Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904843404Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata394576552/avatars\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904852114Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904857885Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata394576552/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904865379Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904871429Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata394576552/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904877182Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904888706Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata394576552/packages\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904907688Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904913946Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata394576552/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904919554Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:57.904926516Z","Action":"output","Package":"forgejo.org/models/db","Output":"2026/10/18 01:03:57 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/go-build1720325847/b001/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:03:58.002092733Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine"}
|
||||
{"Time":"2026-10-18T01:03:58.00213423Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine\n"}
|
||||
{"Time":"2026-10-18T01:03:58.002239173Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine"}
|
||||
{"Time":"2026-10-18T01:03:58.002249867Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine/engine\n"}
|
||||
{"Time":"2026-10-18T01:03:58.002337939Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine/engine (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:03:58.002352592Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/engine","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:03:58.002396902Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session"}
|
||||
{"Time":"2026-10-18T01:03:58.002403683Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Output":"=== RUN TestSensitiveSQLLoggingChecksUnderlyingEngine/session\n"}
|
||||
{"Time":"2026-10-18T01:03:58.002410203Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine/session (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:03:58.00241996Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine/session","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:03:58.002425776Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Output":"--- PASS: TestSensitiveSQLLoggingChecksUnderlyingEngine (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:03:58.002431222Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLLoggingChecksUnderlyingEngine","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:03:58.002436497Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks"}
|
||||
{"Time":"2026-10-18T01:03:58.002441123Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Output":"=== RUN TestSensitiveSQLHooks\n"}
|
||||
{"Time":"2026-10-18T01:03:58.009355975Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Output":"--- PASS: TestSensitiveSQLHooks (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:03:58.009404442Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLHooks","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:03:58.00947411Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation"}
|
||||
{"Time":"2026-10-18T01:03:58.009483434Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Output":"=== RUN TestSensitiveSQLActualContextPropagation\n"}
|
||||
{"Time":"2026-10-18T01:03:58.011965962Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Output":"--- PASS: TestSensitiveSQLActualContextPropagation (0.00s)\n"}
|
||||
{"Time":"2026-10-18T01:03:58.012015268Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestSensitiveSQLActualContextPropagation","Elapsed":0}
|
||||
{"Time":"2026-10-18T01:03:58.012025927Z","Action":"run","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks"}
|
||||
{"Time":"2026-10-18T01:03:58.012031031Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Output":"=== RUN TestTracingContextSurvivesFollowingHooks\n"}
|
||||
{"Time":"2026-10-18T01:03:58.022381389Z","Action":"output","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Output":"--- PASS: TestTracingContextSurvivesFollowingHooks (0.01s)\n"}
|
||||
{"Time":"2026-10-18T01:03:58.022432489Z","Action":"pass","Package":"forgejo.org/models/db","Test":"TestTracingContextSurvivesFollowingHooks","Elapsed":0.01}
|
||||
{"Time":"2026-10-18T01:03:58.022458856Z","Action":"output","Package":"forgejo.org/models/db","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:03:58.053650408Z","Action":"output","Package":"forgejo.org/models/db","Output":"ok \tforgejo.org/models/db\t0.345s\n"}
|
||||
{"Time":"2026-10-18T01:03:58.053699994Z","Action":"pass","Package":"forgejo.org/models/db","Elapsed":0.346}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"action": "prepare",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 3.93,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/db",
|
||||
"/work/source/models/db",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_STEP",
|
||||
"prepare",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgresProcessRecovery$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:53d35e31ae9f318d8f77a323fdc5b18bae804bdc86ccb639f335dfbe59e9b17c"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{"Time":"2026-10-18T01:01:39.579840247Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:01:39.74732574Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747414668Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata897151525/attachments\n"}
|
||||
{"Time":"2026-10-18T01:01:39.74742373Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747433811Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata897151525/avatars\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747439465Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747444542Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata897151525/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747449853Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747454767Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata897151525/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747459646Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747464524Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata897151525/packages\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747469294Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:01:39.7474741Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata897151525/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747478907Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:01:39.747483695Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:01:39 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:01:39.865224725Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery"}
|
||||
{"Time":"2026-10-18T01:01:39.865297791Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Output":"=== RUN TestSourceOperationPostgresProcessRecovery\n"}
|
||||
{"Time":"2026-10-18T01:01:43.405402416Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Output":"--- PASS: TestSourceOperationPostgresProcessRecovery (3.54s)\n"}
|
||||
{"Time":"2026-10-18T01:01:43.405458737Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Elapsed":3.54}
|
||||
{"Time":"2026-10-18T01:01:43.405692672Z","Action":"output","Package":"forgejo.org/models/auth","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:01:43.431507112Z","Action":"pass","Package":"forgejo.org/models/auth","Elapsed":3.852}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"action": "recover-applied",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 2.27,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/db",
|
||||
"/work/source/models/db",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_STEP",
|
||||
"recover-applied",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgresProcessRecovery$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:53d35e31ae9f318d8f77a323fdc5b18bae804bdc86ccb639f335dfbe59e9b17c"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{"Time":"2026-10-18T01:04:08.08440522Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:04:08.227331233Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227448196Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1812313322/attachments\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227457303Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227472362Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1812313322/avatars\n"}
|
||||
{"Time":"2026-10-18T01:04:08.22747954Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227486167Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1812313322/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:04:08.22749266Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227499026Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1812313322/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227505455Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227511695Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1812313322/packages\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227528314Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:08.22753468Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1812313322/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227543706Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:08.227550036Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:08 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:04:08.330506549Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery"}
|
||||
{"Time":"2026-10-18T01:04:08.330564765Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Output":"=== RUN TestSourceOperationPostgresProcessRecovery\n"}
|
||||
{"Time":"2026-10-18T01:04:10.289864261Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Output":"--- PASS: TestSourceOperationPostgresProcessRecovery (1.96s)\n"}
|
||||
{"Time":"2026-10-18T01:04:10.289918455Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Elapsed":1.96}
|
||||
{"Time":"2026-10-18T01:04:10.28996263Z","Action":"output","Package":"forgejo.org/models/auth","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:04:10.314327337Z","Action":"pass","Package":"forgejo.org/models/auth","Elapsed":2.23}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"action": "recover-inverse",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 4.77,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/db",
|
||||
"/work/source/models/db",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_STEP",
|
||||
"recover-inverse",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgresProcessRecovery$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:53d35e31ae9f318d8f77a323fdc5b18bae804bdc86ccb639f335dfbe59e9b17c"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{"Time":"2026-10-18T01:04:15.038955865Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:04:15.397703648Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397820971Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata153111776/attachments\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397833126Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397848681Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata153111776/avatars\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397862757Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397871035Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata153111776/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397877644Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397884588Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata153111776/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397891432Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397898267Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata153111776/packages\n"}
|
||||
{"Time":"2026-10-18T01:04:15.39791173Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:15.397919268Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata153111776/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:04:15.398162834Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:04:15.398206793Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:04:15 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:04:15.582049278Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery"}
|
||||
{"Time":"2026-10-18T01:04:15.582213644Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Output":"=== RUN TestSourceOperationPostgresProcessRecovery\n"}
|
||||
{"Time":"2026-10-18T01:04:19.683251057Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Output":"--- PASS: TestSourceOperationPostgresProcessRecovery (4.10s)\n"}
|
||||
{"Time":"2026-10-18T01:04:19.683317235Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Elapsed":4.1}
|
||||
{"Time":"2026-10-18T01:04:19.683355432Z","Action":"output","Package":"forgejo.org/models/auth","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:04:19.717408656Z","Action":"pass","Package":"forgejo.org/models/auth","Elapsed":4.678}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"action": "recover-prepared",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 3.17,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/db",
|
||||
"/work/source/models/db",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_STEP",
|
||||
"recover-prepared",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgresProcessRecovery$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:53d35e31ae9f318d8f77a323fdc5b18bae804bdc86ccb639f335dfbe59e9b17c"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
{"Time":"2026-10-18T01:03:05.798825901Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:03:06.006751622Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006904645Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2916044918/attachments\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006913644Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006923401Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2916044918/avatars\n"}
|
||||
{"Time":"2026-10-18T01:03:06.00692846Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006933067Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2916044918/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006940002Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006945538Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2916044918/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006949975Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006954375Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2916044918/packages\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006965331Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006970922Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2916044918/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006975304Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:03:06.006979578Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:03:06 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:03:06.127322066Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery"}
|
||||
{"Time":"2026-10-18T01:03:06.127401752Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Output":"=== RUN TestSourceOperationPostgresProcessRecovery\n"}
|
||||
{"Time":"2026-10-18T01:03:08.84880067Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Output":"--- PASS: TestSourceOperationPostgresProcessRecovery (2.72s)\n"}
|
||||
{"Time":"2026-10-18T01:03:08.848862213Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgresProcessRecovery","Elapsed":2.72}
|
||||
{"Time":"2026-10-18T01:03:08.849116041Z","Action":"output","Package":"forgejo.org/models/auth","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:03:08.889481889Z","Action":"pass","Package":"forgejo.org/models/auth","Elapsed":3.091}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
{
|
||||
"action": "suite",
|
||||
"returncode": 1,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": false,
|
||||
"seconds": 10.04,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgres$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:852bf5cd2d2a8504d3b82723e09f296436e546fefcf6e5c2280e76f2ef1a7f17",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:a58899fab4b0355a6d9436ab726b1aeada01a2987856b3490a15cf3d33984a88"
|
||||
}
|
||||
|
|
@ -0,0 +1,121 @@
|
|||
{"Time":"2026-10-18T00:54:19.636581022Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T00:54:19.842990527Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843125687Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1795841647/attachments\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843136949Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843150656Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1795841647/avatars\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843157013Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:54:19.84316144Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1795841647/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843166535Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843172703Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1795841647/repo-archive\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843181927Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843186716Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1795841647/packages\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843192243Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843196986Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1795841647/actions_log\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843201675Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:54:19.843209529Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:54:19 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T00:54:20.426786911Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres"}
|
||||
{"Time":"2026-10-18T00:54:20.426845226Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"=== RUN TestSourceOperationPostgres\n"}
|
||||
{"Time":"2026-10-18T00:54:20.426853882Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public"}
|
||||
{"Time":"2026-10-18T00:54:20.426857976Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":"=== RUN TestSourceOperationPostgres/public\n"}
|
||||
{"Time":"2026-10-18T00:54:23.430331356Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T00:54:23.430407065Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/public/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T00:54:23.55050287Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T00:54:23.550546062Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/public/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T00:54:23.652105758Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T00:54:23.652148581Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/public/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T00:54:23.75315772Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T00:54:23.75324232Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T00:54:23.846277143Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T00:54:23.846321454Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T00:54:23.946441423Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:54:23.946608458Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:54:24.040268154Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" source_operation_postgres_test.go:166: \n"}
|
||||
{"Time":"2026-10-18T00:54:24.04029856Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:166\n"}
|
||||
{"Time":"2026-10-18T00:54:24.040303456Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:77\n"}
|
||||
{"Time":"2026-10-18T00:54:24.040307262Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" \tError: \tReceived unexpected error:\n"}
|
||||
{"Time":"2026-10-18T00:54:24.04031095Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" \t \tpq: null value in column \"email\" of relation \"user\" violates not-null constraint\n"}
|
||||
{"Time":"2026-10-18T00:54:24.040334557Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" \tTest: \tTestSourceOperationPostgres/public/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:54:24.040342862Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:54:24.040354746Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:54:24.140987869Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T00:54:24.141025372Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T00:54:24.241651942Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T00:54:24.241705477Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/public/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T00:54:24.942575411Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T00:54:24.942608009Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T00:54:25.039882318Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named"}
|
||||
{"Time":"2026-10-18T00:54:25.039947494Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named","Output":"=== RUN TestSourceOperationPostgres/custodian_named\n"}
|
||||
{"Time":"2026-10-18T00:54:27.982470899Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T00:54:27.982523911Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/custodian_named/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T00:54:28.094540307Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T00:54:28.09457744Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/custodian_named/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T00:54:28.19606351Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T00:54:28.196107541Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/custodian_named/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T00:54:28.289418123Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T00:54:28.289458123Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/custodian_named/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T00:54:28.380916369Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T00:54:28.380955756Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/custodian_named/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T00:54:28.475907423Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:54:28.475950958Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:54:28.56714897Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Output":" source_operation_postgres_test.go:166: \n"}
|
||||
{"Time":"2026-10-18T00:54:28.567212731Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:166\n"}
|
||||
{"Time":"2026-10-18T00:54:28.567236915Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:77\n"}
|
||||
{"Time":"2026-10-18T00:54:28.567250071Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Output":" \tError: \tReceived unexpected error:\n"}
|
||||
{"Time":"2026-10-18T00:54:28.567260333Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Output":" \t \tpq: null value in column \"email\" of relation \"user\" violates not-null constraint\n"}
|
||||
{"Time":"2026-10-18T00:54:28.567269422Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Output":" \tTest: \tTestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:54:28.567281217Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:54:28.567289837Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/custodian_named/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:54:28.66315679Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T00:54:28.663196115Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/custodian_named/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T00:54:28.7561333Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T00:54:28.7561757Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/custodian_named/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T00:54:29.458442433Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T00:54:29.458498141Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/custodian_named/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T00:54:29.582930434Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"--- FAIL: TestSourceOperationPostgres (9.16s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.582995484Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":" --- FAIL: TestSourceOperationPostgres/public (4.61s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583007333Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/create-reconcile-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583014484Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T00:54:29.583023276Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/public/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583030102Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:54:29.583035449Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/public/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583042013Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:54:29.583047144Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583053727Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:54:29.583059354Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-inverse (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583066198Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:54:29.583071978Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" --- FAIL: TestSourceOperationPostgres/public/linked-user-refuses-deletion (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583078073Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:54:29.583083394Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583089877Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:54:29.583095477Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583102068Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:54:29.583143692Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/public/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583157966Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T00:54:29.583164486Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583182214Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:54:29.583188237Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Elapsed":4.61}
|
||||
{"Time":"2026-10-18T00:54:29.583193837Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named","Output":" --- FAIL: TestSourceOperationPostgres/custodian_named (4.54s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583200915Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/create-reconcile-inverse (0.11s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583207083Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/create-reconcile-inverse","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T00:54:29.583212512Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583219058Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:54:29.583224847Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/unchanged-preexisting-survives (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583231168Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/unchanged-preexisting-survives","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:54:29.58323574Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583241231Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:54:29.583245722Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/private-drift-before-inverse (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.5832506Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/private-drift-before-inverse","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:54:29.583258256Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Output":" --- FAIL: TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.58326336Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-user-refuses-deletion","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:54:29.583274406Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583280069Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:54:29.583284749Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/unexpected-trigger-post-state-rolls-back (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583289925Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/unexpected-trigger-post-state-rolls-back","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:54:29.58329428Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583299636Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T00:54:29.583304388Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/custodian_named/concurrent-preparation-has-one-owner (0.12s)\n"}
|
||||
{"Time":"2026-10-18T00:54:29.583312215Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named/concurrent-preparation-has-one-owner","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T00:54:29.583316336Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/custodian_named","Elapsed":4.54}
|
||||
{"Time":"2026-10-18T00:54:29.583320845Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Elapsed":9.16}
|
||||
{"Time":"2026-10-18T00:54:29.5833252Z","Action":"output","Package":"forgejo.org/models/auth","Output":"FAIL\n"}
|
||||
{"Time":"2026-10-18T00:54:29.611127117Z","Action":"fail","Package":"forgejo.org/models/auth","Elapsed":9.975}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
{
|
||||
"action": "suite",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 10.59,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt2/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt2",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgres$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt2",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:0475dfa7d5e31733321134345ff90a3cd9fd8049db9c2b7d54ef1a71c0d70afd",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:9eadebf02dabd91ed50ddd590b62bda1ee4a89cd824069495603ad62b7d144ec"
|
||||
}
|
||||
|
|
@ -0,0 +1,153 @@
|
|||
{"Time":"2026-10-18T00:55:55.906057855Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T00:55:56.038866329Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038935022Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1794699226/attachments\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038939801Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038946501Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1794699226/avatars\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038950126Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038953534Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1794699226/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038956952Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:55:56.03896018Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1794699226/repo-archive\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038963489Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038966627Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1794699226/packages\n"}
|
||||
{"Time":"2026-10-18T00:55:56.03896972Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038972786Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1794699226/actions_log\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038975897Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:55:56.038978963Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:55:56 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T00:55:56.149624607Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres"}
|
||||
{"Time":"2026-10-18T00:55:56.149763103Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"=== RUN TestSourceOperationPostgres\n"}
|
||||
{"Time":"2026-10-18T00:55:56.149778577Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default"}
|
||||
{"Time":"2026-10-18T00:55:56.149783256Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":"=== RUN TestSourceOperationPostgres/default\n"}
|
||||
{"Time":"2026-10-18T00:55:58.004474379Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T00:55:58.004535444Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/default/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T00:55:58.12083247Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T00:55:58.120870225Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/default/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T00:55:58.221400056Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T00:55:58.221453645Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/default/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T00:55:58.349182906Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T00:55:58.34923728Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T00:55:58.439484005Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T00:55:58.439533572Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T00:55:58.532963858Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:55:58.533017555Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:55:58.630188413Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:55:58.630228819Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:55:58.726484208Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T00:55:58.726543235Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T00:55:58.823504177Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T00:55:58.823540435Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/default/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T00:55:59.525498454Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T00:55:59.525539464Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T00:55:59.629264816Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public"}
|
||||
{"Time":"2026-10-18T00:55:59.629317089Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":"=== RUN TestSourceOperationPostgres/public\n"}
|
||||
{"Time":"2026-10-18T00:56:05.002596034Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T00:56:05.002650291Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/public/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T00:56:05.122746115Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T00:56:05.122785799Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/public/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T00:56:05.224658278Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T00:56:05.224704329Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/public/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T00:56:05.324254052Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T00:56:05.324306658Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T00:56:05.421027627Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T00:56:05.421068628Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T00:56:05.519545031Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:56:05.519602552Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:56:05.621130135Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:56:05.621169432Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:56:05.724423108Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T00:56:05.724484038Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T00:56:05.821994558Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T00:56:05.822048968Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/public/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T00:56:06.524609212Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T00:56:06.524651467Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T00:56:06.627601789Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named"}
|
||||
{"Time":"2026-10-18T00:56:06.627652556Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Output":"=== RUN TestSourceOperationPostgres/named\n"}
|
||||
{"Time":"2026-10-18T00:56:08.37492045Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T00:56:08.374966591Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/named/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T00:56:08.492727684Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T00:56:08.492776179Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/named/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T00:56:08.590136893Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T00:56:08.590173999Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/named/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T00:56:08.688574718Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T00:56:08.688620842Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/named/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T00:56:08.778782744Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T00:56:08.778823944Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/named/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T00:56:08.876909706Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:56:08.876952565Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/named/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:56:08.980394453Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:56:08.980443363Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/named/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:56:09.085590182Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T00:56:09.085670842Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T00:56:09.186028161Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T00:56:09.186065916Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/named/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T00:56:09.889229469Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T00:56:09.88927167Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987233158Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"--- PASS: TestSourceOperationPostgres (10.26s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987296784Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":" --- PASS: TestSourceOperationPostgres/default (3.48s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987307316Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/create-reconcile-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987314205Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T00:56:09.987405947Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/default/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987419229Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987425433Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/default/unchanged-preexisting-survives (0.13s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987435623Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Elapsed":0.13}
|
||||
{"Time":"2026-10-18T00:56:09.987443901Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987453657Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:56:09.987460447Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-inverse (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987469555Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:56:09.987476579Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987500096Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987508067Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987519086Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987528266Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987541765Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987552225Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/default/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987558068Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T00:56:09.98756612Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987631315Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987639367Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Elapsed":3.48}
|
||||
{"Time":"2026-10-18T00:56:09.987647546Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":" --- PASS: TestSourceOperationPostgres/public (3.42s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987656419Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/create-reconcile-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987671469Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T00:56:09.987687745Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/public/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987696979Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.98770596Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/public/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987712443Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987718115Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-apply (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987738783Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987749062Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-inverse (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987756583Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987762083Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987768251Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987773391Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987779568Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987799487Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987811741Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987830741Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/public/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987841164Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T00:56:09.987871282Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987888198Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987898686Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Elapsed":3.42}
|
||||
{"Time":"2026-10-18T00:56:09.98790397Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Output":" --- PASS: TestSourceOperationPostgres/named (3.36s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.98791424Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/named/create-reconcile-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987923636Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T00:56:09.987930652Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/named/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987949642Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987956261Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/named/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987962383Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.987967731Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/named/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.98797765Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:56:09.987983321Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/named/private-drift-before-inverse (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.987996469Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.988002276Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/named/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.988013502Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.988022952Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/named/linked-external-refuses-deletion (0.11s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.98806417Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T00:56:09.9880716Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.988077795Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.988083061Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/named/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.988088913Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T00:56:09.988094134Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:56:09.988099301Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:56:09.988104171Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Elapsed":3.36}
|
||||
{"Time":"2026-10-18T00:56:09.988109319Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Elapsed":10.26}
|
||||
{"Time":"2026-10-18T00:56:09.988136696Z","Action":"output","Package":"forgejo.org/models/auth","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T00:56:10.013152394Z","Action":"pass","Package":"forgejo.org/models/auth","Elapsed":10.525}
|
||||
|
|
@ -0,0 +1,163 @@
|
|||
{
|
||||
"action": "suite",
|
||||
"returncode": 1,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": false,
|
||||
"seconds": 3.07,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt3/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt3",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgres$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt3",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:b1da12376c4ee8f30e5b8302236fc77b30dd0b39b6c1c570134508bce15f55d8"
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
{"Time":"2026-10-18T00:57:47.387058986Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T00:57:51.115296969Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115409856Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1185331334/attachments\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115418747Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115429658Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1185331334/avatars\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115435663Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115441272Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1185331334/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115446791Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115452273Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1185331334/repo-archive\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115457873Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115463175Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1185331334/packages\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115468513Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115473842Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata1185331334/actions_log\n"}
|
||||
{"Time":"2026-10-18T00:57:51.11547918Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T00:57:51.115484483Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 00:57:51 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T00:57:51.246161651Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres"}
|
||||
{"Time":"2026-10-18T00:57:51.246210209Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"=== RUN TestSourceOperationPostgres\n"}
|
||||
{"Time":"2026-10-18T00:57:51.246217197Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default"}
|
||||
{"Time":"2026-10-18T00:57:51.2462213Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":"=== RUN TestSourceOperationPostgres/default\n"}
|
||||
{"Time":"2026-10-18T00:57:53.061963283Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T00:57:53.06205406Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/default/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T00:57:53.181630846Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T00:57:53.181671523Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/default/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T00:57:53.286383858Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T00:57:53.286422551Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/default/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T00:57:53.384345449Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T00:57:53.384386225Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T00:57:53.474131611Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T00:57:53.474176553Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T00:57:53.568216233Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:57:53.568257252Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:57:53.665078598Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T00:57:53.665134352Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T00:57:53.761902418Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T00:57:53.761937783Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T00:57:53.862942636Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T00:57:53.862983043Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945700199Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"--- FAIL: TestSourceOperationPostgres (2.70s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945731876Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":" --- FAIL: TestSourceOperationPostgres/default (2.70s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945747476Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/create-reconcile-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945752273Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T00:57:53.945758143Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/default/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945762147Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:57:53.945765565Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/default/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.94576937Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:57:53.945772706Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945776412Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:57:53.945779704Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-inverse (0.09s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945783743Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T00:57:53.945787089Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945790759Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:57:53.945793969Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945797901Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:57:53.945801084Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back (0.10s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.945804988Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T00:57:53.945808279Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" --- FAIL: TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics (0.08s)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.947939229Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"panic: interface conversion: interface {} is nil, not *trace.Task [recovered]\n"}
|
||||
{"Time":"2026-10-18T00:57:53.947988932Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\tpanic: interface conversion: interface {} is nil, not *trace.Task\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948006543Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948014352Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"goroutine 216 [running]:\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948032603Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"testing.tRunner.func1.2({0x18a8180, 0xc0012bfe30})\n"}
|
||||
{"Time":"2026-10-18T00:57:53.94804061Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/go/src/testing/testing.go:1734 +0x21c\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948047129Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"testing.tRunner.func1()\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948053487Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/go/src/testing/testing.go:1737 +0x35e\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948063559Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"panic({0x18a8180?, 0xc0012bfe30?})\n"}
|
||||
{"Time":"2026-10-18T00:57:53.94807052Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/go/src/runtime/panic.go:792 +0x132\n"}
|
||||
{"Time":"2026-10-18T00:57:53.94807805Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"forgejo.org/models/db.TracingHook.AfterProcess({}, 0xc0012bfe00?)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948084605Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/source/models/db/engine.go:343 +0x57\n"}
|
||||
{"Time":"2026-10-18T00:57:53.94809153Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"xorm.io/xorm/contexts.(*Hooks).AfterProcess(0x2042d60?, 0xc00050dd80)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948098221Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/modules/xorm.io/xorm@v1.3.9/contexts/hook.go:75 +0x6a\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948119718Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"xorm.io/xorm/core.(*DB).afterProcess(0xc000f801e0, 0xc00050dd80)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948126932Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/modules/xorm.io/xorm@v1.3.9/core/db.go:298 +0x38\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948136788Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"xorm.io/xorm/core.(*DB).ExecContext(0xc000f801e0, {0x2050538, 0x32ad0c0}, {0xc001f8ce00, 0x25}, {0xc001415320, 0x1, 0x1})\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948158303Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/modules/xorm.io/xorm@v1.3.9/core/db.go:275 +0x22a\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948165814Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"xorm.io/xorm.(*Session).exec(0xc0017b8c30, {0xc001f8ce00, 0x25}, {0xc001415320, 0x1, 0x1})\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948173164Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/modules/xorm.io/xorm@v1.3.9/session_raw.go:178 +0x22b\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948182397Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"xorm.io/xorm.(*Session).Exec(0xc0017b8c30, {0xc000422a00?, 0x47a779?, 0x20?})\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948189178Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/modules/xorm.io/xorm@v1.3.9/session_raw.go:196 +0x133\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948198538Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"xorm.io/xorm.(*Engine).Exec(0x20505e0?, {0xc000422a00, 0x2, 0x2})\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948205364Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/modules/xorm.io/xorm@v1.3.9/engine.go:1180 +0x7f\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948216401Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"forgejo.org/models/auth_test.TestSourceOperationPostgres.func1.8(0xc001e836c0)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948225328Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/source/models/auth/source_operation_postgres_test.go:230 +0x355\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948234418Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"forgejo.org/models/auth_test.TestSourceOperationPostgres.func1.TestSourceOperationPostgres.func1.1.17(0xc001e836c0)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948243029Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/source/models/auth/source_operation_postgres_test.go:106 +0x34\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948253823Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"testing.tRunner(0xc001e836c0, 0xc001f83cc8)\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948264247Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/go/src/testing/testing.go:1792 +0xf4\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948278016Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"created by testing.(*T).Run in goroutine 75\n"}
|
||||
{"Time":"2026-10-18T00:57:53.948286537Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\t/work/go/src/testing/testing.go:1851 +0x413\n"}
|
||||
{"Time":"2026-10-18T00:57:53.955018288Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Elapsed":2.9859999999999998}
|
||||
|
|
@ -0,0 +1,197 @@
|
|||
{
|
||||
"action": "suite",
|
||||
"returncode": 0,
|
||||
"expected_returncode": 0,
|
||||
"outcome_matches": true,
|
||||
"seconds": 11.5,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-attempt4/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgres$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-attempt4",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:53d35e31ae9f318d8f77a323fdc5b18bae804bdc86ccb639f335dfbe59e9b17c"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "none"
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:ea124dc75fa8c4d4063fdd2df57e506c1cd53e3c4478597e2d51b5c214de7569"
|
||||
}
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
{"Time":"2026-10-18T01:00:36.620730123Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:00:36.784427451Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784508408Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2682928195/attachments\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784514847Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784523846Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2682928195/avatars\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784529067Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784534207Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2682928195/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784538995Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:00:36.78454372Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2682928195/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784548436Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784553089Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2682928195/packages\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784557687Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:00:36.78456225Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2682928195/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784566867Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:00:36.784571475Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:00:36 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:00:36.903132953Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres"}
|
||||
{"Time":"2026-10-18T01:00:36.903208733Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"=== RUN TestSourceOperationPostgres\n"}
|
||||
{"Time":"2026-10-18T01:00:36.903228752Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default"}
|
||||
{"Time":"2026-10-18T01:00:36.903366463Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":"=== RUN TestSourceOperationPostgres/default\n"}
|
||||
{"Time":"2026-10-18T01:00:39.109392342Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:00:39.109536789Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/default/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:00:39.256485133Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:00:39.25654031Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/default/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:00:39.392573659Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:00:39.392629656Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/default/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:00:39.510266053Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:00:39.510317848Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:00:39.623787643Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:00:39.623827409Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:00:39.736117733Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:00:39.736163586Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:00:39.84999188Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:00:39.850032557Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:00:39.969798121Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:00:39.969845904Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:00:40.085454914Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:00:40.085499351Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:00:40.205181631Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:00:40.205225798Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/default/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:00:40.921813572Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:00:40.921863446Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:00:41.045454997Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public"}
|
||||
{"Time":"2026-10-18T01:00:41.045542509Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":"=== RUN TestSourceOperationPostgres/public\n"}
|
||||
{"Time":"2026-10-18T01:00:42.870327539Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:00:42.870372697Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/public/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:00:43.001004999Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:00:43.00104508Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/public/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:00:43.105088518Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:00:43.105147166Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/public/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:00:43.209857825Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:00:43.209898402Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:00:43.300085634Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:00:43.30013036Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:00:43.399606765Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:00:43.399652473Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:00:43.499626237Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:00:43.499669736Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:00:43.59826031Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:00:43.59834371Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:00:43.69218378Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:00:43.692234718Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:00:43.794643228Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:00:43.794685663Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/public/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:00:44.495231495Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:00:44.495267474Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:00:44.596410773Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named"}
|
||||
{"Time":"2026-10-18T01:00:44.596500062Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Output":"=== RUN TestSourceOperationPostgres/named\n"}
|
||||
{"Time":"2026-10-18T01:00:46.266037797Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:00:46.266073334Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/named/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:00:46.38746905Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:00:46.387518347Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/named/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:00:46.493663624Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:00:46.493727539Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/named/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:00:46.597182621Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:00:46.597235336Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/named/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:00:50.271070695Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:00:50.271117413Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/named/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:00:50.367624615Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:00:50.367690522Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/named/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:00:50.478160697Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:00:50.478209977Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/named/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:00:50.574002056Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:00:50.574044897Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:00:50.67009112Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:00:50.670144881Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:00:50.773203358Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:00:50.773243368Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/named/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:00:51.478348048Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:00:51.478411989Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582072541Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"--- PASS: TestSourceOperationPostgres (11.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582145924Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":" --- PASS: TestSourceOperationPostgres/default (4.14s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582159422Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/create-reconcile-inverse (0.15s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.58216981Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Elapsed":0.15}
|
||||
{"Time":"2026-10-18T01:00:51.582408966Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/default/exact-raw-preexisting-restoration (0.14s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582431256Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Elapsed":0.14}
|
||||
{"Time":"2026-10-18T01:00:51.582438984Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/default/unchanged-preexisting-survives (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582466721Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:00:51.582477172Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-apply (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582486126Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:00:51.582491329Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-inverse (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582499328Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:00:51.582505351Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-user-refuses-deletion (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582512745Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:00:51.582518444Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-external-refuses-deletion (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582528165Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:00:51.582533025Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582542448Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:00:51.582547804Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" --- PASS: TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582553431Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:00:51.582560924Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/default/uncooperative-writers-excluded (0.72s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582607832Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Elapsed":0.72}
|
||||
{"Time":"2026-10-18T01:00:51.582615785Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582626029Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:00:51.582630997Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Elapsed":4.14}
|
||||
{"Time":"2026-10-18T01:00:51.582643955Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":" --- PASS: TestSourceOperationPostgres/public (3.55s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582653811Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/create-reconcile-inverse (0.13s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582660718Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Elapsed":0.13}
|
||||
{"Time":"2026-10-18T01:00:51.582668861Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/public/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582674515Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582679249Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/public/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582690376Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582695741Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582704371Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:00:51.582708843Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-inverse (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582717491Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582722423Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582731242Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582745354Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582753803Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582759845Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.58276512Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:00:51.582769989Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":" --- PASS: TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.58278586Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582791793Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/public/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582801054Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T01:00:51.582805788Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582811315Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.58281586Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Elapsed":3.55}
|
||||
{"Time":"2026-10-18T01:00:51.582820297Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Output":" --- PASS: TestSourceOperationPostgres/named (3.40s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582825761Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/named/create-reconcile-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582831216Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:00:51.582836978Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/named/exact-raw-preexisting-restoration (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582842407Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:00:51.582851181Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/named/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582883976Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582894689Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/named/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582900469Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:00:51.582905221Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/named/private-drift-before-inverse (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582917232Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582922904Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/named/linked-user-refuses-deletion (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582935853Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:00:51.58295955Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/named/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582965736Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582970713Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.582975934Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.582992923Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":" --- PASS: TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.583000678Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.583005917Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/named/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.58301203Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T01:00:51.583027143Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:00:51.583035277Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:00:51.583040308Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Elapsed":3.4}
|
||||
{"Time":"2026-10-18T01:00:51.583044583Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Elapsed":11.1}
|
||||
{"Time":"2026-10-18T01:00:51.583048983Z","Action":"output","Package":"forgejo.org/models/auth","Output":"PASS\n"}
|
||||
{"Time":"2026-10-18T01:00:51.610940014Z","Action":"pass","Package":"forgejo.org/models/auth","Elapsed":11.409}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"action": "suite",
|
||||
"returncode": 1,
|
||||
"expected_returncode": 1,
|
||||
"outcome_matches": true,
|
||||
"seconds": 9.69,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-lock/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-lock",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-lock/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgres$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-control-lock",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:137bcc05baf724abfcb9c48a2ef45d5064a6a163c4ba98269364eafb9a1096cd",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "omit-postgres-lock",
|
||||
"original_source_sha256": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"controlled_source_sha256": "sha256:137bcc05baf724abfcb9c48a2ef45d5064a6a163c4ba98269364eafb9a1096cd",
|
||||
"production_source_changed": false
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:82043a82a461a942ff747c59238a3113b5d06de06a2d927c7946df3b22d89498"
|
||||
}
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
{"Time":"2026-10-18T01:05:38.768696462Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:05:38.92626254Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:05:38.92639155Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2350079914/attachments\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926402912Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926418683Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2350079914/avatars\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926427466Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926435888Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2350079914/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926444121Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:05:38.92645202Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2350079914/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926459856Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926467503Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2350079914/packages\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926475248Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926482949Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata2350079914/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926490713Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:05:38.926498477Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:05:38 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:05:39.027752314Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres"}
|
||||
{"Time":"2026-10-18T01:05:39.027797319Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"=== RUN TestSourceOperationPostgres\n"}
|
||||
{"Time":"2026-10-18T01:05:39.027806787Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default"}
|
||||
{"Time":"2026-10-18T01:05:39.027810971Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":"=== RUN TestSourceOperationPostgres/default\n"}
|
||||
{"Time":"2026-10-18T01:05:40.920709928Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:05:40.920794122Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/default/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:05:41.049140406Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:05:41.049189153Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/default/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:05:41.151528256Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:05:41.151568482Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/default/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:05:41.250733822Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:05:41.250772019Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:05:41.339755451Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:05:41.339807697Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:05:41.434209119Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:05:41.434247072Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:05:41.537815334Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:05:41.537857868Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:05:41.63902828Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:05:41.639110337Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:05:41.732981278Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:05:41.733017175Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:05:41.836224169Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:05:41.83626536Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/default/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:05:41.917406289Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" source_operation_postgres_test.go:282: \n"}
|
||||
{"Time":"2026-10-18T01:05:41.917442547Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:282\n"}
|
||||
{"Time":"2026-10-18T01:05:41.917447182Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:106\n"}
|
||||
{"Time":"2026-10-18T01:05:41.917450816Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" \tError: \tShould be true\n"}
|
||||
{"Time":"2026-10-18T01:05:41.917454459Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" \tTest: \tTestSourceOperationPostgres/default/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:05:41.917457931Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" \tMessages: \tan uncooperative writer escaped the actual table lock\n"}
|
||||
{"Time":"2026-10-18T01:05:41.917465126Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:05:41.917468246Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:05:42.022036233Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" source_operation_postgres_test.go:321: \n"}
|
||||
{"Time":"2026-10-18T01:05:42.022084872Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:321\n"}
|
||||
{"Time":"2026-10-18T01:05:42.02209067Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:106\n"}
|
||||
{"Time":"2026-10-18T01:05:42.022095612Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" \tError: \tNot equal: \n"}
|
||||
{"Time":"2026-10-18T01:05:42.022100102Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" \t \texpected: 1\n"}
|
||||
{"Time":"2026-10-18T01:05:42.022104521Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" \t \tactual : 2\n"}
|
||||
{"Time":"2026-10-18T01:05:42.022109652Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" \tTest: \tTestSourceOperationPostgres/default/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:05:42.022464426Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public"}
|
||||
{"Time":"2026-10-18T01:05:42.02250623Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":"=== RUN TestSourceOperationPostgres/public\n"}
|
||||
{"Time":"2026-10-18T01:05:44.045926419Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:05:44.045972876Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/public/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:05:44.169852241Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:05:44.16990684Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/public/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:05:44.271511536Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:05:44.271570797Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/public/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:05:44.37120008Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:05:44.37124458Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:05:44.474344957Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:05:44.474396031Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:05:44.585397268Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:05:44.585453536Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:05:44.711724758Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:05:44.711821964Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:05:44.832624834Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:05:44.832682184Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:05:44.949311021Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:05:44.949368633Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:05:45.069008803Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:05:45.069125558Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/public/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:05:45.16846189Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" source_operation_postgres_test.go:282: \n"}
|
||||
{"Time":"2026-10-18T01:05:45.168519799Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:282\n"}
|
||||
{"Time":"2026-10-18T01:05:45.168531494Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:106\n"}
|
||||
{"Time":"2026-10-18T01:05:45.168538293Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" \tError: \tShould be true\n"}
|
||||
{"Time":"2026-10-18T01:05:45.168554867Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" \tTest: \tTestSourceOperationPostgres/public/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:05:45.168562685Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" \tMessages: \tan uncooperative writer escaped the actual table lock\n"}
|
||||
{"Time":"2026-10-18T01:05:45.1685708Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:05:45.168575543Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:05:45.280524395Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named"}
|
||||
{"Time":"2026-10-18T01:05:45.2805772Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Output":"=== RUN TestSourceOperationPostgres/named\n"}
|
||||
{"Time":"2026-10-18T01:05:47.282273653Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:05:47.282315772Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/named/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:05:47.395342924Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:05:47.395458814Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/named/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:05:47.490998158Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:05:47.491045517Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/named/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:05:47.588881435Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:05:47.588938217Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/named/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:05:47.682010877Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:05:47.682066117Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/named/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:05:47.780868465Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:05:47.780921081Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/named/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:05:47.881999712Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:05:47.882045935Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/named/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:05:47.97937744Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:05:47.97942148Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:05:48.07641057Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:05:48.076448199Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:05:48.178631251Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:05:48.1787176Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/named/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:05:48.2645986Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" source_operation_postgres_test.go:282: \n"}
|
||||
{"Time":"2026-10-18T01:05:48.264650927Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:282\n"}
|
||||
{"Time":"2026-10-18T01:05:48.264663245Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:106\n"}
|
||||
{"Time":"2026-10-18T01:05:48.264670044Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" \tError: \tShould be true\n"}
|
||||
{"Time":"2026-10-18T01:05:48.26467466Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" \tTest: \tTestSourceOperationPostgres/named/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:05:48.264698051Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" \tMessages: \tan uncooperative writer escaped the actual table lock\n"}
|
||||
{"Time":"2026-10-18T01:05:48.264711018Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:05:48.264714499Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368321174Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"--- FAIL: TestSourceOperationPostgres (9.34s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368377261Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":" --- FAIL: TestSourceOperationPostgres/default (2.99s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368390012Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/create-reconcile-inverse (0.13s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368399372Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Elapsed":0.13}
|
||||
{"Time":"2026-10-18T01:05:48.368493322Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/default/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368507696Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368516019Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/default/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368524549Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368531384Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368539752Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:05:48.368546786Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-inverse (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368554982Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:05:48.368561971Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368569762Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368576344Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368600429Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368609113Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368617201Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:05:48.368624199Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" --- PASS: TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368631674Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.36863869Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" --- FAIL: TestSourceOperationPostgres/default/uncooperative-writers-excluded (0.08s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.3686541Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Elapsed":0.08}
|
||||
{"Time":"2026-10-18T01:05:48.368661467Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" --- FAIL: TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.3686697Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368675597Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Elapsed":2.99}
|
||||
{"Time":"2026-10-18T01:05:48.368682775Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":" --- FAIL: TestSourceOperationPostgres/public (3.26s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368690764Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/create-reconcile-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368698519Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:05:48.368705065Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/public/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368712766Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368719782Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/public/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368727627Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368734462Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-apply (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.36875081Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368759124Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-inverse (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368767095Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:05:48.368778845Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-user-refuses-deletion (0.13s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368786572Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Elapsed":0.13}
|
||||
{"Time":"2026-10-18T01:05:48.368793651Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-external-refuses-deletion (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368801541Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:05:48.368807943Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368868278Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:05:48.368877412Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":" --- PASS: TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368885924Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:05:48.368892814Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" --- FAIL: TestSourceOperationPostgres/public/uncooperative-writers-excluded (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368900451Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368908026Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368916691Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:05:48.368923003Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Elapsed":3.26}
|
||||
{"Time":"2026-10-18T01:05:48.368929586Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Output":" --- FAIL: TestSourceOperationPostgres/named (3.09s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368938053Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/named/create-reconcile-inverse (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368957332Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:05:48.368965953Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/named/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368973779Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368980597Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/named/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.368988414Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.368995195Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/named/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.369002662Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:05:48.369009145Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/named/private-drift-before-inverse (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.369026458Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.369034159Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/named/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.369042275Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.369049335Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/named/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.369057063Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.369063817Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.369070958Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.369077604Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":" --- PASS: TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.369086053Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.369092537Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" --- FAIL: TestSourceOperationPostgres/named/uncooperative-writers-excluded (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.369109958Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:05:48.36911783Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:05:48.369124638Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:05:48.369130905Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Elapsed":3.09}
|
||||
{"Time":"2026-10-18T01:05:48.3691371Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Elapsed":9.34}
|
||||
{"Time":"2026-10-18T01:05:48.369144115Z","Action":"output","Package":"forgejo.org/models/auth","Output":"FAIL\n"}
|
||||
{"Time":"2026-10-18T01:05:48.397105421Z","Action":"fail","Package":"forgejo.org/models/auth","Elapsed":9.628}
|
||||
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"action": "suite",
|
||||
"returncode": 1,
|
||||
"expected_returncode": 1,
|
||||
"outcome_matches": true,
|
||||
"seconds": 11.35,
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-pid",
|
||||
"--die-with-parent",
|
||||
"--new-session",
|
||||
"--unshare-net",
|
||||
"--ro-bind",
|
||||
"/usr",
|
||||
"/usr",
|
||||
"--ro-bind",
|
||||
"/lib",
|
||||
"/lib",
|
||||
"--ro-bind",
|
||||
"/lib64",
|
||||
"/lib64",
|
||||
"--symlink",
|
||||
"usr/bin",
|
||||
"/bin",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3",
|
||||
"/work",
|
||||
"--ro-bind",
|
||||
"/home/worsch/go/pkg/mod/cache/download",
|
||||
"/cached",
|
||||
"--ro-bind",
|
||||
"/etc/ssl/certs",
|
||||
"/etc/ssl/certs",
|
||||
"--ro-bind",
|
||||
"/etc/resolv.conf",
|
||||
"/etc/resolv.conf",
|
||||
"--chdir",
|
||||
"/work/source",
|
||||
"--clearenv",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"/work/modules",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-attempt2/gocache",
|
||||
"/work/gocache",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/forgejo-oidc",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-successor-r3/descriptor-fixtures",
|
||||
"/run/writable-input",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/work/go/bin:/usr/bin:/bin",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/work/home",
|
||||
"--setenv",
|
||||
"GOPATH",
|
||||
"/work/gopath",
|
||||
"--setenv",
|
||||
"GOTOOLCHAIN",
|
||||
"local",
|
||||
"--setenv",
|
||||
"GOPROXY",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOSUMDB",
|
||||
"off",
|
||||
"--setenv",
|
||||
"GOVCS",
|
||||
"*:off",
|
||||
"--setenv",
|
||||
"GOMODCACHE",
|
||||
"/work/modules",
|
||||
"--setenv",
|
||||
"GOCACHE",
|
||||
"/work/gocache",
|
||||
"--setenv",
|
||||
"GOMAXPROCS",
|
||||
"4",
|
||||
"--setenv",
|
||||
"CGO_ENABLED",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_NOSYSTEM",
|
||||
"1",
|
||||
"--setenv",
|
||||
"GIT_CONFIG_GLOBAL",
|
||||
"/work/home/test.gitconfig",
|
||||
"--setenv",
|
||||
"GIT_TERMINAL_PROMPT",
|
||||
"0",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-private/auth",
|
||||
"/work/source/models/auth",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-private",
|
||||
"/pg-work",
|
||||
"--dir",
|
||||
"/run",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-r1-attempt3/socket",
|
||||
"/run/source-operation-postgres",
|
||||
"--setenv",
|
||||
"CUSTODIAN_PG_SOCKET",
|
||||
"/run/source-operation-postgres",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-postgres-tests-r1-control-private/db",
|
||||
"/work/source/models/db",
|
||||
"--",
|
||||
"go",
|
||||
"tool",
|
||||
"test2json",
|
||||
"-t",
|
||||
"-p",
|
||||
"forgejo.org/models/auth",
|
||||
"/pg-work/models-auth.test",
|
||||
"-test.v",
|
||||
"-test.run=^TestSourceOperationPostgres$",
|
||||
"-test.count=1"
|
||||
],
|
||||
"workspace": "/tmp/custodian-forgejo-postgres-tests-r1-control-private",
|
||||
"source_pins": {
|
||||
"access_token.go": "sha256:c3131e03c24356fb09fdd600efd17d8054063534355a4c5a3b769f840a58c8ac",
|
||||
"access_token_scope.go": "sha256:36173156237cc3c3231da78fc9c7e503391ea29c29496721bf4f6b197ab128d3",
|
||||
"access_token_scope_test.go": "sha256:738bff8f60339a3b4cbd21c31f52812eacde1435fcf55ea657c2a950c262de7d",
|
||||
"access_token_test.go": "sha256:0121b13b075e6dadb5f6bf5899ceb815786d386cd75214566545b1a3cbe5e721",
|
||||
"auth_token.go": "sha256:e652217daeffab3c9918efaab56ba4a0a0e8024071840cd8bb85925fe2568bd9",
|
||||
"main_test.go": "sha256:1c78be2861df2215936939b085bc2bac431f607731fe68da85cfc9c95a4eac87",
|
||||
"oauth2.go": "sha256:626c075138a8e1dd22d4814b11c6d6acd04e8aae2443e47017de9a289b8f55ac",
|
||||
"oauth2_list.go": "sha256:2665b0833370d4cb9d0a30e43bd86625f4f707e26a8e5bef53559816aafb7e91",
|
||||
"oauth2_test.go": "sha256:66e671311715001e2c8119daa944667b9744b4a701732007c6f4510d1daf40ca",
|
||||
"session.go": "sha256:25d934eb96d2b540a51b7337650b58123ad4ee7e1c61547e7efc1c36eb12c26d",
|
||||
"session_test.go": "sha256:cae8e667a88143cf7ce3238e8adc9e87fd7f0bdf1b2c0d9b1736c2de38485659",
|
||||
"source.go": "sha256:33ec2f66652bcb442cd80c36db0a2ad7305e1ee9c9c610d054720eea8ab18e4c",
|
||||
"source_operation.go": "sha256:0b9e248b685a950cfbf31f76aafd54e1b99272402a2f05bc6d8b742bc2657d82",
|
||||
"source_operation_internal_test.go": "sha256:af0f424d3a1fd2b29793b64baa1fa07284fee7ea0b7721c503db4efac0d871cb",
|
||||
"source_operation_postgres_export_test.go": "sha256:b9d1553144766b15c408295b87506106935abf4ed61460598b58dc81825e808d",
|
||||
"source_operation_postgres_test.go": "sha256:4a37504e5af00580d114ef1bed5cb32e09e4ec2de5fd3192adef043a4ea5f7fe",
|
||||
"source_operation_process_test.go": "sha256:40d33b11a01cb659f0bf6f8b545c4d79910e8c082a789060bcbc9cadeee965bd",
|
||||
"source_operation_test.go": "sha256:77d311bca42f48faf3fbdc15c53582e3d8a6d9108a72ed7bb6172e5b88951428",
|
||||
"source_test.go": "sha256:1ad3f9b198155193fd8193f50084889cc949192abf64c060a5ce3043f2ccb212",
|
||||
"two_factor.go": "sha256:d3a6e0b348b225d0fc012fdd5a6275736a1b324ec4cd1c013ae80a12531e0b8e",
|
||||
"two_factor_test.go": "sha256:6a88cb12d204a3b3de49d584d589b1c5a97bfb795160ae93b87707f64bece4fe",
|
||||
"twofactor.go": "sha256:905e1679be552346758b34c8ee7c950628d965d8bd3946b9b63c6797f41625d6",
|
||||
"webauthn.go": "sha256:0f9adac61a225854d579ed71338303a30a5abf26e4c115a0afefaa4fd199200e",
|
||||
"webauthn_test.go": "sha256:03f3487f7c05566e71399ff548a95400a66ed7afc96bbf31365aa7abb79dfa69"
|
||||
},
|
||||
"database_source_pins": {
|
||||
"collation.go": "sha256:9922312734c5cc2a5474b322b88214586916b320969172708f48c7b6eca40e7d",
|
||||
"common.go": "sha256:f0c626ebedaedb8681a4f3a3531441c49f3e0d305b20730aa47b267b6e16b3fd",
|
||||
"consistency.go": "sha256:c771f62de8511bfc307583a4585190aba8b38ca2ac76eab200bc901aa15b7bad",
|
||||
"context.go": "sha256:d4c4acfcb8987071aecf5cd957b3821c8d2619a2696398d37c2970f2527686f7",
|
||||
"context_committer_test.go": "sha256:83cf7fbfc32aff358221abadee63e96a803a4136c9851cf696c543dc5176d777",
|
||||
"context_test.go": "sha256:677f6be23f1c855a154de6078a540b60e17c737becfae6115e55ff6d81c3a937",
|
||||
"convert.go": "sha256:48e62893b598b767dccbf414c0acffbc26c6cfb6cb22ba79eb5b66dbb6c8193a",
|
||||
"engine.go": "sha256:d21a5b0b9ca37ac48222b79007467a232abc38edda99b3c5f54f1f4c5ab795e8",
|
||||
"engine_test.go": "sha256:ec78585da5d8b33deb0b55ba3ffd9d8ff4df704ffd62c2d95c2a6ffddd5bc309",
|
||||
"error.go": "sha256:ca0ead3529d977f90930974200a0a751366629590dae516cb54245d9c75bb280",
|
||||
"index.go": "sha256:fdfdaf6da41f317d51665bfc03684074aadf5fb32607d80c15ee9b33fdc89f09",
|
||||
"index_test.go": "sha256:d46ea9d96fc9b51e477ebecb5cfa0e15fc8e13a00c5c84ce620dd23e73663558",
|
||||
"iterate.go": "sha256:0512e2f2a3785daec26f434f6b55c37e8cd590c1b49d2068f42160c424757e28",
|
||||
"iterate_test.go": "sha256:8b9eb9d391bd99bddf6b3da5744bd80088eb4d8446c7f51dd3299abe1b8a5ebe",
|
||||
"list.go": "sha256:e23e7056f9dbce52d85ca922fa4eadb834a6ee3a5dbcafe82485038332b798e0",
|
||||
"list_test.go": "sha256:5bc42a869931470daf503b51bd3dbf5cb092d37d8cc4e03f80a21f564beadf6a",
|
||||
"log.go": "sha256:6f080111c46868e337d4d6dd16c56a5743c13b86b412df219701030cd1718a01",
|
||||
"main_test.go": "sha256:d9eb5ba4ab294ebb2c865969479d6d73db21669f24cc5454ac42f6dbd8825ef3",
|
||||
"name.go": "sha256:e486e89a36103f56af54f5f39a9b166ac0b08800abaccc2857ab324777dda6b5",
|
||||
"search.go": "sha256:b488e9a93f95d28450929896ce648e67f6772e1cd8662f7a0a1a8988a24dbfa2",
|
||||
"sensitive_sql.go": "sha256:06a298d0d6e628e6920384d4ddeef449e40c090841ebaa3f6d175725a45ae584",
|
||||
"sensitive_sql_logging_test.go": "sha256:d924b35d30686473caf29601cf51cc363ba68158cb4ef0981c9e2fc7b03c04b7",
|
||||
"sensitive_sql_test.go": "sha256:de6353c955047c3311747e4777b9f9b2195e9efb19160b971dd758dfc94cf31b",
|
||||
"sequence.go": "sha256:c0e4c7fbaa93961d9711143cfcf4bbb32f197985d21b77424946fbe3a39b38eb",
|
||||
"sql_postgres_with_schema.go": "sha256:e5941e859ada7831b400fd3143e58f91b1058cb32779d6a4466af01617cf6e7a",
|
||||
"tracing_context_test.go": "sha256:612b60c67a2be7e2da9173b95d5ef5abd7b9e1e377360828e39a622610bba070"
|
||||
},
|
||||
"original_composite_patch": "sha256:15cb7f13b1b1d1095cc344176ca337f705333a436a70ae803fcfd3d7f802ccf4",
|
||||
"runtime": "custodian-forgejo-pg-96ce905f445a",
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"controlled_mutation": {
|
||||
"mutation": "omit-private-context",
|
||||
"original_source_sha256": "sha256:ef1b07ef6cf454015d00cde8588835f5118d829da91eb0303d37184859345a31",
|
||||
"controlled_source_sha256": "sha256:0b9e248b685a950cfbf31f76aafd54e1b99272402a2f05bc6d8b742bc2657d82",
|
||||
"production_source_changed": false
|
||||
},
|
||||
"network": "disabled; only the exact disposable database Unix socket is bound",
|
||||
"production_database": false,
|
||||
"actual_authenticated_operation": false,
|
||||
"real_credentials": false,
|
||||
"test_binary_sha256": "sha256:e5acaf24f87a94f58b1cd9000f04a08186b35f29e6e848835ecd3c7105a9de72"
|
||||
}
|
||||
|
|
@ -0,0 +1,186 @@
|
|||
{"Time":"2026-10-18T01:06:37.272075993Z","Action":"start","Package":"forgejo.org/models/auth"}
|
||||
{"Time":"2026-10-18T01:06:37.413624041Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...s/storage/storage.go:157:initAttachments() [I] Initialising Attachment storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413704087Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata302694419/attachments\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413708848Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...s/storage/storage.go:147:initAvatars() [I] Initialising Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413715079Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata302694419/avatars\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413718587Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...s/storage/storage.go:173:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413721941Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata302694419/repo-avatars\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413725277Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...s/storage/storage.go:179:initRepoArchives() [I] Initialising Repository Archive storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413728406Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata302694419/repo-archive\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413731553Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...s/storage/storage.go:189:initPackages() [I] Initialising Packages storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413734655Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata302694419/packages\n"}
|
||||
{"Time":"2026-10-18T01:06:37.41373773Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...s/storage/storage.go:200:initActions() [I] Initialising Actions storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413740805Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /tmp/appdata302694419/actions_log\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413743889Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...s/storage/storage.go:204:initActions() [I] Initialising ActionsArtifacts storage with type: local\n"}
|
||||
{"Time":"2026-10-18T01:06:37.413746937Z","Action":"output","Package":"forgejo.org/models/auth","Output":"2026/10/18 01:06:37 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /pg-work/data/actions_artifacts\n"}
|
||||
{"Time":"2026-10-18T01:06:37.522368095Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres"}
|
||||
{"Time":"2026-10-18T01:06:37.522422613Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"=== RUN TestSourceOperationPostgres\n"}
|
||||
{"Time":"2026-10-18T01:06:37.522431603Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default"}
|
||||
{"Time":"2026-10-18T01:06:37.522436923Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":"=== RUN TestSourceOperationPostgres/default\n"}
|
||||
{"Time":"2026-10-18T01:06:39.38351702Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:06:39.383598221Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/default/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:06:39.496192274Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:06:39.496228243Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/default/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:06:39.596076806Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:06:39.596116148Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/default/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:06:39.697806777Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:06:39.697844866Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:06:39.790766219Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:06:39.790805589Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/default/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:06:39.887011811Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:06:39.887047754Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:06:39.982500658Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:06:39.982539604Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/default/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:06:40.078461333Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:06:40.078501586Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:06:40.173324905Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:06:40.173363417Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:06:40.269530884Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" source_operation_postgres_test.go:247: \n"}
|
||||
{"Time":"2026-10-18T01:06:40.269584158Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:247\n"}
|
||||
{"Time":"2026-10-18T01:06:40.269590434Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:106\n"}
|
||||
{"Time":"2026-10-18T01:06:40.26959845Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" \tError: \t\"[Slow SQL Query] BEGIN TRANSACTION [] - 335.752µs\\n[Slow SQL Query] LOCK TABLE login_source_operation, login_source, \\\"user\\\", external_login_user IN EXCLUSIVE MODE [] - 163.167µs\\n[Slow SQL Query] SELECT \\\"operation_id\\\", \\\"case_id\\\", \\\"target_name\\\", \\\"target_id\\\", \\\"phase\\\", \\\"before_state\\\", \\\"desired_state\\\", \\\"post_state\\\" FROM \\\"login_source_operation\\\" WHERE \\\"operation_id\\\"=$1 LIMIT 1 [postgres-error-operation] - 657.871µs\\n[Slow SQL Query] SELECT \\\"id\\\", \\\"type\\\", \\\"name\\\", \\\"is_active\\\", \\\"is_sync_enabled\\\", \\\"cfg\\\", \\\"created_unix\\\", \\\"updated_unix\\\" FROM \\\"login_source\\\" ORDER BY id [] - 425.834µs\\n[Slow SQL Query] INSERT INTO \\\"login_source\\\" (\\\"type\\\",\\\"name\\\",\\\"is_active\\\",\\\"is_sync_enabled\\\",\\\"cfg\\\",\\\"created_unix\\\",\\\"updated_unix\\\") VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING \\\"id\\\" [OAuth2 operation-test false false {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-private-original\\\",\\\"OpenIDConnectAutoDiscoveryURL\\\":\\\"\\\",\\"}
|
||||
{"Time":"2026-10-18T01:06:40.269628144Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaimValue\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"AdminGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"} 1792285600 1792285600] - 862.132µs\\n[Error SQL Query] INSERT INTO \\\"login_source\\\" (\\\"type\\\",\\\"name\\\",\\\"is_active\\\",\\\"is_sync_enabled\\\",\\\"cfg\\\",\\\"created_unix\\\",\\\"updated_unix\\\") VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING \\\"id\\\" [OAuth2 operation-test false false {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-private-original\\\",\\\"OpenIDConnectAutoDiscoveryURL\\\":\\\"\\\",\\\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaimValue\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"Admi"}
|
||||
{"Time":"2026-10-18T01:06:40.269647135Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":"nGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"} 1792285600 1792285600] - pq: {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-private-original\\\",\\\"OpenIDConnectAutoDiscoveryURL\\\":\\\"\\\",\\\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaimValue\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"AdminGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"}\\n[Slow SQL Query] ROLLBACK [] - 288.315µs\" does not contain \"[Error SQL Query] [owner-confined query]\"\n"}
|
||||
{"Time":"2026-10-18T01:06:40.269663339Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" \tTest: \tTestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:06:40.269670029Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:06:40.269674385Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/default/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:06:40.962767266Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:06:40.962806248Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:06:41.060420719Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public"}
|
||||
{"Time":"2026-10-18T01:06:41.060475904Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":"=== RUN TestSourceOperationPostgres/public\n"}
|
||||
{"Time":"2026-10-18T01:06:42.879901435Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:06:42.879936711Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/public/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:06:43.017177562Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:06:43.017220791Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/public/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:06:43.113976457Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:06:43.114021201Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/public/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:06:43.210664143Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:06:43.210705694Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:06:43.308260517Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:06:43.308303457Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/public/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:06:43.424171027Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:06:43.424242344Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:06:43.53111742Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:06:43.531165906Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/public/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:06:43.628005322Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:06:43.628048172Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:06:43.725621901Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:06:43.725657204Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:06:43.830330636Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":" source_operation_postgres_test.go:247: \n"}
|
||||
{"Time":"2026-10-18T01:06:43.830395028Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:247\n"}
|
||||
{"Time":"2026-10-18T01:06:43.830424434Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:106\n"}
|
||||
{"Time":"2026-10-18T01:06:43.830433361Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":" \tError: \t\"[Slow SQL Query] BEGIN TRANSACTION [] - 334.508µs\\n[Slow SQL Query] LOCK TABLE login_source_operation, login_source, \\\"user\\\", external_login_user IN EXCLUSIVE MODE [] - 294.088µs\\n[Slow SQL Query] SELECT \\\"operation_id\\\", \\\"case_id\\\", \\\"target_name\\\", \\\"target_id\\\", \\\"phase\\\", \\\"before_state\\\", \\\"desired_state\\\", \\\"post_state\\\" FROM \\\"public\\\".\\\"login_source_operation\\\" WHERE \\\"operation_id\\\"=$1 LIMIT 1 [postgres-error-operation] - 816.656µs\\n[Slow SQL Query] SELECT \\\"id\\\", \\\"type\\\", \\\"name\\\", \\\"is_active\\\", \\\"is_sync_enabled\\\", \\\"cfg\\\", \\\"created_unix\\\", \\\"updated_unix\\\" FROM \\\"public\\\".\\\"login_source\\\" ORDER BY id [] - 796.93µs\\n[Slow SQL Query] INSERT INTO \\\"public\\\".\\\"login_source\\\" (\\\"type\\\",\\\"name\\\",\\\"is_active\\\",\\\"is_sync_enabled\\\",\\\"cfg\\\",\\\"created_unix\\\",\\\"updated_unix\\\") VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING \\\"id\\\" [OAuth2 operation-test false false {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-private-original\\\",\\\"OpenID"}
|
||||
{"Time":"2026-10-18T01:06:43.830452522Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":"ConnectAutoDiscoveryURL\\\":\\\"\\\",\\\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaimValue\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"AdminGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"} 1792285603 1792285603] - 1.757047ms\\n[Error SQL Query] INSERT INTO \\\"public\\\".\\\"login_source\\\" (\\\"type\\\",\\\"name\\\",\\\"is_active\\\",\\\"is_sync_enabled\\\",\\\"cfg\\\",\\\"created_unix\\\",\\\"updated_unix\\\") VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING \\\"id\\\" [OAuth2 operation-test false false {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-private-original\\\",\\\"OpenIDConnectAutoDiscoveryURL\\\":\\\"\\\",\\\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaim"}
|
||||
{"Time":"2026-10-18T01:06:43.830514327Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":"Value\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"AdminGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"} 1792285603 1792285603] - pq: {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-private-original\\\",\\\"OpenIDConnectAutoDiscoveryURL\\\":\\\"\\\",\\\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaimValue\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"AdminGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"}\\n[Slow SQL Query] ROLLBACK [] - 341.213µs\" does not contain \"[Error SQL Query] [owner-confined query]\"\n"}
|
||||
{"Time":"2026-10-18T01:06:43.830529953Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":" \tTest: \tTestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:06:43.830538619Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:06:43.83054412Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/public/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:06:44.53295111Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:06:44.532986602Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:06:44.627549722Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named"}
|
||||
{"Time":"2026-10-18T01:06:44.627631175Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Output":"=== RUN TestSourceOperationPostgres/named\n"}
|
||||
{"Time":"2026-10-18T01:06:50.025184426Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse"}
|
||||
{"Time":"2026-10-18T01:06:50.025261487Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Output":"=== RUN TestSourceOperationPostgres/named/create-reconcile-inverse\n"}
|
||||
{"Time":"2026-10-18T01:06:50.149811008Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration"}
|
||||
{"Time":"2026-10-18T01:06:50.14985439Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Output":"=== RUN TestSourceOperationPostgres/named/exact-raw-preexisting-restoration\n"}
|
||||
{"Time":"2026-10-18T01:06:50.24929962Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives"}
|
||||
{"Time":"2026-10-18T01:06:50.249336834Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Output":"=== RUN TestSourceOperationPostgres/named/unchanged-preexisting-survives\n"}
|
||||
{"Time":"2026-10-18T01:06:50.352989533Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply"}
|
||||
{"Time":"2026-10-18T01:06:50.353027991Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Output":"=== RUN TestSourceOperationPostgres/named/private-drift-before-apply\n"}
|
||||
{"Time":"2026-10-18T01:06:50.446647311Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse"}
|
||||
{"Time":"2026-10-18T01:06:50.446690332Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Output":"=== RUN TestSourceOperationPostgres/named/private-drift-before-inverse\n"}
|
||||
{"Time":"2026-10-18T01:06:50.549036411Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:06:50.549077349Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/named/linked-user-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:06:50.645560295Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion"}
|
||||
{"Time":"2026-10-18T01:06:50.645618583Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Output":"=== RUN TestSourceOperationPostgres/named/linked-external-refuses-deletion\n"}
|
||||
{"Time":"2026-10-18T01:06:50.737879962Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back"}
|
||||
{"Time":"2026-10-18T01:06:50.737942515Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Output":"=== RUN TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back\n"}
|
||||
{"Time":"2026-10-18T01:06:50.829933963Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics"}
|
||||
{"Time":"2026-10-18T01:06:50.829970293Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":"=== RUN TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:06:50.922610464Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":" source_operation_postgres_test.go:247: \n"}
|
||||
{"Time":"2026-10-18T01:06:50.922647002Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":" \tError Trace:\t/work/source/models/auth/source_operation_postgres_test.go:247\n"}
|
||||
{"Time":"2026-10-18T01:06:50.922663016Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":" \t \t\t\t\t/work/source/models/auth/source_operation_postgres_test.go:106\n"}
|
||||
{"Time":"2026-10-18T01:06:50.9226706Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":" \tError: \t\"[Slow SQL Query] BEGIN TRANSACTION [] - 414.267µs\\n[Slow SQL Query] LOCK TABLE login_source_operation, login_source, \\\"user\\\", external_login_user IN EXCLUSIVE MODE [] - 368.37µs\\n[Slow SQL Query] SELECT \\\"operation_id\\\", \\\"case_id\\\", \\\"target_name\\\", \\\"target_id\\\", \\\"phase\\\", \\\"before_state\\\", \\\"desired_state\\\", \\\"post_state\\\" FROM \\\"custodian_named\\\".\\\"login_source_operation\\\" WHERE \\\"operation_id\\\"=$1 LIMIT 1 [postgres-error-operation] - 679.184µs\\n[Slow SQL Query] SELECT \\\"id\\\", \\\"type\\\", \\\"name\\\", \\\"is_active\\\", \\\"is_sync_enabled\\\", \\\"cfg\\\", \\\"created_unix\\\", \\\"updated_unix\\\" FROM \\\"custodian_named\\\".\\\"login_source\\\" ORDER BY id [] - 638.32µs\\n[Slow SQL Query] INSERT INTO \\\"custodian_named\\\".\\\"login_source\\\" (\\\"type\\\",\\\"name\\\",\\\"is_active\\\",\\\"is_sync_enabled\\\",\\\"cfg\\\",\\\"created_unix\\\",\\\"updated_unix\\\") VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING \\\"id\\\" [OAuth2 operation-test false false {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-p"}
|
||||
{"Time":"2026-10-18T01:06:50.922680023Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":"rivate-original\\\",\\\"OpenIDConnectAutoDiscoveryURL\\\":\\\"\\\",\\\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaimValue\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"AdminGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"} 1792285610 1792285610] - 946.901µs\\n[Error SQL Query] INSERT INTO \\\"custodian_named\\\".\\\"login_source\\\" (\\\"type\\\",\\\"name\\\",\\\"is_active\\\",\\\"is_sync_enabled\\\",\\\"cfg\\\",\\\"created_unix\\\",\\\"updated_unix\\\") VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING \\\"id\\\" [OAuth2 operation-test false false {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-private-original\\\",\\\"OpenIDConnectAutoDiscoveryURL\\\":\\\"\\\",\\\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\""}
|
||||
{"Time":"2026-10-18T01:06:50.922688445Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaimValue\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"AdminGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"} 1792285610 1792285610] - pq: {\\\"Provider\\\":\\\"openidConnect\\\",\\\"ClientID\\\":\\\"synthetic-client\\\",\\\"ClientSecret\\\":\\\"synthetic-private-original\\\",\\\"OpenIDConnectAutoDiscoveryURL\\\":\\\"\\\",\\\"CustomURLMapping\\\":null,\\\"IconURL\\\":\\\"\\\",\\\"Scopes\\\":[\\\"openid\\\",\\\"profile\\\",\\\"groups\\\"],\\\"AttributeSSHPublicKey\\\":\\\"\\\",\\\"RequiredClaimName\\\":\\\"groups\\\",\\\"RequiredClaimValues\\\":[\\\"g1\\\",\\\"g2\\\",\\\"g3\\\"],\\\"RequiredClaimValue\\\":\\\"\\\",\\\"GroupClaimName\\\":\\\"\\\",\\\"AdminGroup\\\":\\\"\\\",\\\"GroupTeamMap\\\":\\\"\\\",\\\"GroupTeamMapRemoval\\\":false,\\\"RestrictedGroup\\\":\\\"\\\"}\\n[Slow SQL Query] ROLLBACK [] - 320.461µs\" does not contain \"[Error SQL Query] [owner-confined query]\"\n"}
|
||||
{"Time":"2026-10-18T01:06:50.922709067Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":" \tTest: \tTestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics\n"}
|
||||
{"Time":"2026-10-18T01:06:50.922714892Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded"}
|
||||
{"Time":"2026-10-18T01:06:50.922718382Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":"=== RUN TestSourceOperationPostgres/named/uncooperative-writers-excluded\n"}
|
||||
{"Time":"2026-10-18T01:06:51.624657036Z","Action":"run","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner"}
|
||||
{"Time":"2026-10-18T01:06:51.624706866Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Output":"=== RUN TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113053564Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Output":"--- FAIL: TestSourceOperationPostgres (11.01s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11313976Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Output":" --- FAIL: TestSourceOperationPostgres/default (3.54s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113151392Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/create-reconcile-inverse (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11316426Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/create-reconcile-inverse","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:06:52.113176199Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/default/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11318637Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113192231Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/default/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113200834Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113210076Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113219743Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:06:52.113228859Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/default/private-drift-before-inverse (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11327959Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/private-drift-before-inverse","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113285208Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113290222Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113298049Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/default/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113305849Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.11331235Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11332033Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/unexpected-trigger-post-state-rolls-back","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:06:52.113327355Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Output":" --- FAIL: TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113333604Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/driver-error-rollback-and-private-diagnostics","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113340619Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/default/uncooperative-writers-excluded (0.69s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113348446Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/uncooperative-writers-excluded","Elapsed":0.69}
|
||||
{"Time":"2026-10-18T01:06:52.113355687Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113363Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default/concurrent-preparation-has-one-owner","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113367635Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/default","Elapsed":3.54}
|
||||
{"Time":"2026-10-18T01:06:52.113374912Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Output":" --- FAIL: TestSourceOperationPostgres/public (3.57s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113383Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/create-reconcile-inverse (0.14s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113390962Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/create-reconcile-inverse","Elapsed":0.14}
|
||||
{"Time":"2026-10-18T01:06:52.113397563Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/public/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11341374Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.11341934Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/public/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113427257Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113434453Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-apply (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113442253Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-apply","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113448132Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/public/private-drift-before-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113453993Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/private-drift-before-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:06:52.113467798Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-user-refuses-deletion (0.11s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113475039Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-user-refuses-deletion","Elapsed":0.11}
|
||||
{"Time":"2026-10-18T01:06:52.113480459Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/public/linked-external-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113488331Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/linked-external-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.11349256Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113517592Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/unexpected-trigger-post-state-rolls-back","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113522849Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Output":" --- FAIL: TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113530667Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/driver-error-rollback-and-private-diagnostics","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113544129Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/public/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113550604Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T01:06:52.113554887Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11356789Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public/concurrent-preparation-has-one-owner","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:06:52.113573057Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/public","Elapsed":3.57}
|
||||
{"Time":"2026-10-18T01:06:52.113577169Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Output":" --- FAIL: TestSourceOperationPostgres/named (3.90s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113582227Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Output":" --- PASS: TestSourceOperationPostgres/named/create-reconcile-inverse (0.12s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11358697Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/create-reconcile-inverse","Elapsed":0.12}
|
||||
{"Time":"2026-10-18T01:06:52.113593661Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Output":" --- PASS: TestSourceOperationPostgres/named/exact-raw-preexisting-restoration (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113603869Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/exact-raw-preexisting-restoration","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113608071Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Output":" --- PASS: TestSourceOperationPostgres/named/unchanged-preexisting-survives (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113615826Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unchanged-preexisting-survives","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113620181Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Output":" --- PASS: TestSourceOperationPostgres/named/private-drift-before-apply (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113624852Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-apply","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:06:52.113629216Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Output":" --- PASS: TestSourceOperationPostgres/named/private-drift-before-inverse (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113633914Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/private-drift-before-inverse","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113637999Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/named/linked-user-refuses-deletion (0.10s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11364505Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-user-refuses-deletion","Elapsed":0.1}
|
||||
{"Time":"2026-10-18T01:06:52.113649785Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Output":" --- PASS: TestSourceOperationPostgres/named/linked-external-refuses-deletion (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113654483Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/linked-external-refuses-deletion","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:06:52.113660488Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Output":" --- PASS: TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113672183Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/unexpected-trigger-post-state-rolls-back","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:06:52.113676773Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Output":" --- FAIL: TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics (0.09s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113681597Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/driver-error-rollback-and-private-diagnostics","Elapsed":0.09}
|
||||
{"Time":"2026-10-18T01:06:52.113689163Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Output":" --- PASS: TestSourceOperationPostgres/named/uncooperative-writers-excluded (0.70s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.11369387Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/uncooperative-writers-excluded","Elapsed":0.7}
|
||||
{"Time":"2026-10-18T01:06:52.113698Z","Action":"output","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Output":" --- PASS: TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner (0.49s)\n"}
|
||||
{"Time":"2026-10-18T01:06:52.113706756Z","Action":"pass","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named/concurrent-preparation-has-one-owner","Elapsed":0.49}
|
||||
{"Time":"2026-10-18T01:06:52.113710831Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres/named","Elapsed":3.9}
|
||||
{"Time":"2026-10-18T01:06:52.11371828Z","Action":"fail","Package":"forgejo.org/models/auth","Test":"TestSourceOperationPostgres","Elapsed":11.01}
|
||||
{"Time":"2026-10-18T01:06:52.113722337Z","Action":"output","Package":"forgejo.org/models/auth","Output":"FAIL\n"}
|
||||
{"Time":"2026-10-18T01:06:52.139381233Z","Action":"fail","Package":"forgejo.org/models/auth","Elapsed":11.287}
|
||||
|
|
@ -0,0 +1,309 @@
|
|||
//go:build source_operation_postgres
|
||||
|
||||
package auth_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"os"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
auth "forgejo.org/models/auth"
|
||||
"forgejo.org/models/db"
|
||||
"forgejo.org/modules/setting"
|
||||
oauth2 "forgejo.org/services/auth/source/oauth2"
|
||||
|
||||
"github.com/lib/pq"
|
||||
"github.com/stretchr/testify/require"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
// The real Forgejo engine/driver, registered model schemas and public operation
|
||||
// functions run. Only the database, application configuration and actors are
|
||||
// synthetic. No deployed owner database or authenticated operation is claimed.
|
||||
func postgresOperationDB(t *testing.T, schema string) (context.Context, *xorm.Engine, *xorm.Engine) {
|
||||
t.Helper()
|
||||
require.Equal(t, "/run/source-operation-postgres", os.Getenv("CUSTODIAN_PG_SOCKET"), "explicit isolated socket required")
|
||||
oldSettings, oldContext := setting.Database, db.DefaultContext
|
||||
oldEngine, ok := db.GetEngine(oldContext).(*xorm.Engine)
|
||||
require.True(t, ok)
|
||||
raw, err := xorm.NewEngine("postgres", "host=/run/source-operation-postgres user=custodian_test dbname=custodian_source sslmode=disable search_path="+schema)
|
||||
require.NoError(t, err)
|
||||
_, err = raw.Exec(`CREATE SCHEMA IF NOT EXISTS "` + schema + `"`)
|
||||
require.NoError(t, err)
|
||||
setting.Database.Type = "postgres"
|
||||
setting.Database.Host = "/run/source-operation-postgres"
|
||||
setting.Database.Name = "custodian_source"
|
||||
setting.Database.User = "custodian_test"
|
||||
setting.Database.Passwd = ""
|
||||
setting.Database.Schema = schema
|
||||
setting.Database.SSLMode = "disable"
|
||||
setting.Database.LogSQL = false
|
||||
setting.Database.MaxOpenConns, setting.Database.MaxIdleConns = 8, 2
|
||||
setting.Database.SlowQueryThreshold = 0
|
||||
require.NoError(t, db.InitEngine(context.Background()))
|
||||
engine, ok := db.GetEngine(db.DefaultContext).(*xorm.Engine)
|
||||
require.True(t, ok)
|
||||
t.Cleanup(func() {
|
||||
_ = engine.Close()
|
||||
_ = raw.Close()
|
||||
setting.Database = oldSettings
|
||||
db.SetDefaultEngine(oldContext, oldEngine)
|
||||
})
|
||||
version, err := engine.Query("SELECT current_setting('server_version_num')::integer / 10000 AS major, current_schema() AS schema")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "16", string(version[0]["major"]))
|
||||
require.Equal(t, schema, string(version[0]["schema"]))
|
||||
require.NoError(t, db.SyncAllTables())
|
||||
auth.RegisterTypeConfig(auth.OAuth2, new(oauth2.Source))
|
||||
return db.DefaultContext, engine, raw
|
||||
}
|
||||
|
||||
func resetPostgresOperations(t *testing.T, engine *xorm.Engine) {
|
||||
t.Helper()
|
||||
_, err := engine.Exec(`DROP TRIGGER IF EXISTS custodian_source_rewrite ON login_source`)
|
||||
require.NoError(t, err)
|
||||
_, err = engine.Exec(`TRUNCATE login_source_operation, login_source, "user", external_login_user RESTART IDENTITY CASCADE`)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestSourceOperationPostgres(t *testing.T) {
|
||||
for _, schema := range []string{"public", "custodian_named"} {
|
||||
t.Run(schema, func(t *testing.T) {
|
||||
ctx, engine, raw := postgresOperationDB(t, schema)
|
||||
run := func(name string, f func(*testing.T)) {
|
||||
t.Run(name, func(t *testing.T) { resetPostgresOperations(t, engine); f(t) })
|
||||
}
|
||||
run("create-reconcile-inverse", func(t *testing.T) {
|
||||
before := operationRows(t, ctx)
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-create-operation", "postgres-create-case", 0, operationSource())
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
r, err := auth.ApplySourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "applied", r.Phase)
|
||||
require.Positive(t, r.SourceID)
|
||||
post := operationRows(t, ctx)
|
||||
again, err := auth.ApplySourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, r, again)
|
||||
require.Equal(t, post, operationRows(t, ctx))
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-create-operation", "postgres-wrong-case")
|
||||
require.ErrorIs(t, err, auth.ErrSourceOperationConflict)
|
||||
r, err = auth.ReconcileSourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "applied", r.Phase)
|
||||
r, err = auth.InverseSourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "reverted", r.Phase)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.ErrorIs(t, err, auth.ErrSourceOperationConflict)
|
||||
})
|
||||
run("exact-raw-preexisting-restoration", func(t *testing.T) {
|
||||
s := operationSource()
|
||||
require.NoError(t, auth.CreateSource(ctx, s))
|
||||
_, err := engine.Exec(`UPDATE login_source SET cfg = ? WHERE id = ?`, `{"Provider":"openidConnect","ClientID":"synthetic-client","ClientSecret":"synthetic-private-original","FutureGuard":{"x":true}}`, s.ID)
|
||||
require.NoError(t, err)
|
||||
before := operationRows(t, ctx)
|
||||
s.Cfg.(*oauth2.Source).ClientSecret = "synthetic-private-new"
|
||||
_, err = auth.PrepareSourceOperation(ctx, "postgres-restore-operation", "postgres-restore-case", s.ID, s)
|
||||
require.NoError(t, err)
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-restore-operation", "postgres-restore-case")
|
||||
require.NoError(t, err)
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-restore-operation", "postgres-restore-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
})
|
||||
run("unchanged-preexisting-survives", func(t *testing.T) {
|
||||
s := operationSource()
|
||||
require.NoError(t, auth.CreateSource(ctx, s))
|
||||
before := operationRows(t, ctx)
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-unchanged-operation", "postgres-unchanged-case", s.ID, s)
|
||||
require.NoError(t, err)
|
||||
r, err := auth.ApplySourceOperation(ctx, "postgres-unchanged-operation", "postgres-unchanged-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "unchanged", r.Phase)
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-unchanged-operation", "postgres-unchanged-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
})
|
||||
for _, stage := range []string{"before-apply", "before-inverse"} {
|
||||
run("private-drift-"+stage, func(t *testing.T) {
|
||||
s := operationSource()
|
||||
require.NoError(t, auth.CreateSource(ctx, s))
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-drift-operation", "postgres-drift-case", s.ID, s)
|
||||
require.NoError(t, err)
|
||||
if stage == "before-inverse" {
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-drift-operation", "postgres-drift-case")
|
||||
require.NoError(t, err)
|
||||
}
|
||||
_, err = engine.Exec(`UPDATE login_source SET cfg = cfg || ' ' WHERE id = ?`, s.ID)
|
||||
require.NoError(t, err)
|
||||
before := operationRows(t, ctx)
|
||||
if stage == "before-apply" {
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-drift-operation", "postgres-drift-case")
|
||||
} else {
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-drift-operation", "postgres-drift-case")
|
||||
}
|
||||
require.ErrorIs(t, err, auth.ErrSourceOperationConflict)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
})
|
||||
}
|
||||
for _, kind := range []string{"user", "external"} {
|
||||
run("linked-"+kind+"-refuses-deletion", func(t *testing.T) {
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-linked-operation", "postgres-linked-case", 0, operationSource())
|
||||
require.NoError(t, err)
|
||||
r, err := auth.ApplySourceOperation(ctx, "postgres-linked-operation", "postgres-linked-case")
|
||||
require.NoError(t, err)
|
||||
if kind == "user" {
|
||||
_, err = engine.Exec(`INSERT INTO "user" (id, lower_name, name, login_source) VALUES (1, 'synthetic', 'synthetic', ?)`, r.SourceID)
|
||||
} else {
|
||||
_, err = engine.Exec(`INSERT INTO external_login_user (external_id, user_id, login_source_id) VALUES ('synthetic-external', 1, ?)`, r.SourceID)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
before := operationRows(t, ctx)
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-linked-operation", "postgres-linked-case")
|
||||
require.True(t, auth.IsErrSourceInUse(err))
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
var count int64
|
||||
if kind == "user" {
|
||||
count, err = engine.Table("user").Where("login_source = ?", r.SourceID).Count()
|
||||
} else {
|
||||
count, err = engine.Table("external_login_user").Where("login_source_id = ?", r.SourceID).Count()
|
||||
}
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, 1, count)
|
||||
})
|
||||
}
|
||||
run("unexpected-trigger-post-state-rolls-back", func(t *testing.T) {
|
||||
before := operationRows(t, ctx)
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-trigger-operation", "postgres-trigger-case", 0, operationSource())
|
||||
require.NoError(t, err)
|
||||
_, err = engine.Exec(`CREATE OR REPLACE FUNCTION custodian_rewrite_source() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN NEW.name := 'unexpected-rewrite'; RETURN NEW; END $$`)
|
||||
require.NoError(t, err)
|
||||
_, err = engine.Exec(`CREATE TRIGGER custodian_source_rewrite BEFORE INSERT ON login_source FOR EACH ROW EXECUTE FUNCTION custodian_rewrite_source()`)
|
||||
require.NoError(t, err)
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-trigger-operation", "postgres-trigger-case")
|
||||
require.ErrorIs(t, err, auth.ErrSourceOperationConflict)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
r, err := auth.ReconcileSourceOperation(ctx, "postgres-trigger-operation", "postgres-trigger-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "prepared", r.Phase)
|
||||
})
|
||||
run("uncooperative-writers-excluded", func(t *testing.T) {
|
||||
locked, release, done := make(chan struct{}), make(chan struct{}), make(chan error, 1)
|
||||
var once sync.Once
|
||||
releaseLock := func() { once.Do(func() { close(release) }) }
|
||||
defer releaseLock()
|
||||
go func() {
|
||||
done <- auth.SourceOperationPostgresTransactionForTest(ctx, func(context.Context) error { close(locked); <-release; return nil })
|
||||
}()
|
||||
select {
|
||||
case <-locked:
|
||||
case err := <-done:
|
||||
t.Fatalf("lock acquisition refused: %v", err)
|
||||
case <-time.After(5 * time.Second):
|
||||
t.Fatal("lock acquisition timed out")
|
||||
}
|
||||
statements := []string{`UPDATE login_source_operation SET phase=phase WHERE operation_id='absent'`, `UPDATE login_source SET name=name WHERE id=-1`, `UPDATE "user" SET login_source=login_source WHERE id=-1`, `UPDATE external_login_user SET login_source_id=login_source_id WHERE user_id=-1`}
|
||||
for _, statement := range statements {
|
||||
session := raw.NewSession()
|
||||
require.NoError(t, session.Begin())
|
||||
_, err := session.Exec(`SET LOCAL lock_timeout='150ms'`)
|
||||
require.NoError(t, err)
|
||||
_, err = session.Exec(statement)
|
||||
var pgerr *pq.Error
|
||||
blocked := errors.As(err, &pgerr) && pgerr.Code == "55P03"
|
||||
_ = session.Rollback()
|
||||
_ = session.Close()
|
||||
require.True(t, blocked, "an uncooperative writer escaped the actual table lock")
|
||||
}
|
||||
releaseLock()
|
||||
select {
|
||||
case err := <-done:
|
||||
require.NoError(t, err)
|
||||
case <-time.After(5 * time.Second):
|
||||
t.Fatal("transaction did not finish")
|
||||
}
|
||||
for _, statement := range statements {
|
||||
_, err := raw.Exec(statement)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
})
|
||||
run("concurrent-preparation-has-one-owner", func(t *testing.T) {
|
||||
start, done := make(chan struct{}), make(chan error, 2)
|
||||
for _, id := range []string{"postgres-concurrent-first", "postgres-concurrent-second"} {
|
||||
go func(id string) {
|
||||
<-start
|
||||
_, err := auth.PrepareSourceOperation(ctx, id, "postgres-concurrent-case", 0, operationSource())
|
||||
done <- err
|
||||
}(id)
|
||||
}
|
||||
close(start)
|
||||
ok, conflict := 0, 0
|
||||
for range 2 {
|
||||
select {
|
||||
case err := <-done:
|
||||
if err == nil {
|
||||
ok++
|
||||
} else if errors.Is(err, auth.ErrSourceOperationConflict) {
|
||||
conflict++
|
||||
} else {
|
||||
t.Fatal("unexpected concurrent preparation error")
|
||||
}
|
||||
case <-time.After(5 * time.Second):
|
||||
t.Fatal("concurrent preparation timed out")
|
||||
}
|
||||
}
|
||||
require.Equal(t, 1, ok)
|
||||
require.Equal(t, 1, conflict)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestSourceOperationPostgresProcessRecovery(t *testing.T) {
|
||||
step := os.Getenv("CUSTODIAN_PG_STEP")
|
||||
require.NotEmpty(t, step, "explicit synthetic recovery phase required")
|
||||
ctx, engine, _ := postgresOperationDB(t, "custodian_recovery")
|
||||
switch step {
|
||||
case "prepare":
|
||||
resetPostgresOperations(t, engine)
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-process-operation", "postgres-process-case", 0, operationSource())
|
||||
require.NoError(t, err)
|
||||
case "crash":
|
||||
engine.AddHook(operationCrashAfterSourceInsert{})
|
||||
_, _ = auth.ApplySourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
t.Fatal("actual source insert did not reach the process-death hook")
|
||||
case "recover-prepared":
|
||||
r, err := auth.ReconcileSourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "prepared", r.Phase)
|
||||
n, err := engine.Table("login_source").Count()
|
||||
require.NoError(t, err)
|
||||
require.Zero(t, n)
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
case "recover-applied":
|
||||
r, err := auth.ReconcileSourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "applied", r.Phase)
|
||||
n, err := engine.Table("login_source").Count()
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, 1, n)
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
case "recover-inverse":
|
||||
r, err := auth.ReconcileSourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "reverted", r.Phase)
|
||||
n, err := engine.Table("login_source").Count()
|
||||
require.NoError(t, err)
|
||||
require.Zero(t, n)
|
||||
default:
|
||||
t.Fatal("unknown synthetic recovery phase")
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,314 @@
|
|||
//go:build source_operation_postgres
|
||||
|
||||
package auth_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"os"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
auth "forgejo.org/models/auth"
|
||||
"forgejo.org/models/db"
|
||||
user_model "forgejo.org/models/user"
|
||||
"forgejo.org/modules/setting"
|
||||
oauth2 "forgejo.org/services/auth/source/oauth2"
|
||||
|
||||
"github.com/lib/pq"
|
||||
"github.com/stretchr/testify/require"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
// The real Forgejo engine/driver, registered model schemas and public operation
|
||||
// functions run. Only the database, application configuration and actors are
|
||||
// synthetic. No deployed owner database or authenticated operation is claimed.
|
||||
func postgresOperationDB(t *testing.T, schema string) (context.Context, *xorm.Engine, *xorm.Engine) {
|
||||
t.Helper()
|
||||
require.Equal(t, "/run/source-operation-postgres", os.Getenv("CUSTODIAN_PG_SOCKET"), "explicit isolated socket required")
|
||||
oldSettings, oldContext := setting.Database, db.DefaultContext
|
||||
oldEngine, ok := db.GetEngine(oldContext).(*xorm.Engine)
|
||||
require.True(t, ok)
|
||||
expectedSchema := schema
|
||||
if expectedSchema == "" {
|
||||
expectedSchema = "public"
|
||||
}
|
||||
raw, err := xorm.NewEngine("postgres", "host=/run/source-operation-postgres user=custodian_test dbname=custodian_source sslmode=disable search_path="+expectedSchema)
|
||||
require.NoError(t, err)
|
||||
_, err = raw.Exec(`CREATE SCHEMA IF NOT EXISTS "` + expectedSchema + `"`)
|
||||
require.NoError(t, err)
|
||||
setting.Database.Type = "postgres"
|
||||
setting.Database.Host = "/run/source-operation-postgres"
|
||||
setting.Database.Name = "custodian_source"
|
||||
setting.Database.User = "custodian_test"
|
||||
setting.Database.Passwd = ""
|
||||
setting.Database.Schema = schema
|
||||
setting.Database.SSLMode = "disable"
|
||||
setting.Database.LogSQL = false
|
||||
setting.Database.MaxOpenConns, setting.Database.MaxIdleConns = 8, 2
|
||||
setting.Database.SlowQueryThreshold = 0
|
||||
require.NoError(t, db.InitEngine(context.Background()))
|
||||
engine, ok := db.GetEngine(db.DefaultContext).(*xorm.Engine)
|
||||
require.True(t, ok)
|
||||
t.Cleanup(func() {
|
||||
_ = engine.Close()
|
||||
_ = raw.Close()
|
||||
setting.Database = oldSettings
|
||||
db.SetDefaultEngine(oldContext, oldEngine)
|
||||
})
|
||||
version, err := engine.Query("SELECT current_setting('server_version_num')::integer / 10000 AS major, current_schema() AS schema")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "16", string(version[0]["major"]))
|
||||
require.Equal(t, expectedSchema, string(version[0]["schema"]))
|
||||
require.NoError(t, db.SyncAllTables())
|
||||
auth.RegisterTypeConfig(auth.OAuth2, new(oauth2.Source))
|
||||
return db.DefaultContext, engine, raw
|
||||
}
|
||||
|
||||
func resetPostgresOperations(t *testing.T, engine *xorm.Engine) {
|
||||
t.Helper()
|
||||
_, err := engine.Exec(`DROP TRIGGER IF EXISTS custodian_source_rewrite ON login_source`)
|
||||
require.NoError(t, err)
|
||||
_, err = engine.Exec(`TRUNCATE login_source_operation, login_source, "user", external_login_user RESTART IDENTITY CASCADE`)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestSourceOperationPostgres(t *testing.T) {
|
||||
for _, profile := range []struct{ name, schema string }{{"default", ""}, {"public", "public"}, {"named", "custodian_named"}} {
|
||||
t.Run(profile.name, func(t *testing.T) {
|
||||
ctx, engine, raw := postgresOperationDB(t, profile.schema)
|
||||
run := func(name string, f func(*testing.T)) {
|
||||
t.Run(name, func(t *testing.T) { resetPostgresOperations(t, engine); f(t) })
|
||||
}
|
||||
run("create-reconcile-inverse", func(t *testing.T) {
|
||||
before := operationRows(t, ctx)
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-create-operation", "postgres-create-case", 0, operationSource())
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
r, err := auth.ApplySourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "applied", r.Phase)
|
||||
require.Positive(t, r.SourceID)
|
||||
post := operationRows(t, ctx)
|
||||
again, err := auth.ApplySourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, r, again)
|
||||
require.Equal(t, post, operationRows(t, ctx))
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-create-operation", "postgres-wrong-case")
|
||||
require.ErrorIs(t, err, auth.ErrSourceOperationConflict)
|
||||
r, err = auth.ReconcileSourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "applied", r.Phase)
|
||||
r, err = auth.InverseSourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "reverted", r.Phase)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-create-operation", "postgres-create-case")
|
||||
require.ErrorIs(t, err, auth.ErrSourceOperationConflict)
|
||||
})
|
||||
run("exact-raw-preexisting-restoration", func(t *testing.T) {
|
||||
s := operationSource()
|
||||
require.NoError(t, auth.CreateSource(ctx, s))
|
||||
_, err := engine.Exec(`UPDATE login_source SET cfg = ? WHERE id = ?`, `{"Provider":"openidConnect","ClientID":"synthetic-client","ClientSecret":"synthetic-private-original","FutureGuard":{"x":true}}`, s.ID)
|
||||
require.NoError(t, err)
|
||||
before := operationRows(t, ctx)
|
||||
s.Cfg.(*oauth2.Source).ClientSecret = "synthetic-private-new"
|
||||
_, err = auth.PrepareSourceOperation(ctx, "postgres-restore-operation", "postgres-restore-case", s.ID, s)
|
||||
require.NoError(t, err)
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-restore-operation", "postgres-restore-case")
|
||||
require.NoError(t, err)
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-restore-operation", "postgres-restore-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
})
|
||||
run("unchanged-preexisting-survives", func(t *testing.T) {
|
||||
s := operationSource()
|
||||
require.NoError(t, auth.CreateSource(ctx, s))
|
||||
before := operationRows(t, ctx)
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-unchanged-operation", "postgres-unchanged-case", s.ID, s)
|
||||
require.NoError(t, err)
|
||||
r, err := auth.ApplySourceOperation(ctx, "postgres-unchanged-operation", "postgres-unchanged-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "unchanged", r.Phase)
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-unchanged-operation", "postgres-unchanged-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
})
|
||||
for _, stage := range []string{"before-apply", "before-inverse"} {
|
||||
run("private-drift-"+stage, func(t *testing.T) {
|
||||
s := operationSource()
|
||||
require.NoError(t, auth.CreateSource(ctx, s))
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-drift-operation", "postgres-drift-case", s.ID, s)
|
||||
require.NoError(t, err)
|
||||
if stage == "before-inverse" {
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-drift-operation", "postgres-drift-case")
|
||||
require.NoError(t, err)
|
||||
}
|
||||
_, err = engine.Exec(`UPDATE login_source SET cfg = cfg || ' ' WHERE id = ?`, s.ID)
|
||||
require.NoError(t, err)
|
||||
before := operationRows(t, ctx)
|
||||
if stage == "before-apply" {
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-drift-operation", "postgres-drift-case")
|
||||
} else {
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-drift-operation", "postgres-drift-case")
|
||||
}
|
||||
require.ErrorIs(t, err, auth.ErrSourceOperationConflict)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
})
|
||||
}
|
||||
for _, kind := range []string{"user", "external"} {
|
||||
run("linked-"+kind+"-refuses-deletion", func(t *testing.T) {
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-linked-operation", "postgres-linked-case", 0, operationSource())
|
||||
require.NoError(t, err)
|
||||
r, err := auth.ApplySourceOperation(ctx, "postgres-linked-operation", "postgres-linked-case")
|
||||
require.NoError(t, err)
|
||||
if kind == "user" {
|
||||
_, err = engine.Insert(&user_model.User{ID: 1, LowerName: "synthetic", Name: "synthetic", Email: "synthetic@invalid.test", LoginSource: r.SourceID})
|
||||
} else {
|
||||
_, err = engine.Exec(`INSERT INTO external_login_user (external_id, user_id, login_source_id) VALUES ('synthetic-external', 1, ?)`, r.SourceID)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
before := operationRows(t, ctx)
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-linked-operation", "postgres-linked-case")
|
||||
require.True(t, auth.IsErrSourceInUse(err))
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
var count int64
|
||||
if kind == "user" {
|
||||
count, err = engine.Table("user").Where("login_source = ?", r.SourceID).Count()
|
||||
} else {
|
||||
count, err = engine.Table("external_login_user").Where("login_source_id = ?", r.SourceID).Count()
|
||||
}
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, 1, count)
|
||||
})
|
||||
}
|
||||
run("unexpected-trigger-post-state-rolls-back", func(t *testing.T) {
|
||||
before := operationRows(t, ctx)
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-trigger-operation", "postgres-trigger-case", 0, operationSource())
|
||||
require.NoError(t, err)
|
||||
_, err = engine.Exec(`CREATE OR REPLACE FUNCTION custodian_rewrite_source() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN NEW.name := 'unexpected-rewrite'; RETURN NEW; END $$`)
|
||||
require.NoError(t, err)
|
||||
_, err = engine.Exec(`CREATE TRIGGER custodian_source_rewrite BEFORE INSERT ON login_source FOR EACH ROW EXECUTE FUNCTION custodian_rewrite_source()`)
|
||||
require.NoError(t, err)
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-trigger-operation", "postgres-trigger-case")
|
||||
require.ErrorIs(t, err, auth.ErrSourceOperationConflict)
|
||||
require.Equal(t, before, operationRows(t, ctx))
|
||||
r, err := auth.ReconcileSourceOperation(ctx, "postgres-trigger-operation", "postgres-trigger-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "prepared", r.Phase)
|
||||
})
|
||||
run("uncooperative-writers-excluded", func(t *testing.T) {
|
||||
locked, release, done := make(chan struct{}), make(chan struct{}), make(chan error, 1)
|
||||
var once sync.Once
|
||||
releaseLock := func() { once.Do(func() { close(release) }) }
|
||||
defer releaseLock()
|
||||
go func() {
|
||||
done <- auth.SourceOperationPostgresTransactionForTest(ctx, func(context.Context) error { close(locked); <-release; return nil })
|
||||
}()
|
||||
select {
|
||||
case <-locked:
|
||||
case err := <-done:
|
||||
t.Fatalf("lock acquisition refused: %v", err)
|
||||
case <-time.After(5 * time.Second):
|
||||
t.Fatal("lock acquisition timed out")
|
||||
}
|
||||
statements := []string{`UPDATE login_source_operation SET phase=phase WHERE operation_id='absent'`, `UPDATE login_source SET name=name WHERE id=-1`, `UPDATE "user" SET login_source=login_source WHERE id=-1`, `UPDATE external_login_user SET login_source_id=login_source_id WHERE user_id=-1`}
|
||||
for _, statement := range statements {
|
||||
session := raw.NewSession()
|
||||
require.NoError(t, session.Begin())
|
||||
_, err := session.Exec(`SET LOCAL lock_timeout='150ms'`)
|
||||
require.NoError(t, err)
|
||||
_, err = session.Exec(statement)
|
||||
var pgerr *pq.Error
|
||||
blocked := errors.As(err, &pgerr) && pgerr.Code == "55P03"
|
||||
_ = session.Rollback()
|
||||
_ = session.Close()
|
||||
require.True(t, blocked, "an uncooperative writer escaped the actual table lock")
|
||||
}
|
||||
releaseLock()
|
||||
select {
|
||||
case err := <-done:
|
||||
require.NoError(t, err)
|
||||
case <-time.After(5 * time.Second):
|
||||
t.Fatal("transaction did not finish")
|
||||
}
|
||||
for _, statement := range statements {
|
||||
_, err := raw.Exec(statement)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
})
|
||||
run("concurrent-preparation-has-one-owner", func(t *testing.T) {
|
||||
start, done := make(chan struct{}), make(chan error, 2)
|
||||
for _, id := range []string{"postgres-concurrent-first", "postgres-concurrent-second"} {
|
||||
go func(id string) {
|
||||
<-start
|
||||
_, err := auth.PrepareSourceOperation(ctx, id, "postgres-concurrent-case", 0, operationSource())
|
||||
done <- err
|
||||
}(id)
|
||||
}
|
||||
close(start)
|
||||
ok, conflict := 0, 0
|
||||
for range 2 {
|
||||
select {
|
||||
case err := <-done:
|
||||
if err == nil {
|
||||
ok++
|
||||
} else if errors.Is(err, auth.ErrSourceOperationConflict) {
|
||||
conflict++
|
||||
} else {
|
||||
t.Fatal("unexpected concurrent preparation error")
|
||||
}
|
||||
case <-time.After(5 * time.Second):
|
||||
t.Fatal("concurrent preparation timed out")
|
||||
}
|
||||
}
|
||||
require.Equal(t, 1, ok)
|
||||
require.Equal(t, 1, conflict)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestSourceOperationPostgresProcessRecovery(t *testing.T) {
|
||||
step := os.Getenv("CUSTODIAN_PG_STEP")
|
||||
require.NotEmpty(t, step, "explicit synthetic recovery phase required")
|
||||
ctx, engine, _ := postgresOperationDB(t, "custodian_recovery")
|
||||
switch step {
|
||||
case "prepare":
|
||||
resetPostgresOperations(t, engine)
|
||||
_, err := auth.PrepareSourceOperation(ctx, "postgres-process-operation", "postgres-process-case", 0, operationSource())
|
||||
require.NoError(t, err)
|
||||
case "crash":
|
||||
engine.AddHook(operationCrashAfterSourceInsert{})
|
||||
_, _ = auth.ApplySourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
t.Fatal("actual source insert did not reach the process-death hook")
|
||||
case "recover-prepared":
|
||||
r, err := auth.ReconcileSourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "prepared", r.Phase)
|
||||
n, err := engine.Table("login_source").Count()
|
||||
require.NoError(t, err)
|
||||
require.Zero(t, n)
|
||||
_, err = auth.ApplySourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
case "recover-applied":
|
||||
r, err := auth.ReconcileSourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "applied", r.Phase)
|
||||
n, err := engine.Table("login_source").Count()
|
||||
require.NoError(t, err)
|
||||
require.EqualValues(t, 1, n)
|
||||
_, err = auth.InverseSourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
case "recover-inverse":
|
||||
r, err := auth.ReconcileSourceOperation(ctx, "postgres-process-operation", "postgres-process-case")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "reverted", r.Phase)
|
||||
n, err := engine.Table("login_source").Count()
|
||||
require.NoError(t, err)
|
||||
require.Zero(t, n)
|
||||
default:
|
||||
t.Fatal("unknown synthetic recovery phase")
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
package db
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"runtime/trace"
|
||||
"testing"
|
||||
|
||||
"xorm.io/xorm"
|
||||
"xorm.io/xorm/contexts"
|
||||
)
|
||||
|
||||
type followingQueryHook struct{}
|
||||
|
||||
func (followingQueryHook) BeforeProcess(c *contexts.ContextHook) (context.Context, error) {
|
||||
return c.Ctx, nil
|
||||
}
|
||||
func (followingQueryHook) AfterProcess(*contexts.ContextHook) error { return nil }
|
||||
|
||||
func TestTracingContextSurvivesFollowingHooks(t *testing.T) {
|
||||
for _, sensitive := range []bool{false, true} {
|
||||
for _, fail := range []bool{false, true} {
|
||||
engine, err := xorm.NewEngine("sqlite3", ":memory:")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
engine.AddHook(TracingHook{}, followingQueryHook{})
|
||||
ctx := context.Background()
|
||||
if sensitive {
|
||||
ctx = WithSensitiveSQL(ctx)
|
||||
}
|
||||
var output bytes.Buffer
|
||||
if err := trace.Start(&output); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
func() {
|
||||
defer trace.Stop()
|
||||
query := "SELECT ?"
|
||||
if fail {
|
||||
query = "SELECT missing_synthetic_function(?)"
|
||||
}
|
||||
_, err = engine.Context(ctx).Exec(query, "synthetic-following-hook-sentinel")
|
||||
}()
|
||||
_ = engine.Close()
|
||||
if (err != nil) != fail {
|
||||
t.Fatal("unexpected real SQLite query outcome")
|
||||
}
|
||||
if bytes.Contains(output.Bytes(), []byte("synthetic-following-hook-sentinel")) == sensitive {
|
||||
t.Fatal("following hook changed private or ordinary trace disclosure")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"image_id": "sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777",
|
||||
"repo_digests": [
|
||||
"postgres@sha256:57c72fd2a128e416c7fcc499958864df5301e940bca0a56f58fddf30ffc07777"
|
||||
],
|
||||
"selector": "existing local postgres:16-alpine",
|
||||
"target_major": "PostgreSQL 16 in current Forgejo database source"
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-net",
|
||||
"--unshare-pid",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--dir",
|
||||
"/app",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-release-r4/source/gitea",
|
||||
"/app/forgejo",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-release-r4/embedded-extracted",
|
||||
"/results",
|
||||
"--chdir",
|
||||
"/tmp",
|
||||
"--clearenv",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/nonexistent",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/tmp/home",
|
||||
"--setenv",
|
||||
"USER",
|
||||
"builder",
|
||||
"--setenv",
|
||||
"USERNAME",
|
||||
"builder",
|
||||
"--setenv",
|
||||
"GITEA_WORK_DIR",
|
||||
"/tmp/work",
|
||||
"--setenv",
|
||||
"GITEA_CUSTOM",
|
||||
"/tmp/custom",
|
||||
"--setenv",
|
||||
"GITEA_APP_INI",
|
||||
"/tmp/absent-app.ini",
|
||||
"--setenv",
|
||||
"TZ",
|
||||
"UTC",
|
||||
"--setenv",
|
||||
"LC_ALL",
|
||||
"C",
|
||||
"--",
|
||||
"/app/forgejo",
|
||||
"--version"
|
||||
],
|
||||
"phase": "binary-version",
|
||||
"returncode": 0,
|
||||
"seconds": 0.16
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"binary_sha256": "92efb26614d3fca22c400920d92c4cd022e32ab86c1f562f60699ab5f750cd28",
|
||||
"frontend_built": true,
|
||||
"image_deployment_selected": false,
|
||||
"source_locks_preserved": true,
|
||||
"tags": "bindata timetzdata sqlite sqlite_unlock_notify"
|
||||
}
|
||||
|
|
@ -0,0 +1,708 @@
|
|||
[
|
||||
{
|
||||
"operation": [
|
||||
"migrate"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused-debug-logging",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/CLIENT_SECRET"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"synthetic-oauth",
|
||||
"--provider",
|
||||
"github",
|
||||
"--key",
|
||||
"synthetic-public-id",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/CLIENT_SECRET",
|
||||
"--group-claim-name",
|
||||
"groups",
|
||||
"--admin-group",
|
||||
"unchanged-admin",
|
||||
"--scopes",
|
||||
"read:user,user:email"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--icon-url",
|
||||
"https://synthetic.invalid/icon"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/replacement"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"synthetic-guarded"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/good"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/newline"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/newline"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/short"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/short"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/long"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/long"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/badbyte"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/badbyte"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/world"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/world"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/writable"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/writable"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/executable"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/executable"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/empty"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/empty"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/symlink"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/symlink"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/fifo"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/fifo"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/directory"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/directory"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/missing"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/missing"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/badparent/value"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/badparent/value"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/parentlink/value"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/parentlink/value"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"relative"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"relative"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
""
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
""
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/../forgejo-oidc/good"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/../forgejo-oidc/good"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--provider",
|
||||
"github",
|
||||
"--secret-file",
|
||||
"/run/writable-input/good"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret-file",
|
||||
"/run/writable-input/good"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--name",
|
||||
"refused",
|
||||
"--secret",
|
||||
"",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/good"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--secret",
|
||||
"",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/good"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--required-claim-values",
|
||||
""
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--secret-file",
|
||||
"/run/forgejo-oidc/replacement"
|
||||
],
|
||||
"returncode": 1,
|
||||
"stdout_stderr_secret_absent": true
|
||||
},
|
||||
{
|
||||
"operation": [
|
||||
"admin",
|
||||
"auth",
|
||||
"update-oauth",
|
||||
"--id",
|
||||
"1",
|
||||
"--secret",
|
||||
"synthetic-legacy-literal"
|
||||
],
|
||||
"returncode": 0,
|
||||
"stdout_stderr_secret_absent": true
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"passed": true,
|
||||
"subprocesses": 48,
|
||||
"real_backend_cli_and_sqlite": true,
|
||||
"network": "disabled by bwrap",
|
||||
"secret_inputs": "synthetic only",
|
||||
"private_file_values_never_in_argv_env_output": true,
|
||||
"actual_browser_login": false,
|
||||
"actual_readonly_file_bind": true,
|
||||
"replacement_preserves_other_config": true,
|
||||
"unsafe_SQL_logging_refused": true,
|
||||
"actual_error_and_slow_hooks_no_leak": true
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"argv": [
|
||||
"docker",
|
||||
"buildx",
|
||||
"build",
|
||||
"--output",
|
||||
"type=oci,dest=/tmp/custodian-forgejo-release-r4/image.oci.tar,rewrite-timestamp=true",
|
||||
"--no-cache",
|
||||
"--platform",
|
||||
"linux/amd64",
|
||||
"--pull=false",
|
||||
"--network=none",
|
||||
"--provenance=false",
|
||||
"--sbom=false",
|
||||
"--metadata-file",
|
||||
"/tmp/custodian-forgejo-release-r4/image-build-metadata.json",
|
||||
"--build-arg",
|
||||
"SOURCE_DATE_EPOCH=1752120742",
|
||||
"/tmp/custodian-forgejo-release-r4/container-context"
|
||||
],
|
||||
"phase": "container-build",
|
||||
"returncode": 0,
|
||||
"seconds": 26.78
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
#0 building with "default" instance using docker driver
|
||||
|
||||
#1 [internal] load build definition from Dockerfile
|
||||
#1 transferring dockerfile: 465B done
|
||||
#1 DONE 0.0s
|
||||
|
||||
#2 [internal] load metadata for code.forgejo.org/forgejo/forgejo@sha256:41649dff5311664097d29b4d80620403f0b27e7c0eee0b8af79b132a37f3807b
|
||||
#2 DONE 0.4s
|
||||
|
||||
#3 [internal] load .dockerignore
|
||||
#3 transferring context: 2B done
|
||||
#3 DONE 0.0s
|
||||
|
||||
#4 [internal] load build context
|
||||
#4 ...
|
||||
|
||||
#5 [1/2] FROM code.forgejo.org/forgejo/forgejo@sha256:41649dff5311664097d29b4d80620403f0b27e7c0eee0b8af79b132a37f3807b
|
||||
#5 resolve code.forgejo.org/forgejo/forgejo@sha256:41649dff5311664097d29b4d80620403f0b27e7c0eee0b8af79b132a37f3807b 0.1s done
|
||||
#5 CACHED
|
||||
|
||||
#4 [internal] load build context
|
||||
#4 transferring context: 111.05MB 1.4s done
|
||||
#4 DONE 1.4s
|
||||
|
||||
#6 [2/2] COPY --chown=0:0 --chmod=755 gitea /app/gitea/gitea
|
||||
#6 DONE 0.4s
|
||||
|
||||
#7 exporting to oci image format
|
||||
#7 exporting layers
|
||||
#7 exporting layers 11.2s done
|
||||
#7 rewriting layers with source-date-epoch 1752120742 (2025-07-10 04:12:22 +0000 UTC)
|
||||
#7 rewriting layers with source-date-epoch 1752120742 (2025-07-10 04:12:22 +0000 UTC) 6.9s done
|
||||
#7 exporting manifest sha256:9d127b0a75d3d53b1598e7f380dce29f23f42c2e69056fdfc9a42122d98c41c7 0.0s done
|
||||
#7 exporting config sha256:864ee9249f5e00b5e047f125a640f666ba132f92bd5fbed1084a51b6a644b76b 0.0s done
|
||||
#7 sending tarball
|
||||
#7 sending tarball 5.7s done
|
||||
#7 DONE 23.9s
|
||||
|
||||
#8 resolving provenance for metadata file
|
||||
#8 DONE 0.0s
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"two_fresh_no_cache_OCI_exports_exact": true,
|
||||
"compared_fields": {
|
||||
"image_manifest_digest": "sha256:9d127b0a75d3d53b1598e7f380dce29f23f42c2e69056fdfc9a42122d98c41c7",
|
||||
"config_digest": "sha256:864ee9249f5e00b5e047f125a640f666ba132f92bd5fbed1084a51b6a644b76b",
|
||||
"oci_index_sha256": "0f283c23a4c7fb461a4f7a745e8bfd95f8def8e67772bbbae43b781e61e92ed7",
|
||||
"archive_sha256": "499ef48172540b07f01de62e0c78f5798fe2793cac73d0c6188b37c07077e7d0"
|
||||
},
|
||||
"same_verified_binary": true,
|
||||
"second_source_build_claimed": false,
|
||||
"registry_publication": false,
|
||||
"native_admission": false
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"all_base_layers_and_rootless_runtime_config_preserved": true,
|
||||
"all_oci_blob_digests_verified": true,
|
||||
"archive_sha256": "499ef48172540b07f01de62e0c78f5798fe2793cac73d0c6188b37c07077e7d0",
|
||||
"artifact_path": "/tmp/custodian-forgejo-release-r4/image.oci.tar",
|
||||
"config_digest": "sha256:864ee9249f5e00b5e047f125a640f666ba132f92bd5fbed1084a51b6a644b76b",
|
||||
"container_epoch": 1752120742,
|
||||
"deployment_tag": null,
|
||||
"final_layer_binary_exact": true,
|
||||
"host_or_secret_mounts": false,
|
||||
"image_manifest_digest": "sha256:9d127b0a75d3d53b1598e7f380dce29f23f42c2e69056fdfc9a42122d98c41c7",
|
||||
"local_runtime_image_loaded": false,
|
||||
"oci_index_sha256": "0f283c23a4c7fb461a4f7a745e8bfd95f8def8e67772bbbae43b781e61e92ed7",
|
||||
"privileged_containers": false,
|
||||
"registry_publication": false,
|
||||
"source_epoch": 1752105237
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"argv": [
|
||||
"make",
|
||||
"GOFLAGS=-trimpath -buildvcs=false -p=4",
|
||||
"RELEASE_VERSION=11.0.3+cust80.feb10793",
|
||||
"FORGEJO_VERSION=11.0.3+cust80.feb10793",
|
||||
"FORGEJO_VERSION_API=11.0.3+cust80.feb10793",
|
||||
"TAGS=bindata timetzdata sqlite sqlite_unlock_notify",
|
||||
"go-check",
|
||||
"generate-backend",
|
||||
"static-executable"
|
||||
],
|
||||
"phase": "embedded-and-static-backend",
|
||||
"returncode": 0,
|
||||
"seconds": 60.14
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
Running go generate...
|
||||
generating bindata for migration
|
||||
generating bindata for options
|
||||
generating bindata for public
|
||||
generating bindata for templates
|
||||
CGO_CFLAGS="-O2 -g -DSQLITE_MAX_VARIABLE_NUMBER=32766" /tmp/custodian-forgejo-release-r4/go/bin/go build -trimpath -buildvcs=false -p=4 -tags 'netgo osusergo bindata timetzdata sqlite sqlite_unlock_notify' -ldflags '-linkmode external -extldflags "-static" -s -w -X "main.ReleaseVersion=11.0.3+cust80.feb10793" -X "main.MakeVersion=GNU Make 4.3" -X "main.Version=11.0.3+cust80.feb10793" -X "main.Tags=bindata timetzdata sqlite sqlite_unlock_notify" -X "main.ForgejoVersion=11.0.3+cust80.feb10793"' -o gitea
|
||||
# forgejo.org
|
||||
/usr/bin/ld: /tmp/go-link-3904455077/000012.o: in function `unixDlOpen':
|
||||
/_/github.com/mattn/go-sqlite3@v1.14.28/sqlite3-binding.c:45328:(.text+0x7a2d): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-net",
|
||||
"--unshare-pid",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--dir",
|
||||
"/app",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-release-r4/source/gitea",
|
||||
"/app/forgejo",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-release-r4/embedded-extracted",
|
||||
"/results",
|
||||
"--chdir",
|
||||
"/tmp",
|
||||
"--clearenv",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/nonexistent",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/tmp/home",
|
||||
"--setenv",
|
||||
"USER",
|
||||
"builder",
|
||||
"--setenv",
|
||||
"USERNAME",
|
||||
"builder",
|
||||
"--setenv",
|
||||
"GITEA_WORK_DIR",
|
||||
"/tmp/work",
|
||||
"--setenv",
|
||||
"GITEA_CUSTOM",
|
||||
"/tmp/custom",
|
||||
"--setenv",
|
||||
"GITEA_APP_INI",
|
||||
"/tmp/absent-app.ini",
|
||||
"--setenv",
|
||||
"TZ",
|
||||
"UTC",
|
||||
"--setenv",
|
||||
"LC_ALL",
|
||||
"C",
|
||||
"--",
|
||||
"/app/forgejo",
|
||||
"embedded",
|
||||
"extract",
|
||||
"--include-vendored",
|
||||
"--destination",
|
||||
"/results",
|
||||
"**"
|
||||
],
|
||||
"phase": "embedded-extract",
|
||||
"returncode": 0,
|
||||
"seconds": 0.79
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"scope": "Public generated/embedded asset SHA-256 identifiers only",
|
||||
"assets_verified_against_both_actual_source_and_extracted_binary": 2234,
|
||||
"runtime_original_manifest_sha256": "sha256:74a0ec278ab99ac86ee434d7620229dc4a70146efd51876a1e4738d2c9f4ffdb",
|
||||
"published_manifest_sha256": "sha256:ca09d0b2ed436ad6d3473da35d0d1081bdd8c3311825f4684993b33e6b426736",
|
||||
"original_byte_exact_reconstructed": true,
|
||||
"reconstruction": "Remove the sha256: value prefix and serialize with json.dumps(indent=2, sort_keys=True) plus one newline.",
|
||||
"runtime_verification_receipt_preserved": true,
|
||||
"scanner_rules_or_allowlists_changed": false,
|
||||
"credential_values_transformed": false
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"argv": [
|
||||
"make",
|
||||
"GOFLAGS=-trimpath -buildvcs=false -p=4",
|
||||
"RELEASE_VERSION=11.0.3+cust80.feb10793",
|
||||
"FORGEJO_VERSION=11.0.3+cust80.feb10793",
|
||||
"FORGEJO_VERSION_API=11.0.3+cust80.feb10793",
|
||||
"frontend"
|
||||
],
|
||||
"phase": "frontend",
|
||||
"returncode": 0,
|
||||
"seconds": 83.5
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"buildx.build.provenance": {
|
||||
"builder": {
|
||||
"id": ""
|
||||
},
|
||||
"buildType": "https://mobyproject.org/buildkit@v1",
|
||||
"materials": [
|
||||
{
|
||||
"uri": "pkg:docker/code.forgejo.org/forgejo/forgejo?digest=sha256:41649dff5311664097d29b4d80620403f0b27e7c0eee0b8af79b132a37f3807b\u0026platform=linux%2Famd64",
|
||||
"digest": {
|
||||
"sha256": "41649dff5311664097d29b4d80620403f0b27e7c0eee0b8af79b132a37f3807b"
|
||||
}
|
||||
}
|
||||
],
|
||||
"invocation": {
|
||||
"configSource": {
|
||||
"entryPoint": "Dockerfile"
|
||||
},
|
||||
"parameters": {
|
||||
"frontend": "dockerfile.v0",
|
||||
"args": {
|
||||
"build-arg:SOURCE_DATE_EPOCH": "1752120742",
|
||||
"force-network-mode": "none",
|
||||
"no-cache": ""
|
||||
},
|
||||
"locals": [
|
||||
{
|
||||
"name": "context"
|
||||
},
|
||||
{
|
||||
"name": "dockerfile"
|
||||
}
|
||||
]
|
||||
},
|
||||
"environment": {
|
||||
"platform": "linux/amd64"
|
||||
}
|
||||
}
|
||||
},
|
||||
"buildx.build.ref": "default/default/slt9p94vejq7ji1ub5j63htim",
|
||||
"containerimage.config.digest": "sha256:864ee9249f5e00b5e047f125a640f666ba132f92bd5fbed1084a51b6a644b76b",
|
||||
"containerimage.descriptor": {
|
||||
"mediaType": "application/vnd.oci.image.manifest.v1+json",
|
||||
"digest": "sha256:9d127b0a75d3d53b1598e7f380dce29f23f42c2e69056fdfc9a42122d98c41c7",
|
||||
"size": 2841,
|
||||
"annotations": {
|
||||
"org.opencontainers.image.created": "2025-07-10T04:12:22Z"
|
||||
},
|
||||
"platform": {
|
||||
"architecture": "amd64",
|
||||
"os": "linux"
|
||||
}
|
||||
},
|
||||
"containerimage.digest": "sha256:9d127b0a75d3d53b1598e7f380dce29f23f42c2e69056fdfc9a42122d98c41c7"
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
"argv": [
|
||||
"bwrap",
|
||||
"--unshare-net",
|
||||
"--unshare-pid",
|
||||
"--proc",
|
||||
"/proc",
|
||||
"--dev",
|
||||
"/dev",
|
||||
"--tmpfs",
|
||||
"/tmp",
|
||||
"--dir",
|
||||
"/app",
|
||||
"--ro-bind",
|
||||
"/tmp/custodian-forgejo-release-r4/source/gitea",
|
||||
"/app/forgejo",
|
||||
"--bind",
|
||||
"/tmp/custodian-forgejo-release-r4/embedded-extracted",
|
||||
"/results",
|
||||
"--chdir",
|
||||
"/tmp",
|
||||
"--clearenv",
|
||||
"--setenv",
|
||||
"PATH",
|
||||
"/nonexistent",
|
||||
"--setenv",
|
||||
"HOME",
|
||||
"/tmp/home",
|
||||
"--setenv",
|
||||
"USER",
|
||||
"builder",
|
||||
"--setenv",
|
||||
"USERNAME",
|
||||
"builder",
|
||||
"--setenv",
|
||||
"GITEA_WORK_DIR",
|
||||
"/tmp/work",
|
||||
"--setenv",
|
||||
"GITEA_CUSTOM",
|
||||
"/tmp/custom",
|
||||
"--setenv",
|
||||
"GITEA_APP_INI",
|
||||
"/tmp/absent-app.ini",
|
||||
"--setenv",
|
||||
"TZ",
|
||||
"UTC",
|
||||
"--setenv",
|
||||
"LC_ALL",
|
||||
"C",
|
||||
"--",
|
||||
"/app/forgejo",
|
||||
"admin",
|
||||
"auth",
|
||||
"add-oauth",
|
||||
"--help"
|
||||
],
|
||||
"phase": "new-cli-help",
|
||||
"returncode": 0,
|
||||
"seconds": 0.13
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"argv": [
|
||||
"npm",
|
||||
"ci",
|
||||
"--offline",
|
||||
"--ignore-scripts",
|
||||
"--no-audit",
|
||||
"--no-fund"
|
||||
],
|
||||
"phase": "npm-offline-ci",
|
||||
"returncode": 0,
|
||||
"seconds": 32.83
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"lock_sha256": "5a4d0e5126b6b9dd66fe2828ff78bfe6ac0cadc34b96ca739225d622b963b768",
|
||||
"module_cache": "/tmp/custodian-forgejo-successor-attempt2/modules",
|
||||
"public_archives_verified": true
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"argv": [
|
||||
"docker",
|
||||
"buildx",
|
||||
"build",
|
||||
"--output",
|
||||
"type=oci,dest=/tmp/custodian-forgejo-release-r4-oci-replay/image.oci.tar,rewrite-timestamp=true",
|
||||
"--no-cache",
|
||||
"--platform",
|
||||
"linux/amd64",
|
||||
"--pull=false",
|
||||
"--network=none",
|
||||
"--provenance=false",
|
||||
"--sbom=false",
|
||||
"--metadata-file",
|
||||
"/tmp/custodian-forgejo-release-r4-oci-replay/image-build-metadata.json",
|
||||
"--build-arg",
|
||||
"SOURCE_DATE_EPOCH=1752120742",
|
||||
"/tmp/custodian-forgejo-release-r4-oci-replay/container-context"
|
||||
],
|
||||
"phase": "container-build",
|
||||
"returncode": 0,
|
||||
"seconds": 24.94
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
#0 building with "default" instance using docker driver
|
||||
|
||||
#1 [internal] load build definition from Dockerfile
|
||||
#1 transferring dockerfile: 465B done
|
||||
#1 DONE 0.0s
|
||||
|
||||
#2 [internal] load metadata for code.forgejo.org/forgejo/forgejo@sha256:41649dff5311664097d29b4d80620403f0b27e7c0eee0b8af79b132a37f3807b
|
||||
#2 DONE 0.0s
|
||||
|
||||
#3 [internal] load .dockerignore
|
||||
#3 transferring context:
|
||||
#3 transferring context: 2B done
|
||||
#3 DONE 0.0s
|
||||
|
||||
#4 [1/2] FROM code.forgejo.org/forgejo/forgejo@sha256:41649dff5311664097d29b4d80620403f0b27e7c0eee0b8af79b132a37f3807b
|
||||
#4 resolve code.forgejo.org/forgejo/forgejo@sha256:41649dff5311664097d29b4d80620403f0b27e7c0eee0b8af79b132a37f3807b 0.0s done
|
||||
#4 CACHED
|
||||
|
||||
#5 [internal] load build context
|
||||
#5 transferring context: 111.05MB 1.6s done
|
||||
#5 DONE 1.6s
|
||||
|
||||
#6 [2/2] COPY --chown=0:0 --chmod=755 gitea /app/gitea/gitea
|
||||
#6 DONE 0.6s
|
||||
|
||||
#7 exporting to oci image format
|
||||
#7 exporting layers
|
||||
#7 exporting layers 8.3s done
|
||||
#7 rewriting layers with source-date-epoch 1752120742 (2025-07-10 04:12:22 +0000 UTC)
|
||||
#7 rewriting layers with source-date-epoch 1752120742 (2025-07-10 04:12:22 +0000 UTC) 7.5s done
|
||||
#7 exporting manifest sha256:9d127b0a75d3d53b1598e7f380dce29f23f42c2e69056fdfc9a42122d98c41c7 done
|
||||
#7 exporting config sha256:864ee9249f5e00b5e047f125a640f666ba132f92bd5fbed1084a51b6a644b76b done
|
||||
#7 sending tarball
|
||||
#7 sending tarball 6.2s done
|
||||
#7 DONE 22.1s
|
||||
|
||||
#8 resolving provenance for metadata file
|
||||
#8 DONE 0.0s
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue