all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe4c:6639
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 14ddfe39-18d1-4379-9d9f-74be78bad754
        host_id: 5afd8fc909abddfe2ce3a956a91bbe56629648b7209fd0acfa541862
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe4c:6639
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.108
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.107
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe4c:6639
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job yamllint explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#59>'
      - '<Job yamllint explicit: None implied: None source: osism/container-images/.zuul.yaml@main#2>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 51d15918d79042ba856f7cb9f8fc80d6
      build_refs:
      - branch: main
        change: '929'
        change_message: "ara-server: preserve ARA history on 0018 upgrade\n\n## Problem\n\nUpgrading
          the bundled ARA server from a pre-1.7.4 image to 1.7.4+ on a deployment
          whose ARA MariaDB is **already populated** wedges. ARA 1.7.4 ships migration
          `0018_alter_play_uuid_alter_task_uuid`, which issues a bare `ALTER TABLE
          ... MODIFY uuid char(32)`. On databases created under Django 5.0+, `plays.uuid`
          / `tasks.uuid` are MariaDB **native `uuid`** columns; MariaDB renders those
          to the 36-char dashed form, which overflows `char(32)` \u2192 `DataError
          (1406, \"Data too long for column 'uuid'\")`. The entrypoint retries `ara-manage
          migrate` forever, so the schema never migrates and gunicorn never starts.\n\n##
          Change\n\nA downstream-corrected `0018` that **preserves ARA history** by
          normalizing the existing data in place instead of failing:\n\n- For **MySQL/MariaDB
          only**, widen the columns to `char(36)`, strip dashes with `REPLACE`, then
          the existing `AlterField` ops shrink to `char(32)`. Existing rows fit; no
          1406.\n- On a **fresh DB and on PostgreSQL/SQLite** the migration is behavior-identical
          to stock: the data step early-returns on non-MySQL, and the `AlterField`
          operations (and resulting Django state \u2192 `Char32UUIDField`) are unchanged.\n-
          The image installs the patched file over the pip-installed stock `0018`,
          guarded by a **pinned sha256 of the stock file** \u2014 a future ARA release
          that changes `0018` fails the build (drift guard) rather than silently shipping
          a stale patch.\n\n## Validation\n\nAn end-to-end harness reproduced the
          broken native-`uuid` state and ran the real upgrade with the locally built
          image:\n\n- migrate exits 0, `0018` recorded, **row counts preserved**,
          every `uuid` equals its de-dashed baseline, both columns end `char(32)`,
          `GET /api/v1/plays` serves the history.\n- Verified at small (3+3 rows)
          and **scale (50,003 + 50,003 rows, migrate ~18s)**.\n- Build verified: builds
          against ARA 1.7.5 with the pinned hash matching; the patched migration is
          present in the image; a deliberately wrong pinned hash fails the build.\n\n##
          Notes\n\n- Complementary to \u2014 not a replacement for \u2014 the bounded
          migration-retry change; the two should land together for correct startup
          behavior:\n  - #928\n- The data fix is backend-correct and not OSISM-specific,
          so it is a candidate to propose **upstream to ARA** (background: <https://codeberg.org/ansible-community/ara/issues/617>,
          <https://codeberg.org/ansible-community/ara/issues/628>).\n- Draft: opened
          as a candidate history-preserving approach for discussion.\n\nAssisted-by:
          Claude:claude-opus-4-8"
        change_url: https://github.com/osism/container-images/pull/929
        commit_id: b448e467519078e11992fe6c0aaa26c20bf67302
        patchset: b448e467519078e11992fe6c0aaa26c20bf67302
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images
          name: osism/container-images
          short_name: container-images
        src_dir: src/github.com/osism/container-images
        topic: null
      buildset: 5c94b6ec66524f63ac324d3566d68b24
      buildset_refs:
      - branch: main
        change: '929'
        change_message: "ara-server: preserve ARA history on 0018 upgrade\n\n## Problem\n\nUpgrading
          the bundled ARA server from a pre-1.7.4 image to 1.7.4+ on a deployment
          whose ARA MariaDB is **already populated** wedges. ARA 1.7.4 ships migration
          `0018_alter_play_uuid_alter_task_uuid`, which issues a bare `ALTER TABLE
          ... MODIFY uuid char(32)`. On databases created under Django 5.0+, `plays.uuid`
          / `tasks.uuid` are MariaDB **native `uuid`** columns; MariaDB renders those
          to the 36-char dashed form, which overflows `char(32)` \u2192 `DataError
          (1406, \"Data too long for column 'uuid'\")`. The entrypoint retries `ara-manage
          migrate` forever, so the schema never migrates and gunicorn never starts.\n\n##
          Change\n\nA downstream-corrected `0018` that **preserves ARA history** by
          normalizing the existing data in place instead of failing:\n\n- For **MySQL/MariaDB
          only**, widen the columns to `char(36)`, strip dashes with `REPLACE`, then
          the existing `AlterField` ops shrink to `char(32)`. Existing rows fit; no
          1406.\n- On a **fresh DB and on PostgreSQL/SQLite** the migration is behavior-identical
          to stock: the data step early-returns on non-MySQL, and the `AlterField`
          operations (and resulting Django state \u2192 `Char32UUIDField`) are unchanged.\n-
          The image installs the patched file over the pip-installed stock `0018`,
          guarded by a **pinned sha256 of the stock file** \u2014 a future ARA release
          that changes `0018` fails the build (drift guard) rather than silently shipping
          a stale patch.\n\n## Validation\n\nAn end-to-end harness reproduced the
          broken native-`uuid` state and ran the real upgrade with the locally built
          image:\n\n- migrate exits 0, `0018` recorded, **row counts preserved**,
          every `uuid` equals its de-dashed baseline, both columns end `char(32)`,
          `GET /api/v1/plays` serves the history.\n- Verified at small (3+3 rows)
          and **scale (50,003 + 50,003 rows, migrate ~18s)**.\n- Build verified: builds
          against ARA 1.7.5 with the pinned hash matching; the patched migration is
          present in the image; a deliberately wrong pinned hash fails the build.\n\n##
          Notes\n\n- Complementary to \u2014 not a replacement for \u2014 the bounded
          migration-retry change; the two should land together for correct startup
          behavior:\n  - #928\n- The data fix is backend-correct and not OSISM-specific,
          so it is a candidate to propose **upstream to ARA** (background: <https://codeberg.org/ansible-community/ara/issues/617>,
          <https://codeberg.org/ansible-community/ara/issues/628>).\n- Draft: opened
          as a candidate history-preserving approach for discussion.\n\nAssisted-by:
          Claude:claude-opus-4-8"
        change_url: https://github.com/osism/container-images/pull/929
        commit_id: b448e467519078e11992fe6c0aaa26c20bf67302
        patchset: b448e467519078e11992fe6c0aaa26c20bf67302
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images
          name: osism/container-images
          short_name: container-images
        src_dir: src/github.com/osism/container-images
        topic: null
      change: '929'
      change_message: "ara-server: preserve ARA history on 0018 upgrade\n\n## Problem\n\nUpgrading
        the bundled ARA server from a pre-1.7.4 image to 1.7.4+ on a deployment whose
        ARA MariaDB is **already populated** wedges. ARA 1.7.4 ships migration `0018_alter_play_uuid_alter_task_uuid`,
        which issues a bare `ALTER TABLE ... MODIFY uuid char(32)`. On databases created
        under Django 5.0+, `plays.uuid` / `tasks.uuid` are MariaDB **native `uuid`**
        columns; MariaDB renders those to the 36-char dashed form, which overflows
        `char(32)` \u2192 `DataError (1406, \"Data too long for column 'uuid'\")`.
        The entrypoint retries `ara-manage migrate` forever, so the schema never migrates
        and gunicorn never starts.\n\n## Change\n\nA downstream-corrected `0018` that
        **preserves ARA history** by normalizing the existing data in place instead
        of failing:\n\n- For **MySQL/MariaDB only**, widen the columns to `char(36)`,
        strip dashes with `REPLACE`, then the existing `AlterField` ops shrink to
        `char(32)`. Existing rows fit; no 1406.\n- On a **fresh DB and on PostgreSQL/SQLite**
        the migration is behavior-identical to stock: the data step early-returns
        on non-MySQL, and the `AlterField` operations (and resulting Django state
        \u2192 `Char32UUIDField`) are unchanged.\n- The image installs the patched
        file over the pip-installed stock `0018`, guarded by a **pinned sha256 of
        the stock file** \u2014 a future ARA release that changes `0018` fails the
        build (drift guard) rather than silently shipping a stale patch.\n\n## Validation\n\nAn
        end-to-end harness reproduced the broken native-`uuid` state and ran the real
        upgrade with the locally built image:\n\n- migrate exits 0, `0018` recorded,
        **row counts preserved**, every `uuid` equals its de-dashed baseline, both
        columns end `char(32)`, `GET /api/v1/plays` serves the history.\n- Verified
        at small (3+3 rows) and **scale (50,003 + 50,003 rows, migrate ~18s)**.\n-
        Build verified: builds against ARA 1.7.5 with the pinned hash matching; the
        patched migration is present in the image; a deliberately wrong pinned hash
        fails the build.\n\n## Notes\n\n- Complementary to \u2014 not a replacement
        for \u2014 the bounded migration-retry change; the two should land together
        for correct startup behavior:\n  - #928\n- The data fix is backend-correct
        and not OSISM-specific, so it is a candidate to propose **upstream to ARA**
        (background: <https://codeberg.org/ansible-community/ara/issues/617>, <https://codeberg.org/ansible-community/ara/issues/628>).\n-
        Draft: opened as a candidate history-preserving approach for discussion.\n\nAssisted-by:
        Claude:claude-opus-4-8"
      change_url: https://github.com/osism/container-images/pull/929
      child_jobs: []
      commit_id: b448e467519078e11992fe6c0aaa26c20bf67302
      event_id: 56fa0570-6aef-11f1-8d1d-8cc2e9375ece
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/51d15918d79042ba856f7cb9f8fc80d6/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/51d15918d79042ba856f7cb9f8fc80d6/work/logs
        result_data_file: /var/lib/zuul/builds/51d15918d79042ba856f7cb9f8fc80d6/work/results.json
        src_root: /var/lib/zuul/builds/51d15918d79042ba856f7cb9f8fc80d6/work/src
        work_root: /var/lib/zuul/builds/51d15918d79042ba856f7cb9f8fc80d6/work
      include_vars: []
      items:
      - branch: main
        change: '929'
        change_message: "ara-server: preserve ARA history on 0018 upgrade\n\n## Problem\n\nUpgrading
          the bundled ARA server from a pre-1.7.4 image to 1.7.4+ on a deployment
          whose ARA MariaDB is **already populated** wedges. ARA 1.7.4 ships migration
          `0018_alter_play_uuid_alter_task_uuid`, which issues a bare `ALTER TABLE
          ... MODIFY uuid char(32)`. On databases created under Django 5.0+, `plays.uuid`
          / `tasks.uuid` are MariaDB **native `uuid`** columns; MariaDB renders those
          to the 36-char dashed form, which overflows `char(32)` \u2192 `DataError
          (1406, \"Data too long for column 'uuid'\")`. The entrypoint retries `ara-manage
          migrate` forever, so the schema never migrates and gunicorn never starts.\n\n##
          Change\n\nA downstream-corrected `0018` that **preserves ARA history** by
          normalizing the existing data in place instead of failing:\n\n- For **MySQL/MariaDB
          only**, widen the columns to `char(36)`, strip dashes with `REPLACE`, then
          the existing `AlterField` ops shrink to `char(32)`. Existing rows fit; no
          1406.\n- On a **fresh DB and on PostgreSQL/SQLite** the migration is behavior-identical
          to stock: the data step early-returns on non-MySQL, and the `AlterField`
          operations (and resulting Django state \u2192 `Char32UUIDField`) are unchanged.\n-
          The image installs the patched file over the pip-installed stock `0018`,
          guarded by a **pinned sha256 of the stock file** \u2014 a future ARA release
          that changes `0018` fails the build (drift guard) rather than silently shipping
          a stale patch.\n\n## Validation\n\nAn end-to-end harness reproduced the
          broken native-`uuid` state and ran the real upgrade with the locally built
          image:\n\n- migrate exits 0, `0018` recorded, **row counts preserved**,
          every `uuid` equals its de-dashed baseline, both columns end `char(32)`,
          `GET /api/v1/plays` serves the history.\n- Verified at small (3+3 rows)
          and **scale (50,003 + 50,003 rows, migrate ~18s)**.\n- Build verified: builds
          against ARA 1.7.5 with the pinned hash matching; the patched migration is
          present in the image; a deliberately wrong pinned hash fails the build.\n\n##
          Notes\n\n- Complementary to \u2014 not a replacement for \u2014 the bounded
          migration-retry change; the two should land together for correct startup
          behavior:\n  - #928\n- The data fix is backend-correct and not OSISM-specific,
          so it is a candidate to propose **upstream to ARA** (background: <https://codeberg.org/ansible-community/ara/issues/617>,
          <https://codeberg.org/ansible-community/ara/issues/628>).\n- Draft: opened
          as a candidate history-preserving approach for discussion.\n\nAssisted-by:
          Claude:claude-opus-4-8"
        change_url: https://github.com/osism/container-images/pull/929
        commit_id: b448e467519078e11992fe6c0aaa26c20bf67302
        patchset: b448e467519078e11992fe6c0aaa26c20bf67302
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images
          name: osism/container-images
          short_name: container-images
          src_dir: src/github.com/osism/container-images
        topic: null
      job: yamllint
      jobtags: []
      max_attempts: 3
      message: YXJhLXNlcnZlcjogcHJlc2VydmUgQVJBIGhpc3Rvcnkgb24gMDAxOCB1cGdyYWRlCgojIyBQcm9ibGVtCgpVcGdyYWRpbmcgdGhlIGJ1bmRsZWQgQVJBIHNlcnZlciBmcm9tIGEgcHJlLTEuNy40IGltYWdlIHRvIDEuNy40KyBvbiBhIGRlcGxveW1lbnQgd2hvc2UgQVJBIE1hcmlhREIgaXMgKiphbHJlYWR5IHBvcHVsYXRlZCoqIHdlZGdlcy4gQVJBIDEuNy40IHNoaXBzIG1pZ3JhdGlvbiBgMDAxOF9hbHRlcl9wbGF5X3V1aWRfYWx0ZXJfdGFza191dWlkYCwgd2hpY2ggaXNzdWVzIGEgYmFyZSBgQUxURVIgVEFCTEUgLi4uIE1PRElGWSB1dWlkIGNoYXIoMzIpYC4gT24gZGF0YWJhc2VzIGNyZWF0ZWQgdW5kZXIgRGphbmdvIDUuMCssIGBwbGF5cy51dWlkYCAvIGB0YXNrcy51dWlkYCBhcmUgTWFyaWFEQiAqKm5hdGl2ZSBgdXVpZGAqKiBjb2x1bW5zOyBNYXJpYURCIHJlbmRlcnMgdGhvc2UgdG8gdGhlIDM2LWNoYXIgZGFzaGVkIGZvcm0sIHdoaWNoIG92ZXJmbG93cyBgY2hhcigzMilgIOKGkiBgRGF0YUVycm9yICgxNDA2LCAiRGF0YSB0b28gbG9uZyBmb3IgY29sdW1uICd1dWlkJyIpYC4gVGhlIGVudHJ5cG9pbnQgcmV0cmllcyBgYXJhLW1hbmFnZSBtaWdyYXRlYCBmb3JldmVyLCBzbyB0aGUgc2NoZW1hIG5ldmVyIG1pZ3JhdGVzIGFuZCBndW5pY29ybiBuZXZlciBzdGFydHMuCgojIyBDaGFuZ2UKCkEgZG93bnN0cmVhbS1jb3JyZWN0ZWQgYDAwMThgIHRoYXQgKipwcmVzZXJ2ZXMgQVJBIGhpc3RvcnkqKiBieSBub3JtYWxpemluZyB0aGUgZXhpc3RpbmcgZGF0YSBpbiBwbGFjZSBpbnN0ZWFkIG9mIGZhaWxpbmc6CgotIEZvciAqKk15U1FML01hcmlhREIgb25seSoqLCB3aWRlbiB0aGUgY29sdW1ucyB0byBgY2hhcigzNilgLCBzdHJpcCBkYXNoZXMgd2l0aCBgUkVQTEFDRWAsIHRoZW4gdGhlIGV4aXN0aW5nIGBBbHRlckZpZWxkYCBvcHMgc2hyaW5rIHRvIGBjaGFyKDMyKWAuIEV4aXN0aW5nIHJvd3MgZml0OyBubyAxNDA2LgotIE9uIGEgKipmcmVzaCBEQiBhbmQgb24gUG9zdGdyZVNRTC9TUUxpdGUqKiB0aGUgbWlncmF0aW9uIGlzIGJlaGF2aW9yLWlkZW50aWNhbCB0byBzdG9jazogdGhlIGRhdGEgc3RlcCBlYXJseS1yZXR1cm5zIG9uIG5vbi1NeVNRTCwgYW5kIHRoZSBgQWx0ZXJGaWVsZGAgb3BlcmF0aW9ucyAoYW5kIHJlc3VsdGluZyBEamFuZ28gc3RhdGUg4oaSIGBDaGFyMzJVVUlERmllbGRgKSBhcmUgdW5jaGFuZ2VkLgotIFRoZSBpbWFnZSBpbnN0YWxscyB0aGUgcGF0Y2hlZCBmaWxlIG92ZXIgdGhlIHBpcC1pbnN0YWxsZWQgc3RvY2sgYDAwMThgLCBndWFyZGVkIGJ5IGEgKipwaW5uZWQgc2hhMjU2IG9mIHRoZSBzdG9jayBmaWxlKiog4oCUIGEgZnV0dXJlIEFSQSByZWxlYXNlIHRoYXQgY2hhbmdlcyBgMDAxOGAgZmFpbHMgdGhlIGJ1aWxkIChkcmlmdCBndWFyZCkgcmF0aGVyIHRoYW4gc2lsZW50bHkgc2hpcHBpbmcgYSBzdGFsZSBwYXRjaC4KCiMjIFZhbGlkYXRpb24KCkFuIGVuZC10by1lbmQgaGFybmVzcyByZXByb2R1Y2VkIHRoZSBicm9rZW4gbmF0aXZlLWB1dWlkYCBzdGF0ZSBhbmQgcmFuIHRoZSByZWFsIHVwZ3JhZGUgd2l0aCB0aGUgbG9jYWxseSBidWlsdCBpbWFnZToKCi0gbWlncmF0ZSBleGl0cyAwLCBgMDAxOGAgcmVjb3JkZWQsICoqcm93IGNvdW50cyBwcmVzZXJ2ZWQqKiwgZXZlcnkgYHV1aWRgIGVxdWFscyBpdHMgZGUtZGFzaGVkIGJhc2VsaW5lLCBib3RoIGNvbHVtbnMgZW5kIGBjaGFyKDMyKWAsIGBHRVQgL2FwaS92MS9wbGF5c2Agc2VydmVzIHRoZSBoaXN0b3J5LgotIFZlcmlmaWVkIGF0IHNtYWxsICgzKzMgcm93cykgYW5kICoqc2NhbGUgKDUwLDAwMyArIDUwLDAwMyByb3dzLCBtaWdyYXRlIH4xOHMpKiouCi0gQnVpbGQgdmVyaWZpZWQ6IGJ1aWxkcyBhZ2FpbnN0IEFSQSAxLjcuNSB3aXRoIHRoZSBwaW5uZWQgaGFzaCBtYXRjaGluZzsgdGhlIHBhdGNoZWQgbWlncmF0aW9uIGlzIHByZXNlbnQgaW4gdGhlIGltYWdlOyBhIGRlbGliZXJhdGVseSB3cm9uZyBwaW5uZWQgaGFzaCBmYWlscyB0aGUgYnVpbGQuCgojIyBOb3RlcwoKLSBDb21wbGVtZW50YXJ5IHRvIOKAlCBub3QgYSByZXBsYWNlbWVudCBmb3Ig4oCUIHRoZSBib3VuZGVkIG1pZ3JhdGlvbi1yZXRyeSBjaGFuZ2U7IHRoZSB0d28gc2hvdWxkIGxhbmQgdG9nZXRoZXIgZm9yIGNvcnJlY3Qgc3RhcnR1cCBiZWhhdmlvcjoKICAtICM5MjgKLSBUaGUgZGF0YSBmaXggaXMgYmFja2VuZC1jb3JyZWN0IGFuZCBub3QgT1NJU00tc3BlY2lmaWMsIHNvIGl0IGlzIGEgY2FuZGlkYXRlIHRvIHByb3Bvc2UgKip1cHN0cmVhbSB0byBBUkEqKiAoYmFja2dyb3VuZDogPGh0dHBzOi8vY29kZWJlcmcub3JnL2Fuc2libGUtY29tbXVuaXR5L2FyYS9pc3N1ZXMvNjE3PiwgPGh0dHBzOi8vY29kZWJlcmcub3JnL2Fuc2libGUtY29tbXVuaXR5L2FyYS9pc3N1ZXMvNjI4PikuCi0gRHJhZnQ6IG9wZW5lZCBhcyBhIGNhbmRpZGF0ZSBoaXN0b3J5LXByZXNlcnZpbmcgYXBwcm9hY2ggZm9yIGRpc2N1c3Npb24uCgpBc3Npc3RlZC1ieTogQ2xhdWRlOmNsYXVkZS1vcHVzLTQtOA==
      patchset: b448e467519078e11992fe6c0aaa26c20bf67302
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 3d5c7b5973754999f7005857a00ce9168944f0f1
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 0c74c57cedff2b36bb37ca68a5338d1c49991496
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 3d5c7b5973754999f7005857a00ce9168944f0f1
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 038dd8b856c62af4433c8477c5cb3d0480847059
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/yamllint/run.yaml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_0/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_0/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_1/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_1/openinfra-zuul-jobs/roles
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      post_timeout: 1800
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/container-images
        name: osism/container-images
        short_name: container-images
        src_dir: src/github.com/osism/container-images
      projects:
        github.com/osism/container-images:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-images
          checkout: main
          checkout_description: zuul branch
          commit: 9c56540a21ab12a8390ad3796d82e7dfbd103d88
          name: osism/container-images
          required: false
          short_name: container-images
          src_dir: src/github.com/osism/container-images
      ref: refs/pull/929/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
