all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:feb1:12c9
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 5ac534e4-7322-4454-8fda-4eebf6efc90e
        host_id: 4ba4344415ca7057d9956ea5de826bbc0b830981e82c0e0f191fa07b
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:feb1:12c9
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.109
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.85
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:feb1:12c9
        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 flake8 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#32>'
      - '<Job flake8 explicit: None implied: None source: osism/ansible-collection-commons/.zuul.yaml@main#412>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: a064781d18414b5a83c953c1f5eec8e5
      build_refs:
      - branch: main
        change: '861'
        change_message: "user: delegate remote SSH key fetch to localhost\n\n## Summary\n\nRemote
          SSH authorized keys (a user's `key` is a `https://\u2026` URL or the literal
          `\"github\"`) were fetched with `ansible.builtin.uri` running **on the target
          host**. That fails whenever the target has no outbound internet connectivity,
          even though every host involved could otherwise reach the key server.\n\nThis
          branch delegates the fetch to the Ansible controller by default while still
          installing the keys on the target host, and adds the security/robustness
          guards that delegating an operator-supplied URL to the controller requires.\n\nCloses
          #860\n\n## Changes in commit order\n\n### `c13b034` \u2014 user: delegate
          remote SSH key fetch to localhost by default\n- Adds `user_fetch_keys_delegate_to`
          (default: `localhost`) and applies it as `delegate_to` on both fetch tasks
          in `roles/user/tasks/remote-key.yml`, so the fetch runs on the controller
          while keys land on the target. Operators can set it to `\"{{ inventory_hostname
          }}\"` to fetch from the target instead, or to any other reachable host.\n-
          Hardens the now-controller-side fetch:\n  - `user_fetch_keys_allowed_hosts`
          (default: `[github.com]`) \u2014 a remote `https` key is only fetched when
          its URL host is in this allowlist, with a preceding `ansible.builtin.fail`
          task that refuses untrusted hosts. This bounds the request surface, since
          an operator-supplied URL would otherwise let the controller be pointed at
          an internal-only service.\n  - `no_log: true`, plus `retries: 3` / `delay:
          5` / `until: \u2026 is success` on each fetch task.\n\n### `df900a3` \u2014
          molecule: cover remote SSH key fetch for user role\n- Adds a `dummy_remote`
          user (key `https://github.com/lindenb1.keys`) to `molecule/delegated/vars/user.yml`.\n-
          Extends `molecule/delegated/tests/user.py` to fetch the served key material
          (via a new `get_from_url` helper) and assert each key's type and material
          landed in the target's `authorized_keys`, mirroring `operator.py::test_githubkeys`.
          Includes a guard that fails loudly if the URL serves no keys, so the assertions
          can't vacuously pass.\n\n## Notes for the reviewer\n\n- **Scope beyond the
          literal issue.** Issue #860 asks only to delegate the fetch to localhost.
          Because moving the fetch to the controller turns an operator-supplied URL
          into a request the controller makes, the implementation also adds the `user_fetch_keys_allowed_hosts`
          allowlist (default `github.com`, which also covers `key: \"github\"`) and
          `no_log`/retry guards. These are defensive additions that follow directly
          from the delegation, not unrelated changes.\n- **Defaults preserve current
          behavior** for the common case: GitHub fetches keep working out of the box,
          and only the host the fetch runs on changes.\n\n---\n\n_Implemented by [planwerk-review](https://github.com/planwerk/planwerk-review)
          a24f4d9 with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/ansible-collection-commons/pull/861
        commit_id: dc8637d53995a28f5481aaec74362f4c401f2351
        patchset: dc8637d53995a28f5481aaec74362f4c401f2351
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-commons
          name: osism/ansible-collection-commons
          short_name: ansible-collection-commons
        src_dir: src/github.com/osism/ansible-collection-commons
        topic: null
      buildset: 9a655fa33b3e4a0585e9175dde13e72e
      buildset_refs:
      - branch: main
        change: '861'
        change_message: "user: delegate remote SSH key fetch to localhost\n\n## Summary\n\nRemote
          SSH authorized keys (a user's `key` is a `https://\u2026` URL or the literal
          `\"github\"`) were fetched with `ansible.builtin.uri` running **on the target
          host**. That fails whenever the target has no outbound internet connectivity,
          even though every host involved could otherwise reach the key server.\n\nThis
          branch delegates the fetch to the Ansible controller by default while still
          installing the keys on the target host, and adds the security/robustness
          guards that delegating an operator-supplied URL to the controller requires.\n\nCloses
          #860\n\n## Changes in commit order\n\n### `c13b034` \u2014 user: delegate
          remote SSH key fetch to localhost by default\n- Adds `user_fetch_keys_delegate_to`
          (default: `localhost`) and applies it as `delegate_to` on both fetch tasks
          in `roles/user/tasks/remote-key.yml`, so the fetch runs on the controller
          while keys land on the target. Operators can set it to `\"{{ inventory_hostname
          }}\"` to fetch from the target instead, or to any other reachable host.\n-
          Hardens the now-controller-side fetch:\n  - `user_fetch_keys_allowed_hosts`
          (default: `[github.com]`) \u2014 a remote `https` key is only fetched when
          its URL host is in this allowlist, with a preceding `ansible.builtin.fail`
          task that refuses untrusted hosts. This bounds the request surface, since
          an operator-supplied URL would otherwise let the controller be pointed at
          an internal-only service.\n  - `no_log: true`, plus `retries: 3` / `delay:
          5` / `until: \u2026 is success` on each fetch task.\n\n### `df900a3` \u2014
          molecule: cover remote SSH key fetch for user role\n- Adds a `dummy_remote`
          user (key `https://github.com/lindenb1.keys`) to `molecule/delegated/vars/user.yml`.\n-
          Extends `molecule/delegated/tests/user.py` to fetch the served key material
          (via a new `get_from_url` helper) and assert each key's type and material
          landed in the target's `authorized_keys`, mirroring `operator.py::test_githubkeys`.
          Includes a guard that fails loudly if the URL serves no keys, so the assertions
          can't vacuously pass.\n\n## Notes for the reviewer\n\n- **Scope beyond the
          literal issue.** Issue #860 asks only to delegate the fetch to localhost.
          Because moving the fetch to the controller turns an operator-supplied URL
          into a request the controller makes, the implementation also adds the `user_fetch_keys_allowed_hosts`
          allowlist (default `github.com`, which also covers `key: \"github\"`) and
          `no_log`/retry guards. These are defensive additions that follow directly
          from the delegation, not unrelated changes.\n- **Defaults preserve current
          behavior** for the common case: GitHub fetches keep working out of the box,
          and only the host the fetch runs on changes.\n\n---\n\n_Implemented by [planwerk-review](https://github.com/planwerk/planwerk-review)
          a24f4d9 with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/ansible-collection-commons/pull/861
        commit_id: dc8637d53995a28f5481aaec74362f4c401f2351
        patchset: dc8637d53995a28f5481aaec74362f4c401f2351
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-commons
          name: osism/ansible-collection-commons
          short_name: ansible-collection-commons
        src_dir: src/github.com/osism/ansible-collection-commons
        topic: null
      change: '861'
      change_message: "user: delegate remote SSH key fetch to localhost\n\n## Summary\n\nRemote
        SSH authorized keys (a user's `key` is a `https://\u2026` URL or the literal
        `\"github\"`) were fetched with `ansible.builtin.uri` running **on the target
        host**. That fails whenever the target has no outbound internet connectivity,
        even though every host involved could otherwise reach the key server.\n\nThis
        branch delegates the fetch to the Ansible controller by default while still
        installing the keys on the target host, and adds the security/robustness guards
        that delegating an operator-supplied URL to the controller requires.\n\nCloses
        #860\n\n## Changes in commit order\n\n### `c13b034` \u2014 user: delegate
        remote SSH key fetch to localhost by default\n- Adds `user_fetch_keys_delegate_to`
        (default: `localhost`) and applies it as `delegate_to` on both fetch tasks
        in `roles/user/tasks/remote-key.yml`, so the fetch runs on the controller
        while keys land on the target. Operators can set it to `\"{{ inventory_hostname
        }}\"` to fetch from the target instead, or to any other reachable host.\n-
        Hardens the now-controller-side fetch:\n  - `user_fetch_keys_allowed_hosts`
        (default: `[github.com]`) \u2014 a remote `https` key is only fetched when
        its URL host is in this allowlist, with a preceding `ansible.builtin.fail`
        task that refuses untrusted hosts. This bounds the request surface, since
        an operator-supplied URL would otherwise let the controller be pointed at
        an internal-only service.\n  - `no_log: true`, plus `retries: 3` / `delay:
        5` / `until: \u2026 is success` on each fetch task.\n\n### `df900a3` \u2014
        molecule: cover remote SSH key fetch for user role\n- Adds a `dummy_remote`
        user (key `https://github.com/lindenb1.keys`) to `molecule/delegated/vars/user.yml`.\n-
        Extends `molecule/delegated/tests/user.py` to fetch the served key material
        (via a new `get_from_url` helper) and assert each key's type and material
        landed in the target's `authorized_keys`, mirroring `operator.py::test_githubkeys`.
        Includes a guard that fails loudly if the URL serves no keys, so the assertions
        can't vacuously pass.\n\n## Notes for the reviewer\n\n- **Scope beyond the
        literal issue.** Issue #860 asks only to delegate the fetch to localhost.
        Because moving the fetch to the controller turns an operator-supplied URL
        into a request the controller makes, the implementation also adds the `user_fetch_keys_allowed_hosts`
        allowlist (default `github.com`, which also covers `key: \"github\"`) and
        `no_log`/retry guards. These are defensive additions that follow directly
        from the delegation, not unrelated changes.\n- **Defaults preserve current
        behavior** for the common case: GitHub fetches keep working out of the box,
        and only the host the fetch runs on changes.\n\n---\n\n_Implemented by [planwerk-review](https://github.com/planwerk/planwerk-review)
        a24f4d9 with Claude:claude-opus-4-8_\n"
      change_url: https://github.com/osism/ansible-collection-commons/pull/861
      child_jobs: []
      commit_id: dc8637d53995a28f5481aaec74362f4c401f2351
      event_id: 61b12080-758e-11f1-9c81-9157a21bf032
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/a064781d18414b5a83c953c1f5eec8e5/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/a064781d18414b5a83c953c1f5eec8e5/work/logs
        result_data_file: /var/lib/zuul/builds/a064781d18414b5a83c953c1f5eec8e5/work/results.json
        src_root: /var/lib/zuul/builds/a064781d18414b5a83c953c1f5eec8e5/work/src
        work_root: /var/lib/zuul/builds/a064781d18414b5a83c953c1f5eec8e5/work
      include_vars: []
      items:
      - branch: main
        change: '861'
        change_message: "user: delegate remote SSH key fetch to localhost\n\n## Summary\n\nRemote
          SSH authorized keys (a user's `key` is a `https://\u2026` URL or the literal
          `\"github\"`) were fetched with `ansible.builtin.uri` running **on the target
          host**. That fails whenever the target has no outbound internet connectivity,
          even though every host involved could otherwise reach the key server.\n\nThis
          branch delegates the fetch to the Ansible controller by default while still
          installing the keys on the target host, and adds the security/robustness
          guards that delegating an operator-supplied URL to the controller requires.\n\nCloses
          #860\n\n## Changes in commit order\n\n### `c13b034` \u2014 user: delegate
          remote SSH key fetch to localhost by default\n- Adds `user_fetch_keys_delegate_to`
          (default: `localhost`) and applies it as `delegate_to` on both fetch tasks
          in `roles/user/tasks/remote-key.yml`, so the fetch runs on the controller
          while keys land on the target. Operators can set it to `\"{{ inventory_hostname
          }}\"` to fetch from the target instead, or to any other reachable host.\n-
          Hardens the now-controller-side fetch:\n  - `user_fetch_keys_allowed_hosts`
          (default: `[github.com]`) \u2014 a remote `https` key is only fetched when
          its URL host is in this allowlist, with a preceding `ansible.builtin.fail`
          task that refuses untrusted hosts. This bounds the request surface, since
          an operator-supplied URL would otherwise let the controller be pointed at
          an internal-only service.\n  - `no_log: true`, plus `retries: 3` / `delay:
          5` / `until: \u2026 is success` on each fetch task.\n\n### `df900a3` \u2014
          molecule: cover remote SSH key fetch for user role\n- Adds a `dummy_remote`
          user (key `https://github.com/lindenb1.keys`) to `molecule/delegated/vars/user.yml`.\n-
          Extends `molecule/delegated/tests/user.py` to fetch the served key material
          (via a new `get_from_url` helper) and assert each key's type and material
          landed in the target's `authorized_keys`, mirroring `operator.py::test_githubkeys`.
          Includes a guard that fails loudly if the URL serves no keys, so the assertions
          can't vacuously pass.\n\n## Notes for the reviewer\n\n- **Scope beyond the
          literal issue.** Issue #860 asks only to delegate the fetch to localhost.
          Because moving the fetch to the controller turns an operator-supplied URL
          into a request the controller makes, the implementation also adds the `user_fetch_keys_allowed_hosts`
          allowlist (default `github.com`, which also covers `key: \"github\"`) and
          `no_log`/retry guards. These are defensive additions that follow directly
          from the delegation, not unrelated changes.\n- **Defaults preserve current
          behavior** for the common case: GitHub fetches keep working out of the box,
          and only the host the fetch runs on changes.\n\n---\n\n_Implemented by [planwerk-review](https://github.com/planwerk/planwerk-review)
          a24f4d9 with Claude:claude-opus-4-8_\n"
        change_url: https://github.com/osism/ansible-collection-commons/pull/861
        commit_id: dc8637d53995a28f5481aaec74362f4c401f2351
        patchset: dc8637d53995a28f5481aaec74362f4c401f2351
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-commons
          name: osism/ansible-collection-commons
          short_name: ansible-collection-commons
          src_dir: src/github.com/osism/ansible-collection-commons
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: dXNlcjogZGVsZWdhdGUgcmVtb3RlIFNTSCBrZXkgZmV0Y2ggdG8gbG9jYWxob3N0CgojIyBTdW1tYXJ5CgpSZW1vdGUgU1NIIGF1dGhvcml6ZWQga2V5cyAoYSB1c2VyJ3MgYGtleWAgaXMgYSBgaHR0cHM6Ly/igKZgIFVSTCBvciB0aGUgbGl0ZXJhbCBgImdpdGh1YiJgKSB3ZXJlIGZldGNoZWQgd2l0aCBgYW5zaWJsZS5idWlsdGluLnVyaWAgcnVubmluZyAqKm9uIHRoZSB0YXJnZXQgaG9zdCoqLiBUaGF0IGZhaWxzIHdoZW5ldmVyIHRoZSB0YXJnZXQgaGFzIG5vIG91dGJvdW5kIGludGVybmV0IGNvbm5lY3Rpdml0eSwgZXZlbiB0aG91Z2ggZXZlcnkgaG9zdCBpbnZvbHZlZCBjb3VsZCBvdGhlcndpc2UgcmVhY2ggdGhlIGtleSBzZXJ2ZXIuCgpUaGlzIGJyYW5jaCBkZWxlZ2F0ZXMgdGhlIGZldGNoIHRvIHRoZSBBbnNpYmxlIGNvbnRyb2xsZXIgYnkgZGVmYXVsdCB3aGlsZSBzdGlsbCBpbnN0YWxsaW5nIHRoZSBrZXlzIG9uIHRoZSB0YXJnZXQgaG9zdCwgYW5kIGFkZHMgdGhlIHNlY3VyaXR5L3JvYnVzdG5lc3MgZ3VhcmRzIHRoYXQgZGVsZWdhdGluZyBhbiBvcGVyYXRvci1zdXBwbGllZCBVUkwgdG8gdGhlIGNvbnRyb2xsZXIgcmVxdWlyZXMuCgpDbG9zZXMgIzg2MAoKIyMgQ2hhbmdlcyBpbiBjb21taXQgb3JkZXIKCiMjIyBgYzEzYjAzNGAg4oCUIHVzZXI6IGRlbGVnYXRlIHJlbW90ZSBTU0gga2V5IGZldGNoIHRvIGxvY2FsaG9zdCBieSBkZWZhdWx0Ci0gQWRkcyBgdXNlcl9mZXRjaF9rZXlzX2RlbGVnYXRlX3RvYCAoZGVmYXVsdDogYGxvY2FsaG9zdGApIGFuZCBhcHBsaWVzIGl0IGFzIGBkZWxlZ2F0ZV90b2Agb24gYm90aCBmZXRjaCB0YXNrcyBpbiBgcm9sZXMvdXNlci90YXNrcy9yZW1vdGUta2V5LnltbGAsIHNvIHRoZSBmZXRjaCBydW5zIG9uIHRoZSBjb250cm9sbGVyIHdoaWxlIGtleXMgbGFuZCBvbiB0aGUgdGFyZ2V0LiBPcGVyYXRvcnMgY2FuIHNldCBpdCB0byBgInt7IGludmVudG9yeV9ob3N0bmFtZSB9fSJgIHRvIGZldGNoIGZyb20gdGhlIHRhcmdldCBpbnN0ZWFkLCBvciB0byBhbnkgb3RoZXIgcmVhY2hhYmxlIGhvc3QuCi0gSGFyZGVucyB0aGUgbm93LWNvbnRyb2xsZXItc2lkZSBmZXRjaDoKICAtIGB1c2VyX2ZldGNoX2tleXNfYWxsb3dlZF9ob3N0c2AgKGRlZmF1bHQ6IGBbZ2l0aHViLmNvbV1gKSDigJQgYSByZW1vdGUgYGh0dHBzYCBrZXkgaXMgb25seSBmZXRjaGVkIHdoZW4gaXRzIFVSTCBob3N0IGlzIGluIHRoaXMgYWxsb3dsaXN0LCB3aXRoIGEgcHJlY2VkaW5nIGBhbnNpYmxlLmJ1aWx0aW4uZmFpbGAgdGFzayB0aGF0IHJlZnVzZXMgdW50cnVzdGVkIGhvc3RzLiBUaGlzIGJvdW5kcyB0aGUgcmVxdWVzdCBzdXJmYWNlLCBzaW5jZSBhbiBvcGVyYXRvci1zdXBwbGllZCBVUkwgd291bGQgb3RoZXJ3aXNlIGxldCB0aGUgY29udHJvbGxlciBiZSBwb2ludGVkIGF0IGFuIGludGVybmFsLW9ubHkgc2VydmljZS4KICAtIGBub19sb2c6IHRydWVgLCBwbHVzIGByZXRyaWVzOiAzYCAvIGBkZWxheTogNWAgLyBgdW50aWw6IOKApiBpcyBzdWNjZXNzYCBvbiBlYWNoIGZldGNoIHRhc2suCgojIyMgYGRmOTAwYTNgIOKAlCBtb2xlY3VsZTogY292ZXIgcmVtb3RlIFNTSCBrZXkgZmV0Y2ggZm9yIHVzZXIgcm9sZQotIEFkZHMgYSBgZHVtbXlfcmVtb3RlYCB1c2VyIChrZXkgYGh0dHBzOi8vZ2l0aHViLmNvbS9saW5kZW5iMS5rZXlzYCkgdG8gYG1vbGVjdWxlL2RlbGVnYXRlZC92YXJzL3VzZXIueW1sYC4KLSBFeHRlbmRzIGBtb2xlY3VsZS9kZWxlZ2F0ZWQvdGVzdHMvdXNlci5weWAgdG8gZmV0Y2ggdGhlIHNlcnZlZCBrZXkgbWF0ZXJpYWwgKHZpYSBhIG5ldyBgZ2V0X2Zyb21fdXJsYCBoZWxwZXIpIGFuZCBhc3NlcnQgZWFjaCBrZXkncyB0eXBlIGFuZCBtYXRlcmlhbCBsYW5kZWQgaW4gdGhlIHRhcmdldCdzIGBhdXRob3JpemVkX2tleXNgLCBtaXJyb3JpbmcgYG9wZXJhdG9yLnB5Ojp0ZXN0X2dpdGh1YmtleXNgLiBJbmNsdWRlcyBhIGd1YXJkIHRoYXQgZmFpbHMgbG91ZGx5IGlmIHRoZSBVUkwgc2VydmVzIG5vIGtleXMsIHNvIHRoZSBhc3NlcnRpb25zIGNhbid0IHZhY3VvdXNseSBwYXNzLgoKIyMgTm90ZXMgZm9yIHRoZSByZXZpZXdlcgoKLSAqKlNjb3BlIGJleW9uZCB0aGUgbGl0ZXJhbCBpc3N1ZS4qKiBJc3N1ZSAjODYwIGFza3Mgb25seSB0byBkZWxlZ2F0ZSB0aGUgZmV0Y2ggdG8gbG9jYWxob3N0LiBCZWNhdXNlIG1vdmluZyB0aGUgZmV0Y2ggdG8gdGhlIGNvbnRyb2xsZXIgdHVybnMgYW4gb3BlcmF0b3Itc3VwcGxpZWQgVVJMIGludG8gYSByZXF1ZXN0IHRoZSBjb250cm9sbGVyIG1ha2VzLCB0aGUgaW1wbGVtZW50YXRpb24gYWxzbyBhZGRzIHRoZSBgdXNlcl9mZXRjaF9rZXlzX2FsbG93ZWRfaG9zdHNgIGFsbG93bGlzdCAoZGVmYXVsdCBgZ2l0aHViLmNvbWAsIHdoaWNoIGFsc28gY292ZXJzIGBrZXk6ICJnaXRodWIiYCkgYW5kIGBub19sb2dgL3JldHJ5IGd1YXJkcy4gVGhlc2UgYXJlIGRlZmVuc2l2ZSBhZGRpdGlvbnMgdGhhdCBmb2xsb3cgZGlyZWN0bHkgZnJvbSB0aGUgZGVsZWdhdGlvbiwgbm90IHVucmVsYXRlZCBjaGFuZ2VzLgotICoqRGVmYXVsdHMgcHJlc2VydmUgY3VycmVudCBiZWhhdmlvcioqIGZvciB0aGUgY29tbW9uIGNhc2U6IEdpdEh1YiBmZXRjaGVzIGtlZXAgd29ya2luZyBvdXQgb2YgdGhlIGJveCwgYW5kIG9ubHkgdGhlIGhvc3QgdGhlIGZldGNoIHJ1bnMgb24gY2hhbmdlcy4KCi0tLQoKX0ltcGxlbWVudGVkIGJ5IFtwbGFud2Vyay1yZXZpZXddKGh0dHBzOi8vZ2l0aHViLmNvbS9wbGFud2Vyay9wbGFud2Vyay1yZXZpZXcpIGEyNGY0ZDkgd2l0aCBDbGF1ZGU6Y2xhdWRlLW9wdXMtNC04Xwo=
      patchset: dc8637d53995a28f5481aaec74362f4c401f2351
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/flake8/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/ansible-collection-commons
        name: osism/ansible-collection-commons
        short_name: ansible-collection-commons
        src_dir: src/github.com/osism/ansible-collection-commons
      projects:
        github.com/osism/ansible-collection-commons:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-commons
          checkout: main
          checkout_description: zuul branch
          commit: 57dde14f15140c9ad26908b798010fe8d4569c3b
          name: osism/ansible-collection-commons
          required: false
          short_name: ansible-collection-commons
          src_dir: src/github.com/osism/ansible-collection-commons
      ref: refs/pull/861/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
