Event
pull_request
Branch
perf/optimize
Commit
14a9a7e
Started
Duration
1:31

Synced from GitHub

end-to-end (ubuntu-latest)

SuccessTook 1:12
Whole log, 98 KB
Current runner version: '2.338.0'
▸ Runner Image Provisioner
Hosted Compute Agent
Version: 20261021.618
Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e
Build Date: 2026-10-21T00:45:21Z
Worker ID: {38e52b7e-5898-4c35-bdc9-d9e1b1031632}
Region: westus
Cloud: Azure
▸ Operating System
Ubuntu
24.04.5
LTS
▸ Runner Image
Image: ubuntu-24.04
Version: 20261025.353.1
Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261025.353/images/ubuntu/Ubuntu2404-Readme.md
Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261025.353
▸ GITHUB_TOKEN Permissions
Contents: read
Metadata: read
Packages: read
Secret source: Actions
Cache mode: write
Prepare workflow directory
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v7' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1)
Download action repository 'actions/setup-python@v7' (SHA:6d4fd22b20465ccc0f7354476588e8df7c9ca0e0)
Complete job name: end-to-end (ubuntu-latest)
▸ Run actions/checkout@v7
with:
  repository: Narayan201120/airlock-db
  token: ***
  ssh-strict: true
  ssh-user: git
  persist-credentials: true
  clean: true
  sparse-checkout-cone-mode: true
  fetch-depth: 1
  fetch-tags: false
  show-progress: true
  lfs: false
  submodules: false
  set-safe-directory: true
  allow-unsafe-pr-checkout: false
Syncing repository: Narayan201120/airlock-db
▸ Getting Git version info
Working directory is '/home/runner/work/airlock-db/airlock-db'
[command]/usr/bin/git version
git version 2.56.0
Temporarily overriding HOME='/home/runner/work/_temp/98a9a962-0545-4553-b86d-50af3646d306' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/airlock-db/airlock-db
Deleting the contents of '/home/runner/work/airlock-db/airlock-db'
▸ Determining repository object format
▸ Initializing the repository
[command]/usr/bin/git init /home/runner/work/airlock-db/airlock-db
hint: Using 'master' as the name for the initial branch. This default branch name
hint: will change to "main" in Git 3.0. To configure the initial branch name
hint: to use in all of your new repositories, which will suppress this warning,
hint: call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /home/runner/work/airlock-db/airlock-db/.git/
[command]/usr/bin/git remote add origin https://github.com/Narayan201120/airlock-db
▸ Disabling automatic garbage collection
[command]/usr/bin/git config --local gc.auto 0
▸ Setting up auth
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
[command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config http.https://github.com/.extraheader AUTHORIZATION: basic ***
[command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/airlock-db/airlock-db/.git.path /home/runner/work/_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config
[command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/airlock-db/airlock-db/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config
[command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config
[command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config
▸ Fetching the repository
[command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +0ab378379f150847478515fa134833f9db6793f1:refs/remotes/pull/1/merge
From https://github.com/Narayan201120/airlock-db
 * [new ref]         0ab378379f150847478515fa134833f9db6793f1 -> pull/1/merge
▸ Determining the checkout info
[command]/usr/bin/git sparse-checkout disable
[command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
▸ Checking out the ref
[command]/usr/bin/git checkout --progress --force refs/remotes/pull/1/merge
Note: switching to 'refs/remotes/pull/1/merge'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 0ab3783 Merge 14a9a7ef246e4604eded969b31f53793ff487e9c into b630a06b5e882585234fb367b34195e27b38f145
[command]/usr/bin/git log -1 --format=%H
0ab378379f150847478515fa134833f9db6793f1
▸ Run actions/setup-python@v7
with:
  python-version: 3.12
  check-latest: false
  token: ***
  mirror: https://raw.githubusercontent.com/actions/python-versions/main
  update-environment: true
  allow-prereleases: false
  freethreaded: false
▸ Installed versions
Successfully set up CPython (3.12.15)
▸ Run python -m pip install .
python -m pip install .
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
Processing ./.
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Collecting pydantic<3,>=2.6 (from airlock-db==0.4.0)
  Downloading pydantic-2.14.1-py3-none-any.whl.metadata (133 kB)
Collecting PyYAML<7,>=6 (from airlock-db==0.4.0)
  Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)
Collecting annotated-types>=0.6.0 (from pydantic<3,>=2.6->airlock-db==0.4.0)
  Downloading annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.50.1 (from pydantic<3,>=2.6->airlock-db==0.4.0)
  Downloading pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.5 kB)
Collecting typing-extensions>=4.16.0 (from pydantic<3,>=2.6->airlock-db==0.4.0)
  Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)
Collecting typing-inspection>=0.4.4 (from pydantic<3,>=2.6->airlock-db==0.4.0)
  Downloading typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB)
Downloading pydantic-2.14.1-py3-none-any.whl (488 kB)
Downloading pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 16.4 MB/s  0:00:00
Downloading pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (807 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 807.9/807.9 kB 25.1 MB/s  0:00:00
Downloading annotated_types-0.8.0-py3-none-any.whl (13 kB)
Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB)
Downloading typing_inspection-0.4.4-py3-none-any.whl (14 kB)
Building wheels for collected packages: airlock-db
  Building wheel for airlock-db (pyproject.toml): started
  Building wheel for airlock-db (pyproject.toml): finished with status 'done'
  Created wheel for airlock-db: filename=airlock_db-0.4.0-py3-none-any.whl size=112487 sha256=f3d4f44217937bed994660241b9db8449cbd427f33ef5ffeda0bfb510c861009
  Stored in directory: /tmp/pip-ephem-wheel-cache-5f15hoqk/wheels/5f/43/9e/6abdb3d3b97373118381452e6db5c2a7d825478c746f086efb
Successfully built airlock-db
Installing collected packages: typing-extensions, PyYAML, annotated-types, typing-inspection, pydantic-core, pydantic, airlock-db

Successfully installed PyYAML-6.0.3 airlock-db-0.4.0 annotated-types-0.8.0 pydantic-2.14.1 pydantic-core-2.50.1 typing-extensions-4.16.0 typing-inspection-0.4.4
▸ Run python -m compileall -q src
python -m compileall -q src
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
▸ Run set +e
set +e
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --anonymize --output-dir ci-builtin
code=$?
set -e
test "$code" -eq 1
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
WARNING: Validation issue for source-b86c79666eaa5f7e record 5: missing
WARNING: Validation issue for source-b86c79666eaa5f7e record 6: missing
WARNING: Validation issue for source-b86c79666eaa5f7e record 7: missing
WARNING: Validation issue for source-b86c79666eaa5f7e record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for source-b86c79666eaa5f7e record 10: string_too_short
WARNING: Validation issue for source-b86c79666eaa5f7e record 12: string_too_short
WARNING: Validation issue for source-b86c79666eaa5f7e record 13: value_error
WARNING: Validation issue for source-b86c79666eaa5f7e record 14: value_error
WARNING: Validation issue for source-b86c79666eaa5f7e record 15: value_error
WARNING: Validation issue for source-b86c79666eaa5f7e record 16: value_error
WARNING: Validation issue for source-b86c79666eaa5f7e record 17: value_error
WARNING: Validation issue for source-b86c79666eaa5f7e record 18: string_too_long
WARNING: Validation issue for source-b86c79666eaa5f7e record 19: greater_than
WARNING: Validation issue for source-b86c79666eaa5f7e record 20: greater_than
WARNING: Validation issue for source-b86c79666eaa5f7e record 21: decimal_max_places
WARNING: Validation issue for source-b86c79666eaa5f7e record 22: decimal_max_digits
WARNING: Validation issue for source-b86c79666eaa5f7e record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for source-b86c79666eaa5f7e record 26: enum
WARNING: Validation issue for source-b86c79666eaa5f7e record 27: enum
WARNING: Validation issue for source-b86c79666eaa5f7e record 28: value_error
WARNING: Validation issue for source-b86c79666eaa5f7e record 29: string_pattern_mismatch
WARNING: Validation issue for source-b86c79666eaa5f7e record 30: string_too_long
WARNING: Validation issue for source-b86c79666eaa5f7e record 31: string_too_long
WARNING: Validation issue for source-b86c79666eaa5f7e record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: target_migration.db (committed)
Report: airlock_report.html
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-builtin \
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-builtin \
  --expected-checked 32 --expected-valid 8 --expected-invalid 24 --expected-rows 8 \
  --anonymized-field account_id --expect-type-mismatch-note
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
{
  "anonymized_field_token_violations": {
    "account_id": 0
  },
  "invalid_records": 24,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 32,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 8,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": true,
  "valid_records": 8
}
▸ Run python main.py --input examples/real_data/online_retail_sample.jsonl \
python main.py --input examples/real_data/online_retail_sample.jsonl \
  --config examples/real_data/online_retail_schema.json --anonymize --output-dir ci-real
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
Records checked: 10
Valid: 10; invalid: 0
SQLite: target_migration.db (committed)
Report: airlock_report.html
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-real \
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-real \
  --expected-checked 10 --expected-valid 10 --expected-invalid 0 --expected-rows 10 \
  --anonymized-field customer_id
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
{
  "anonymized_field_token_violations": {
    "customer_id": 0
  },
  "invalid_records": 0,
  "jsonl_rows": null,
  "posted_at_index": null,
  "records_checked": 10,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 10,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": false,
  "valid_records": 10
}
▸ Run python main.py --input examples/real_data/online_retail_sample.jsonl \
python main.py --input examples/real_data/online_retail_sample.jsonl \
  --config examples/real_data/online_retail_schema.json --anonymize \
  --output-format jsonl --output-dir ci-jsonl
test ! -f ci-jsonl/target_migration.db
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-jsonl \
  --skip-sqlite --expected-checked 10 --expected-valid 10 --expected-invalid 0 \
  --expected-jsonl-rows 10
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
Records checked: 10
Valid: 10; invalid: 0
SQLite: not used (--output-format jsonl)
JSONL: target_migration.jsonl (10 records)
Report: airlock_report.html
{
  "anonymized_field_token_violations": null,
  "invalid_records": 0,
  "jsonl_rows": 10,
  "posted_at_index": null,
  "records_checked": 10,
  "report_standalone": true,
  "sqlite_integrity": null,
  "sqlite_rows": null,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": false,
  "valid_records": 10
}
▸ Run python - <<'PY'
python - <<'PY'
import csv

header = ["transaction_id", "account_id", "posted_at", "amount", "currency",
          "transaction_type", "status", "counterparty", "description"]
rows = [
    ["3f8a1c2e-4b6d-4e9a-8f1c-2d5e7a9b0c11", "ACC-1001", "2026-01-15T09:30:00Z",
     "125.50", "USD", "DEBIT", "POSTED", "Northwind, Ltd", "Monthly supplies"],
    ["8b2d4f6a-1c3e-4a5b-9d7e-0f1a2b3c4d5e", "ACC_2200", "2026-02-03T16:45:00+02:00",
     "89.99", "EUR", "CREDIT", "POSTED", "Blue Yonder Airlines", ""],
    ["not-a-uuid", "ACC-1001", "2026-03-01T10:00:00Z", "10.00", "USD", "DEBIT",
     "POSTED", "Example Co", ""],
]
with open("ci-basic.csv", "w", encoding="utf-8-sig", newline="") as stream:
    writer = csv.writer(stream)
    writer.writerow(header)
    writer.writerows(rows)
PY
python main.py --input ci-basic.csv --output-dir ci-csv || test $? -eq 1
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-csv \
  --expected-checked 3 --expected-valid 2 --expected-invalid 1 --expected-rows 2
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
WARNING: Validation issue for ci-basic.csv record 3: value_error
Records checked: 3
Valid: 2; invalid: 1
SQLite: ci-csv/target_migration.db (committed)
Report: ci-csv/airlock_report.html
{
  "anonymized_field_token_violations": null,
  "invalid_records": 1,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 3,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 2,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": false,
  "valid_records": 2
}
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_archive_input.py ci-archives
python .cursor/skills/verify-airlock-db/scripts/verify_archive_input.py ci-archives
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
archive_input_ok scenarios=6 evidence=/home/runner/work/airlock-db/airlock-db/ci-archives/archive_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_schema_infer.py ci-infer
python .cursor/skills/verify-airlock-db/scripts/verify_schema_infer.py ci-infer
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
schema_infer_ok scenarios=8 evidence=/home/runner/work/airlock-db/airlock-db/ci-infer/schema_infer_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_handoff.py ci-handoff
python .cursor/skills/verify-airlock-db/scripts/verify_handoff.py ci-handoff
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
verify_handoff_ok scenarios=10 evidence=/home/runner/work/airlock-db/airlock-db/ci-handoff/verify_handoff_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_jsonl_target.py ci-jsonl-verify
python .cursor/skills/verify-airlock-db/scripts/verify_jsonl_target.py ci-jsonl-verify
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
jsonl_target_ok scenarios=10 evidence=/home/runner/work/airlock-db/airlock-db/ci-jsonl-verify/jsonl_target_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_source_manifest.py ci-source-manifest
python .cursor/skills/verify-airlock-db/scripts/verify_source_manifest.py ci-source-manifest
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
source_manifest_ok scenarios=9 evidence=/home/runner/work/airlock-db/airlock-db/ci-source-manifest/source_manifest_verification.json
▸ Run python - <<'PY'
python - <<'PY'
import sqlite3

columns = ("transaction_id TEXT, account_id TEXT, posted_at TEXT, amount TEXT, "
           "currency TEXT, transaction_type TEXT, status TEXT, counterparty TEXT, "
           "description TEXT")
connection = sqlite3.connect("ci-multi.db")
connection.execute(f"CREATE TABLE a ({columns})")
connection.execute(f"CREATE TABLE b ({columns})")
connection.execute(
    "INSERT INTO a VALUES ('3f8a1c2e-4b6d-4e9a-8f1c-2d5e7a9b0c11', 'ACC-1001', "
    "'2026-01-15T09:30:00Z', '125.50', 'USD', 'DEBIT', 'POSTED', 'Northwind', NULL)")
connection.execute(
    "INSERT INTO b VALUES ('8b2d4f6a-1c3e-4a5b-9d7e-0f1a2b3c4d5e', 'ACC_2200', "
    "'2026-02-03T16:45:00+02:00', '89.99', 'EUR', 'CREDIT', 'POSTED', 'Blue Yonder', NULL)")
connection.execute(
    "INSERT INTO b VALUES ('not-a-uuid', 'ACC-1001', '2026-03-01T10:00:00Z', "
    "'10.00', 'USD', 'DEBIT', 'POSTED', 'Example', NULL)")
connection.commit()
connection.close()
PY
python main.py --source-db ci-multi.db --source-table a --source-table b --output-dir ci-multi || test $? -eq 1
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-multi \
  --expected-checked 3 --expected-valid 2 --expected-invalid 1 --expected-rows 2
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
WARNING: Validation issue for ci-multi.db (b) record 2: value_error
Records checked: 3
Valid: 2; invalid: 1
SQLite: ci-multi/target_migration.db (committed)
Report: ci-multi/airlock_report.html
{
  "anonymized_field_token_violations": null,
  "invalid_records": 1,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 3,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 2,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": false,
  "valid_records": 2
}
▸ Run python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --error-log --output-dir ci-repair || test $? -eq 1
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --error-log --output-dir ci-repair || test $? -eq 1
printf 'd\nd\nq\n' | python main.py repair --error-log ci-repair/airlock_errors.jsonl --constraints examples/constraints.json | grep -q '0 corrected, 2 dropped'
printf 'q\n' | python main.py repair --error-log ci-repair/airlock_errors.jsonl --constraints examples/constraints.json | grep -q 'Resumed: 2'
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
WARNING: Validation issue for examples/messy_transactions.json record 5: missing
WARNING: Validation issue for examples/messy_transactions.json record 6: missing
WARNING: Validation issue for examples/messy_transactions.json record 7: missing
WARNING: Validation issue for examples/messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples/messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 13: value_error
WARNING: Validation issue for examples/messy_transactions.json record 14: value_error
WARNING: Validation issue for examples/messy_transactions.json record 15: value_error
WARNING: Validation issue for examples/messy_transactions.json record 16: value_error
WARNING: Validation issue for examples/messy_transactions.json record 17: value_error
WARNING: Validation issue for examples/messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples/messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples/messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples/messy_transactions.json record 26: enum
WARNING: Validation issue for examples/messy_transactions.json record 27: enum
WARNING: Validation issue for examples/messy_transactions.json record 28: value_error
WARNING: Validation issue for examples/messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples/messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: ci-repair/target_migration.db (committed)
Repair log: ci-repair/airlock_errors.jsonl
Report: ci-repair/airlock_report.html
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_repair_summary.py ci-repair-summary
python .cursor/skills/verify-airlock-db/scripts/verify_repair_summary.py ci-repair-summary
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
repair_summary_ok scenarios=8 evidence=/home/runner/work/airlock-db/airlock-db/ci-repair-summary/repair_summary_verification.json
▸ Run python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --error-log --output-dir ci-decisions || test $? -eq 1
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --error-log --output-dir ci-decisions || test $? -eq 1
printf '{"entry": 1, "action": "drop"}\n{"entry": 2, "action": "set", "field": "amount", "value": "5.00"}\n{"entry": 3, "action": "set", "field": "status", "value": "POSTED"}\n' > ci-decisions.jsonl
python main.py repair --error-log ci-decisions/airlock_errors.jsonl --constraints examples/constraints.json --decisions ci-decisions.jsonl
python main.py report --output-dir ci-decisions | grep -q 'Repair outcomes: 2 corrected, 1 dropped'
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
WARNING: Validation issue for examples/messy_transactions.json record 5: missing
WARNING: Validation issue for examples/messy_transactions.json record 6: missing
WARNING: Validation issue for examples/messy_transactions.json record 7: missing
WARNING: Validation issue for examples/messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples/messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 13: value_error
WARNING: Validation issue for examples/messy_transactions.json record 14: value_error
WARNING: Validation issue for examples/messy_transactions.json record 15: value_error
WARNING: Validation issue for examples/messy_transactions.json record 16: value_error
WARNING: Validation issue for examples/messy_transactions.json record 17: value_error
WARNING: Validation issue for examples/messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples/messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples/messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples/messy_transactions.json record 26: enum
WARNING: Validation issue for examples/messy_transactions.json record 27: enum
WARNING: Validation issue for examples/messy_transactions.json record 28: value_error
WARNING: Validation issue for examples/messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples/messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: ci-decisions/target_migration.db (committed)
Repair log: ci-decisions/airlock_errors.jsonl
Report: ci-decisions/airlock_report.html
Repair log: ci-decisions/airlock_errors.jsonl
Schema: FinancialTransaction; target: ci-decisions/target_migration.db
Each rejected row will be reviewed interactively. Type q to finish this session.
Corrected record passed validation and was staged with its resume checkpoint.
Corrected record passed validation and was staged with its resume checkpoint.
Repair complete: 2 corrected, 1 dropped, 0 non-repairable entries.
SQLite: ci-decisions/target_migration.db (2 inserted, 0 duplicates, 0 updated; 3 repair decisions saved)
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_decisions_dry_run.py ci-decisions-dry-run
python .cursor/skills/verify-airlock-db/scripts/verify_decisions_dry_run.py ci-decisions-dry-run
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
decisions_dry_run_ok scenarios=5 evidence=/home/runner/work/airlock-db/airlock-db/ci-decisions-dry-run/decisions_dry_run_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_dry_run.py ci-dry-run
python .cursor/skills/verify-airlock-db/scripts/verify_dry_run.py ci-dry-run
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
dry_run_ok scenarios=8 evidence=/home/runner/work/airlock-db/airlock-db/ci-dry-run/dry_run_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_config_check.py ci-config-check
python .cursor/skills/verify-airlock-db/scripts/verify_config_check.py ci-config-check
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
config_check_ok scenarios=7 evidence=/home/runner/work/airlock-db/airlock-db/ci-config-check/config_check_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_input_encoding.py ci-input-encoding
python .cursor/skills/verify-airlock-db/scripts/verify_input_encoding.py ci-input-encoding
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
input_encoding_ok scenarios=9 evidence=/home/runner/work/airlock-db/airlock-db/ci-input-encoding/input_encoding_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_run_compare.py ci-run-compare
python .cursor/skills/verify-airlock-db/scripts/verify_run_compare.py ci-run-compare
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
run_compare_ok scenarios=7 evidence=/home/runner/work/airlock-db/airlock-db/ci-run-compare/run_compare_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_dynamic_constraints.py ci-dynamic-constraints
python .cursor/skills/verify-airlock-db/scripts/verify_dynamic_constraints.py ci-dynamic-constraints
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
dynamic_constraints_ok scenarios=7 evidence=/home/runner/work/airlock-db/airlock-db/ci-dynamic-constraints/dynamic_constraints_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_xml_equivalence.py \
python .cursor/skills/verify-airlock-db/scripts/verify_xml_equivalence.py \
  examples/messy_transactions.json --constraints examples/constraints.json
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
records=8
table=transactions
xml_equals_json=true
▸ Run python - <<'PY'
python - <<'PY'
import json
import sqlite3

rows = json.load(open("examples/messy_transactions.json", encoding="utf-8"))
chosen = [rows[0], rows[3], rows[4], rows[8]]
connection = sqlite3.connect("legacy-source.db")
connection.execute(
    "CREATE TABLE transactions (transaction_id TEXT, account_id TEXT, "
    "posted_at TEXT, amount TEXT, currency TEXT, transaction_type TEXT, "
    "status TEXT, counterparty TEXT, description TEXT)"
)
for row in chosen:
    amount = row.get("amount")
    if isinstance(amount, float):
        amount = repr(amount)
    connection.execute(
        "INSERT INTO transactions VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
        (
            row.get("transaction_id"),
            row.get("account_id"),
            row.get("posted_at"),
            amount,
            row.get("currency"),
            row.get("transaction_type"),
            row.get("status"),
            row.get("counterparty"),
            row.get("description"),
        ),
    )
connection.commit()
connection.close()
PY
python main.py --source-db legacy-source.db --output-dir ci-source-db || test $? -eq 1
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-source-db \
  --expected-checked 4 --expected-valid 2 --expected-invalid 2 --expected-rows 2
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
WARNING: Validation issue for legacy-source.db (transactions) record 3: uuid_type (type mismatch in transaction_id; no automatic conversion applied)
WARNING: Validation issue for legacy-source.db (transactions) record 4: value_error
Records checked: 4
Valid: 2; invalid: 2
SQLite: ci-source-db/target_migration.db (committed)
Report: ci-source-db/airlock_report.html
{
  "anonymized_field_token_violations": null,
  "invalid_records": 2,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 4,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 2,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": true,
  "valid_records": 2
}
▸ Run python scripts/soak_migration.py --rows 100000 --max-peak-rss-mib 300 ci-soak
python scripts/soak_migration.py --rows 100000 --max-peak-rss-mib 300 ci-soak
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
Generated 100,000 JSONL records (26,410,890 bytes).
run 1/1: 4.298s, 23,265 records/s, peak RSS 41.1 MiB (getrusage)
soak_ok rows=100000 runs=1 seconds=4.298 peak_rss_mib=41.1 evidence=/home/runner/work/airlock-db/airlock-db/ci-soak/soak_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_cli_wins.py ci-cli-wins
python .cursor/skills/verify-airlock-db/scripts/verify_cli_wins.py ci-cli-wins
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
cli_wins_ok scenarios=11 evidence=/home/runner/work/airlock-db/airlock-db/ci-cli-wins/cli_wins_verification.json
▸ Run printf '{"ticket_id": "TKT-000001", "customer_name": "Alice", "priority": "HIGH", "opened_at": "2026-01-05T08:00:00Z"}\n' > ci-ticket.jsonl
printf '{"ticket_id": "TKT-000001", "customer_name": "Alice", "priority": "HIGH", "opened_at": "2026-01-05T08:00:00Z"}\n' > ci-ticket.jsonl
python main.py --input ci-ticket.jsonl --config examples/schema_config.yaml --output-dir ci-yaml
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
Records checked: 1
Valid: 1; invalid: 0
SQLite: ci-yaml/target_migration.db (committed)
Report: ci-yaml/airlock_report.html
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_transforms.py ci-transforms
python .cursor/skills/verify-airlock-db/scripts/verify_transforms.py ci-transforms
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
transforms_ok scenarios=7 evidence=/home/runner/work/airlock-db/airlock-db/ci-transforms/transforms_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_fixed_width.py ci-fixed-width
python .cursor/skills/verify-airlock-db/scripts/verify_fixed_width.py ci-fixed-width
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
fixed_width_ok scenarios=9 evidence=/home/runner/work/airlock-db/airlock-db/ci-fixed-width/fixed_width_verification.json
▸ Run python .cursor/skills/verify-airlock-db/scripts/verify_jsonl_reader.py ci-reader-edges
python .cursor/skills/verify-airlock-db/scripts/verify_jsonl_reader.py ci-reader-edges
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
jsonl_csv_reader_ok checks=73
▸ Run python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --commit-every 4 --output-dir ci-checkpoint || test $? -eq 1
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --commit-every 4 --output-dir ci-checkpoint || test $? -eq 1
python main.py --input examples/messy_transactions.json --constraints examples/constraints.json --commit-every 4 --resume --output-dir ci-checkpoint > ci-resume.log || test $? -eq 1
grep -q 'Resumed: 32' ci-resume.log
python .cursor/skills/verify-airlock-db/scripts/verify_migration_output.py ci-checkpoint \
  --expected-checked 32 --expected-valid 8 --expected-invalid 24 --expected-rows 8
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
WARNING: Validation issue for examples/messy_transactions.json record 5: missing
WARNING: Validation issue for examples/messy_transactions.json record 6: missing
WARNING: Validation issue for examples/messy_transactions.json record 7: missing
WARNING: Validation issue for examples/messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples/messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 13: value_error
WARNING: Validation issue for examples/messy_transactions.json record 14: value_error
WARNING: Validation issue for examples/messy_transactions.json record 15: value_error
WARNING: Validation issue for examples/messy_transactions.json record 16: value_error
WARNING: Validation issue for examples/messy_transactions.json record 17: value_error
WARNING: Validation issue for examples/messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples/messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples/messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples/messy_transactions.json record 26: enum
WARNING: Validation issue for examples/messy_transactions.json record 27: enum
WARNING: Validation issue for examples/messy_transactions.json record 28: value_error
WARNING: Validation issue for examples/messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples/messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: ci-checkpoint/target_migration.db (committed)
Report: ci-checkpoint/airlock_report.html
WARNING: Validation issue for examples/messy_transactions.json record 5: missing
WARNING: Validation issue for examples/messy_transactions.json record 6: missing
WARNING: Validation issue for examples/messy_transactions.json record 7: missing
WARNING: Validation issue for examples/messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples/messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 13: value_error
WARNING: Validation issue for examples/messy_transactions.json record 14: value_error
WARNING: Validation issue for examples/messy_transactions.json record 15: value_error
WARNING: Validation issue for examples/messy_transactions.json record 16: value_error
WARNING: Validation issue for examples/messy_transactions.json record 17: value_error
WARNING: Validation issue for examples/messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples/messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples/messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples/messy_transactions.json record 26: enum
WARNING: Validation issue for examples/messy_transactions.json record 27: enum
WARNING: Validation issue for examples/messy_transactions.json record 28: value_error
WARNING: Validation issue for examples/messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples/messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 32: is_instance_of
{
  "anonymized_field_token_violations": null,
  "invalid_records": 24,
  "jsonl_rows": null,
  "posted_at_index": true,
  "records_checked": 32,
  "report_standalone": true,
  "sqlite_integrity": "ok",
  "sqlite_rows": 8,
  "status": "passed",
  "summary_verified": true,
  "type_mismatch_note_present": true,
  "valid_records": 8
}
▸ Run python scripts/perf_budget.py --work-dir ci-perf-budget
python scripts/perf_budget.py --work-dir ci-perf-budget
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
valid-migration: exit=0 0.27s 7,447 records/s
invalid-migration: exit=1 0.30s
verify: exit=0 0.30s
perf_budget_ok workloads=3
▸ Run set -euo pipefail
set -euo pipefail
rm -rf ci-wheelhouse ci-venv ci-wheelhouse-missing ci-wheelhouse-corrupt ci-wheelhouse-sdist ci-airgap
python -m pip wheel --no-deps --wheel-dir ci-wheelhouse .
python -m pip download --only-binary=:all: --dest ci-wheelhouse pydantic "PyYAML>=6,<7"
python scripts/check_wheelhouse.py ci-wheelhouse
python scripts/check_wheelhouse.py ci-wheelhouse --verify
python -m venv ci-venv
if [ -x ci-venv/bin/python ]; then venv_bin=ci-venv/bin; else venv_bin=ci-venv/Scripts; fi
"$venv_bin/python" -m pip install --no-index --find-links ci-wheelhouse airlock-db
set +e
"$venv_bin/python" -m airlock_db --input examples/messy_transactions.json --output-dir ci-airgap
code=$?
set -e
test "$code" -eq 1
test -f ci-airgap/airlock_summary.json
test -f ci-airgap/airlock_report.html
"$venv_bin/airlock-db" --help > /dev/null
python scripts/check_wheelhouse.py ci-wheelhouse --verify
# A wheelhouse without the local wheel fails the closure check.
cp -r ci-wheelhouse ci-wheelhouse-missing
rm ci-wheelhouse-missing/airlock_db-*.whl
set +e
python scripts/check_wheelhouse.py ci-wheelhouse-missing
missing=$?
set -e
test "$missing" -eq 1
# A changed byte fails manifest verification.
cp -r ci-wheelhouse ci-wheelhouse-corrupt
changed_wheel=$(ls ci-wheelhouse-corrupt/*.whl | grep -v '/airlock_db-' | tail -n 1)
printf 'x' | dd of="$changed_wheel" bs=1 seek=100 conv=notrunc status=none
set +e
python scripts/check_wheelhouse.py ci-wheelhouse-corrupt --verify
changed=$?
set -e
test "$changed" -eq 1
# A non-wheel file fails the check with the documented message.
cp -r ci-wheelhouse ci-wheelhouse-sdist
: > ci-wheelhouse-sdist/example-package-1.0.tar.gz
set +e
python scripts/check_wheelhouse.py ci-wheelhouse-sdist
sdist=$?
set -e
test "$sdist" -eq 1
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
Processing ./.
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: airlock-db
  Building wheel for airlock-db (pyproject.toml): started
  Building wheel for airlock-db (pyproject.toml): finished with status 'done'
  Created wheel for airlock-db: filename=airlock_db-0.4.0-py3-none-any.whl size=112487 sha256=b9eceffc6d763b82ada6691c4a4a726ddc19ad7f69468fd11564ec9f384390a9
  Stored in directory: /tmp/pip-ephem-wheel-cache-mkawnn8r/wheels/5f/43/9e/6abdb3d3b97373118381452e6db5c2a7d825478c746f086efb
Successfully built airlock-db
Collecting pydantic
  Using cached pydantic-2.14.1-py3-none-any.whl.metadata (133 kB)
Collecting PyYAML<7,>=6
  Using cached pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)
Collecting annotated-types>=0.6.0 (from pydantic)
  Using cached annotated_types-0.8.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.50.1 (from pydantic)
  Using cached pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.5 kB)
Collecting typing-extensions>=4.16.0 (from pydantic)
  Using cached typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)
Collecting typing-inspection>=0.4.4 (from pydantic)
  Using cached typing_inspection-0.4.4-py3-none-any.whl.metadata (2.6 kB)
Using cached pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (807 kB)
Using cached pydantic-2.14.1-py3-none-any.whl (488 kB)
Using cached pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.2 MB)
Using cached annotated_types-0.8.0-py3-none-any.whl (13 kB)
Using cached typing_extensions-4.16.0-py3-none-any.whl (45 kB)
Using cached typing_inspection-0.4.4-py3-none-any.whl (14 kB)
Saved ./ci-wheelhouse/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Saved ./ci-wheelhouse/pydantic-2.14.1-py3-none-any.whl
Saved ./ci-wheelhouse/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Saved ./ci-wheelhouse/annotated_types-0.8.0-py3-none-any.whl
Saved ./ci-wheelhouse/typing_extensions-4.16.0-py3-none-any.whl
Saved ./ci-wheelhouse/typing_inspection-0.4.4-py3-none-any.whl
Successfully downloaded PyYAML pydantic pydantic-core annotated-types typing-extensions typing-inspection
Wheelhouse ci-wheelhouse: 7 wheels, 3,642,368 bytes.
wheelhouse_ok wheels=7 manifest=ci-wheelhouse/install_manifest.json
Wheelhouse ci-wheelhouse: 7 wheels, 3,642,368 bytes.
wheelhouse_ok wheels=7 manifest=ci-wheelhouse/install_manifest.json verified=1
Looking in links: ci-wheelhouse
Processing ./ci-wheelhouse/airlock_db-0.4.0-py3-none-any.whl
Processing ./ci-wheelhouse/pydantic-2.14.1-py3-none-any.whl (from airlock-db)
Processing ./ci-wheelhouse/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (from airlock-db)
Processing ./ci-wheelhouse/annotated_types-0.8.0-py3-none-any.whl (from pydantic<3,>=2.6->airlock-db)
Processing ./ci-wheelhouse/pydantic_core-2.50.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (from pydantic<3,>=2.6->airlock-db)
Processing ./ci-wheelhouse/typing_extensions-4.16.0-py3-none-any.whl (from pydantic<3,>=2.6->airlock-db)
Processing ./ci-wheelhouse/typing_inspection-0.4.4-py3-none-any.whl (from pydantic<3,>=2.6->airlock-db)
Installing collected packages: typing-extensions, PyYAML, annotated-types, typing-inspection, pydantic-core, pydantic, airlock-db
Successfully installed PyYAML-6.0.3 airlock-db-0.4.0 annotated-types-0.8.0 pydantic-2.14.1 pydantic-core-2.50.1 typing-extensions-4.16.0 typing-inspection-0.4.4
WARNING: Validation issue for examples/messy_transactions.json record 5: missing
WARNING: Validation issue for examples/messy_transactions.json record 6: missing
WARNING: Validation issue for examples/messy_transactions.json record 7: missing
WARNING: Validation issue for examples/messy_transactions.json record 9: datetime_type (type mismatch in posted_at; no automatic conversion applied)
WARNING: Validation issue for examples/messy_transactions.json record 10: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 12: string_too_short
WARNING: Validation issue for examples/messy_transactions.json record 13: value_error
WARNING: Validation issue for examples/messy_transactions.json record 14: value_error
WARNING: Validation issue for examples/messy_transactions.json record 15: value_error
WARNING: Validation issue for examples/messy_transactions.json record 16: value_error
WARNING: Validation issue for examples/messy_transactions.json record 17: value_error
WARNING: Validation issue for examples/messy_transactions.json record 18: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 19: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 20: greater_than
WARNING: Validation issue for examples/messy_transactions.json record 21: decimal_max_places
WARNING: Validation issue for examples/messy_transactions.json record 22: decimal_max_digits
WARNING: Validation issue for examples/messy_transactions.json record 24: extra_forbidden,extra_forbidden,extra_forbidden
WARNING: Validation issue for examples/messy_transactions.json record 26: enum
WARNING: Validation issue for examples/messy_transactions.json record 27: enum
WARNING: Validation issue for examples/messy_transactions.json record 28: value_error
WARNING: Validation issue for examples/messy_transactions.json record 29: string_pattern_mismatch
WARNING: Validation issue for examples/messy_transactions.json record 30: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 31: string_too_long
WARNING: Validation issue for examples/messy_transactions.json record 32: is_instance_of
Records checked: 32
Valid: 8; invalid: 24
SQLite: ci-airgap/target_migration.db (committed)
Report: ci-airgap/airlock_report.html
Wheelhouse ci-wheelhouse: 7 wheels, 3,642,368 bytes.
wheelhouse_ok wheels=7 manifest=ci-wheelhouse/install_manifest.json verified=1
wheelhouse: missing the local project wheel airlock_db-*.whl; build it with python -m pip wheel --no-deps --wheel-dir WHEELHOUSE .
wheelhouse_failed failures=1
wheelhouse: typing_inspection-0.4.4-py3-none-any.whl: the SHA-256 hash differs from the manifest
wheelhouse_failed failures=1
Wheelhouse ci-wheelhouse-corrupt: 7 wheels, 3,642,368 bytes.
wheelhouse: example-package-1.0.tar.gz: not a wheel; collect dependencies with pip download --only-binary=:all:
wheelhouse_failed failures=1
Post job cleanup.
Post job cleanup.
[command]/usr/bin/git version
git version 2.56.0
Temporarily overriding HOME='/home/runner/work/_temp/5f60cce9-f35f-4e36-8590-3a3c8813c7ca' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/airlock-db/airlock-db
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
includeif.gitdir:/home/runner/work/airlock-db/airlock-db/.git.path
includeif.gitdir:/home/runner/work/airlock-db/airlock-db/.git/worktrees/*.path
includeif.gitdir:/github/workspace/.git.path
includeif.gitdir:/github/workspace/.git/worktrees/*.path
[command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/airlock-db/airlock-db/.git.path
/home/runner/work/_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config
[command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/airlock-db/airlock-db/.git.path \/home\/runner\/work\/_temp\/git\-credentials\-c72a8f36\-ca22\-48dc\-a712\-9d1c41e44efd\.config
[command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/airlock-db/airlock-db/.git/worktrees/*.path
/home/runner/work/_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config
[command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/airlock-db/airlock-db/.git/worktrees/*.path \/home\/runner\/work\/_temp\/git\-credentials\-c72a8f36\-ca22\-48dc\-a712\-9d1c41e44efd\.config
[command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path
/github/runner_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config
[command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \/github\/runner_temp\/git\-credentials\-c72a8f36\-ca22\-48dc\-a712\-9d1c41e44efd\.config
[command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path
/github/runner_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config
[command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \/github\/runner_temp\/git\-credentials\-c72a8f36\-ca22\-48dc\-a712\-9d1c41e44efd\.config
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Removing credentials config '/home/runner/work/_temp/git-credentials-c72a8f36-ca22-48dc-a712-9d1c41e44efd.config'
Cleaning up orphan processes