[
{
    "branch": "main",
    "index": "0",
    "phase": "pre",
    "playbook": "github.com/osism/zuul-config/playbooks/base/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-09-21T05:25:18.015327Z",
                    "start": "2026-09-21T05:24:54.337825Z"
                },
                "id": "0242ac1f-6606-ac4f-4fe5-000000000002",
                "name": "Base pre"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "set-zuul-log-path-fact"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:54.382640Z",
                            "start": "2026-09-21T05:24:54.354297Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000000f",
                        "name": "Setup log path fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_log_path": "8c8/osism/8c832a8a96ea4d47aa877fd304ecb48a"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000c1",
                        "name": "set-zuul-log-path-fact",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/set-zuul-log-path-fact"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:54.426583Z",
                            "start": "2026-09-21T05:24:54.397501Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000c3",
                        "name": "Set log path for a build"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "debug",
                            "changed": false,
                            "msg": "# Job Information\nAnsible Version: 2.16.14\nJob: release-tox-drift-test\nPipeline: check\nExecutor: 521e9411259a\nTriggered by: https://github.com/osism/release/pull/1949\nEvent ID: a9ecb2f0-b57c-11f1-8a92-208bafd8bc47\n"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:54.475520Z",
                            "start": "2026-09-21T05:24:54.435856Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000010",
                        "name": "Print job information"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "debug",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": false,
                                    "failed": false,
                                    "msg": "# Node Information\nInventory Hostname: debian-bookworm\nHostname: debian\nUsername: zuul\nDistro: Debian 12.15\nProvider: regiocloud-a\nRegion: \nLabel: debian-bookworm\nProduct Name: OpenStack Nova\nInterface IP: 2a13:1a81:8000:3124:f816:3eff:fe3e:e417\n",
                                    "zj_item": "debian-bookworm"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000000d",
                        "name": "emit-job-header",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/emit-job-header"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:54.607150Z",
                            "start": "2026-09-21T05:24:54.480271Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000011",
                        "name": "Print node information"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info",
                                    "state": "absent"
                                }
                            },
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 493,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000014",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:55.166656Z",
                            "start": "2026-09-21T05:24:54.617841Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000016",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "f3c6c8140c49d904dd3bf3efa836aad186a749cf",
                            "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info/inventory.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "inventory.yaml",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "f3c6c8140c49d904dd3bf3efa836aad186a749cf",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": true,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/.ansible/tmp/ansible-tmp-1789968295.2299702-34-79416145398653/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "ffa8f0da5823f28c553f232be055af8b",
                            "mode": "0644",
                            "owner": "root",
                            "size": 47392,
                            "src": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/.ansible/tmp/ansible-tmp-1789968295.2299702-34-79416145398653/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000014",
                        "name": "log-inventory",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/log-inventory"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:56.398726Z",
                            "start": "2026-09-21T05:24:55.173409Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000017",
                        "name": "Copy ansible inventory to logs dir"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "stat",
                            "changed": false,
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:56.968439Z",
                            "start": "2026-09-21T05:24:56.424005Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000001b",
                        "name": "Check to see if ssh key was already created for this build"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "create-key-and-replace.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:57.006979Z",
                            "start": "2026-09-21T05:24:56.978821Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000001c",
                        "name": "Create a new key in workspace based on build UUID"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-keygen",
                                "-t",
                                "rsa",
                                "-N",
                                "",
                                "-C",
                                "zuul-build-sshkey",
                                "-f",
                                "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa",
                                "-b",
                                "3072"
                            ],
                            "delta": "0:00:01.334835",
                            "end": "2026-09-21 05:24:58.892507",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-keygen -t rsa -N '' -C 'zuul-build-sshkey' -f /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa -b 3072",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-0000000000e4-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:24:57.557672",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Generating public/private rsa key pair.\nYour identification has been saved in /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa\nYour public key has been saved in /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa.pub\nThe key fingerprint is:\nSHA256:HW7tyyF9uzD/TsEvlMLzMt8Y7qHtW9Y4TA7CgRsRahM zuul-build-sshkey\nThe key's randomart image is:\n+---[RSA 3072]----+\n|      E o.       |\n|       o o       |\n|      + o o      |\n|     . . * =  .. |\n|        S * * +o |\n|         . + X .+|\n|          . O @ *|\n|           o # % |\n|            +o%=+|\n+----[SHA256]-----+",
                            "stdout_lines": [
                                "Generating public/private rsa key pair.",
                                "Your identification has been saved in /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa",
                                "Your public key has been saved in /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa.pub",
                                "The key fingerprint is:",
                                "SHA256:HW7tyyF9uzD/TsEvlMLzMt8Y7qHtW9Y4TA7CgRsRahM zuul-build-sshkey",
                                "The key's randomart image is:",
                                "+---[RSA 3072]----+",
                                "|      E o.       |",
                                "|       o o       |",
                                "|      + o o      |",
                                "|     . . * =  .. |",
                                "|        S * * +o |",
                                "|         . + X .+|",
                                "|          . O @ *|",
                                "|           o # % |",
                                "|            +o%=+|",
                                "+----[SHA256]-----+"
                            ],
                            "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-0000000000e4-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:58.932300Z",
                            "start": "2026-09-21T05:24:57.031924Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000e4",
                        "name": "Create Temp SSH key"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "remote-linux.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:58.979325Z",
                            "start": "2026-09-21T05:24:58.948112Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000e5",
                        "name": "Remote setup ssh keys (linux)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "lineinfile",
                            "changed": false,
                            "false_condition": "zuul_build_sshkey_cleanup",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:59.025154Z",
                            "start": "2026-09-21T05:24:59.001242Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000104",
                        "name": "Remove previously added zuul-build-sshkey"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAeG+wYy6xzBJzXx1wLingkJZXlsJiKzhXCRWY/eX+1JXmbvbmi1hAOcyjpdUBV3la9drzebaNqojfRnAgYJs7VJxrEIg06ol3gHcFItxim26D6lWJRxU+uX+6ZYZ6UosEq1Ogsf1vNzkWSE0lg20VfvGs8TQds6x6XstQK8gaxJVl2qELfa6819XzcWGWRL+/+QzGvoMvgLgoHihaO2YPEO+ayic+glsXepzZ8GGzA+g39JCY+87VLq2tOoLn0s4BOR6RAzifOzIpmT6fpy22Q+TD1P96O28q5hp5OKAmdFhLfgSsts6DAmL7H56HTUUPqP8GxMF0i95erGRFWjlaiDAZOCm/a0fMw3nWSkw+BIZBJG7tdxsPUJtINUqcHDq0RNQYiQy6lGAA8mA7rK+yjjWj81m+G4Ew+Ypgkgr2h7yWIsKuFM1T6LAitQpZLM9zNIYUTfu0fw8GDPnIGMxIl7qTzhdcH/VWBG2Qeoi89Sw9UXq25hXDgAB0yQ4qVmc= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "present",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAeG+wYy6xzBJzXx1wLingkJZXlsJiKzhXCRWY/eX+1JXmbvbmi1hAOcyjpdUBV3la9drzebaNqojfRnAgYJs7VJxrEIg06ol3gHcFItxim26D6lWJRxU+uX+6ZYZ6UosEq1Ogsf1vNzkWSE0lg20VfvGs8TQds6x6XstQK8gaxJVl2qELfa6819XzcWGWRL+/+QzGvoMvgLgoHihaO2YPEO+ayic+glsXepzZ8GGzA+g39JCY+87VLq2tOoLn0s4BOR6RAzifOzIpmT6fpy22Q+TD1P96O28q5hp5OKAmdFhLfgSsts6DAmL7H56HTUUPqP8GxMF0i95erGRFWjlaiDAZOCm/a0fMw3nWSkw+BIZBJG7tdxsPUJtINUqcHDq0RNQYiQy6lGAA8mA7rK+yjjWj81m+G4Ew+Ypgkgr2h7yWIsKuFM1T6LAitQpZLM9zNIYUTfu0fw8GDPnIGMxIl7qTzhdcH/VWBG2Qeoi89Sw9UXq25hXDgAB0yQ4qVmc= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "present",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:24:59.779162Z",
                            "start": "2026-09-21T05:24:59.030989Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000105",
                        "name": "Enable access via build key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/.ssh"
                                },
                                "before": {
                                    "path": "/home/zuul/.ssh"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 448,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/.ssh",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0700",
                            "owner": "zuul",
                            "path": "/home/zuul/.ssh",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:00.079375Z",
                            "start": "2026-09-21T05:24:59.784432Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000106",
                        "name": "Make sure user has a .ssh"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "f535c5a49abc2486fdc05f746b5f4f01be11d536",
                            "dest": "/home/zuul/.ssh/id_rsa",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "8c832a8a96ea4d47aa877fd304ecb48a_id_rsa",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "f535c5a49abc2486fdc05f746b5f4f01be11d536",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 384,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1789968300.1269367-139-173357233495748/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "c014a7090ec6c17b3e67f22c85d75259",
                            "mode": "0600",
                            "owner": "zuul",
                            "size": 2602,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1789968300.1269367-139-173357233495748/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:00.771703Z",
                            "start": "2026-09-21T05:25:00.084899Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000107",
                        "name": "Install build private key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": true,
                            "checksum": "4577d7f6cb91ed512d907ce0ba0fc671cc8c6217",
                            "dest": "/home/zuul/.ssh/id_rsa.pub",
                            "diff": [],
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "8c832a8a96ea4d47aa877fd304ecb48a_id_rsa.pub",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "4577d7f6cb91ed512d907ce0ba0fc671cc8c6217",
                                    "content": null,
                                    "dest": "/home/zuul/.ssh/id_rsa.pub",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": false,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/home/zuul/.ansible/tmp/ansible-tmp-1789968300.8233058-149-57258960149306/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "3e857ed3eea0e0559e900db9ef147067",
                            "mode": "0644",
                            "owner": "zuul",
                            "size": 571,
                            "src": "/home/zuul/.ansible/tmp/ansible-tmp-1789968300.8233058-149-57258960149306/source",
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:01.474614Z",
                            "start": "2026-09-21T05:25:00.778951Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000108",
                        "name": "Install build public key as SSH key on all nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:01.498347Z",
                            "start": "2026-09-21T05:25:01.482703Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000e6",
                        "name": "Remote setup ssh keys (windows)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "sshagent_remove_keys",
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "remove": "^(?!\\(stdin\\)).*"
                                }
                            },
                            "removed": [
                                "/var/ssh/nodepool"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000eb",
                        "name": "remove-zuul-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/remove-zuul-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:01.941446Z",
                            "start": "2026-09-21T05:25:01.505280Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000ed",
                        "name": "Remove master key from local agent"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "ssh-add",
                                "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa"
                            ],
                            "delta": "0:00:00.018367",
                            "end": "2026-09-21 05:25:02.275796",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "ssh-add /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-0000000000f3-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:02.257429",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Identity added: /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa (zuul-build-sshkey)",
                            "stdout_lines": [
                                "Identity added: /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/8c832a8a96ea4d47aa877fd304ecb48a_id_rsa (zuul-build-sshkey)"
                            ],
                            "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-0000000000f3-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:02.326670Z",
                            "start": "2026-09-21T05:25:01.952563Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000f3",
                        "name": "Add back temp key"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ping",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "data": "pong"
                                }
                            },
                            "ping": "pong"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:02.784710Z",
                            "start": "2026-09-21T05:25:02.334962Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000f4",
                        "name": "Verify we can still SSH to all nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "ansible_os_family == \"Windows\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000019",
                        "name": "add-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/add-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:02.814097Z",
                            "start": "2026-09-21T05:25:02.790184Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-0000000000f5",
                        "name": "Verify we can still SSH to all nodes (windows)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000001e",
                        "name": "start-zuul-console",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/start-zuul-console"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:03.271915Z",
                            "start": "2026-09-21T05:25:02.824525Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000020",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "zuul_info_dir": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:03.313142Z",
                            "start": "2026-09-21T05:25:03.284419Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000024",
                        "name": "Define zuul_info_dir fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info"
                                }
                            },
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 493,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:03.616716Z",
                            "start": "2026-09-21T05:25:03.318267Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000025",
                        "name": "Ensure Zuul Ansible directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "setup",
                            "ansible_facts": {
                                "ansible_all_ipv4_addresses": [
                                    "10.128.0.107"
                                ],
                                "ansible_all_ipv6_addresses": [
                                    "2a13:1a81:8000:3124:f816:3eff:fe3e:e417",
                                    "fe80::f816:3eff:fe3e:e417"
                                ],
                                "ansible_apparmor": {
                                    "status": "enabled"
                                },
                                "ansible_architecture": "x86_64",
                                "ansible_bios_date": "04/01/2014",
                                "ansible_bios_vendor": "SeaBIOS",
                                "ansible_bios_version": "1.15.0-1",
                                "ansible_board_asset_tag": "NA",
                                "ansible_board_name": "NA",
                                "ansible_board_serial": "NA",
                                "ansible_board_vendor": "NA",
                                "ansible_board_version": "NA",
                                "ansible_chassis_asset_tag": "NA",
                                "ansible_chassis_serial": "NA",
                                "ansible_chassis_vendor": "QEMU",
                                "ansible_chassis_version": "pc-i440fx-6.2",
                                "ansible_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-6.1.0-53-amd64",
                                    "console": "ttyS0,115200",
                                    "gfxpayload": "text",
                                    "no_timer_check": true,
                                    "nofb": true,
                                    "nomodeset": true,
                                    "ro": true,
                                    "root": "LABEL=cloudimg-rootfs"
                                },
                                "ansible_date_time": {
                                    "date": "2026-09-21",
                                    "day": "21",
                                    "epoch": "1789968304",
                                    "epoch_int": "1789968304",
                                    "hour": "05",
                                    "iso8601": "2026-09-21T05:25:04Z",
                                    "iso8601_basic": "20260921T052504727633",
                                    "iso8601_basic_short": "20260921T052504",
                                    "iso8601_micro": "2026-09-21T05:25:04.727633Z",
                                    "minute": "25",
                                    "month": "09",
                                    "second": "04",
                                    "time": "05:25:04",
                                    "tz": "UTC",
                                    "tz_dst": "UTC",
                                    "tz_offset": "+0000",
                                    "weekday": "Monday",
                                    "weekday_number": "1",
                                    "weeknumber": "38",
                                    "year": "2026"
                                },
                                "ansible_default_ipv4": {
                                    "address": "10.128.0.107",
                                    "alias": "ens3",
                                    "broadcast": "10.128.0.111",
                                    "gateway": "10.128.0.97",
                                    "interface": "ens3",
                                    "macaddress": "fa:16:3e:3e:e4:17",
                                    "mtu": 1500,
                                    "netmask": "255.255.255.240",
                                    "network": "10.128.0.96",
                                    "prefix": "28",
                                    "type": "ether"
                                },
                                "ansible_default_ipv6": {
                                    "address": "2a13:1a81:8000:3124:f816:3eff:fe3e:e417",
                                    "gateway": "fe80::f816:3eff:fe92:ad10",
                                    "interface": "ens3",
                                    "macaddress": "fa:16:3e:3e:e4:17",
                                    "mtu": 1500,
                                    "prefix": "64",
                                    "scope": "global",
                                    "type": "ether"
                                },
                                "ansible_device_links": {
                                    "ids": {},
                                    "labels": {
                                        "vda1": [
                                            "cloudimg-rootfs"
                                        ]
                                    },
                                    "masters": {},
                                    "uuids": {
                                        "vda1": [
                                            "e85a55fb-80b0-4304-a23b-7cc3e279a6bb"
                                        ]
                                    }
                                },
                                "ansible_devices": {
                                    "loop0": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop1": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop2": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop3": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop4": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop5": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop6": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "loop7": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {},
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "0",
                                        "sectorsize": "512",
                                        "size": "0.00 Bytes",
                                        "support_discard": "0",
                                        "vendor": null,
                                        "virtual": 1
                                    },
                                    "vda": {
                                        "holders": [],
                                        "host": "",
                                        "links": {
                                            "ids": [],
                                            "labels": [],
                                            "masters": [],
                                            "uuids": []
                                        },
                                        "model": null,
                                        "partitions": {
                                            "vda1": {
                                                "holders": [],
                                                "links": {
                                                    "ids": [],
                                                    "labels": [
                                                        "cloudimg-rootfs"
                                                    ],
                                                    "masters": [],
                                                    "uuids": [
                                                        "e85a55fb-80b0-4304-a23b-7cc3e279a6bb"
                                                    ]
                                                },
                                                "sectors": "20969439",
                                                "sectorsize": 512,
                                                "size": "10.00 GB",
                                                "start": "2048",
                                                "uuid": "e85a55fb-80b0-4304-a23b-7cc3e279a6bb"
                                            }
                                        },
                                        "removable": "0",
                                        "rotational": "1",
                                        "sas_address": null,
                                        "sas_device_handle": null,
                                        "scheduler_mode": "none",
                                        "sectors": "20971520",
                                        "sectorsize": "512",
                                        "size": "10.00 GB",
                                        "support_discard": "512",
                                        "vendor": "0x1af4",
                                        "virtual": 1
                                    }
                                },
                                "ansible_distribution": "Debian",
                                "ansible_distribution_file_parsed": true,
                                "ansible_distribution_file_path": "/etc/os-release",
                                "ansible_distribution_file_variety": "Debian",
                                "ansible_distribution_major_version": "12",
                                "ansible_distribution_minor_version": "15",
                                "ansible_distribution_release": "bookworm",
                                "ansible_distribution_version": "12.15",
                                "ansible_dns": {
                                    "domain": "a.customers.regiocloud.tech.",
                                    "nameservers": [
                                        "81.163.194.9",
                                        "81.163.194.10"
                                    ],
                                    "search": [
                                        "a.customers.regiocloud.tech."
                                    ]
                                },
                                "ansible_domain": "",
                                "ansible_effective_group_id": 1000,
                                "ansible_effective_user_id": 1000,
                                "ansible_ens3": {
                                    "active": true,
                                    "device": "ens3",
                                    "ipv4": {
                                        "address": "10.128.0.107",
                                        "broadcast": "10.128.0.111",
                                        "netmask": "255.255.255.240",
                                        "network": "10.128.0.96",
                                        "prefix": "28"
                                    },
                                    "ipv6": [
                                        {
                                            "address": "2a13:1a81:8000:3124:f816:3eff:fe3e:e417",
                                            "prefix": "64",
                                            "scope": "global"
                                        },
                                        {
                                            "address": "fe80::f816:3eff:fe3e:e417",
                                            "prefix": "64",
                                            "scope": "link"
                                        }
                                    ],
                                    "macaddress": "fa:16:3e:3e:e4:17",
                                    "module": "virtio_net",
                                    "mtu": 1500,
                                    "pciid": "virtio1",
                                    "promisc": false,
                                    "speed": -1,
                                    "type": "ether"
                                },
                                "ansible_env": {
                                    "DBUS_SESSION_BUS_ADDRESS": "unix:path=/run/user/1000/bus",
                                    "HOME": "/home/zuul",
                                    "LANG": "C.UTF-8",
                                    "LC_ALL": "C.UTF-8",
                                    "LOGNAME": "zuul",
                                    "MOTD_SHOWN": "pam",
                                    "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/games",
                                    "PWD": "/home/zuul",
                                    "SHELL": "/bin/bash",
                                    "SHLVL": "0",
                                    "SSH_CLIENT": "2a13:1a81:8000:2::38d 52828 22",
                                    "SSH_CONNECTION": "2a13:1a81:8000:2::38d 52828 2a13:1a81:8000:3124:f816:3eff:fe3e:e417 22",
                                    "USER": "zuul",
                                    "XDG_RUNTIME_DIR": "/run/user/1000",
                                    "XDG_SESSION_CLASS": "user",
                                    "XDG_SESSION_ID": "1",
                                    "XDG_SESSION_TYPE": "tty",
                                    "_": "/bin/sh"
                                },
                                "ansible_fibre_channel_wwn": [],
                                "ansible_fips": false,
                                "ansible_form_factor": "Other",
                                "ansible_fqdn": "debian",
                                "ansible_hostname": "debian",
                                "ansible_hostnqn": "",
                                "ansible_interfaces": [
                                    "ens3",
                                    "lo"
                                ],
                                "ansible_is_chroot": false,
                                "ansible_iscsi_iqn": "",
                                "ansible_kernel": "6.1.0-53-amd64",
                                "ansible_kernel_version": "#1 SMP PREEMPT_DYNAMIC Debian 6.1.187-1 (2026-09-07)",
                                "ansible_lo": {
                                    "active": true,
                                    "device": "lo",
                                    "ipv4": {
                                        "address": "127.0.0.1",
                                        "broadcast": "",
                                        "netmask": "255.0.0.0",
                                        "network": "127.0.0.0",
                                        "prefix": "8"
                                    },
                                    "ipv6": [
                                        {
                                            "address": "::1",
                                            "prefix": "128",
                                            "scope": "host"
                                        }
                                    ],
                                    "mtu": 65536,
                                    "promisc": false,
                                    "type": "loopback"
                                },
                                "ansible_loadavg": {
                                    "15m": 0.02490234375,
                                    "1m": 0.28564453125,
                                    "5m": 0.0771484375
                                },
                                "ansible_local": {},
                                "ansible_locally_reachable_ips": {
                                    "ipv4": [
                                        "10.128.0.107",
                                        "127.0.0.0/8",
                                        "127.0.0.1"
                                    ],
                                    "ipv6": [
                                        "::1",
                                        "2a13:1a81:8000:3124:f816:3eff:fe3e:e417",
                                        "fe80::f816:3eff:fe3e:e417"
                                    ]
                                },
                                "ansible_lsb": {
                                    "codename": "bookworm",
                                    "description": "Debian GNU/Linux 12 (bookworm)",
                                    "id": "Debian",
                                    "major_release": "12",
                                    "release": "12"
                                },
                                "ansible_lvm": "N/A",
                                "ansible_machine": "x86_64",
                                "ansible_machine_id": "2746d0355d734ca487008959655e8fbe",
                                "ansible_memfree_mb": 3656,
                                "ansible_memory_mb": {
                                    "nocache": {
                                        "free": 3742,
                                        "used": 171
                                    },
                                    "real": {
                                        "free": 3656,
                                        "total": 3913,
                                        "used": 257
                                    },
                                    "swap": {
                                        "cached": 0,
                                        "free": 0,
                                        "total": 0,
                                        "used": 0
                                    }
                                },
                                "ansible_memtotal_mb": 3913,
                                "ansible_mounts": [
                                    {
                                        "block_available": 1943782,
                                        "block_size": 4096,
                                        "block_total": 2443452,
                                        "block_used": 499670,
                                        "device": "/dev/vda1",
                                        "fstype": "ext4",
                                        "inode_available": 2496074,
                                        "inode_total": 2532384,
                                        "inode_used": 36310,
                                        "mount": "/",
                                        "options": "rw,relatime",
                                        "size_available": 7961731072,
                                        "size_total": 10008379392,
                                        "uuid": "e85a55fb-80b0-4304-a23b-7cc3e279a6bb"
                                    }
                                ],
                                "ansible_nodename": "debian",
                                "ansible_os_family": "Debian",
                                "ansible_pkg_mgr": "apt",
                                "ansible_proc_cmdline": {
                                    "BOOT_IMAGE": "/boot/vmlinuz-6.1.0-53-amd64",
                                    "console": [
                                        "tty0",
                                        "ttyS0,115200"
                                    ],
                                    "gfxpayload": "text",
                                    "no_timer_check": true,
                                    "nofb": true,
                                    "nomodeset": true,
                                    "ro": true,
                                    "root": "LABEL=cloudimg-rootfs"
                                },
                                "ansible_processor": [
                                    "0",
                                    "GenuineIntel",
                                    "Intel Xeon Processor (Icelake)",
                                    "1",
                                    "GenuineIntel",
                                    "Intel Xeon Processor (Icelake)"
                                ],
                                "ansible_processor_cores": 1,
                                "ansible_processor_count": 2,
                                "ansible_processor_nproc": 2,
                                "ansible_processor_threads_per_core": 1,
                                "ansible_processor_vcpus": 2,
                                "ansible_product_name": "OpenStack Nova",
                                "ansible_product_serial": "NA",
                                "ansible_product_uuid": "NA",
                                "ansible_product_version": "29.2.1",
                                "ansible_python": {
                                    "executable": "/usr/bin/python3",
                                    "has_sslcontext": true,
                                    "type": "cpython",
                                    "version": {
                                        "major": 3,
                                        "micro": 2,
                                        "minor": 11,
                                        "releaselevel": "final",
                                        "serial": 0
                                    },
                                    "version_info": [
                                        3,
                                        11,
                                        2,
                                        "final",
                                        0
                                    ]
                                },
                                "ansible_python_version": "3.11.2",
                                "ansible_real_group_id": 1000,
                                "ansible_real_user_id": 1000,
                                "ansible_selinux": {
                                    "status": "disabled"
                                },
                                "ansible_selinux_python_present": true,
                                "ansible_service_mgr": "systemd",
                                "ansible_ssh_host_key_dsa_public": "AAAAB3NzaC1kc3MAAACBALh9/G4ZH6JJB/6xHdDpIkQ76ij15HSi5J2w+NLYO3L24KylTUUozSkcEXIT2veWUJ3KCRA5xC2S79I8Kc0rXDtVizhDgaoDE56D1cOzADbYWR7A+7blnxSlQG1OabrCES4z74iS+tOP7dV+QiFHBGlyX85I75wm3v08an/DhxuzAAAAFQDDtRT7XgfXaDjTgEctKtew1jXyYQAAAIBb9rhKUEONAGhF/BXhWkdtnzwCR9XUau5V2dljebxB8161crYH3S2dbg4eIj/qWXvnUvtBjTs9O5sOvZzYsD6iMnELCqHd30TZ0OBW5yil5NBe6ZHeWZ8ySDyGLAYfOqSZm64lVQ6pYzXC6lLUpIGlu7q75822al4/8XsDCgClRQAAAIBeJtRG7hSU5jLX5FaSLcqMSXy0QjRHG1fzylojxL3sgWg4VE2oAwi5FnwhnEYThOgW228fcAgb9xCD1+rycNZTLcgvXC0fHeAT2JWrtLpCnJx0h+ceLrOSLTl23oDp04cYVSWfTbjbqgffqeVc+6RHKELCoYlO5m2DSapOcrnoEg==",
                                "ansible_ssh_host_key_dsa_public_keytype": "ssh-dss",
                                "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBG7q4de0Z/bx7QAuRMgslpBltyLOQhVJjIPNdfBTviV39YTy0VOjZbL4OaE9Kx95i8Z+wqxa3YoWOr6Fxj4AtIM=",
                                "ansible_ssh_host_key_ecdsa_public_keytype": "ecdsa-sha2-nistp256",
                                "ansible_ssh_host_key_ed25519_public": "AAAAC3NzaC1lZDI1NTE5AAAAILr9tr51iBqZ4oFIFmijH8mAGD/drXXeYEHMvgzfg9xG",
                                "ansible_ssh_host_key_ed25519_public_keytype": "ssh-ed25519",
                                "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABgQClL96hFEZmpU2uP8CEOWocr2r9n/KguemiPIt/rFlArym0juX441WusyrtUFhwHt+BL301xzk8IYxVvND5XaruSfovtMqU5CsDIOEiRq/PYJFEDRWnIcL8VkmpxBBa0pXtfQhxSoa3boak/VhBf0YaHS+n+h/FsyJiwSHU1ih20YUtr+5jvdn8RPRXA2BWFwSzpIImoRR0VSvMYWbFI1W5WTn4MPXC2jfYjKNTQMbVacV7zGzfxFeOLA2vKYUqliUE6geKMFCuNDLlgxXvr1keGAaD6VRx8qWhy40E8q6eVSB3k/c82UiB3dTAAGzbLULS6J64gnL1TxJnIVYMiSDYmPOiIImuctCIzUv+WI8um3nBGOubk+8iW6NGeE0udldi/C4xkNidfc6aXD/Ujbxr3PrzdJLDPNAZSF/JqKmkimp4M7IBHq1Z3zysNIzrYyiOBwyCfPMaUG9URhluH2yltvBkMcElqdeLxFkY43MkpalzNtGPj4Z9crTh89MMqJU=",
                                "ansible_ssh_host_key_rsa_public_keytype": "ssh-rsa",
                                "ansible_swapfree_mb": 0,
                                "ansible_swaptotal_mb": 0,
                                "ansible_system": "Linux",
                                "ansible_system_capabilities": [
                                    ""
                                ],
                                "ansible_system_capabilities_enforced": "True",
                                "ansible_system_vendor": "OpenStack Foundation",
                                "ansible_uptime_seconds": 27,
                                "ansible_user_dir": "/home/zuul",
                                "ansible_user_gecos": "",
                                "ansible_user_gid": 1000,
                                "ansible_user_id": "zuul",
                                "ansible_user_shell": "/bin/bash",
                                "ansible_user_uid": 1000,
                                "ansible_userspace_architecture": "x86_64",
                                "ansible_userspace_bits": "64",
                                "ansible_virtualization_role": "guest",
                                "ansible_virtualization_tech_guest": [
                                    "openstack"
                                ],
                                "ansible_virtualization_tech_host": [
                                    "kvm"
                                ],
                                "ansible_virtualization_type": "openstack",
                                "gather_subset": [
                                    "all"
                                ],
                                "module_setup": true
                            },
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "fact_path": "/etc/ansible/facts.d",
                                    "filter": [],
                                    "gather_subset": [
                                        "all"
                                    ],
                                    "gather_timeout": 10
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:04.823848Z",
                            "start": "2026-09-21T05:25:03.624180Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000026",
                        "name": "Collect information about the host"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "validate_host_hostname_sanitized": "debian-bookworm"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:04.992421Z",
                            "start": "2026-09-21T05:25:04.831566Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000027",
                        "name": "Sanitize hostname"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "template",
                            "changed": true,
                            "checksum": "f580854a85bf1bac0ce26cd893d0cef7fc3807d5",
                            "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info/host-info.debian-bookworm.yaml",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "host-info.j2",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "f580854a85bf1bac0ce26cd893d0cef7fc3807d5",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info/host-info.debian-bookworm.yaml",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": true,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/.ansible/tmp/ansible-tmp-1789968305.0272157-246-132437694706492/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "417840f1535366e1c2d3e6016db68af4",
                            "mode": "0644",
                            "owner": "root",
                            "size": 13292,
                            "src": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/.ansible/tmp/ansible-tmp-1789968305.0272157-246-132437694706492/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:05.695561Z",
                            "start": "2026-09-21T05:25:04.997138Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000028",
                        "name": "Write out all ansible variables/facts known for each host"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "_zuul_nolog_return": true,
                            "action": "zuul_debug_info",
                            "changed": false,
                            "df_i": "Filesystem      Inodes IUsed   IFree IUse% Mounted on\nudev            495370   343  495027    1% /dev\ntmpfs           500889   460  500429    1% /run\n/dev/vda1      2532384 36310 2496074    2% /\ntmpfs           500889     1  500888    1% /dev/shm\ntmpfs           500889     3  500886    1% /run/lock\ntmpfs           100177    20  100157    1% /run/user/1000\n",
                            "df_m": "Filesystem     1M-blocks  Used Available Use% Mounted on\nudev                1936     0      1936   0% /dev\ntmpfs                392     1       391   1% /run\n/dev/vda1           9545  1506      7594  17% /\ntmpfs               1957     0      1957   0% /dev/shm\ntmpfs                  5     0         5   0% /run/lock\ntmpfs                392     0       392   0% /run/user/1000\n",
                            "image_manifest_files": [],
                            "invocation": {
                                "module_args": {
                                    "image_manifest": null,
                                    "image_manifest_files": [
                                        "/etc/dib-builddate.txt",
                                        "/etc/image-hostname.txt"
                                    ],
                                    "ipv4_route_required": false,
                                    "ipv6_route_required": false,
                                    "traceroute_host": null
                                }
                            },
                            "network_interfaces": "1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1/128 scope host noprefixroute \n       valid_lft forever preferred_lft forever\n2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    link/ether fa:16:3e:3e:e4:17 brd ff:ff:ff:ff:ff:ff\n    altname enp0s3\n    inet 10.128.0.107/28 brd 10.128.0.111 scope global dynamic ens3\n       valid_lft 43177sec preferred_lft 43177sec\n    inet6 2a13:1a81:8000:3124:f816:3eff:fe3e:e417/64 scope global dynamic mngtmpaddr \n       valid_lft forever preferred_lft forever\n    inet6 fe80::f816:3eff:fe3e:e417/64 scope link \n       valid_lft forever preferred_lft forever\n",
                            "network_neighbors": "10.128.0.97 dev ens3 lladdr fa:16:3e:90:1b:03 REACHABLE \nfe80::f816:3eff:fe92:ad10 dev ens3 lladdr fa:16:3e:92:ad:10 router REACHABLE \n",
                            "network_routing_v4": "default via 10.128.0.97 dev ens3 \n10.128.0.96/28 dev ens3 proto kernel scope link src 10.128.0.107 \n169.254.169.254 via 10.128.0.98 dev ens3 \n",
                            "network_routing_v6": "2a13:1a81:8000:3124::/64 dev ens3 proto kernel metric 256 pref medium\nfe80::/64 dev ens3 proto kernel metric 256 pref medium\ndefault via fe80::f816:3eff:fe92:ad10 dev ens3 proto ra metric 1024 expires 65513sec hoplimit 255 pref medium\n",
                            "proc_cpuinfo": "processor\t: 0\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 134\nmodel name\t: Intel Xeon Processor (Icelake)\nstepping\t: 0\nmicrocode\t: 0x1\ncpu MHz\t\t: 2299.998\ncache size\t: 16384 KB\nphysical id\t: 0\nsiblings\t: 1\ncore id\t\t: 0\ncpu cores\t: 1\napicid\t\t: 0\ninitial apicid\t: 0\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 13\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc pebs bts rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq dtes64 vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves wbnoinvd arat avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 rdpid fsrm md_clear arch_capabilities\nvmx flags\t: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid shadow_vmcs\nbugs\t\t: spectre_v1 spectre_v2 spec_store_bypass swapgs taa mmio_stale_data rfds bhi ibpb_no_ret its\nbogomips\t: 4599.99\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 40 bits physical, 57 bits virtual\npower management:\n\nprocessor\t: 1\nvendor_id\t: GenuineIntel\ncpu family\t: 6\nmodel\t\t: 134\nmodel name\t: Intel Xeon Processor (Icelake)\nstepping\t: 0\nmicrocode\t: 0x1\ncpu MHz\t\t: 2299.998\ncache size\t: 16384 KB\nphysical id\t: 1\nsiblings\t: 1\ncore id\t\t: 0\ncpu cores\t: 1\napicid\t\t: 1\ninitial apicid\t: 1\nfpu\t\t: yes\nfpu_exception\t: yes\ncpuid level\t: 13\nwp\t\t: yes\nflags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc pebs bts rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq dtes64 vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves wbnoinvd arat avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq la57 rdpid fsrm md_clear arch_capabilities\nvmx flags\t: vnmi preemption_timer posted_intr invvpid ept_x_only ept_ad ept_1gb flexpriority apicv tsc_offset vtpr mtf vapic ept vpid unrestricted_guest vapic_reg vid shadow_vmcs\nbugs\t\t: spectre_v1 spectre_v2 spec_store_bypass swapgs taa mmio_stale_data rfds bhi ibpb_no_ret its\nbogomips\t: 4599.99\nclflush size\t: 64\ncache_alignment\t: 64\naddress sizes\t: 40 bits physical, 57 bits virtual\npower management:\n\n",
                            "traceroute": null,
                            "uname": "Linux debian 6.1.0-53-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.187-1 (2026-09-07) x86_64 GNU/Linux\n"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:06.146450Z",
                            "start": "2026-09-21T05:25:05.701427Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000002a",
                        "name": "Collect information about zuul worker"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "template",
                            "changed": true,
                            "checksum": "60b194abcb152cc51b07ddc4e7ae9503a970427d",
                            "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info/zuul-info.debian-bookworm.txt",
                            "diff": [],
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_original_basename": "zuul-info.j2",
                                    "attributes": null,
                                    "backup": false,
                                    "checksum": "60b194abcb152cc51b07ddc4e7ae9503a970427d",
                                    "content": null,
                                    "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/zuul-info/zuul-info.debian-bookworm.txt",
                                    "directory_mode": null,
                                    "follow": false,
                                    "force": true,
                                    "group": null,
                                    "local_follow": null,
                                    "mode": 420,
                                    "owner": null,
                                    "remote_src": null,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/.ansible/tmp/ansible-tmp-1789968306.1870487-285-237331711383232/source",
                                    "unsafe_writes": false,
                                    "validate": null
                                }
                            },
                            "md5sum": "3fd8cd1b3c2ae21b26195b998a700740",
                            "mode": "0644",
                            "owner": "root",
                            "size": 2524,
                            "src": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/.ansible/tmp/ansible-tmp-1789968306.1870487-285-237331711383232/source",
                            "state": "file",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000022",
                        "name": "validate-host",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/validate-host"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:06.750862Z",
                            "start": "2026-09-21T05:25:06.151215Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000002b",
                        "name": "Write out all zuul information for each host"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "zuul_console",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "path": "/tmp/console-{log_uuid}.log",
                                    "port": 19885,
                                    "state": "present"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000002d",
                        "name": "prepare-workspace-log",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/prepare-workspace-log"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:07.050553Z",
                            "start": "2026-09-21T05:25:06.775953Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000002f",
                        "name": "Start zuul_console daemon."
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "synchronize",
                            "changed": true,
                            "cmd": "/usr/bin/rsync --compress --delete-after --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' --out-format='<<CHANGED>>%i %n%L' /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/src '[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:.'",
                            "invocation": {
                                "module_args": {
                                    "_local_rsync_password": null,
                                    "_local_rsync_path": "rsync",
                                    "_ssh_args": null,
                                    "_substitute_controller": false,
                                    "archive": true,
                                    "checksum": false,
                                    "compress": true,
                                    "copy_links": false,
                                    "delay_updates": false,
                                    "delete": true,
                                    "dest": "[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:.",
                                    "dest_port": 22,
                                    "dirs": false,
                                    "existing_only": false,
                                    "group": false,
                                    "link_dest": null,
                                    "links": null,
                                    "mode": "push",
                                    "owner": false,
                                    "partial": false,
                                    "perms": null,
                                    "private_key": null,
                                    "recursive": true,
                                    "rsync_opts": [],
                                    "rsync_path": null,
                                    "rsync_timeout": 0,
                                    "set_remote_user": true,
                                    "src": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/src",
                                    "ssh_connection_multiplexing": false,
                                    "times": null,
                                    "use_ssh_args": false,
                                    "verify_host": false
                                }
                            },
                            "msg": "cd+++++++++ src/\ncd+++++++++ src/github.com/\ncd+++++++++ src/github.com/osism/\ncd+++++++++ src/github.com/osism/release/\n<f+++++++++ src/github.com/osism/release/.flake8\n<f+++++++++ src/github.com/osism/release/.gitignore\n<f+++++++++ src/github.com/osism/release/.yamllint.yml\n<f+++++++++ src/github.com/osism/release/.zuul.yaml\n<f+++++++++ src/github.com/osism/release/LICENSE\n<f+++++++++ src/github.com/osism/release/README.md\n<f+++++++++ src/github.com/osism/release/requirements.txt\n<f+++++++++ src/github.com/osism/release/tox.ini\ncd+++++++++ src/github.com/osism/release/.git/\n<f+++++++++ src/github.com/osism/release/.git/COMMIT_EDITMSG\n<f+++++++++ src/github.com/osism/release/.git/FETCH_HEAD\n<f+++++++++ src/github.com/osism/release/.git/HEAD\n<f+++++++++ src/github.com/osism/release/.git/ORIG_HEAD\n<f+++++++++ src/github.com/osism/release/.git/config\n<f+++++++++ src/github.com/osism/release/.git/config.worktree\n<f+++++++++ src/github.com/osism/release/.git/description\n<f+++++++++ src/github.com/osism/release/.git/index\n<f+++++++++ src/github.com/osism/release/.git/packed-refs\ncd+++++++++ src/github.com/osism/release/.git/branches/\ncd+++++++++ src/github.com/osism/release/.git/hooks/\n<f+++++++++ src/github.com/osism/release/.git/hooks/applypatch-msg.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/commit-msg.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/fsmonitor-watchman.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/post-update.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/pre-applypatch.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/pre-commit.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/pre-merge-commit.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/pre-push.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/pre-rebase.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/pre-receive.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/prepare-commit-msg.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/push-to-checkout.sample\n<f+++++++++ src/github.com/osism/release/.git/hooks/update.sample\ncd+++++++++ src/github.com/osism/release/.git/info/\n<f+++++++++ src/github.com/osism/release/.git/info/exclude\ncd+++++++++ src/github.com/osism/release/.git/logs/\n<f+++++++++ src/github.com/osism/release/.git/logs/HEAD\ncd+++++++++ src/github.com/osism/release/.git/objects/\ncd+++++++++ src/github.com/osism/release/.git/objects/00/\n<f+++++++++ src/github.com/osism/release/.git/objects/00/1c237bdeab2286bcf90f3c38c8340e77a9b9a1\n<f+++++++++ src/github.com/osism/release/.git/objects/00/8588d0068faf44d9ca8d2971f0dc1a4415b79f\n<f+++++++++ src/github.com/osism/release/.git/objects/00/bfffc7f913bd0aeebea89f8b725ce1e93e923b\n<f+++++++++ src/github.com/osism/release/.git/objects/00/ed7c02603c3af24b7e864b89e9929f247056b9\ncd+++++++++ src/github.com/osism/release/.git/objects/01/\n<f+++++++++ src/github.com/osism/release/.git/objects/01/70c3e7ee182b6781e606340c703f37f3b0f1fe\ncd+++++++++ src/github.com/osism/release/.git/objects/03/\n<f+++++++++ src/github.com/osism/release/.git/objects/03/1b51451676a206fc34a6a686eda238bb6eeb60\n<f+++++++++ src/github.com/osism/release/.git/objects/03/39a05875d7b9f7521745ea900523a3bc7dd448\n<f+++++++++ src/github.com/osism/release/.git/objects/03/66c36c35cd06b987284fbc7202df710d6bf617\ncd+++++++++ src/github.com/osism/release/.git/objects/04/\n<f+++++++++ src/github.com/osism/release/.git/objects/04/33df7889694adddf2d413930be63ade854e723\n<f+++++++++ src/github.com/osism/release/.git/objects/04/b2498d2ba5b2d52ee99a05793334de66f5c71c\ncd+++++++++ src/github.com/osism/release/.git/objects/05/\n<f+++++++++ src/github.com/osism/release/.git/objects/05/6c062179139e8527eee5bf8071e83ea2cc2f42\ncd+++++++++ src/github.com/osism/release/.git/objects/06/\n<f+++++++++ src/github.com/osism/release/.git/objects/06/1da164ac958ba60bf32608526d516b0b229ca4\n<f+++++++++ src/github.com/osism/release/.git/objects/06/894ce33fd5e3f982d1c9bf4f4c798a833920b7\ncd+++++++++ src/github.com/osism/release/.git/objects/07/\n<f+++++++++ src/github.com/osism/release/.git/objects/07/2dd4444794a99be9745e4a1ca7f0ad6314d952\n<f+++++++++ src/github.com/osism/release/.git/objects/07/b70dff524ddaeab2b2a0ffb5d718072e045f22\n<f+++++++++ src/github.com/osism/release/.git/objects/07/f0c64a711cf98300f2c31cbb2acfd3f56dead5\ncd+++++++++ src/github.com/osism/release/.git/objects/08/\n<f+++++++++ src/github.com/osism/release/.git/objects/08/d2838e22d4e013081a4d9eb1bd65351d7abf3a\ncd+++++++++ src/github.com/osism/release/.git/objects/09/\n<f+++++++++ src/github.com/osism/release/.git/objects/09/cf6fa015df6f1cfcfa9e50c5b1de2bad0761a5\ncd+++++++++ src/github.com/osism/release/.git/objects/0a/\n<f+++++++++ src/github.com/osism/release/.git/objects/0a/c7bd91265c987ff3c6494a0856b88c5ccfc71a\n<f+++++++++ src/github.com/osism/release/.git/objects/0a/cbf8e5dd9998f0326717d3df156a469a7a10d5\n<f+++++++++ src/github.com/osism/release/.git/objects/0a/eb235405f86f589fa401a68d6b5826a1cdb95c\ncd+++++++++ src/github.com/osism/release/.git/objects/0b/\n<f+++++++++ src/github.com/osism/release/.git/objects/0b/cce242f9e55e9a58b202804f556064993bbe39\n<f+++++++++ src/github.com/osism/release/.git/objects/0b/eb3aa7a088d8fa5917f188e4196e59ab9d6ba0\ncd+++++++++ src/github.com/osism/release/.git/objects/0c/\n<f+++++++++ src/github.com/osism/release/.git/objects/0c/c90cccff489cd2c2ee7ab280629dfb53ad8dc5\n<f+++++++++ src/github.com/osism/release/.git/objects/0c/fa4698e1078f219a8cfb232e4c010bcf447c04\ncd+++++++++ src/github.com/osism/release/.git/objects/0d/\n<f+++++++++ src/github.com/osism/release/.git/objects/0d/957215cac1c009e9209ca6374a10b022a3ed9e\ncd+++++++++ src/github.com/osism/release/.git/objects/0e/\n<f+++++++++ src/github.com/osism/release/.git/objects/0e/8df22e9ae05297f2f53b60933baacffbdcc6b9\ncd+++++++++ src/github.com/osism/release/.git/objects/0f/\n<f+++++++++ src/github.com/osism/release/.git/objects/0f/4e8287054143280bc03af5d73c063931be1cfb\ncd+++++++++ src/github.com/osism/release/.git/objects/10/\n<f+++++++++ src/github.com/osism/release/.git/objects/10/0ac44188478e711f4a38bd38b4c04089e66438\n<f+++++++++ src/github.com/osism/release/.git/objects/10/0df9a1f8f95a140b03db4916542fbf244768d7\n<f+++++++++ src/github.com/osism/release/.git/objects/10/da05a7a65e1df4e80b1443a4e15cec1f4d0046\ncd+++++++++ src/github.com/osism/release/.git/objects/11/\n<f+++++++++ src/github.com/osism/release/.git/objects/11/fac77f5b0b7c6c592f09cb7926cd3775de4706\ncd+++++++++ src/github.com/osism/release/.git/objects/13/\n<f+++++++++ src/github.com/osism/release/.git/objects/13/280c967e559f1f2d3a9ea036231f2a62cedee1\n<f+++++++++ src/github.com/osism/release/.git/objects/13/693fe7409208ff71cb960a331a53807f0868bf\n<f+++++++++ src/github.com/osism/release/.git/objects/13/8f7f61a3b780b68d9ebaec498bd9756991ba4c\n<f+++++++++ src/github.com/osism/release/.git/objects/13/925e06873377d9e93d590d2dcc278c221a4412\ncd+++++++++ src/github.com/osism/release/.git/objects/14/\n<f+++++++++ src/github.com/osism/release/.git/objects/14/0af3e7d36eb0f158609e63a235a2b2377ae4e5\n<f+++++++++ src/github.com/osism/release/.git/objects/14/51f7972b9917f10090e317679b4c205243a38b\n<f+++++++++ src/github.com/osism/release/.git/objects/14/578c95e4310695afafeae61ce97cd13c95bca3\ncd+++++++++ src/github.com/osism/release/.git/objects/16/\n<f+++++++++ src/github.com/osism/release/.git/objects/16/b1850ea4237a9c6c5b48aa8ff8517e7189fd68\n<f+++++++++ src/github.com/osism/release/.git/objects/16/c95e32e083fa408cdaa8a09042215968e7ea27\ncd+++++++++ src/github.com/osism/release/.git/objects/17/\n<f+++++++++ src/github.com/osism/release/.git/objects/17/72f9c48e18be7e922b546543f7b935ecb6ad81\ncd+++++++++ src/github.com/osism/release/.git/objects/18/\n<f+++++++++ src/github.com/osism/release/.git/objects/18/1535ef998d9d420dbed941633c4f5ca251c8e8\n<f+++++++++ src/github.com/osism/release/.git/objects/18/c2868655c73d0e873dcc27ee404b81103d4ffa\n<f+++++++++ src/github.com/osism/release/.git/objects/18/dd981c2f0ed26029cb0ad5b9a47614f52bb54a\ncd+++++++++ src/github.com/osism/release/.git/objects/19/\n<f+++++++++ src/github.com/osism/release/.git/objects/19/a6e70418994467e59768ed281dfe34fec5f7b3\n<f+++++++++ src/github.com/osism/release/.git/objects/19/fd35baaae3963e334e83ae4bf396e803b4ae66\ncd+++++++++ src/github.com/osism/release/.git/objects/1a/\n<f+++++++++ src/github.com/osism/release/.git/objects/1a/58b85022816d523e30e08f818d458f946bf302\n<f+++++++++ src/github.com/osism/release/.git/objects/1a/b7231d27b2d8260edc98ee74c8dd51b7f850e9\n<f+++++++++ src/github.com/osism/release/.git/objects/1a/f83137f5b7520a6d8c482ff974a23516a2625d\ncd+++++++++ src/github.com/osism/release/.git/objects/1c/\n<f+++++++++ src/github.com/osism/release/.git/objects/1c/e7598962d2bb5e3b6ade0f13ca4f8ec433059c\ncd+++++++++ src/github.com/osism/release/.git/objects/1d/\n<f+++++++++ src/github.com/osism/release/.git/objects/1d/7569d5771b6b92f9b25b9e819b292f36b65cd5\n<f+++++++++ src/github.com/osism/release/.git/objects/1d/7f15e4adad2f5cd3e76a26f014248d785cf123\ncd+++++++++ src/github.com/osism/release/.git/objects/1e/\n<f+++++++++ src/github.com/osism/release/.git/objects/1e/c9d8cbe520ab7600d260882dae2f25c9e9966d\ncd+++++++++ src/github.com/osism/release/.git/objects/1f/\n<f+++++++++ src/github.com/osism/release/.git/objects/1f/2b39ec178250e5873c34f79a99779cf01d458a\n<f+++++++++ src/github.com/osism/release/.git/objects/1f/d53f28d010696abf0a7eb5e84ad09811bbe50e\ncd+++++++++ src/github.com/osism/release/.git/objects/21/\n<f+++++++++ src/github.com/osism/release/.git/objects/21/22786000e052e8fbcfe2b49c88bcc97038f31d\n<f+++++++++ src/github.com/osism/release/.git/objects/21/33e79b8ad99fc8b52c9a072a957853aae7c314\ncd+++++++++ src/github.com/osism/release/.git/objects/22/\n<f+++++++++ src/github.com/osism/release/.git/objects/22/986ad1a27ef8ce3b47e28b9bad1139e9f7722c\n<f+++++++++ src/github.com/osism/release/.git/objects/22/dce01ef755e726d3fa83bfeec9b86875a30f14\n<f+++++++++ src/github.com/osism/release/.git/objects/22/e00635e643a709792cd342123b08798466e4d9\n<f+++++++++ src/github.com/osism/release/.git/objects/22/f2b3c595adee3c54ebd821d2e3c952bd1f375c\ncd+++++++++ src/github.com/osism/release/.git/objects/24/\n<f+++++++++ src/github.com/osism/release/.git/objects/24/7261c8184384d650dd173bc996685e3ca56a75\n<f+++++++++ src/github.com/osism/release/.git/objects/24/91b888dbde5a851ee216d995f6fe1affcf085f\ncd+++++++++ src/github.com/osism/release/.git/objects/25/\n<f+++++++++ src/github.com/osism/release/.git/objects/25/60935e39dbe930c45bd26929692bb4a52d487a\n<f+++++++++ src/github.com/osism/release/.git/objects/25/9395f13638c2d08e04a9715e3c67d4c5c17e5c\n<f+++++++++ src/github.com/osism/release/.git/objects/25/d3e487e024428bb302036fc75e3ce8e247fa83\ncd+++++++++ src/github.com/osism/release/.git/objects/26/\n<f+++++++++ src/github.com/osism/release/.git/objects/26/08daa4b2e738d2c4941282a9fd5c420573b58d\n<f+++++++++ src/github.com/osism/release/.git/objects/26/4668e50b0223e8f952ddf90b32e4d78d1987d9\n<f+++++++++ src/github.com/osism/release/.git/objects/26/7503d323357f62856b853333b01afadb3d2861\ncd+++++++++ src/github.com/osism/release/.git/objects/28/\n<f+++++++++ src/github.com/osism/release/.git/objects/28/3b97248e278f9310d5fe80d5ac6369d76ac911\n<f+++++++++ src/github.com/osism/release/.git/objects/28/94b4078dc3bb097a84d585dbbcc6693419c2c1\ncd+++++++++ src/github.com/osism/release/.git/objects/2a/\n<f+++++++++ src/github.com/osism/release/.git/objects/2a/480a8932171bce42b37d38282fefc70be02e8c\ncd+++++++++ src/github.com/osism/release/.git/objects/2b/\n<f+++++++++ src/github.com/osism/release/.git/objects/2b/0b0042047c9d92042b1b4b550853daedeb97a7\n<f+++++++++ src/github.com/osism/release/.git/objects/2b/2a818c05327166a573c70e21455fbc2a2871cf\n<f+++++++++ src/github.com/osism/release/.git/objects/2b/3ce6b5148928872ac3d97bd486cce332046053\n<f+++++++++ src/github.com/osism/release/.git/objects/2b/b5a399365b4d3c4a4f5b94fd9011943fb6a5cb\n<f+++++++++ src/github.com/osism/release/.git/objects/2b/f55ae89c8868242a8abe1bc747617c1127cdcc\ncd+++++++++ src/github.com/osism/release/.git/objects/2c/\n<f+++++++++ src/github.com/osism/release/.git/objects/2c/6673bd03a8a13dcabf2e7cc36b610beb2746b4\n<f+++++++++ src/github.com/osism/release/.git/objects/2c/956b5a262a9d1ab2badb2c79337d4652061b86\ncd+++++++++ src/github.com/osism/release/.git/objects/2d/\n<f+++++++++ src/github.com/osism/release/.git/objects/2d/12147d6a5aa1ed28e8b907b04b5e465cc15b83\n<f+++++++++ src/github.com/osism/release/.git/objects/2d/1736aafd478895f3a4da5ddaf25347fab16b86\ncd+++++++++ src/github.com/osism/release/.git/objects/2e/\n<f+++++++++ src/github.com/osism/release/.git/objects/2e/30098baf6b7effbd36a7296c778ad938d4b5a7\n<f+++++++++ src/github.com/osism/release/.git/objects/2e/324f5556ae8bc5eb657d87ae2e51824487d943\n<f+++++++++ src/github.com/osism/release/.git/objects/2e/4614985115e65b94460447f19dd3647dc674d9\n<f+++++++++ src/github.com/osism/release/.git/objects/2e/63cb2c47b2a2a2df517e39ad67d3d0a03cdb33\n<f+++++++++ src/github.com/osism/release/.git/objects/2e/efdd071028432cf2731135e98fd6523fc1f654\ncd+++++++++ src/github.com/osism/release/.git/objects/2f/\n<f+++++++++ src/github.com/osism/release/.git/objects/2f/29be7c3340636122b6127087d0544f8e3ba461\n<f+++++++++ src/github.com/osism/release/.git/objects/2f/c2469f1c8787665504db68c7ff40b0f29a022e\n<f+++++++++ src/github.com/osism/release/.git/objects/2f/d0004adeb0686552ce206126a14c52e331e32b\n<f+++++++++ src/github.com/osism/release/.git/objects/2f/db5758ac70256bb4f975a63d4b016fe02e18c3\n<f+++++++++ src/github.com/osism/release/.git/objects/2f/e90841f2223900b9c0dd2b2a299a0b455d0fe4\ncd+++++++++ src/github.com/osism/release/.git/objects/30/\n<f+++++++++ src/github.com/osism/release/.git/objects/30/6b2ea6f65ce3ff97cc99642b7d50ddf2c3371c\n<f+++++++++ src/github.com/osism/release/.git/objects/30/9924c779d23c9726fd015792fd43f45212aeb5\n<f+++++++++ src/github.com/osism/release/.git/objects/30/e79abc2b828add3add8a16ef6c39de5ef84061\ncd+++++++++ src/github.com/osism/release/.git/objects/31/\n<f+++++++++ src/github.com/osism/release/.git/objects/31/d2b30847cdb5670626e74c3629916169e5f103\n<f+++++++++ src/github.com/osism/release/.git/objects/31/e99cd34fab3f7a3a61334d3c7ae1eaac0542d6\ncd+++++++++ src/github.com/osism/release/.git/objects/32/\n<f+++++++++ src/github.com/osism/release/.git/objects/32/ec2a65312b7423c8f079ce3d9dccc89558e9f4\ncd+++++++++ src/github.com/osism/release/.git/objects/33/\n<f+++++++++ src/github.com/osism/release/.git/objects/33/19f7c3c15988f3c618871cfc171fde748fc14f\ncd+++++++++ src/github.com/osism/release/.git/objects/35/\n<f+++++++++ src/github.com/osism/release/.git/objects/35/2b47a6c2cbd16a8c984e62e210951a3b206251\n<f+++++++++ src/github.com/osism/release/.git/objects/35/b6b7c3d626eb06e1c6898f7f395460aec17cc8\ncd+++++++++ src/github.com/osism/release/.git/objects/36/\n<f+++++++++ src/github.com/osism/release/.git/objects/36/0ac02781fdbc31708fed31495d8f096571f0a2\n<f+++++++++ src/github.com/osism/release/.git/objects/36/974d499d9db11b72b21aa09e738a2c58071a48\n<f+++++++++ src/github.com/osism/release/.git/objects/36/9c26618c9caab8c67db46657e426b0f5b94d38\ncd+++++++++ src/github.com/osism/release/.git/objects/37/\n<f+++++++++ src/github.com/osism/release/.git/objects/37/2700ac6c4b16e915fe74a75920e37d0901f27d\n<f+++++++++ src/github.com/osism/release/.git/objects/37/ad31d465d3295f3d9abaec508b816b82a6e90c\n<f+++++++++ src/github.com/osism/release/.git/objects/37/c5314183a62225788218d783607f39f5db80ef\n<f+++++++++ src/github.com/osism/release/.git/objects/37/f3f839edd801354257295a1382c081104f6dcb\ncd+++++++++ src/github.com/osism/release/.git/objects/39/\n<f+++++++++ src/github.com/osism/release/.git/objects/39/3111fe1c35483499cb6f46cca8045713e04ed3\ncd+++++++++ src/github.com/osism/release/.git/objects/3a/\n<f+++++++++ src/github.com/osism/release/.git/objects/3a/0c9a94bb32f9b2adec94c53ac4bb09c1be764c\n<f+++++++++ src/github.com/osism/release/.git/objects/3a/193254db3af104384979b1b4462607d18ae4b9\n<f+++++++++ src/github.com/osism/release/.git/objects/3a/5466204b68f638b668cea749a0c7f463ea9bbe\n<f+++++++++ src/github.com/osism/release/.git/objects/3a/abf861151ac27565bcd92465d83cc99382286a\ncd+++++++++ src/github.com/osism/release/.git/objects/3c/\n<f+++++++++ src/github.com/osism/release/.git/objects/3c/e82c6c0d4a0e18780745a97811341be9229646\ncd+++++++++ src/github.com/osism/release/.git/objects/3e/\n<f+++++++++ src/github.com/osism/release/.git/objects/3e/21c3d86bd9a9494cc41fdc538f38cc845f9bf1\ncd+++++++++ src/github.com/osism/release/.git/objects/3f/\n<f+++++++++ src/github.com/osism/release/.git/objects/3f/393689bf4ac9ca135e9e1b2a93eb40ccfcc898\n<f+++++++++ src/github.com/osism/release/.git/objects/3f/ee758408a90907a95aafdef06dde6c03a4a077\ncd+++++++++ src/github.com/osism/release/.git/objects/40/\n<f+++++++++ src/github.com/osism/release/.git/objects/40/2f5d617b94daadafbf39a9f80fadfb092985e8\n<f+++++++++ src/github.com/osism/release/.git/objects/40/faf59cc231258df3c573f7115fa9bfddba3400\ncd+++++++++ src/github.com/osism/release/.git/objects/41/\n<f+++++++++ src/github.com/osism/release/.git/objects/41/5cb285aeccffeaf3964f95dcf49167402c398e\n<f+++++++++ src/github.com/osism/release/.git/objects/41/bd800aa38b91bae07a6a54715732659d2345a8\ncd+++++++++ src/github.com/osism/release/.git/objects/42/\n<f+++++++++ src/github.com/osism/release/.git/objects/42/a2210ec8b7bb974a6afab81e36cdf43d9a3c23\n<f+++++++++ src/github.com/osism/release/.git/objects/42/bb44eebd47d8e43c2516e3397f60668e81d2b1\ncd+++++++++ src/github.com/osism/release/.git/objects/43/\n<f+++++++++ src/github.com/osism/release/.git/objects/43/64d41098b2fc332114762b4142fb839eccbe05\n<f+++++++++ src/github.com/osism/release/.git/objects/43/9123d713901ecedc09261a3c3b50497759ee41\n<f+++++++++ src/github.com/osism/release/.git/objects/43/959a468f775e08f3d177516be388c1b1fe02c2\ncd+++++++++ src/github.com/osism/release/.git/objects/44/\n<f+++++++++ src/github.com/osism/release/.git/objects/44/79c35c8433d881098218e81773adfd23451401\ncd+++++++++ src/github.com/osism/release/.git/objects/45/\n<f+++++++++ src/github.com/osism/release/.git/objects/45/26a2784a06bbc5b8cd6c72511b0f60c0a0475a\n<f+++++++++ src/github.com/osism/release/.git/objects/45/5183f9878cc12c4e4a8de235e612ebe38beb7b\ncd+++++++++ src/github.com/osism/release/.git/objects/47/\n<f+++++++++ src/github.com/osism/release/.git/objects/47/a0fece0bcc9ba6387280feb600cdec7616aad0\ncd+++++++++ src/github.com/osism/release/.git/objects/48/\n<f+++++++++ src/github.com/osism/release/.git/objects/48/484502f7bce47e3cc00d9446752e089cf63215\ncd+++++++++ src/github.com/osism/release/.git/objects/49/\n<f+++++++++ src/github.com/osism/release/.git/objects/49/66d4efaed91f19787a4d5ecb8eaf90bcfb9134\n<f+++++++++ src/github.com/osism/release/.git/objects/49/c95802b72bc20984a5ad8e11e86e958970f952\ncd+++++++++ src/github.com/osism/release/.git/objects/4a/\n<f+++++++++ src/github.com/osism/release/.git/objects/4a/7f7ccae0ded69e2555091d384a07b4b7af75b4\ncd+++++++++ src/github.com/osism/release/.git/objects/4b/\n<f+++++++++ src/github.com/osism/release/.git/objects/4b/025ebb7f3f269c0e3d371cdcffb94b09dfcc7d\n<f+++++++++ src/github.com/osism/release/.git/objects/4b/49c4e2dc06338d2d1d5769d8d1485c9dd5c8e1\n<f+++++++++ src/github.com/osism/release/.git/objects/4b/77666874515e9674f377bf89d71f2ba9a72f6c\n<f+++++++++ src/github.com/osism/release/.git/objects/4b/a16cd777edf5545fe53a0161f50904723f915e\n<f+++++++++ src/github.com/osism/release/.git/objects/4b/f3d16fee1b9c40fa35f08b216ba733773cc5f3\ncd+++++++++ src/github.com/osism/release/.git/objects/4c/\n<f+++++++++ src/github.com/osism/release/.git/objects/4c/ba34e9dc21c63bb59dd71f120871dc50e8ee7e\ncd+++++++++ src/github.com/osism/release/.git/objects/4d/\n<f+++++++++ src/github.com/osism/release/.git/objects/4d/76eedae5d164c5e21ca170abd48f191a0a396f\n<f+++++++++ src/github.com/osism/release/.git/objects/4d/772b8b823e141f57bf0839872dd6062d001cac\n<f+++++++++ src/github.com/osism/release/.git/objects/4d/919febc458adf32b9ba8ba9af441852b91b48e\ncd+++++++++ src/github.com/osism/release/.git/objects/4e/\n<f+++++++++ src/github.com/osism/release/.git/objects/4e/d415f73b40d94b45518a028f20a02b83837e22\ncd+++++++++ src/github.com/osism/release/.git/objects/4f/\n<f+++++++++ src/github.com/osism/release/.git/objects/4f/499bbaec12c1923a89a099276ffc18ce30724d\n<f+++++++++ src/github.com/osism/release/.git/objects/4f/6a4630e34f0805a32e423a84084b1112339dba\n<f+++++++++ src/github.com/osism/release/.git/objects/4f/7a05e485de71a57826b8c4a80b57838a6b9646\ncd+++++++++ src/github.com/osism/release/.git/objects/50/\n<f+++++++++ src/github.com/osism/release/.git/objects/50/a0acce155a3cb437cd8545dda3b2bff0ad1ed5\ncd+++++++++ src/github.com/osism/release/.git/objects/51/\n<f+++++++++ src/github.com/osism/release/.git/objects/51/2e315e43fe93b3b92eba75f280466682838340\n<f+++++++++ src/github.com/osism/release/.git/objects/51/3762d26ff4ddaaa14c46534f83d1acbec2a2ef\n<f+++++++++ src/github.com/osism/release/.git/objects/51/4b090e2294503bbc92a79ce7e7faa27e376218\n<f+++++++++ src/github.com/osism/release/.git/objects/51/896e187a0686bbcb20325c3a316d2dc0bb86bc\n<f+++++++++ src/github.com/osism/release/.git/objects/51/d1bea742105f2175ff2c154bebb5c5a334a29b\ncd+++++++++ src/github.com/osism/release/.git/objects/52/\n<f+++++++++ src/github.com/osism/release/.git/objects/52/56d7162c2cd78d826501b3559d33e25a6043a1\ncd+++++++++ src/github.com/osism/release/.git/objects/54/\n<f+++++++++ src/github.com/osism/release/.git/objects/54/34ad0fa9671f7d6a530bf839db5a7f2f400b58\n<f+++++++++ src/github.com/osism/release/.git/objects/54/523286e26cf771a3be0109837595208147549a\ncd+++++++++ src/github.com/osism/release/.git/objects/55/\n<f+++++++++ src/github.com/osism/release/.git/objects/55/70df35c334519ffe2a11b1a47ca338b1bbcabd\n<f+++++++++ src/github.com/osism/release/.git/objects/55/e18e5e1e454ad339c63c5e3a4196b353801698\ncd+++++++++ src/github.com/osism/release/.git/objects/56/\n<f+++++++++ src/github.com/osism/release/.git/objects/56/8f5801929e64eef641172459e7897be3fb4a12\ncd+++++++++ src/github.com/osism/release/.git/objects/57/\n<f+++++++++ src/github.com/osism/release/.git/objects/57/0b89b6abb37e95ffa5b29d877078228605a7e4\n<f+++++++++ src/github.com/osism/release/.git/objects/57/ccb7b87071dbc4f1a2e0558ba522d77fbd16a7\ncd+++++++++ src/github.com/osism/release/.git/objects/58/\n<f+++++++++ src/github.com/osism/release/.git/objects/58/0c8dba2d0f4690667b67ef7560644118922dbb\n<f+++++++++ src/github.com/osism/release/.git/objects/58/1822e7ed15a28f8dc131c650e5b013890e9296\n<f+++++++++ src/github.com/osism/release/.git/objects/58/db85bf31258e87fe6623f5da468b6c94ca595d\ncd+++++++++ src/github.com/osism/release/.git/objects/59/\n<f+++++++++ src/github.com/osism/release/.git/objects/59/07cb35af9cbf888ebbb8613feb25773ab5c682\ncd+++++++++ src/github.com/osism/release/.git/objects/5a/\n<f+++++++++ src/github.com/osism/release/.git/objects/5a/39b3b0085ff637a0458bd1ed191c463b9753a4\n<f+++++++++ src/github.com/osism/release/.git/objects/5a/6bd33c90036b5a078fc98e7272450feecf458d\n<f+++++++++ src/github.com/osism/release/.git/objects/5a/c809ef179796cd13379f63d7a7cb595a5faf4f\n<f+++++++++ src/github.com/osism/release/.git/objects/5a/d664441f46ebb0296e32943bffc7ce25ddff78\n<f+++++++++ src/github.com/osism/release/.git/objects/5a/f64603f5f0a3db2e4feac5437fbcda70bfc372\ncd+++++++++ src/github.com/osism/release/.git/objects/5c/\n<f+++++++++ src/github.com/osism/release/.git/objects/5c/ee552eb532ffe4dc847dc218380d1fa37e506b\ncd+++++++++ src/github.com/osism/release/.git/objects/5d/\n<f+++++++++ src/github.com/osism/release/.git/objects/5d/62f65c32fc6e74b89e90f2672b4b712f8707b8\n<f+++++++++ src/github.com/osism/release/.git/objects/5d/a7bb27a16ce365a73fbcb55e462c8902a4aeb7\ncd+++++++++ src/github.com/osism/release/.git/objects/5f/\n<f+++++++++ src/github.com/osism/release/.git/objects/5f/0a2d2432ddd9869e74fb710bd3d4a169002fe7\n<f+++++++++ src/github.com/osism/release/.git/objects/5f/1e834e84de2ed43b225fb7e31382b096d5e1bc\n<f+++++++++ src/github.com/osism/release/.git/objects/5f/228080beb2c3dfa70fa67d38f01103f62e08d0\ncd+++++++++ src/github.com/osism/release/.git/objects/60/\n<f+++++++++ src/github.com/osism/release/.git/objects/60/25f903d1e22aefe0ae218e0e9c65a107967a7a\ncd+++++++++ src/github.com/osism/release/.git/objects/61/\n<f+++++++++ src/github.com/osism/release/.git/objects/61/c02a8135d3a74d14f572b3311023cb386624bb\ncd+++++++++ src/github.com/osism/release/.git/objects/62/\n<f+++++++++ src/github.com/osism/release/.git/objects/62/1c17e9518e5b70f5bf8d6a1ec6b2911f251f85\n<f+++++++++ src/github.com/osism/release/.git/objects/62/63505d2412d39abe829ed5950ebafca79df56e\n<f+++++++++ src/github.com/osism/release/.git/objects/62/6feae85c430fa20cce53852ab37a64f63f6046\n<f+++++++++ src/github.com/osism/release/.git/objects/62/af58bbc63c741bf396614e207d7d257b552a85\n<f+++++++++ src/github.com/osism/release/.git/objects/62/c5f3c4f146e94b71f4be74903ebb575ee21633\n<f+++++++++ src/github.com/osism/release/.git/objects/62/feb65ebfc235cd7c943dd200e6d8107ad8548f\ncd+++++++++ src/github.com/osism/release/.git/objects/63/\n<f+++++++++ src/github.com/osism/release/.git/objects/63/2660baf7df988554a4095b6d301467e1be755e\n<f+++++++++ src/github.com/osism/release/.git/objects/63/a3e50a238aa29e640cd5f68fd3f1ee956ee81d\ncd+++++++++ src/github.com/osism/release/.git/objects/64/\n<f+++++++++ src/github.com/osism/release/.git/objects/64/471118969b8aa65cdfbd9963b85d21e23219af\n<f+++++++++ src/github.com/osism/release/.git/objects/64/6e4900451b7e27550038a50b76b3a36d7a99cf\ncd+++++++++ src/github.com/osism/release/.git/objects/65/\n<f+++++++++ src/github.com/osism/release/.git/objects/65/30f762bbc9f71b4d379659d9792644f1489a7f\n<f+++++++++ src/github.com/osism/release/.git/objects/65/400cd623dca7422f16a05794c0daa00bd9c53d\n<f+++++++++ src/github.com/osism/release/.git/objects/65/9a0ab20eb5ff638694e400b2ed83a154083aeb\ncd+++++++++ src/github.com/osism/release/.git/objects/67/\n<f+++++++++ src/github.com/osism/release/.git/objects/67/3c9c30f2fb5e4bdbe2b19bf0760c24e6d3a7aa\n<f+++++++++ src/github.com/osism/release/.git/objects/67/724574ad857a93d7324ddf295a86630c05f2f4\n<f+++++++++ src/github.com/osism/release/.git/objects/67/a596ec46a186fb462745e50458cd6bebb7942e\ncd+++++++++ src/github.com/osism/release/.git/objects/68/\n<f+++++++++ src/github.com/osism/release/.git/objects/68/283761e44caf523ade76055a0aae8252f6d06d\n<f+++++++++ src/github.com/osism/release/.git/objects/68/2b6da39754709341219d28b5f475d234dad7f3\n<f+++++++++ src/github.com/osism/release/.git/objects/68/2e33f3286760165f9161995719f0a4dc7edc99\n<f+++++++++ src/github.com/osism/release/.git/objects/68/5ff7d19f330271c0a7a754b04926800e6eeba3\n<f+++++++++ src/github.com/osism/release/.git/objects/68/899c4a11c4e4123c0ad7edd326fb0ec0419479\n<f+++++++++ src/github.com/osism/release/.git/objects/68/9da6809a901a71be587040d549ecc6ddbfdf33\ncd+++++++++ src/github.com/osism/release/.git/objects/69/\n<f+++++++++ src/github.com/osism/release/.git/objects/69/179ec85896f4a47f32c8ed2820fa28beeef3bb\n<f+++++++++ src/github.com/osism/release/.git/objects/69/8c7fb87f227f0956fb3337d735295a4b639d3b\ncd+++++++++ src/github.com/osism/release/.git/objects/6a/\n<f+++++++++ src/github.com/osism/release/.git/objects/6a/2d05fbefb1ab2e41362195a2066463c03088bc\n<f+++++++++ src/github.com/osism/release/.git/objects/6a/3644f9e5c4abe3b13a5e51f9041d3adc53ed18\n<f+++++++++ src/github.com/osism/release/.git/objects/6a/43bbce802706852700aa3d68dbebc6c9b24009\n<f+++++++++ src/github.com/osism/release/.git/objects/6a/905ee9548718f0ac0fe2da7d639bf35877780b\ncd+++++++++ src/github.com/osism/release/.git/objects/6b/\n<f+++++++++ src/github.com/osism/release/.git/objects/6b/6abce3fdfda59b42a46fa21d8ff52d732e1a4e\ncd+++++++++ src/github.com/osism/release/.git/objects/6d/\n<f+++++++++ src/github.com/osism/release/.git/objects/6d/2e2e1baef72d943da9a20e759d3bdfd6273344\n<f+++++++++ src/github.com/osism/release/.git/objects/6d/6942996eca37d2cd1e32d8d3ee3a50ae81cb6c\n<f+++++++++ src/github.com/osism/release/.git/objects/6d/72f63e6f1886fca5ce86d1486d8fc992dbcee8\n<f+++++++++ src/github.com/osism/release/.git/objects/6d/9825c5802df3e1c390069cf41cef67ad5ef432\n<f+++++++++ src/github.com/osism/release/.git/objects/6d/d2d0253d3a1ac283852fdd5f5b4eb57e33094c\ncd+++++++++ src/github.com/osism/release/.git/objects/6f/\n<f+++++++++ src/github.com/osism/release/.git/objects/6f/20ade6661ac4203b831a29dcd6223072597f24\n<f+++++++++ src/github.com/osism/release/.git/objects/6f/24a16226ec54c137ee80178b3c24f88e59b4c4\n<f+++++++++ src/github.com/osism/release/.git/objects/6f/ed079154862392fe8d7c3fbfdabc925966952a\ncd+++++++++ src/github.com/osism/release/.git/objects/71/\n<f+++++++++ src/github.com/osism/release/.git/objects/71/968e517d46e4d8b6aec8fcf64f70c265cad5b5\ncd+++++++++ src/github.com/osism/release/.git/objects/72/\n<f+++++++++ src/github.com/osism/release/.git/objects/72/ad379c4794c68c92f767572821ed5e68a9e510\n<f+++++++++ src/github.com/osism/release/.git/objects/72/dc4c51ad4f6aed61674043ae06af4d196862ed\ncd+++++++++ src/github.com/osism/release/.git/objects/73/\n<f+++++++++ src/github.com/osism/release/.git/objects/73/96b5fd99bb0e4f9c976977d8c898ee0d77da42\n<f+++++++++ src/github.com/osism/release/.git/objects/73/ec7773841c52082cf5ae4db91779ca611320bc\ncd+++++++++ src/github.com/osism/release/.git/objects/74/\n<f+++++++++ src/github.com/osism/release/.git/objects/74/3935a995e3f0002a95ff7d546a15bf32516d4c\ncd+++++++++ src/github.com/osism/release/.git/objects/75/\n<f+++++++++ src/github.com/osism/release/.git/objects/75/6f08e0afa7ab2383da00a664d2b82c994326e7\n<f+++++++++ src/github.com/osism/release/.git/objects/75/c6d60acc3c8af966cf273e239ea751c14d2cfd\ncd+++++++++ src/github.com/osism/release/.git/objects/77/\n<f+++++++++ src/github.com/osism/release/.git/objects/77/36f1f819dd6724e26b03fc67db9a6cd1fc9cef\ncd+++++++++ src/github.com/osism/release/.git/objects/78/\n<f+++++++++ src/github.com/osism/release/.git/objects/78/4d2037aa8cc85dcdd59b70389952b855fb8de9\n<f+++++++++ src/github.com/osism/release/.git/objects/78/f364d48713a064e7170e0506a76aa6c73fc62b\ncd+++++++++ src/github.com/osism/release/.git/objects/79/\n<f+++++++++ src/github.com/osism/release/.git/objects/79/03fba038892088579a481a24f738274d12a11b\n<f+++++++++ src/github.com/osism/release/.git/objects/79/6619c372ad49aab335af6858cc05965ccad477\n<f+++++++++ src/github.com/osism/release/.git/objects/79/a77b3edc41996846636e092ae2ce63103d9b9d\n<f+++++++++ src/github.com/osism/release/.git/objects/79/bf935fbbf62258a45f0c391f3d7edb574ff964\n<f+++++++++ src/github.com/osism/release/.git/objects/79/e3d9151e8c672e670b0c9fcb482b6615ba2ab3\n<f+++++++++ src/github.com/osism/release/.git/objects/79/f78241bb1f224a8fc08aa37c856fec5a817777\ncd+++++++++ src/github.com/osism/release/.git/objects/7b/\n<f+++++++++ src/github.com/osism/release/.git/objects/7b/a28935e1e134d85c4271c6ac9baac7bef16788\n<f+++++++++ src/github.com/osism/release/.git/objects/7b/c8b39501f9391486d8d91272114a2f14254d32\n<f+++++++++ src/github.com/osism/release/.git/objects/7b/cdc0c16708f6c4e966fcc6046a5d8595f97ab3\ncd+++++++++ src/github.com/osism/release/.git/objects/7c/\n<f+++++++++ src/github.com/osism/release/.git/objects/7c/019e12429fe827e76a9b4eba0eea36c4b5536f\n<f+++++++++ src/github.com/osism/release/.git/objects/7c/c6d358edaceb2121078ce4fa833f1f1e0d3965\ncd+++++++++ src/github.com/osism/release/.git/objects/7e/\n<f+++++++++ src/github.com/osism/release/.git/objects/7e/43d6fe6a22083c241fa70c7a9506ed32e3f9bb\ncd+++++++++ src/github.com/osism/release/.git/objects/7f/\n<f+++++++++ src/github.com/osism/release/.git/objects/7f/3e907bf7dcadce9156cf3234f1ad9f26c3f76b\n<f+++++++++ src/github.com/osism/release/.git/objects/7f/62b0cdcf43bbeefcf2f640253709f054d0bb8f\n<f+++++++++ src/github.com/osism/release/.git/objects/7f/ca4d9e9aa8ddc311b103ecd8c57162b6b3875c\n<f+++++++++ src/github.com/osism/release/.git/objects/7f/fc8374154f5029d9dbcf4150a699eb0c72d976\ncd+++++++++ src/github.com/osism/release/.git/objects/82/\n<f+++++++++ src/github.com/osism/release/.git/objects/82/ca709520152caa0ade7b0481eaa7d8654ca872\ncd+++++++++ src/github.com/osism/release/.git/objects/83/\n<f+++++++++ src/github.com/osism/release/.git/objects/83/1752abad3c8f78da86cd6ab88749f959d4de11\n<f+++++++++ src/github.com/osism/release/.git/objects/83/6335441d274c8adf7afed2d8df13cd6386a858\ncd+++++++++ src/github.com/osism/release/.git/objects/84/\n<f+++++++++ src/github.com/osism/release/.git/objects/84/076dee2ae46d30d9f3b0df75bcbdd5acfc8766\n<f+++++++++ src/github.com/osism/release/.git/objects/84/feb64a4c6b49b9acc944729d7439dcbf436db8\ncd+++++++++ src/github.com/osism/release/.git/objects/85/\n<f+++++++++ src/github.com/osism/release/.git/objects/85/003f69143b0047714038ba403272c888d0cac8\n<f+++++++++ src/github.com/osism/release/.git/objects/85/4ca51d8ae246b87e90f3a7f3566bdb99715092\n<f+++++++++ src/github.com/osism/release/.git/objects/85/bcf6552a81ebeb4e3dfcacfb29bfa573343f85\ncd+++++++++ src/github.com/osism/release/.git/objects/86/\n<f+++++++++ src/github.com/osism/release/.git/objects/86/4667419765918ec9aa0bc2c7afd749102ff569\n<f+++++++++ src/github.com/osism/release/.git/objects/86/54a21462c2b70b0e1feef31b84a31ad9f38eaa\ncd+++++++++ src/github.com/osism/release/.git/objects/87/\n<f+++++++++ src/github.com/osism/release/.git/objects/87/05bc438f45bb3371f8f6409824b89b74d72a02\n<f+++++++++ src/github.com/osism/release/.git/objects/87/08f41cef480f9ee15df38db91077d0363b7fa8\n<f+++++++++ src/github.com/osism/release/.git/objects/87/12dab854045f4b72d1ccf86b8752abbfa3101a\n<f+++++++++ src/github.com/osism/release/.git/objects/87/da9a7583cfdf99c59c4e563b8a374a19b111af\ncd+++++++++ src/github.com/osism/release/.git/objects/88/\n<f+++++++++ src/github.com/osism/release/.git/objects/88/1eed9ca542f9b5f2c1c4875cb9d92ff147874b\n<f+++++++++ src/github.com/osism/release/.git/objects/88/5f6be82d2cabb3e961c1a5b5f413c100cbcfba\n<f+++++++++ src/github.com/osism/release/.git/objects/88/ceed6799a861d168a42598fe5e0db7cb81bbbb\ncd+++++++++ src/github.com/osism/release/.git/objects/89/\n<f+++++++++ src/github.com/osism/release/.git/objects/89/21c51de2ba56ef640471d69962578ba350c318\ncd+++++++++ src/github.com/osism/release/.git/objects/8b/\n<f+++++++++ src/github.com/osism/release/.git/objects/8b/509978054d3cb6287e10b09a9c4e0f2252b5d0\n<f+++++++++ src/github.com/osism/release/.git/objects/8b/ba32f71f3cfa3e895a871eb8c4889de390cc22\ncd+++++++++ src/github.com/osism/release/.git/objects/8c/\n<f+++++++++ src/github.com/osism/release/.git/objects/8c/80e15d85a74895a10d79150a26a6b7501f5d06\n<f+++++++++ src/github.com/osism/release/.git/objects/8c/e8c2974e3fc5c61af18072eefec45727447f4c\n<f+++++++++ src/github.com/osism/release/.git/objects/8c/f0325d8469bc0e6e28c20da09497d27bae8fd9\ncd+++++++++ src/github.com/osism/release/.git/objects/8d/\n<f+++++++++ src/github.com/osism/release/.git/objects/8d/7e694936cbc36ace6ca032f7d60008bc47fc8e\n<f+++++++++ src/github.com/osism/release/.git/objects/8d/91b2893b63591b824d1f7f0346d280f2a80ae1\n<f+++++++++ src/github.com/osism/release/.git/objects/8d/c293bbd84fbc56e80406a5fd42542f15248db8\ncd+++++++++ src/github.com/osism/release/.git/objects/8e/\n<f+++++++++ src/github.com/osism/release/.git/objects/8e/cc2060ce3c9c4e4234df18da608d0619e0bcb9\ncd+++++++++ src/github.com/osism/release/.git/objects/8f/\n<f+++++++++ src/github.com/osism/release/.git/objects/8f/673e544481d7a6daf2b448e0eb0ea8655c5214\ncd+++++++++ src/github.com/osism/release/.git/objects/90/\n<f+++++++++ src/github.com/osism/release/.git/objects/90/43a82efaab5665f3d3e4d277b8964a7da686a1\n<f+++++++++ src/github.com/osism/release/.git/objects/90/4633f0aa8ba3c8f892c571c268dbed411ed3c5\n<f+++++++++ src/github.com/osism/release/.git/objects/90/6fde1abf1309008217933eca76a0ea1815186e\ncd+++++++++ src/github.com/osism/release/.git/objects/91/\n<f+++++++++ src/github.com/osism/release/.git/objects/91/a0e2fe6307275037a99f4197c873e4e313fec2\n<f+++++++++ src/github.com/osism/release/.git/objects/91/b283b54c8a77e6a2426ec7e2ce09c56a31eb2a\n<f+++++++++ src/github.com/osism/release/.git/objects/91/d72d8e731491196a4ee1e2178605e558a89a13\ncd+++++++++ src/github.com/osism/release/.git/objects/92/\n<f+++++++++ src/github.com/osism/release/.git/objects/92/af0636bd5fa0ac8692251d4c8e87d822830049\ncd+++++++++ src/github.com/osism/release/.git/objects/93/\n<f+++++++++ src/github.com/osism/release/.git/objects/93/4a2abeaf7b9bd6b4860cc1d89eb72bb2e52462\n<f+++++++++ src/github.com/osism/release/.git/objects/93/9681ca4fdf8e1de9d07131495f3c47d5db4c0d\n<f+++++++++ src/github.com/osism/release/.git/objects/93/e34ee940f02866f207efc3bdeded26ecf2c134\ncd+++++++++ src/github.com/osism/release/.git/objects/94/\n<f+++++++++ src/github.com/osism/release/.git/objects/94/64637860f4b1df08f01018830ee5be96da724d\ncd+++++++++ src/github.com/osism/release/.git/objects/95/\n<f+++++++++ src/github.com/osism/release/.git/objects/95/57eade188ab997db2c85f1765499453eff7f8c\n<f+++++++++ src/github.com/osism/release/.git/objects/95/ac5017bc07df5ce1a484fe698d9ed026bc510f\ncd+++++++++ src/github.com/osism/release/.git/objects/97/\n<f+++++++++ src/github.com/osism/release/.git/objects/97/137bafd7984916caf4abd3dca5c607904d71ed\ncd+++++++++ src/github.com/osism/release/.git/objects/98/\n<f+++++++++ src/github.com/osism/release/.git/objects/98/1f8cd23c6ac6b909d86f62168e55dd78b40078\ncd+++++++++ src/github.com/osism/release/.git/objects/99/\n<f+++++++++ src/github.com/osism/release/.git/objects/99/53285396c8c73085642fc18d52944974816971\n<f+++++++++ src/github.com/osism/release/.git/objects/99/845c5a90a78cd4b581b76f33dbdc8c45208f89\n<f+++++++++ src/github.com/osism/release/.git/objects/99/a28e1326d21f0049ac874f4ad7a140133b3db5\n<f+++++++++ src/github.com/osism/release/.git/objects/99/c5665b4343ec1e34d0695367c65fc69e131943\n<f+++++++++ src/github.com/osism/release/.git/objects/99/ca367859b96f4cbef0e1c7e18df245dc3c834d\n<f+++++++++ src/github.com/osism/release/.git/objects/99/f638ad8a915fb619d78fff10d0dd7594e7b84a\ncd+++++++++ src/github.com/osism/release/.git/objects/9b/\n<f+++++++++ src/github.com/osism/release/.git/objects/9b/76f9c86a852c8e8db1c37102809e152f77a0ce\ncd+++++++++ src/github.com/osism/release/.git/objects/9c/\n<f+++++++++ src/github.com/osism/release/.git/objects/9c/aa317d2b0d1b62e66b139e9cac863a903a8883\n<f+++++++++ src/github.com/osism/release/.git/objects/9c/b59ad62147c5952fe622c81f402b4ee3346cc0\ncd+++++++++ src/github.com/osism/release/.git/objects/9d/\n<f+++++++++ src/github.com/osism/release/.git/objects/9d/65c31e7ac1f07fc16b541e17638fe60cb51479\n<f+++++++++ src/github.com/osism/release/.git/objects/9d/d53d404badbb597d66eb65458babe8d154eb81\ncd+++++++++ src/github.com/osism/release/.git/objects/9e/\n<f+++++++++ src/github.com/osism/release/.git/objects/9e/459f986e9385408935cb748f40d55929bab07c\ncd+++++++++ src/github.com/osism/release/.git/objects/9f/\n<f+++++++++ src/github.com/osism/release/.git/objects/9f/aff79a57604aedfc79ec47927847859b0760e0\ncd+++++++++ src/github.com/osism/release/.git/objects/a0/\n<f+++++++++ src/github.com/osism/release/.git/objects/a0/356bc24e43f774145c0fff3f98f29917538536\ncd+++++++++ src/github.com/osism/release/.git/objects/a1/\n<f+++++++++ src/github.com/osism/release/.git/objects/a1/00f5de674798486943c013b8c5ff6525d10913\n<f+++++++++ src/github.com/osism/release/.git/objects/a1/0e22badb92003767b70caf09167ab61b689e3c\ncd+++++++++ src/github.com/osism/release/.git/objects/a2/\n<f+++++++++ src/github.com/osism/release/.git/objects/a2/fb22d3b3c9e2c72c64407e26ed2d611ae81b82\ncd+++++++++ src/github.com/osism/release/.git/objects/a3/\n<f+++++++++ src/github.com/osism/release/.git/objects/a3/1a24e95cc4617264cf82cec133953b880df9d1\n<f+++++++++ src/github.com/osism/release/.git/objects/a3/5dcb94e8c61cdb66e6cca1e4aa126075119600\n<f+++++++++ src/github.com/osism/release/.git/objects/a3/77dd1b06bf153f9647e4364a7e6d9e41d8b0b9\ncd+++++++++ src/github.com/osism/release/.git/objects/a4/\n<f+++++++++ src/github.com/osism/release/.git/objects/a4/4179d51591803d7548399a3a10e51ade69f023\n<f+++++++++ src/github.com/osism/release/.git/objects/a4/a3223205fd02ac979ba484b6999611fe858982\ncd+++++++++ src/github.com/osism/release/.git/objects/a5/\n<f+++++++++ src/github.com/osism/release/.git/objects/a5/85c47a281bd99f4b22defd2674ea4d4962aca5\n<f+++++++++ src/github.com/osism/release/.git/objects/a5/879ffba1b4cae5de12466752bf2ac5fe5d1824\ncd+++++++++ src/github.com/osism/release/.git/objects/a6/\n<f+++++++++ src/github.com/osism/release/.git/objects/a6/1114b6fa8ff0505b7efdb2e166fef99c815271\n<f+++++++++ src/github.com/osism/release/.git/objects/a6/6f189e2a1d318d3cce8abb5987a36fe46c3e05\ncd+++++++++ src/github.com/osism/release/.git/objects/a7/\n<f+++++++++ src/github.com/osism/release/.git/objects/a7/f7edba86f255ef90d824c3f48c2906e306bea5\ncd+++++++++ src/github.com/osism/release/.git/objects/a8/\n<f+++++++++ src/github.com/osism/release/.git/objects/a8/50b8fbe6ff3dce47e75ef28eb84e22533bf1d9\n<f+++++++++ src/github.com/osism/release/.git/objects/a8/9c5f4da1e8620d1631cfc6518ab1463216a3c9\n<f+++++++++ src/github.com/osism/release/.git/objects/a8/a3619b7964056315f330205b53c7436678b751\n<f+++++++++ src/github.com/osism/release/.git/objects/a8/d4936a8fc0ba88f91fb76ae8fe868b9d0d75f9\ncd+++++++++ src/github.com/osism/release/.git/objects/a9/\n<f+++++++++ src/github.com/osism/release/.git/objects/a9/0f70ab7ac40b15f67ab1ff254d94b249bf845e\n<f+++++++++ src/github.com/osism/release/.git/objects/a9/a46ddbdc9e442dc4e18c0f78813dd38c76995e\n<f+++++++++ src/github.com/osism/release/.git/objects/a9/cc416e5ece6162736c09d14b77c3ac3320bd0f\n<f+++++++++ src/github.com/osism/release/.git/objects/a9/d8c3e3fa97e503e44c8770beeacedf87892a24\ncd+++++++++ src/github.com/osism/release/.git/objects/aa/\n<f+++++++++ src/github.com/osism/release/.git/objects/aa/0e35e973f44bb663d622788ab57a8192b5c10e\n<f+++++++++ src/github.com/osism/release/.git/objects/aa/32cd5dd97371a92c051e0144ca3e384d84dc9e\n<f+++++++++ src/github.com/osism/release/.git/objects/aa/60a8fdeced464070a45e80136c1d626a7f1acb\n<f+++++++++ src/github.com/osism/release/.git/objects/aa/af4c1953b91eae7235eb147c5f42b463a330eb\ncd+++++++++ src/github.com/osism/release/.git/objects/ab/\n<f+++++++++ src/github.com/osism/release/.git/objects/ab/343b13854a975351e79bf19b1c386e94425384\n<f+++++++++ src/github.com/osism/release/.git/objects/ab/8961bc2b9f3db00eb64417fdd3f890bb95d370\n<f+++++++++ src/github.com/osism/release/.git/objects/ab/b5eaae9915abfc7e7742af77a9240ef36292f7\n<f+++++++++ src/github.com/osism/release/.git/objects/ab/ebcbda484d215bdc96ab99b768647685f19231\n<f+++++++++ src/github.com/osism/release/.git/objects/ab/f8c2df863988ec94f08269a5841b79bd462160\ncd+++++++++ src/github.com/osism/release/.git/objects/ac/\n<f+++++++++ src/github.com/osism/release/.git/objects/ac/6d4b37290fe19d3333c7e8637b896ee77fa8f4\ncd+++++++++ src/github.com/osism/release/.git/objects/ad/\n<f+++++++++ src/github.com/osism/release/.git/objects/ad/3fac60975e4db28c69693672c8402bdd3d9c33\n<f+++++++++ src/github.com/osism/release/.git/objects/ad/e81e1b39c29a1cf01d1c808649d0618d7475e9\ncd+++++++++ src/github.com/osism/release/.git/objects/ae/\n<f+++++++++ src/github.com/osism/release/.git/objects/ae/563047dbc2db08fe53f5f7dbbc2c7d9222d0cb\n<f+++++++++ src/github.com/osism/release/.git/objects/ae/6c19c500a24e8d9252033dc7b9e214ac468359\n<f+++++++++ src/github.com/osism/release/.git/objects/ae/f6eec6659a34bc0abab8e9e7f270e12ef739c3\ncd+++++++++ src/github.com/osism/release/.git/objects/af/\n<f+++++++++ src/github.com/osism/release/.git/objects/af/30744876d7d67d4662bb73dd848358b0fb994b\n<f+++++++++ src/github.com/osism/release/.git/objects/af/da23b24d9212fd75aa351f1e53967ca00f5a7b\ncd+++++++++ src/github.com/osism/release/.git/objects/b0/\n<f+++++++++ src/github.com/osism/release/.git/objects/b0/2a7fe5e7c9d36231a477fbd850918ab9e5a835\n<f+++++++++ src/github.com/osism/release/.git/objects/b0/9c02ad49b3d08dd2705588770114595ee20958\ncd+++++++++ src/github.com/osism/release/.git/objects/b1/\n<f+++++++++ src/github.com/osism/release/.git/objects/b1/d9ecd0d88c30f6d6c9eb11e3c26d6f843e6a57\n<f+++++++++ src/github.com/osism/release/.git/objects/b1/ecd3f1d8bf5691363309e050dd4e3aa3779e13\ncd+++++++++ src/github.com/osism/release/.git/objects/b2/\n<f+++++++++ src/github.com/osism/release/.git/objects/b2/4951bf0b0329d57223dcfe470cc7a097370d55\n<f+++++++++ src/github.com/osism/release/.git/objects/b2/5851f4dabf4e9d5caab7bf12dc82c414fd2476\n<f+++++++++ src/github.com/osism/release/.git/objects/b2/68b611b5ff5685b10392c047beedb1b07e2448\n<f+++++++++ src/github.com/osism/release/.git/objects/b2/d565eb3f2fdbd20be594c9705bd1962786ce92\ncd+++++++++ src/github.com/osism/release/.git/objects/b3/\n<f+++++++++ src/github.com/osism/release/.git/objects/b3/03acbe7479570abac3a92f3723e2cfab8bb1b0\n<f+++++++++ src/github.com/osism/release/.git/objects/b3/07888a1e9ade026f36f73222c6629771487fef\n<f+++++++++ src/github.com/osism/release/.git/objects/b3/56f9b947c5c24d5683a5e136bba97dd08782e2\n<f+++++++++ src/github.com/osism/release/.git/objects/b3/96ade8ecd08e843c1fcae12f6bff72401be06f\ncd+++++++++ src/github.com/osism/release/.git/objects/b4/\n<f+++++++++ src/github.com/osism/release/.git/objects/b4/26f165581dcd40a4ba9356accad4c69cac99ce\ncd+++++++++ src/github.com/osism/release/.git/objects/b5/\n<f+++++++++ src/github.com/osism/release/.git/objects/b5/1f5904aeac1423be546209d6c6251587bdd896\n<f+++++++++ src/github.com/osism/release/.git/objects/b5/2a46a4e901258613541678a78c82e0c7f22395\n<f+++++++++ src/github.com/osism/release/.git/objects/b5/35eb49879cd71bb036a923caa89253f7dcfbf5\ncd+++++++++ src/github.com/osism/release/.git/objects/b6/\n<f+++++++++ src/github.com/osism/release/.git/objects/b6/03aa626d9fc8d7e33476a2b70bda6c479c2d42\n<f+++++++++ src/github.com/osism/release/.git/objects/b6/06bb2acfdbe680ae36b808290fcbcbeb18a8dc\n<f+++++++++ src/github.com/osism/release/.git/objects/b6/1b505fb7d8a4a5886f93bfd5332a66baff3c24\n<f+++++++++ src/github.com/osism/release/.git/objects/b6/297f7600b90dd13aa61eac355da045d8cd4bb1\n<f+++++++++ src/github.com/osism/release/.git/objects/b6/7263d7efc03c2079b936baa2a6f4413c205622\ncd+++++++++ src/github.com/osism/release/.git/objects/b7/\n<f+++++++++ src/github.com/osism/release/.git/objects/b7/3160c415840b16afd3e453da92ae2125d81bfb\n<f+++++++++ src/github.com/osism/release/.git/objects/b7/3205c513f5476b6bb775d224a6874ab7c13721\n<f+++++++++ src/github.com/osism/release/.git/objects/b7/62eb43f74d18bbeccf0d394db5b992dd5a5882\n<f+++++++++ src/github.com/osism/release/.git/objects/b7/b978ac28ddc3889798ce5d389ffaac6e775413\n<f+++++++++ src/github.com/osism/release/.git/objects/b7/eb0dbe71ad6c5228cb0a3bf2f6f5c140fb922b\ncd+++++++++ src/github.com/osism/release/.git/objects/b8/\n<f+++++++++ src/github.com/osism/release/.git/objects/b8/4d814ca0b92447cfa89e9b601eab288371b866\n<f+++++++++ src/github.com/osism/release/.git/objects/b8/c1eb289e1840585c1f3eab1a6ee214ff8d7d2e\ncd+++++++++ src/github.com/osism/release/.git/objects/b9/\n<f+++++++++ src/github.com/osism/release/.git/objects/b9/50c320d30bb11b39cccc5188823707e9c1e7fc\n<f+++++++++ src/github.com/osism/release/.git/objects/b9/e01973ce049df1a1b12ad95da3ab5450722c70\ncd+++++++++ src/github.com/osism/release/.git/objects/ba/\n<f+++++++++ src/github.com/osism/release/.git/objects/ba/6529b4c6339ede95473da4a5194e0f4f167721\n<f+++++++++ src/github.com/osism/release/.git/objects/ba/8497dcba87a705acde25eebfe483e0503b4d1e\ncd+++++++++ src/github.com/osism/release/.git/objects/bb/\n<f+++++++++ src/github.com/osism/release/.git/objects/bb/519003c2ca34e4d7e928a6e404153896c4730c\n<f+++++++++ src/github.com/osism/release/.git/objects/bb/e8b2135477702e838333b0f885bec127a49996\ncd+++++++++ src/github.com/osism/release/.git/objects/bc/\n<f+++++++++ src/github.com/osism/release/.git/objects/bc/40336014713bbd6172787f38d7d2fabed12457\n<f+++++++++ src/github.com/osism/release/.git/objects/bc/6f00eedd215bb3188db308d6c928556e824574\ncd+++++++++ src/github.com/osism/release/.git/objects/bd/\n<f+++++++++ src/github.com/osism/release/.git/objects/bd/19cc37519e761e17d231597df5106066eb6300\n<f+++++++++ src/github.com/osism/release/.git/objects/bd/9dd2f0773c0eaafba2a5d7ba295482e15bca53\n<f+++++++++ src/github.com/osism/release/.git/objects/bd/bb1ffa624fde4acb1ef10e92950ab383f7eb06\ncd+++++++++ src/github.com/osism/release/.git/objects/be/\n<f+++++++++ src/github.com/osism/release/.git/objects/be/8f3092a4ca933826df48c1eccd8fe0ce0c072c\ncd+++++++++ src/github.com/osism/release/.git/objects/bf/\n<f+++++++++ src/github.com/osism/release/.git/objects/bf/4b4e0bf1fe3f775cd635b741521488f15f1a8f\ncd+++++++++ src/github.com/osism/release/.git/objects/c0/\n<f+++++++++ src/github.com/osism/release/.git/objects/c0/2cbfb5f15a421f047389d71917b74d6f40d693\ncd+++++++++ src/github.com/osism/release/.git/objects/c2/\n<f+++++++++ src/github.com/osism/release/.git/objects/c2/a3974750cefbee79211f8c2e9e7b976f2bc4fa\n<f+++++++++ src/github.com/osism/release/.git/objects/c2/a707bef3b2425376033d152c0663004e77367c\n<f+++++++++ src/github.com/osism/release/.git/objects/c2/e2dd9161bb4e9326954e9cca7ef16083191b28\ncd+++++++++ src/github.com/osism/release/.git/objects/c3/\n<f+++++++++ src/github.com/osism/release/.git/objects/c3/443676c6bd87614d2a7e99164755cfb93cb04b\ncd+++++++++ src/github.com/osism/release/.git/objects/c4/\n<f+++++++++ src/github.com/osism/release/.git/objects/c4/2cccf1eab8aec9d99227f4c20881f8cf5abfb9\n<f+++++++++ src/github.com/osism/release/.git/objects/c4/87f3057b26315b9d1491065dd9cc5f8310dd4a\n<f+++++++++ src/github.com/osism/release/.git/objects/c4/d025c02d323026d95e2ead0cd313cba0aecac3\n<f+++++++++ src/github.com/osism/release/.git/objects/c4/d534b1eb5e2ebeb670c40b37d47fa386972fff\ncd+++++++++ src/github.com/osism/release/.git/objects/c5/\n<f+++++++++ src/github.com/osism/release/.git/objects/c5/408ed054a4bb577f13e0183aa1335c91376589\n<f+++++++++ src/github.com/osism/release/.git/objects/c5/85121cdaf205565eb7802a55a953496974d910\ncd+++++++++ src/github.com/osism/release/.git/objects/c7/\n<f+++++++++ src/github.com/osism/release/.git/objects/c7/c8b574c5e25b8086ce91eda2ee247b9e3dfa28\ncd+++++++++ src/github.com/osism/release/.git/objects/c8/\n<f+++++++++ src/github.com/osism/release/.git/objects/c8/131278c11ff05eac1aeec450614e2c9517e194\n<f+++++++++ src/github.com/osism/release/.git/objects/c8/4058cc71f40e66c1fc51df06f6d34312acf89a\ncd+++++++++ src/github.com/osism/release/.git/objects/c9/\n<f+++++++++ src/github.com/osism/release/.git/objects/c9/6e94936c6554a8013ff33f83a1bc22a9607c76\n<f+++++++++ src/github.com/osism/release/.git/objects/c9/eee0cc2fe81334317927a7190737f9a31c95b9\ncd+++++++++ src/github.com/osism/release/.git/objects/ca/\n<f+++++++++ src/github.com/osism/release/.git/objects/ca/007b7c0224e0e30261750965cbd528bfde8f5d\n<f+++++++++ src/github.com/osism/release/.git/objects/ca/169c7d9ebd89b2b052d77a99cb6fc359e95feb\n<f+++++++++ src/github.com/osism/release/.git/objects/ca/9d2e79b008b1f8dc957d1db2c5a6330241699d\n<f+++++++++ src/github.com/osism/release/.git/objects/ca/a85a6e5699b8c0449326331960d413dcaa2688\n<f+++++++++ src/github.com/osism/release/.git/objects/ca/b7945fd538a085568197207653f1883f77b4bc\n<f+++++++++ src/github.com/osism/release/.git/objects/ca/bc74a5eabba4d6eb5aeabab30e22235d910c96\n<f+++++++++ src/github.com/osism/release/.git/objects/ca/e7d2abd159669d9c697a35186a9d0235f4ad7f\ncd+++++++++ src/github.com/osism/release/.git/objects/cb/\n<f+++++++++ src/github.com/osism/release/.git/objects/cb/3ce1a6b4f6f43192620b81d91e7a9f8f8fcaef\ncd+++++++++ src/github.com/osism/release/.git/objects/cc/\n<f+++++++++ src/github.com/osism/release/.git/objects/cc/1ea81207c197912f9b50230c703b60bf7c5d71\ncd+++++++++ src/github.com/osism/release/.git/objects/cd/\n<f+++++++++ src/github.com/osism/release/.git/objects/cd/519104ec9d682b764804a1bfa1fc7b8cbda2d3\n<f+++++++++ src/github.com/osism/release/.git/objects/cd/68aa6258b756a4cd8040086f9cad263626e7f8\n<f+++++++++ src/github.com/osism/release/.git/objects/cd/76ba750a76c1bc77b1bdac387b4a93ef40e349\n<f+++++++++ src/github.com/osism/release/.git/objects/cd/ac79f594f8a8518d5a29e3e9762728051fd5d4\ncd+++++++++ src/github.com/osism/release/.git/objects/cf/\n<f+++++++++ src/github.com/osism/release/.git/objects/cf/f8b436b5a57a3214877363766d7cb26ddc9693\ncd+++++++++ src/github.com/osism/release/.git/objects/d0/\n<f+++++++++ src/github.com/osism/release/.git/objects/d0/2d9f23bc57621cebd9a9b4fe348fb9e6758ba4\n<f+++++++++ src/github.com/osism/release/.git/objects/d0/a5b23f5118481c8ef02320b8a1efea02c635f4\n<f+++++++++ src/github.com/osism/release/.git/objects/d0/b0defe6827157832e4b82089ec931b60a05858\ncd+++++++++ src/github.com/osism/release/.git/objects/d3/\n<f+++++++++ src/github.com/osism/release/.git/objects/d3/870ff3f3852ad43561e24bc67501190e533c64\n<f+++++++++ src/github.com/osism/release/.git/objects/d3/9871e1ae558f9d19a35f6d573cc346ca79c7be\n<f+++++++++ src/github.com/osism/release/.git/objects/d3/ceae38eea14365bdcbe857ea7b292884e1f68c\ncd+++++++++ src/github.com/osism/release/.git/objects/d4/\n<f+++++++++ src/github.com/osism/release/.git/objects/d4/84a24a6b7ad478c63bbf50a55c3a546415bd4f\n<f+++++++++ src/github.com/osism/release/.git/objects/d4/a215acb4dc136d18d0ce8e8dcc7b8542bee9a9\ncd+++++++++ src/github.com/osism/release/.git/objects/d5/\n<f+++++++++ src/github.com/osism/release/.git/objects/d5/24c71c3a27b7dd7a14fa9c274bfd383b00f462\n<f+++++++++ src/github.com/osism/release/.git/objects/d5/2b0248a0793f7c75eb8ee73c0fa9faa6e9d3c4\n<f+++++++++ src/github.com/osism/release/.git/objects/d5/540bb6b55ce340871e54fa30ad5cefeacb62c8\n<f+++++++++ src/github.com/osism/release/.git/objects/d5/d2d61348855f22d0b5b253359e259e50886904\ncd+++++++++ src/github.com/osism/release/.git/objects/d6/\n<f+++++++++ src/github.com/osism/release/.git/objects/d6/545c34e99775bb408aea642d7c6c9b3458a726\n<f+++++++++ src/github.com/osism/release/.git/objects/d6/c63f5fb4879960430119aea3edcfa46971c99a\ncd+++++++++ src/github.com/osism/release/.git/objects/d7/\n<f+++++++++ src/github.com/osism/release/.git/objects/d7/1e363d527ad2358642dddbf7cd67c91ae382a0\ncd+++++++++ src/github.com/osism/release/.git/objects/d8/\n<f+++++++++ src/github.com/osism/release/.git/objects/d8/08d6673aa7f53abaefef21b29528bdb0e6d780\n<f+++++++++ src/github.com/osism/release/.git/objects/d8/f4d03279dcaf65eae444ac0dbcc73b504896d8\ncd+++++++++ src/github.com/osism/release/.git/objects/d9/\n<f+++++++++ src/github.com/osism/release/.git/objects/d9/0f7d4992041465f381604b4e307a5ae89d8342\n<f+++++++++ src/github.com/osism/release/.git/objects/d9/c45b16918a43bba785619f8017b1129d08ef99\ncd+++++++++ src/github.com/osism/release/.git/objects/da/\n<f+++++++++ src/github.com/osism/release/.git/objects/da/4a8d5b9f79211921944961da5c56ee78efe6e2\n<f+++++++++ src/github.com/osism/release/.git/objects/da/9101025b6b14806026a542873fc158b9447829\ncd+++++++++ src/github.com/osism/release/.git/objects/db/\n<f+++++++++ src/github.com/osism/release/.git/objects/db/41891f1298a8a595b0474f138de6ae8d354c24\n<f+++++++++ src/github.com/osism/release/.git/objects/db/9caee6d9ffa26d4abac71ced69f75245843cca\ncd+++++++++ src/github.com/osism/release/.git/objects/dc/\n<f+++++++++ src/github.com/osism/release/.git/objects/dc/8aaacb92a0889be6514b0fb71c05ca82a06f1c\n<f+++++++++ src/github.com/osism/release/.git/objects/dc/b1cb10be90718b4fd6c06baf81d027f9ee6381\ncd+++++++++ src/github.com/osism/release/.git/objects/dd/\n<f+++++++++ src/github.com/osism/release/.git/objects/dd/090d8abedda0e32813ffc1b27ccea4ea9927fc\n<f+++++++++ src/github.com/osism/release/.git/objects/dd/63753122f7fa182ff8c7129cf9f74b0be295cc\n<f+++++++++ src/github.com/osism/release/.git/objects/dd/64b12758189e8bb9198c6b7e0ce025392696b9\n<f+++++++++ src/github.com/osism/release/.git/objects/dd/71c00c4e0019570bd0df7ef244ff0c4aca14fd\ncd+++++++++ src/github.com/osism/release/.git/objects/df/\n<f+++++++++ src/github.com/osism/release/.git/objects/df/5b423a5943fc9632d3a6d4562aae0e4abfba3c\n<f+++++++++ src/github.com/osism/release/.git/objects/df/d932a4fabf27836eaafa62401b4c913ef1a521\ncd+++++++++ src/github.com/osism/release/.git/objects/e1/\n<f+++++++++ src/github.com/osism/release/.git/objects/e1/7b37a524445afd099ed4ea837918a203c82ae2\n<f+++++++++ src/github.com/osism/release/.git/objects/e1/b80e2184e727ac8842c22bee09a77fccf8a555\ncd+++++++++ src/github.com/osism/release/.git/objects/e2/\n<f+++++++++ src/github.com/osism/release/.git/objects/e2/395781f1d8d1272fd73caf6ea77ea9372a7f34\n<f+++++++++ src/github.com/osism/release/.git/objects/e2/89112d168d0d84aa5a88a3f451d23556d2dcd8\ncd+++++++++ src/github.com/osism/release/.git/objects/e4/\n<f+++++++++ src/github.com/osism/release/.git/objects/e4/ff4c2a0854f3ec027c83064f73f2a1c67b0a81\ncd+++++++++ src/github.com/osism/release/.git/objects/e5/\n<f+++++++++ src/github.com/osism/release/.git/objects/e5/600ee8c4868d0863a80b9304e6e3c9804cf477\n<f+++++++++ src/github.com/osism/release/.git/objects/e5/7defbe59dc2b007cd299fa897d624ec3400645\n<f+++++++++ src/github.com/osism/release/.git/objects/e5/829513d56028dd948df7195ab5ac3cc982d5f6\ncd+++++++++ src/github.com/osism/release/.git/objects/e6/\n<f+++++++++ src/github.com/osism/release/.git/objects/e6/5fe6d6f22fae9e92d091eea09bdcd07d6009b2\ncd+++++++++ src/github.com/osism/release/.git/objects/e7/\n<f+++++++++ src/github.com/osism/release/.git/objects/e7/4c20aa017112606c72a37f4097ada347c47ffe\n<f+++++++++ src/github.com/osism/release/.git/objects/e7/a152638ccb6a484c5688cb2f0c8780eff97172\ncd+++++++++ src/github.com/osism/release/.git/objects/e8/\n<f+++++++++ src/github.com/osism/release/.git/objects/e8/0e00d796cd349d7fe25f803f5d789b12b8a73d\n<f+++++++++ src/github.com/osism/release/.git/objects/e8/81810877949505105014604b3349affc5341b3\ncd+++++++++ src/github.com/osism/release/.git/objects/e9/\n<f+++++++++ src/github.com/osism/release/.git/objects/e9/006756e55368250dca3d888b97eda4af4cd9d9\n<f+++++++++ src/github.com/osism/release/.git/objects/e9/eaa1cf75633c5900d212f84d49cad3bd7975ad\ncd+++++++++ src/github.com/osism/release/.git/objects/ea/\n<f+++++++++ src/github.com/osism/release/.git/objects/ea/199de4e56e36ad1d754840e4fbdc157b483d27\n<f+++++++++ src/github.com/osism/release/.git/objects/ea/90e7431a9ff55b7cd9e0cf382d8978c3f433f9\ncd+++++++++ src/github.com/osism/release/.git/objects/eb/\n<f+++++++++ src/github.com/osism/release/.git/objects/eb/5ee63311185d250ec8326246f6d53f419dea47\n<f+++++++++ src/github.com/osism/release/.git/objects/eb/a254154788471dc92af569f8fd7eba79143b50\ncd+++++++++ src/github.com/osism/release/.git/objects/ec/\n<f+++++++++ src/github.com/osism/release/.git/objects/ec/1a14c8cf5cb94261c0818bc80fc64eb235a216\n<f+++++++++ src/github.com/osism/release/.git/objects/ec/9f8ddf46511b7a012c18e530fdf17863bac68a\n<f+++++++++ src/github.com/osism/release/.git/objects/ec/ecc687da13f46a8ee2d577b3657c106efc896f\ncd+++++++++ src/github.com/osism/release/.git/objects/ed/\n<f+++++++++ src/github.com/osism/release/.git/objects/ed/1a166edccf442e538da302819f51a679f2c4b1\n<f+++++++++ src/github.com/osism/release/.git/objects/ed/c54872d5e5da3b17c3c5a6f379ef7357125a95\ncd+++++++++ src/github.com/osism/release/.git/objects/ee/\n<f+++++++++ src/github.com/osism/release/.git/objects/ee/9025cc383efaa614af76000839c29f67a474e0\n<f+++++++++ src/github.com/osism/release/.git/objects/ee/e1e76efe57bcde95971e4fbbbaa188e93b67be\ncd+++++++++ src/github.com/osism/release/.git/objects/ef/\n<f+++++++++ src/github.com/osism/release/.git/objects/ef/00b9943ec495e9b9afbb83b5db7691445bbc24\n<f+++++++++ src/github.com/osism/release/.git/objects/ef/ab5b956faf85d84ba5ef2c4e6957a944823580\ncd+++++++++ src/github.com/osism/release/.git/objects/f0/\n<f+++++++++ src/github.com/osism/release/.git/objects/f0/20032bf03ada661a2690893694d951b74795ac\ncd+++++++++ src/github.com/osism/release/.git/objects/f1/\n<f+++++++++ src/github.com/osism/release/.git/objects/f1/0225167df0cecca95fe8f5828d8e98c046017d\n<f+++++++++ src/github.com/osism/release/.git/objects/f1/df8890d07f27a93102a9d0198e138b337f1f5e\n<f+++++++++ src/github.com/osism/release/.git/objects/f1/e31e7730aa5b7735add4fa55d1c4cb2d5e4855\ncd+++++++++ src/github.com/osism/release/.git/objects/f2/\n<f+++++++++ src/github.com/osism/release/.git/objects/f2/35e484caf5d3a4b3893f547609f6cd7459b88d\ncd+++++++++ src/github.com/osism/release/.git/objects/f3/\n<f+++++++++ src/github.com/osism/release/.git/objects/f3/af1bd8b6a0b41ffbd910a596e72d1aa8c43229\n<f+++++++++ src/github.com/osism/release/.git/objects/f3/fc49422331818491f6a67e35a21f75c53552d2\ncd+++++++++ src/github.com/osism/release/.git/objects/f6/\n<f+++++++++ src/github.com/osism/release/.git/objects/f6/33814f02a7e71eda9f23ec5a2ea373c9a252cf\n<f+++++++++ src/github.com/osism/release/.git/objects/f6/cc482934f5f749e5fe16148a9a23c6f5f7b248\ncd+++++++++ src/github.com/osism/release/.git/objects/f7/\n<f+++++++++ src/github.com/osism/release/.git/objects/f7/2001ddd582a74bc1395bb345bd880638b50f5c\ncd+++++++++ src/github.com/osism/release/.git/objects/f8/\n<f+++++++++ src/github.com/osism/release/.git/objects/f8/3b6fcafb95d3302989f2296472083f74aadabd\n<f+++++++++ src/github.com/osism/release/.git/objects/f8/5f3563f8befff9892bc63103e9bafb29f1097c\n<f+++++++++ src/github.com/osism/release/.git/objects/f8/64bffc2623c034b14e6a30bdcdf2ad4987d122\n<f+++++++++ src/github.com/osism/release/.git/objects/f8/cf1fbd9b12fcd66819e4ea2db7e30080d3c14b\ncd+++++++++ src/github.com/osism/release/.git/objects/f9/\n<f+++++++++ src/github.com/osism/release/.git/objects/f9/b6ea6fd0f0180d9edc76ed068a2b42c7eb1b4c\ncd+++++++++ src/github.com/osism/release/.git/objects/fa/\n<f+++++++++ src/github.com/osism/release/.git/objects/fa/1062c47ce62237541a1ce9ea7a85e1caaa9ad6\n<f+++++++++ src/github.com/osism/release/.git/objects/fa/9f2c0912d34ecd657508d504dfa2748ce69a39\n<f+++++++++ src/github.com/osism/release/.git/objects/fa/c6f9606f01d81f1a339705a87862a1e3209916\ncd+++++++++ src/github.com/osism/release/.git/objects/fb/\n<f+++++++++ src/github.com/osism/release/.git/objects/fb/d4e9fd18157a57843ed2cfc46e8a88cf57dae1\n<f+++++++++ src/github.com/osism/release/.git/objects/fb/de884693e04b446d5456c60dde33109b2c31fa\ncd+++++++++ src/github.com/osism/release/.git/objects/fc/\n<f+++++++++ src/github.com/osism/release/.git/objects/fc/d9c4e6090008d292e0e2c054e7c447cc9cd07a\ncd+++++++++ src/github.com/osism/release/.git/objects/fe/\n<f+++++++++ src/github.com/osism/release/.git/objects/fe/70fb93ed8ecf059f29dab8cd2fc80b4eb51e90\n<f+++++++++ src/github.com/osism/release/.git/objects/fe/80967020f88713202864bff82cb4c6a759b4fb\ncd+++++++++ src/github.com/osism/release/.git/objects/info/\n<f+++++++++ src/github.com/osism/release/.git/objects/info/commit-graph\n<f+++++++++ src/github.com/osism/release/.git/objects/info/packs\ncd+++++++++ src/github.com/osism/release/.git/objects/pack/\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-130d1e552e57b7ae54fae5f7555b1d837f87812e.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-130d1e552e57b7ae54fae5f7555b1d837f87812e.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-1e9f52a2ad739b13d0ecb046d64da9add41d93e6.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-1e9f52a2ad739b13d0ecb046d64da9add41d93e6.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-2bf810a2a8516110bc54eb2fdc2471977924ec9a.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-2bf810a2a8516110bc54eb2fdc2471977924ec9a.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-356fe8c4bfecdf0202a316331f823700972b9626.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-356fe8c4bfecdf0202a316331f823700972b9626.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-3b923046fff831cd54a81ba23aafc86f1af14feb.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-3b923046fff831cd54a81ba23aafc86f1af14feb.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-40bb0cda8af460160c45ec0f2f9f7f1d3b902f8e.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-40bb0cda8af460160c45ec0f2f9f7f1d3b902f8e.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-47c046e90652abe405e3871b704cd4877a4df076.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-47c046e90652abe405e3871b704cd4877a4df076.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-4c7fdaa2a6ca9f9ba35fa2dc1cd4c6f801fd62a2.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-4c7fdaa2a6ca9f9ba35fa2dc1cd4c6f801fd62a2.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-4d83873a842a7c3b8975e5970788254e990deb6a.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-4d83873a842a7c3b8975e5970788254e990deb6a.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-553e2657db8dda9df930b41b1dfb812ef0cb1885.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-553e2657db8dda9df930b41b1dfb812ef0cb1885.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-5af86b8821e09c208de1fd993b177d2d8295bf50.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-5af86b8821e09c208de1fd993b177d2d8295bf50.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-5c912ed0929f2133b540f20a79b61d69a4179d53.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-5c912ed0929f2133b540f20a79b61d69a4179d53.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-68d1ee1a41cc00fd77f03cb7f4f8487ff55b2e8f.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-68d1ee1a41cc00fd77f03cb7f4f8487ff55b2e8f.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-8d71237dff082e08c1d45a4f25197f32988eb819.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-8d71237dff082e08c1d45a4f25197f32988eb819.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-9fec2cf063f197c1bff7306cd4d4f27ca8293f7e.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-9fec2cf063f197c1bff7306cd4d4f27ca8293f7e.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-a94642828d9fc3933f6b8d3e677b0a265013fd7f.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-a94642828d9fc3933f6b8d3e677b0a265013fd7f.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-b2c099119050a8b5f7c0530f54e58bea4bf9e64b.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-b2c099119050a8b5f7c0530f54e58bea4bf9e64b.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-d8c49277c4d8ffa7e810e3810603a61d971c11c1.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-d8c49277c4d8ffa7e810e3810603a61d971c11c1.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-e62eebe78bd586c98c484bb32d5e9e216c08607f.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-e62eebe78bd586c98c484bb32d5e9e216c08607f.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-e798c7d6e7dd8eea2e5b6c8c395a5dcafc44bcc6.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-e798c7d6e7dd8eea2e5b6c8c395a5dcafc44bcc6.pack\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-eddc5710712c3a96490bedcfe2b35ed912072da7.idx\n<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-eddc5710712c3a96490bedcfe2b35ed912072da7.pack\ncd+++++++++ src/github.com/osism/release/.git/refs/\ncd+++++++++ src/github.com/osism/release/.git/refs/heads/\n<f+++++++++ src/github.com/osism/release/.git/refs/heads/main\ncd+++++++++ src/github.com/osism/release/.git/refs/remotes/\ncd+++++++++ src/github.com/osism/release/.git/refs/remotes/origin/\n<f+++++++++ src/github.com/osism/release/.git/refs/remotes/origin/main\ncd+++++++++ src/github.com/osism/release/.git/refs/zuul/\n<f+++++++++ src/github.com/osism/release/.git/refs/zuul/b28b7af69320201d1cf206ebf28373980add1451\n<f+++++++++ src/github.com/osism/release/.git/refs/zuul/fetch\ncd+++++++++ src/github.com/osism/release/.github/\n<f+++++++++ src/github.com/osism/release/.github/renovate.json\ncd+++++++++ src/github.com/osism/release/.github/workflows/\n<f+++++++++ src/github.com/osism/release/.github/workflows/add-to-project.yml\ncd+++++++++ src/github.com/osism/release/1.0.0/\n<f+++++++++ src/github.com/osism/release/1.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/1.0.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/1.0.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/1.0.0/openstack-wallaby.yml\ncL+++++++++ src/github.com/osism/release/1.0.0/openstack.yml -> openstack-wallaby.yml\ncd+++++++++ src/github.com/osism/release/10.0.0/\n<f+++++++++ src/github.com/osism/release/10.0.0/base.yml\ncd+++++++++ src/github.com/osism/release/10.1.0/\n<f+++++++++ src/github.com/osism/release/10.1.0/base.yml\ncd+++++++++ src/github.com/osism/release/10.2.0/\n<f+++++++++ src/github.com/osism/release/10.2.0/base.yml\ncd+++++++++ src/github.com/osism/release/2.0.0/\n<f+++++++++ src/github.com/osism/release/2.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/2.0.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/2.0.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/2.0.0/openstack-wallaby.yml\ncL+++++++++ src/github.com/osism/release/2.0.0/openstack.yml -> openstack-wallaby.yml\ncd+++++++++ src/github.com/osism/release/3.0.0/\n<f+++++++++ src/github.com/osism/release/3.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/3.0.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/3.0.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/3.0.0/openstack-xena.yml\ncL+++++++++ src/github.com/osism/release/3.0.0/openstack.yml -> openstack-xena.yml\ncd+++++++++ src/github.com/osism/release/3.1.0/\n<f+++++++++ src/github.com/osism/release/3.1.0/base.yml\n<f+++++++++ src/github.com/osism/release/3.1.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/3.1.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/3.1.0/openstack-xena.yml\ncL+++++++++ src/github.com/osism/release/3.1.0/openstack.yml -> openstack-xena.yml\ncd+++++++++ src/github.com/osism/release/3.2.0/\n<f+++++++++ src/github.com/osism/release/3.2.0/base.yml\n<f+++++++++ src/github.com/osism/release/3.2.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/3.2.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/3.2.0/openstack-xena.yml\ncL+++++++++ src/github.com/osism/release/3.2.0/openstack.yml -> openstack-xena.yml\ncd+++++++++ src/github.com/osism/release/4.0.0/\n<f+++++++++ src/github.com/osism/release/4.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/4.0.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/4.0.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/4.0.0/openstack-yoga.yml\ncL+++++++++ src/github.com/osism/release/4.0.0/openstack.yml -> openstack-yoga.yml\ncd+++++++++ src/github.com/osism/release/4.1.0/\n<f+++++++++ src/github.com/osism/release/4.1.0/base.yml\n<f+++++++++ src/github.com/osism/release/4.1.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/4.1.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/4.1.0/openstack-yoga.yml\ncL+++++++++ src/github.com/osism/release/4.1.0/openstack.yml -> openstack-yoga.yml\ncd+++++++++ src/github.com/osism/release/4.2.0/\n<f+++++++++ src/github.com/osism/release/4.2.0/base.yml\n<f+++++++++ src/github.com/osism/release/4.2.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/4.2.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/4.2.0/openstack-yoga.yml\ncL+++++++++ src/github.com/osism/release/4.2.0/openstack.yml -> openstack-yoga.yml\ncd+++++++++ src/github.com/osism/release/4.3.0/\n<f+++++++++ src/github.com/osism/release/4.3.0/base.yml\n<f+++++++++ src/github.com/osism/release/4.3.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/4.3.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/4.3.0/openstack-yoga.yml\ncL+++++++++ src/github.com/osism/release/4.3.0/openstack.yml -> openstack-yoga.yml\ncd+++++++++ src/github.com/osism/release/5.0.0/\n<f+++++++++ src/github.com/osism/release/5.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/5.0.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/5.0.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/5.0.0/openstack-zed.yml\ncL+++++++++ src/github.com/osism/release/5.0.0/openstack.yml -> openstack-zed.yml\ncd+++++++++ src/github.com/osism/release/5.1.0/\n<f+++++++++ src/github.com/osism/release/5.1.0/base.yml\n<f+++++++++ src/github.com/osism/release/5.1.0/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/5.1.0/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/5.1.0/openstack-zed.yml\ncL+++++++++ src/github.com/osism/release/5.1.0/openstack.yml -> openstack-zed.yml\ncd+++++++++ src/github.com/osism/release/5.2.0/\n<f+++++++++ src/github.com/osism/release/5.2.0/base.yml\n<f+++++++++ src/github.com/osism/release/5.2.0/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/5.2.0/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/5.2.0/openstack-zed.yml\ncL+++++++++ src/github.com/osism/release/5.2.0/openstack.yml -> openstack-zed.yml\ncd+++++++++ src/github.com/osism/release/5.3.0/\n<f+++++++++ src/github.com/osism/release/5.3.0/base.yml\n<f+++++++++ src/github.com/osism/release/5.3.0/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/5.3.0/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/5.3.0/openstack-zed.yml\ncL+++++++++ src/github.com/osism/release/5.3.0/openstack.yml -> openstack-zed.yml\ncd+++++++++ src/github.com/osism/release/6.0.0/\n<f+++++++++ src/github.com/osism/release/6.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/6.0.0/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/6.0.0/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/6.0.0/openstack-2023.1.yml\ncL+++++++++ src/github.com/osism/release/6.0.0/openstack.yml -> openstack-2023.1.yml\ncd+++++++++ src/github.com/osism/release/6.0.1/\n<f+++++++++ src/github.com/osism/release/6.0.1/base.yml\n<f+++++++++ src/github.com/osism/release/6.0.1/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/6.0.1/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/6.0.1/openstack-2023.1.yml\ncL+++++++++ src/github.com/osism/release/6.0.1/openstack.yml -> openstack-2023.1.yml\ncd+++++++++ src/github.com/osism/release/6.0.2/\n<f+++++++++ src/github.com/osism/release/6.0.2/base.yml\n<f+++++++++ src/github.com/osism/release/6.0.2/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/6.0.2/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/6.0.2/openstack-2023.1.yml\ncL+++++++++ src/github.com/osism/release/6.0.2/openstack.yml -> openstack-2023.1.yml\ncd+++++++++ src/github.com/osism/release/7.0.0/\n<f+++++++++ src/github.com/osism/release/7.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/7.0.0/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.0.0/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.0.0/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.0.0/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.0.1/\n<f+++++++++ src/github.com/osism/release/7.0.1/base.yml\n<f+++++++++ src/github.com/osism/release/7.0.1/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.0.1/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.0.1/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.0.1/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.0.2/\n<f+++++++++ src/github.com/osism/release/7.0.2/base.yml\n<f+++++++++ src/github.com/osism/release/7.0.2/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.0.2/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.0.2/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.0.2/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.0.3/\n<f+++++++++ src/github.com/osism/release/7.0.3/base.yml\n<f+++++++++ src/github.com/osism/release/7.0.3/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.0.3/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.0.3/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.0.3/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.0.4/\n<f+++++++++ src/github.com/osism/release/7.0.4/base.yml\n<f+++++++++ src/github.com/osism/release/7.0.4/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.0.4/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.0.4/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.0.4/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.0.5/\n<f+++++++++ src/github.com/osism/release/7.0.5/base.yml\n<f+++++++++ src/github.com/osism/release/7.0.5/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.0.5/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.0.5/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.0.5/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.1.0/\n<f+++++++++ src/github.com/osism/release/7.1.0/base.yml\n<f+++++++++ src/github.com/osism/release/7.1.0/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.1.0/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.1.0/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.1.0/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.1.1/\n<f+++++++++ src/github.com/osism/release/7.1.1/base.yml\n<f+++++++++ src/github.com/osism/release/7.1.1/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.1.1/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.1.1/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.1.1/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.1.2/\n<f+++++++++ src/github.com/osism/release/7.1.2/base.yml\n<f+++++++++ src/github.com/osism/release/7.1.2/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.1.2/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.1.2/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.1.2/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/7.1.3/\n<f+++++++++ src/github.com/osism/release/7.1.3/base.yml\n<f+++++++++ src/github.com/osism/release/7.1.3/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/7.1.3/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/7.1.3/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/7.1.3/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/8.0.0/\n<f+++++++++ src/github.com/osism/release/8.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/8.0.0/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/8.0.0/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/8.0.0/openstack-2024.1.yml\ncL+++++++++ src/github.com/osism/release/8.0.0/openstack.yml -> openstack-2024.1.yml\ncd+++++++++ src/github.com/osism/release/8.0.1/\n<f+++++++++ src/github.com/osism/release/8.0.1/base.yml\n<f+++++++++ src/github.com/osism/release/8.0.1/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/8.0.1/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/8.0.1/openstack-2024.1.yml\ncL+++++++++ src/github.com/osism/release/8.0.1/openstack.yml -> openstack-2024.1.yml\ncd+++++++++ src/github.com/osism/release/8.0.2/\n<f+++++++++ src/github.com/osism/release/8.0.2/base.yml\n<f+++++++++ src/github.com/osism/release/8.0.2/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/8.0.2/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/8.0.2/openstack-2024.1.yml\ncL+++++++++ src/github.com/osism/release/8.0.2/openstack.yml -> openstack-2024.1.yml\ncd+++++++++ src/github.com/osism/release/8.1.0/\n<f+++++++++ src/github.com/osism/release/8.1.0/base.yml\n<f+++++++++ src/github.com/osism/release/8.1.0/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/8.1.0/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/8.1.0/openstack-2024.1.yml\ncL+++++++++ src/github.com/osism/release/8.1.0/openstack.yml -> openstack-2024.1.yml\n<f+++++++++ src/github.com/osism/release/8.1.0/sbom-openstack-2024.1.yml\ncL+++++++++ src/github.com/osism/release/8.1.0/sbom-openstack.yml -> sbom-openstack-2024.1.yml\ncd+++++++++ src/github.com/osism/release/9.0.0/\n<f+++++++++ src/github.com/osism/release/9.0.0/base.yml\n<f+++++++++ src/github.com/osism/release/9.0.0/ceph-reef.yml\ncL+++++++++ src/github.com/osism/release/9.0.0/ceph.yml -> ceph-reef.yml\n<f+++++++++ src/github.com/osism/release/9.0.0/openstack-2024.2.yml\ncL+++++++++ src/github.com/osism/release/9.0.0/openstack.yml -> openstack-2024.2.yml\n<f+++++++++ src/github.com/osism/release/9.0.0/sbom-openstack-2024.2.yml\ncL+++++++++ src/github.com/osism/release/9.0.0/sbom-openstack.yml -> sbom-openstack-2024.2.yml\ncd+++++++++ src/github.com/osism/release/9.1.0/\n<f+++++++++ src/github.com/osism/release/9.1.0/base.yml\ncd+++++++++ src/github.com/osism/release/9.2.0/\n<f+++++++++ src/github.com/osism/release/9.2.0/base.yml\ncd+++++++++ src/github.com/osism/release/9.3.0/\n<f+++++++++ src/github.com/osism/release/9.3.0/base.yml\ncd+++++++++ src/github.com/osism/release/9.3.1/\n<f+++++++++ src/github.com/osism/release/9.3.1/base.yml\ncd+++++++++ src/github.com/osism/release/9.4.0/\n<f+++++++++ src/github.com/osism/release/9.4.0/base.yml\ncd+++++++++ src/github.com/osism/release/9.5.0/\n<f+++++++++ src/github.com/osism/release/9.5.0/base.yml\ncd+++++++++ src/github.com/osism/release/archive/\n<f+++++++++ src/github.com/osism/release/archive/ok-20171004-0.yml\n<f+++++++++ src/github.com/osism/release/archive/ok-20171013-0.yml\n<f+++++++++ src/github.com/osism/release/archive/ol-20171013-0.yml\ncd+++++++++ src/github.com/osism/release/archive/10.0.0-rc.1/\n<f+++++++++ src/github.com/osism/release/archive/10.0.0-rc.1/base.yml\ncd+++++++++ src/github.com/osism/release/archive/10.0.0-rc.2/\n<f+++++++++ src/github.com/osism/release/archive/10.0.0-rc.2/base.yml\ncd+++++++++ src/github.com/osism/release/archive/20171120-0/\n<f+++++++++ src/github.com/osism/release/archive/20171120-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20171120-0/ceph-kraken.yml\n<f+++++++++ src/github.com/osism/release/archive/20171120-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20171120-0/openstack-ocata.yml\ncd+++++++++ src/github.com/osism/release/archive/20180103-0/\n<f+++++++++ src/github.com/osism/release/archive/20180103-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20180103-0/ceph-kraken.yml\n<f+++++++++ src/github.com/osism/release/archive/20180103-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20180103-0/openstack-ocata.yml\ncd+++++++++ src/github.com/osism/release/archive/20180212-0/\n<f+++++++++ src/github.com/osism/release/archive/20180212-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20180212-0/ceph-kraken.yml\n<f+++++++++ src/github.com/osism/release/archive/20180212-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20180212-0/openstack-ocata.yml\ncd+++++++++ src/github.com/osism/release/archive/20180213-0/\n<f+++++++++ src/github.com/osism/release/archive/20180213-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20180213-0/ceph-kraken.yml\n<f+++++++++ src/github.com/osism/release/archive/20180213-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20180213-0/openstack-ocata.yml\n<f+++++++++ src/github.com/osism/release/archive/20180213-0/openstack-pike.yml\ncd+++++++++ src/github.com/osism/release/archive/20180306-0/\n<f+++++++++ src/github.com/osism/release/archive/20180306-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20180306-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20180306-0/openstack-ocata.yml\n<f+++++++++ src/github.com/osism/release/archive/20180306-0/openstack-pike.yml\ncd+++++++++ src/github.com/osism/release/archive/20180806-0/\n<f+++++++++ src/github.com/osism/release/archive/20180806-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20180806-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20180806-0/openstack-ocata.yml\n<f+++++++++ src/github.com/osism/release/archive/20180806-0/openstack-pike.yml\ncd+++++++++ src/github.com/osism/release/archive/20180807-0/\n<f+++++++++ src/github.com/osism/release/archive/20180807-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20180807-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20180807-0/openstack-ocata.yml\n<f+++++++++ src/github.com/osism/release/archive/20180807-0/openstack-pike.yml\ncd+++++++++ src/github.com/osism/release/archive/20181001-0/\n<f+++++++++ src/github.com/osism/release/archive/20181001-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20181001-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20181001-0/openstack-pike.yml\n<f+++++++++ src/github.com/osism/release/archive/20181001-0/openstack-queens.yml\ncd+++++++++ src/github.com/osism/release/archive/20181015-0/\n<f+++++++++ src/github.com/osism/release/archive/20181015-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20181015-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20181015-0/openstack-pike.yml\n<f+++++++++ src/github.com/osism/release/archive/20181015-0/openstack-queens.yml\ncd+++++++++ src/github.com/osism/release/archive/20181101-0/\n<f+++++++++ src/github.com/osism/release/archive/20181101-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20181101-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20181101-0/openstack-pike.yml\n<f+++++++++ src/github.com/osism/release/archive/20181101-0/openstack-queens.yml\ncd+++++++++ src/github.com/osism/release/archive/20181201-0/\n<f+++++++++ src/github.com/osism/release/archive/20181201-0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/20181201-0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/20181201-0/openstack-pike.yml\n<f+++++++++ src/github.com/osism/release/archive/20181201-0/openstack-queens.yml\ncd+++++++++ src/github.com/osism/release/archive/2019.1.0/\n<f+++++++++ src/github.com/osism/release/archive/2019.1.0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.1.0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.1.0/openstack-queens.yml\ncd+++++++++ src/github.com/osism/release/archive/2019.2.0/\n<f+++++++++ src/github.com/osism/release/archive/2019.2.0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.2.0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.2.0/openstack-queens.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.2.0/openstack-rocky.yml\ncd+++++++++ src/github.com/osism/release/archive/2019.3.0/\n<f+++++++++ src/github.com/osism/release/archive/2019.3.0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.3.0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.3.0/openstack-queens.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.3.0/openstack-rocky.yml\ncd+++++++++ src/github.com/osism/release/archive/2019.4.0/\n<f+++++++++ src/github.com/osism/release/archive/2019.4.0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.4.0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.4.0/openstack-queens.yml\n<f+++++++++ src/github.com/osism/release/archive/2019.4.0/openstack-rocky.yml\ncd+++++++++ src/github.com/osism/release/archive/2020.1.0/\n<f+++++++++ src/github.com/osism/release/archive/2020.1.0/base.yml\n<f+++++++++ src/github.com/osism/release/archive/2020.1.0/ceph-luminous.yml\n<f+++++++++ src/github.com/osism/release/archive/2020.1.0/ceph-nautilus.yml\n<f+++++++++ src/github.com/osism/release/archive/2020.1.0/openstack-rocky.yml\n<f+++++++++ src/github.com/osism/release/archive/2020.1.0/openstack-train.yml\ncd+++++++++ src/github.com/osism/release/archive/4.0.0a/\n<f+++++++++ src/github.com/osism/release/archive/4.0.0a/base.yml\n<f+++++++++ src/github.com/osism/release/archive/4.0.0a/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/archive/4.0.0a/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/archive/4.0.0a/openstack-yoga.yml\ncL+++++++++ src/github.com/osism/release/archive/4.0.0a/openstack.yml -> openstack-yoga.yml\ncd+++++++++ src/github.com/osism/release/archive/4.0.0b/\n<f+++++++++ src/github.com/osism/release/archive/4.0.0b/base.yml\n<f+++++++++ src/github.com/osism/release/archive/4.0.0b/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/archive/4.0.0b/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/archive/4.0.0b/openstack-yoga.yml\ncL+++++++++ src/github.com/osism/release/archive/4.0.0b/openstack.yml -> openstack-yoga.yml\ncd+++++++++ src/github.com/osism/release/archive/5.0.0a/\n<f+++++++++ src/github.com/osism/release/archive/5.0.0a/base.yml\n<f+++++++++ src/github.com/osism/release/archive/5.0.0a/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/archive/5.0.0a/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/archive/5.0.0a/openstack-zed.yml\ncL+++++++++ src/github.com/osism/release/archive/5.0.0a/openstack.yml -> openstack-zed.yml\ncd+++++++++ src/github.com/osism/release/archive/5.0.0b/\n<f+++++++++ src/github.com/osism/release/archive/5.0.0b/base.yml\n<f+++++++++ src/github.com/osism/release/archive/5.0.0b/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/archive/5.0.0b/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/archive/5.0.0b/openstack-zed.yml\ncL+++++++++ src/github.com/osism/release/archive/5.0.0b/openstack.yml -> openstack-zed.yml\ncd+++++++++ src/github.com/osism/release/archive/5.0.0c/\n<f+++++++++ src/github.com/osism/release/archive/5.0.0c/base.yml\n<f+++++++++ src/github.com/osism/release/archive/5.0.0c/ceph-pacific.yml\ncL+++++++++ src/github.com/osism/release/archive/5.0.0c/ceph.yml -> ceph-pacific.yml\n<f+++++++++ src/github.com/osism/release/archive/5.0.0c/openstack-zed.yml\ncL+++++++++ src/github.com/osism/release/archive/5.0.0c/openstack.yml -> openstack-zed.yml\ncd+++++++++ src/github.com/osism/release/archive/6.0.0a/\n<f+++++++++ src/github.com/osism/release/archive/6.0.0a/base.yml\n<f+++++++++ src/github.com/osism/release/archive/6.0.0a/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/archive/6.0.0a/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/archive/6.0.0a/openstack-2023.1.yml\ncL+++++++++ src/github.com/osism/release/archive/6.0.0a/openstack.yml -> openstack-2023.1.yml\ncd+++++++++ src/github.com/osism/release/archive/6.0.0b/\n<f+++++++++ src/github.com/osism/release/archive/6.0.0b/base.yml\n<f+++++++++ src/github.com/osism/release/archive/6.0.0b/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/archive/6.0.0b/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/archive/6.0.0b/openstack-2023.1.yml\ncL+++++++++ src/github.com/osism/release/archive/6.0.0b/openstack.yml -> openstack-2023.1.yml\ncd+++++++++ src/github.com/osism/release/archive/7.0.0a/\n<f+++++++++ src/github.com/osism/release/archive/7.0.0a/base.yml\n<f+++++++++ src/github.com/osism/release/archive/7.0.0a/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/archive/7.0.0a/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/archive/7.0.0a/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/archive/7.0.0a/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/archive/7.0.0b/\n<f+++++++++ src/github.com/osism/release/archive/7.0.0b/base.yml\n<f+++++++++ src/github.com/osism/release/archive/7.0.0b/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/archive/7.0.0b/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/archive/7.0.0b/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/archive/7.0.0b/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/archive/7.0.0c/\n<f+++++++++ src/github.com/osism/release/archive/7.0.0c/base.yml\n<f+++++++++ src/github.com/osism/release/archive/7.0.0c/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/archive/7.0.0c/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/archive/7.0.0c/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/archive/7.0.0c/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/archive/7.0.0d/\n<f+++++++++ src/github.com/osism/release/archive/7.0.0d/base.yml\n<f+++++++++ src/github.com/osism/release/archive/7.0.0d/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/archive/7.0.0d/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/archive/7.0.0d/openstack-2023.2.yml\ncL+++++++++ src/github.com/osism/release/archive/7.0.0d/openstack.yml -> openstack-2023.2.yml\ncd+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/\n<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/base.yml\n<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/openstack-2024.1.yml\ncL+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/openstack.yml -> openstack-2024.1.yml\ncd+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/\n<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/base.yml\n<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/ceph-quincy.yml\ncL+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/ceph.yml -> ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/openstack-2024.1.yml\ncL+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/openstack.yml -> openstack-2024.1.yml\ncd+++++++++ src/github.com/osism/release/docs/\n<f+++++++++ src/github.com/osism/release/docs/check-drift-catalog.md\n<f+++++++++ src/github.com/osism/release/docs/check-drift-image.md\n<f+++++++++ src/github.com/osism/release/docs/check-drift-kolla.md\n<f+++++++++ src/github.com/osism/release/docs/sync-mirror-tutorial.md\n<f+++++++++ src/github.com/osism/release/docs/sync-mirror.md\ncd+++++++++ src/github.com/osism/release/etc/\n<f+++++++++ src/github.com/osism/release/etc/changelog-repositories.yml\n<f+++++++++ src/github.com/osism/release/etc/collections.yml\n<f+++++++++ src/github.com/osism/release/etc/images.yml\n<f+++++++++ src/github.com/osism/release/etc/other.yml\n<f+++++++++ src/github.com/osism/release/etc/roles-manager.yml\n<f+++++++++ src/github.com/osism/release/etc/roles.yml\ncd+++++++++ src/github.com/osism/release/latest/\n<f+++++++++ src/github.com/osism/release/latest/base.yml\n<f+++++++++ src/github.com/osism/release/latest/ceph-quincy.yml\n<f+++++++++ src/github.com/osism/release/latest/ceph-reef.yml\n<f+++++++++ src/github.com/osism/release/latest/ceph-squid.yml\ncL+++++++++ src/github.com/osism/release/latest/ceph.yml -> ceph-reef.yml\n<f+++++++++ src/github.com/osism/release/latest/openstack-2024.1.yml\n<f+++++++++ src/github.com/osism/release/latest/openstack-2024.2.yml\n<f+++++++++ src/github.com/osism/release/latest/openstack-2025.1.yml\n<f+++++++++ src/github.com/osism/release/latest/openstack-2025.2.yml\n<f+++++++++ src/github.com/osism/release/latest/openstack-2026.1.yml\ncL+++++++++ src/github.com/osism/release/latest/openstack.yml -> openstack-2025.1.yml\ncd+++++++++ src/github.com/osism/release/next/\n<f+++++++++ src/github.com/osism/release/next/kolla-ansible-v0.20250920.0.yml\n<f+++++++++ src/github.com/osism/release/next/kolla-ansible-v0.20260129.0.yml\n<f+++++++++ src/github.com/osism/release/next/kolla-v0.20250725.0.yml\ncd+++++++++ src/github.com/osism/release/scripts/\n<f+++++++++ src/github.com/osism/release/scripts/create-tags.sh\n<f+++++++++ src/github.com/osism/release/scripts/generate-changelog-input.sh\n<f+++++++++ src/github.com/osism/release/scripts/generate-release-changelog.sh\ncd+++++++++ src/github.com/osism/release/src/\n<f+++++++++ src/github.com/osism/release/src/check-drift.py\n<f+++++++++ src/github.com/osism/release/src/create-version.py\n<f+++++++++ src/github.com/osism/release/src/drift-allowlist.yml\n<f+++++++++ src/github.com/osism/release/src/drift-config.yml\n<f+++++++++ src/github.com/osism/release/src/git-diff-log.py\n<f+++++++++ src/github.com/osism/release/src/release-notes.py\n<f+++++++++ src/github.com/osism/release/src/remove-images-from-quay.py\n<f+++++++++ src/github.com/osism/release/src/sync-mirror.py\ncd+++++++++ src/github.com/osism/release/src/osism_drift/\n<f+++++++++ src/github.com/osism/release/src/osism_drift/__init__.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/archive.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/catalog.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/config.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/demo.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/driver.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/enablement.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/http.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/inventory_sections.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/kolla_docker.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/manager.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/manager_template.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/model.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/override_template.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/playbooks.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/release.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/report.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/role_defaults.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/role_scan.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/sbom_map.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/secrets_map.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/source.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/versions_template.py\ncd+++++++++ src/github.com/osism/release/src/osism_drift/drift/\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/__init__.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/catalog_role_missing.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/image_orphan.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_enablement_build.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_enablement_orphan.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_groupvars_missing.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_image_orphan.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_inventory.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_mirror_verbatim.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_orphan_config.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_retired_patch_orphan.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_secrets_orphan.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_source_ref_phase.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_version_chain_inner.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_version_chain_upstream.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_version_gate_orphan.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/plugin.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/release_vs_manager.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/role_registry_orphan.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/role_shadows.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/role_unpinned.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/rolling_pin.py\ncd+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/__init__.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/attribute.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/classify.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/commit.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/detail.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/effective.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/gate.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/layers.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/model.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/render.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/worktree.py\n<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/write.py\ncd+++++++++ src/github.com/osism/release/tests/\n<f+++++++++ src/github.com/osism/release/tests/test_driver_groups.py\n<f+++++++++ src/github.com/osism/release/tests/test_release_notes_defaults.py\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/__init__.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_catalog_extract.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_catalog_role_missing.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_integration_real_repos.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_playbooks_constants.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_playbooks_kolla.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_playbooks_resolution.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_playbooks_runtimes.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_plugin_registry.py\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/ceph-configure-lvm-volumes.yml\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/squid/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/squid/ceph-pools.yml\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/squid/ceph-purge-cluster.yml\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/squid/ceph-purge-storage-node.yml\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/src/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/src/render-playbooks.py\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/kolla-facts.yml\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/A/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/A/kolla-common.yml\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/B/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/B/kolla-common.yml\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/scripts/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/scripts/split-kolla-ansible-site.py\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/src/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/src/render-playbooks.py\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/playbooks/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/playbooks/.gitkeep\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/src/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/src/generate-playbook-symlinks.py\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/src/render-playbooks.py\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/kolla-ansible/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/kolla-ansible/.gitkeep\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/files/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/files/src/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/files/src/render-playbooks.py\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/playbooks/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/playbooks/kubernetes-k3s.yml\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/playbooks/kubernetes-kubeconfig.yml\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/\ncd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/latest/\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/latest/base.yml\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/latest/ceph-squid.yml\n<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/latest/ceph.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/__init__.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/conftest.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_demo.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_driver.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_image_orphan.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_manager_parser.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_manager_template_parser.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_override_template_parser.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_plugin_registry.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_release_parser.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_release_vs_manager.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_report.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_role_defaults_parser.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_role_registry_orphan.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_role_shadows.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_role_unpinned.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_rolling_pin.py\n<f+++++++++ src/github.com/osism/release/tests/image_drift/test_source_list_tree.py\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/adminer/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/adminer/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/adminer/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ceph_ansible/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ceph_ansible/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ceph_ansible/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ciinternal/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ciinternal/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ciinternal/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/templates/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/templates/daemon.json.j2\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/floatdemo/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/floatdemo/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/floatdemo/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/manager/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/manager/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/manager/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/netbox/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/netbox/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/netbox/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/files/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/files/entrypoint.sh\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/streamdemo/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/streamdemo/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/streamdemo/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/widget/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/widget/defaults/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/widget/defaults/main.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-playbooks-manager/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-playbooks-manager/playbooks/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-playbooks-manager/playbooks/pull.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/files/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/files/src/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/files/src/templates/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/files/src/templates/images.yml.j2\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/generics/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/generics/environments/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/generics/environments/manager/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/generics/environments/manager/images.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/release/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/release/latest/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/release/latest/base.yml\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/testbed/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/testbed/environments/\ncd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/testbed/environments/manager/\n<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/testbed/environments/manager/images.yml\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/__init__.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/conftest.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_archive.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_config.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_dir_helpers.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_driver.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_driver_stale.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_enablement.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_enablement_source_refs.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_enablement_values.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_enablement_version_gates.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_http_head.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_inventory_sections.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_docker.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_enablement_build.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_enablement_orphan.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_groupvars_missing.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_image_orphan.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_inventory.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_mirror_verbatim.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_orphan_config.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_retired_patch_orphan.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_secrets_orphan.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_source_ref_phase.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_version_chain_inner.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_version_chain_upstream.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_version_gate_orphan.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_model.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_plugin_registry.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_report.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_sbom_map.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_secrets_map.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_source.py\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_versions_template.py\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/environments/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/environments/kolla/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/environments/kolla/secrets.yml.A\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/environments/kolla/secrets.yml.B\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/files/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/files/src/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/files/src/templates/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/files/src/templates/versions.yml.j2\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-images-kolla/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-images-kolla/src/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-images-kolla/src/tag-images-with-the-version.py\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/defaults/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/defaults/all/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/defaults/all/050-images.yml\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/defaults/all/099-kolla.yml\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/generics/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/generics/inventory/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/generics/inventory/50-kolla\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/generics/inventory/51-kolla\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla-ansible/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla-ansible/ansible/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla-ansible/ansible/inventory/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla-ansible/ansible/inventory/multinode\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/macros.j2\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/foo/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/foo/.gitkeep\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/ignored-svc/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/ignored-svc/.gitkeep\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/newsvc/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/newsvc/.gitkeep\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/off/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/off/.gitkeep\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/present_a/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/present_a/.gitkeep\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/release/\ncd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/release/latest/\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/release/latest/openstack-A.yml\n<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/release/latest/openstack-B.yml\ncd+++++++++ src/github.com/osism/release/tests/mirror_sync/\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/__init__.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/conftest.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_attribute.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_classify.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_cli.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_commit.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_detail.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_effective.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_enablement_additions.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_gate.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_layers.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_model.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_render.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_source_commits.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_worktree.py\n<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_write.py\n",
                            "rc": 0,
                            "stdout_lines": [
                                "cd+++++++++ src/",
                                "cd+++++++++ src/github.com/",
                                "cd+++++++++ src/github.com/osism/",
                                "cd+++++++++ src/github.com/osism/release/",
                                "<f+++++++++ src/github.com/osism/release/.flake8",
                                "<f+++++++++ src/github.com/osism/release/.gitignore",
                                "<f+++++++++ src/github.com/osism/release/.yamllint.yml",
                                "<f+++++++++ src/github.com/osism/release/.zuul.yaml",
                                "<f+++++++++ src/github.com/osism/release/LICENSE",
                                "<f+++++++++ src/github.com/osism/release/README.md",
                                "<f+++++++++ src/github.com/osism/release/requirements.txt",
                                "<f+++++++++ src/github.com/osism/release/tox.ini",
                                "cd+++++++++ src/github.com/osism/release/.git/",
                                "<f+++++++++ src/github.com/osism/release/.git/COMMIT_EDITMSG",
                                "<f+++++++++ src/github.com/osism/release/.git/FETCH_HEAD",
                                "<f+++++++++ src/github.com/osism/release/.git/HEAD",
                                "<f+++++++++ src/github.com/osism/release/.git/ORIG_HEAD",
                                "<f+++++++++ src/github.com/osism/release/.git/config",
                                "<f+++++++++ src/github.com/osism/release/.git/config.worktree",
                                "<f+++++++++ src/github.com/osism/release/.git/description",
                                "<f+++++++++ src/github.com/osism/release/.git/index",
                                "<f+++++++++ src/github.com/osism/release/.git/packed-refs",
                                "cd+++++++++ src/github.com/osism/release/.git/branches/",
                                "cd+++++++++ src/github.com/osism/release/.git/hooks/",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/applypatch-msg.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/commit-msg.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/fsmonitor-watchman.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/post-update.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/pre-applypatch.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/pre-commit.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/pre-merge-commit.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/pre-push.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/pre-rebase.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/pre-receive.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/prepare-commit-msg.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/push-to-checkout.sample",
                                "<f+++++++++ src/github.com/osism/release/.git/hooks/update.sample",
                                "cd+++++++++ src/github.com/osism/release/.git/info/",
                                "<f+++++++++ src/github.com/osism/release/.git/info/exclude",
                                "cd+++++++++ src/github.com/osism/release/.git/logs/",
                                "<f+++++++++ src/github.com/osism/release/.git/logs/HEAD",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/00/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/00/1c237bdeab2286bcf90f3c38c8340e77a9b9a1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/00/8588d0068faf44d9ca8d2971f0dc1a4415b79f",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/00/bfffc7f913bd0aeebea89f8b725ce1e93e923b",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/00/ed7c02603c3af24b7e864b89e9929f247056b9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/01/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/01/70c3e7ee182b6781e606340c703f37f3b0f1fe",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/03/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/03/1b51451676a206fc34a6a686eda238bb6eeb60",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/03/39a05875d7b9f7521745ea900523a3bc7dd448",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/03/66c36c35cd06b987284fbc7202df710d6bf617",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/04/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/04/33df7889694adddf2d413930be63ade854e723",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/04/b2498d2ba5b2d52ee99a05793334de66f5c71c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/05/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/05/6c062179139e8527eee5bf8071e83ea2cc2f42",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/06/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/06/1da164ac958ba60bf32608526d516b0b229ca4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/06/894ce33fd5e3f982d1c9bf4f4c798a833920b7",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/07/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/07/2dd4444794a99be9745e4a1ca7f0ad6314d952",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/07/b70dff524ddaeab2b2a0ffb5d718072e045f22",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/07/f0c64a711cf98300f2c31cbb2acfd3f56dead5",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/08/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/08/d2838e22d4e013081a4d9eb1bd65351d7abf3a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/09/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/09/cf6fa015df6f1cfcfa9e50c5b1de2bad0761a5",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/0a/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0a/c7bd91265c987ff3c6494a0856b88c5ccfc71a",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0a/cbf8e5dd9998f0326717d3df156a469a7a10d5",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0a/eb235405f86f589fa401a68d6b5826a1cdb95c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/0b/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0b/cce242f9e55e9a58b202804f556064993bbe39",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0b/eb3aa7a088d8fa5917f188e4196e59ab9d6ba0",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/0c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0c/c90cccff489cd2c2ee7ab280629dfb53ad8dc5",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0c/fa4698e1078f219a8cfb232e4c010bcf447c04",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/0d/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0d/957215cac1c009e9209ca6374a10b022a3ed9e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/0e/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0e/8df22e9ae05297f2f53b60933baacffbdcc6b9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/0f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/0f/4e8287054143280bc03af5d73c063931be1cfb",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/10/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/10/0ac44188478e711f4a38bd38b4c04089e66438",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/10/0df9a1f8f95a140b03db4916542fbf244768d7",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/10/da05a7a65e1df4e80b1443a4e15cec1f4d0046",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/11/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/11/fac77f5b0b7c6c592f09cb7926cd3775de4706",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/13/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/13/280c967e559f1f2d3a9ea036231f2a62cedee1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/13/693fe7409208ff71cb960a331a53807f0868bf",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/13/8f7f61a3b780b68d9ebaec498bd9756991ba4c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/13/925e06873377d9e93d590d2dcc278c221a4412",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/14/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/14/0af3e7d36eb0f158609e63a235a2b2377ae4e5",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/14/51f7972b9917f10090e317679b4c205243a38b",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/14/578c95e4310695afafeae61ce97cd13c95bca3",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/16/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/16/b1850ea4237a9c6c5b48aa8ff8517e7189fd68",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/16/c95e32e083fa408cdaa8a09042215968e7ea27",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/17/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/17/72f9c48e18be7e922b546543f7b935ecb6ad81",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/18/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/18/1535ef998d9d420dbed941633c4f5ca251c8e8",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/18/c2868655c73d0e873dcc27ee404b81103d4ffa",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/18/dd981c2f0ed26029cb0ad5b9a47614f52bb54a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/19/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/19/a6e70418994467e59768ed281dfe34fec5f7b3",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/19/fd35baaae3963e334e83ae4bf396e803b4ae66",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/1a/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1a/58b85022816d523e30e08f818d458f946bf302",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1a/b7231d27b2d8260edc98ee74c8dd51b7f850e9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1a/f83137f5b7520a6d8c482ff974a23516a2625d",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/1c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1c/e7598962d2bb5e3b6ade0f13ca4f8ec433059c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/1d/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1d/7569d5771b6b92f9b25b9e819b292f36b65cd5",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1d/7f15e4adad2f5cd3e76a26f014248d785cf123",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/1e/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1e/c9d8cbe520ab7600d260882dae2f25c9e9966d",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/1f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1f/2b39ec178250e5873c34f79a99779cf01d458a",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/1f/d53f28d010696abf0a7eb5e84ad09811bbe50e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/21/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/21/22786000e052e8fbcfe2b49c88bcc97038f31d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/21/33e79b8ad99fc8b52c9a072a957853aae7c314",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/22/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/22/986ad1a27ef8ce3b47e28b9bad1139e9f7722c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/22/dce01ef755e726d3fa83bfeec9b86875a30f14",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/22/e00635e643a709792cd342123b08798466e4d9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/22/f2b3c595adee3c54ebd821d2e3c952bd1f375c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/24/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/24/7261c8184384d650dd173bc996685e3ca56a75",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/24/91b888dbde5a851ee216d995f6fe1affcf085f",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/25/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/25/60935e39dbe930c45bd26929692bb4a52d487a",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/25/9395f13638c2d08e04a9715e3c67d4c5c17e5c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/25/d3e487e024428bb302036fc75e3ce8e247fa83",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/26/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/26/08daa4b2e738d2c4941282a9fd5c420573b58d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/26/4668e50b0223e8f952ddf90b32e4d78d1987d9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/26/7503d323357f62856b853333b01afadb3d2861",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/28/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/28/3b97248e278f9310d5fe80d5ac6369d76ac911",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/28/94b4078dc3bb097a84d585dbbcc6693419c2c1",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/2a/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2a/480a8932171bce42b37d38282fefc70be02e8c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/2b/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2b/0b0042047c9d92042b1b4b550853daedeb97a7",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2b/2a818c05327166a573c70e21455fbc2a2871cf",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2b/3ce6b5148928872ac3d97bd486cce332046053",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2b/b5a399365b4d3c4a4f5b94fd9011943fb6a5cb",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2b/f55ae89c8868242a8abe1bc747617c1127cdcc",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/2c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2c/6673bd03a8a13dcabf2e7cc36b610beb2746b4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2c/956b5a262a9d1ab2badb2c79337d4652061b86",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/2d/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2d/12147d6a5aa1ed28e8b907b04b5e465cc15b83",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2d/1736aafd478895f3a4da5ddaf25347fab16b86",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/2e/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2e/30098baf6b7effbd36a7296c778ad938d4b5a7",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2e/324f5556ae8bc5eb657d87ae2e51824487d943",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2e/4614985115e65b94460447f19dd3647dc674d9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2e/63cb2c47b2a2a2df517e39ad67d3d0a03cdb33",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2e/efdd071028432cf2731135e98fd6523fc1f654",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/2f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2f/29be7c3340636122b6127087d0544f8e3ba461",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2f/c2469f1c8787665504db68c7ff40b0f29a022e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2f/d0004adeb0686552ce206126a14c52e331e32b",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2f/db5758ac70256bb4f975a63d4b016fe02e18c3",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/2f/e90841f2223900b9c0dd2b2a299a0b455d0fe4",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/30/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/30/6b2ea6f65ce3ff97cc99642b7d50ddf2c3371c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/30/9924c779d23c9726fd015792fd43f45212aeb5",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/30/e79abc2b828add3add8a16ef6c39de5ef84061",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/31/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/31/d2b30847cdb5670626e74c3629916169e5f103",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/31/e99cd34fab3f7a3a61334d3c7ae1eaac0542d6",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/32/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/32/ec2a65312b7423c8f079ce3d9dccc89558e9f4",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/33/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/33/19f7c3c15988f3c618871cfc171fde748fc14f",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/35/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/35/2b47a6c2cbd16a8c984e62e210951a3b206251",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/35/b6b7c3d626eb06e1c6898f7f395460aec17cc8",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/36/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/36/0ac02781fdbc31708fed31495d8f096571f0a2",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/36/974d499d9db11b72b21aa09e738a2c58071a48",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/36/9c26618c9caab8c67db46657e426b0f5b94d38",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/37/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/37/2700ac6c4b16e915fe74a75920e37d0901f27d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/37/ad31d465d3295f3d9abaec508b816b82a6e90c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/37/c5314183a62225788218d783607f39f5db80ef",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/37/f3f839edd801354257295a1382c081104f6dcb",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/39/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/39/3111fe1c35483499cb6f46cca8045713e04ed3",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/3a/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/3a/0c9a94bb32f9b2adec94c53ac4bb09c1be764c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/3a/193254db3af104384979b1b4462607d18ae4b9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/3a/5466204b68f638b668cea749a0c7f463ea9bbe",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/3a/abf861151ac27565bcd92465d83cc99382286a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/3c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/3c/e82c6c0d4a0e18780745a97811341be9229646",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/3e/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/3e/21c3d86bd9a9494cc41fdc538f38cc845f9bf1",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/3f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/3f/393689bf4ac9ca135e9e1b2a93eb40ccfcc898",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/3f/ee758408a90907a95aafdef06dde6c03a4a077",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/40/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/40/2f5d617b94daadafbf39a9f80fadfb092985e8",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/40/faf59cc231258df3c573f7115fa9bfddba3400",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/41/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/41/5cb285aeccffeaf3964f95dcf49167402c398e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/41/bd800aa38b91bae07a6a54715732659d2345a8",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/42/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/42/a2210ec8b7bb974a6afab81e36cdf43d9a3c23",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/42/bb44eebd47d8e43c2516e3397f60668e81d2b1",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/43/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/43/64d41098b2fc332114762b4142fb839eccbe05",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/43/9123d713901ecedc09261a3c3b50497759ee41",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/43/959a468f775e08f3d177516be388c1b1fe02c2",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/44/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/44/79c35c8433d881098218e81773adfd23451401",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/45/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/45/26a2784a06bbc5b8cd6c72511b0f60c0a0475a",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/45/5183f9878cc12c4e4a8de235e612ebe38beb7b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/47/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/47/a0fece0bcc9ba6387280feb600cdec7616aad0",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/48/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/48/484502f7bce47e3cc00d9446752e089cf63215",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/49/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/49/66d4efaed91f19787a4d5ecb8eaf90bcfb9134",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/49/c95802b72bc20984a5ad8e11e86e958970f952",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/4a/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4a/7f7ccae0ded69e2555091d384a07b4b7af75b4",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/4b/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4b/025ebb7f3f269c0e3d371cdcffb94b09dfcc7d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4b/49c4e2dc06338d2d1d5769d8d1485c9dd5c8e1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4b/77666874515e9674f377bf89d71f2ba9a72f6c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4b/a16cd777edf5545fe53a0161f50904723f915e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4b/f3d16fee1b9c40fa35f08b216ba733773cc5f3",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/4c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4c/ba34e9dc21c63bb59dd71f120871dc50e8ee7e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/4d/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4d/76eedae5d164c5e21ca170abd48f191a0a396f",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4d/772b8b823e141f57bf0839872dd6062d001cac",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4d/919febc458adf32b9ba8ba9af441852b91b48e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/4e/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4e/d415f73b40d94b45518a028f20a02b83837e22",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/4f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4f/499bbaec12c1923a89a099276ffc18ce30724d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4f/6a4630e34f0805a32e423a84084b1112339dba",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/4f/7a05e485de71a57826b8c4a80b57838a6b9646",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/50/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/50/a0acce155a3cb437cd8545dda3b2bff0ad1ed5",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/51/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/51/2e315e43fe93b3b92eba75f280466682838340",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/51/3762d26ff4ddaaa14c46534f83d1acbec2a2ef",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/51/4b090e2294503bbc92a79ce7e7faa27e376218",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/51/896e187a0686bbcb20325c3a316d2dc0bb86bc",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/51/d1bea742105f2175ff2c154bebb5c5a334a29b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/52/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/52/56d7162c2cd78d826501b3559d33e25a6043a1",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/54/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/54/34ad0fa9671f7d6a530bf839db5a7f2f400b58",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/54/523286e26cf771a3be0109837595208147549a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/55/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/55/70df35c334519ffe2a11b1a47ca338b1bbcabd",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/55/e18e5e1e454ad339c63c5e3a4196b353801698",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/56/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/56/8f5801929e64eef641172459e7897be3fb4a12",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/57/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/57/0b89b6abb37e95ffa5b29d877078228605a7e4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/57/ccb7b87071dbc4f1a2e0558ba522d77fbd16a7",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/58/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/58/0c8dba2d0f4690667b67ef7560644118922dbb",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/58/1822e7ed15a28f8dc131c650e5b013890e9296",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/58/db85bf31258e87fe6623f5da468b6c94ca595d",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/59/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/59/07cb35af9cbf888ebbb8613feb25773ab5c682",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/5a/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5a/39b3b0085ff637a0458bd1ed191c463b9753a4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5a/6bd33c90036b5a078fc98e7272450feecf458d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5a/c809ef179796cd13379f63d7a7cb595a5faf4f",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5a/d664441f46ebb0296e32943bffc7ce25ddff78",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5a/f64603f5f0a3db2e4feac5437fbcda70bfc372",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/5c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5c/ee552eb532ffe4dc847dc218380d1fa37e506b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/5d/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5d/62f65c32fc6e74b89e90f2672b4b712f8707b8",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5d/a7bb27a16ce365a73fbcb55e462c8902a4aeb7",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/5f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5f/0a2d2432ddd9869e74fb710bd3d4a169002fe7",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5f/1e834e84de2ed43b225fb7e31382b096d5e1bc",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/5f/228080beb2c3dfa70fa67d38f01103f62e08d0",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/60/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/60/25f903d1e22aefe0ae218e0e9c65a107967a7a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/61/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/61/c02a8135d3a74d14f572b3311023cb386624bb",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/62/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/62/1c17e9518e5b70f5bf8d6a1ec6b2911f251f85",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/62/63505d2412d39abe829ed5950ebafca79df56e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/62/6feae85c430fa20cce53852ab37a64f63f6046",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/62/af58bbc63c741bf396614e207d7d257b552a85",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/62/c5f3c4f146e94b71f4be74903ebb575ee21633",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/62/feb65ebfc235cd7c943dd200e6d8107ad8548f",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/63/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/63/2660baf7df988554a4095b6d301467e1be755e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/63/a3e50a238aa29e640cd5f68fd3f1ee956ee81d",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/64/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/64/471118969b8aa65cdfbd9963b85d21e23219af",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/64/6e4900451b7e27550038a50b76b3a36d7a99cf",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/65/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/65/30f762bbc9f71b4d379659d9792644f1489a7f",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/65/400cd623dca7422f16a05794c0daa00bd9c53d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/65/9a0ab20eb5ff638694e400b2ed83a154083aeb",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/67/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/67/3c9c30f2fb5e4bdbe2b19bf0760c24e6d3a7aa",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/67/724574ad857a93d7324ddf295a86630c05f2f4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/67/a596ec46a186fb462745e50458cd6bebb7942e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/68/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/68/283761e44caf523ade76055a0aae8252f6d06d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/68/2b6da39754709341219d28b5f475d234dad7f3",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/68/2e33f3286760165f9161995719f0a4dc7edc99",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/68/5ff7d19f330271c0a7a754b04926800e6eeba3",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/68/899c4a11c4e4123c0ad7edd326fb0ec0419479",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/68/9da6809a901a71be587040d549ecc6ddbfdf33",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/69/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/69/179ec85896f4a47f32c8ed2820fa28beeef3bb",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/69/8c7fb87f227f0956fb3337d735295a4b639d3b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/6a/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6a/2d05fbefb1ab2e41362195a2066463c03088bc",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6a/3644f9e5c4abe3b13a5e51f9041d3adc53ed18",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6a/43bbce802706852700aa3d68dbebc6c9b24009",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6a/905ee9548718f0ac0fe2da7d639bf35877780b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/6b/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6b/6abce3fdfda59b42a46fa21d8ff52d732e1a4e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/6d/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6d/2e2e1baef72d943da9a20e759d3bdfd6273344",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6d/6942996eca37d2cd1e32d8d3ee3a50ae81cb6c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6d/72f63e6f1886fca5ce86d1486d8fc992dbcee8",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6d/9825c5802df3e1c390069cf41cef67ad5ef432",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6d/d2d0253d3a1ac283852fdd5f5b4eb57e33094c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/6f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6f/20ade6661ac4203b831a29dcd6223072597f24",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6f/24a16226ec54c137ee80178b3c24f88e59b4c4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/6f/ed079154862392fe8d7c3fbfdabc925966952a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/71/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/71/968e517d46e4d8b6aec8fcf64f70c265cad5b5",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/72/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/72/ad379c4794c68c92f767572821ed5e68a9e510",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/72/dc4c51ad4f6aed61674043ae06af4d196862ed",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/73/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/73/96b5fd99bb0e4f9c976977d8c898ee0d77da42",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/73/ec7773841c52082cf5ae4db91779ca611320bc",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/74/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/74/3935a995e3f0002a95ff7d546a15bf32516d4c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/75/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/75/6f08e0afa7ab2383da00a664d2b82c994326e7",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/75/c6d60acc3c8af966cf273e239ea751c14d2cfd",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/77/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/77/36f1f819dd6724e26b03fc67db9a6cd1fc9cef",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/78/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/78/4d2037aa8cc85dcdd59b70389952b855fb8de9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/78/f364d48713a064e7170e0506a76aa6c73fc62b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/79/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/79/03fba038892088579a481a24f738274d12a11b",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/79/6619c372ad49aab335af6858cc05965ccad477",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/79/a77b3edc41996846636e092ae2ce63103d9b9d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/79/bf935fbbf62258a45f0c391f3d7edb574ff964",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/79/e3d9151e8c672e670b0c9fcb482b6615ba2ab3",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/79/f78241bb1f224a8fc08aa37c856fec5a817777",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/7b/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7b/a28935e1e134d85c4271c6ac9baac7bef16788",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7b/c8b39501f9391486d8d91272114a2f14254d32",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7b/cdc0c16708f6c4e966fcc6046a5d8595f97ab3",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/7c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7c/019e12429fe827e76a9b4eba0eea36c4b5536f",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7c/c6d358edaceb2121078ce4fa833f1f1e0d3965",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/7e/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7e/43d6fe6a22083c241fa70c7a9506ed32e3f9bb",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/7f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7f/3e907bf7dcadce9156cf3234f1ad9f26c3f76b",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7f/62b0cdcf43bbeefcf2f640253709f054d0bb8f",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7f/ca4d9e9aa8ddc311b103ecd8c57162b6b3875c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/7f/fc8374154f5029d9dbcf4150a699eb0c72d976",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/82/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/82/ca709520152caa0ade7b0481eaa7d8654ca872",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/83/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/83/1752abad3c8f78da86cd6ab88749f959d4de11",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/83/6335441d274c8adf7afed2d8df13cd6386a858",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/84/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/84/076dee2ae46d30d9f3b0df75bcbdd5acfc8766",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/84/feb64a4c6b49b9acc944729d7439dcbf436db8",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/85/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/85/003f69143b0047714038ba403272c888d0cac8",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/85/4ca51d8ae246b87e90f3a7f3566bdb99715092",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/85/bcf6552a81ebeb4e3dfcacfb29bfa573343f85",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/86/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/86/4667419765918ec9aa0bc2c7afd749102ff569",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/86/54a21462c2b70b0e1feef31b84a31ad9f38eaa",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/87/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/87/05bc438f45bb3371f8f6409824b89b74d72a02",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/87/08f41cef480f9ee15df38db91077d0363b7fa8",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/87/12dab854045f4b72d1ccf86b8752abbfa3101a",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/87/da9a7583cfdf99c59c4e563b8a374a19b111af",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/88/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/88/1eed9ca542f9b5f2c1c4875cb9d92ff147874b",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/88/5f6be82d2cabb3e961c1a5b5f413c100cbcfba",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/88/ceed6799a861d168a42598fe5e0db7cb81bbbb",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/89/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/89/21c51de2ba56ef640471d69962578ba350c318",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/8b/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8b/509978054d3cb6287e10b09a9c4e0f2252b5d0",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8b/ba32f71f3cfa3e895a871eb8c4889de390cc22",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/8c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8c/80e15d85a74895a10d79150a26a6b7501f5d06",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8c/e8c2974e3fc5c61af18072eefec45727447f4c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8c/f0325d8469bc0e6e28c20da09497d27bae8fd9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/8d/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8d/7e694936cbc36ace6ca032f7d60008bc47fc8e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8d/91b2893b63591b824d1f7f0346d280f2a80ae1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8d/c293bbd84fbc56e80406a5fd42542f15248db8",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/8e/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8e/cc2060ce3c9c4e4234df18da608d0619e0bcb9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/8f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/8f/673e544481d7a6daf2b448e0eb0ea8655c5214",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/90/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/90/43a82efaab5665f3d3e4d277b8964a7da686a1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/90/4633f0aa8ba3c8f892c571c268dbed411ed3c5",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/90/6fde1abf1309008217933eca76a0ea1815186e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/91/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/91/a0e2fe6307275037a99f4197c873e4e313fec2",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/91/b283b54c8a77e6a2426ec7e2ce09c56a31eb2a",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/91/d72d8e731491196a4ee1e2178605e558a89a13",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/92/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/92/af0636bd5fa0ac8692251d4c8e87d822830049",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/93/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/93/4a2abeaf7b9bd6b4860cc1d89eb72bb2e52462",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/93/9681ca4fdf8e1de9d07131495f3c47d5db4c0d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/93/e34ee940f02866f207efc3bdeded26ecf2c134",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/94/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/94/64637860f4b1df08f01018830ee5be96da724d",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/95/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/95/57eade188ab997db2c85f1765499453eff7f8c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/95/ac5017bc07df5ce1a484fe698d9ed026bc510f",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/97/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/97/137bafd7984916caf4abd3dca5c607904d71ed",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/98/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/98/1f8cd23c6ac6b909d86f62168e55dd78b40078",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/99/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/99/53285396c8c73085642fc18d52944974816971",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/99/845c5a90a78cd4b581b76f33dbdc8c45208f89",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/99/a28e1326d21f0049ac874f4ad7a140133b3db5",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/99/c5665b4343ec1e34d0695367c65fc69e131943",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/99/ca367859b96f4cbef0e1c7e18df245dc3c834d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/99/f638ad8a915fb619d78fff10d0dd7594e7b84a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/9b/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/9b/76f9c86a852c8e8db1c37102809e152f77a0ce",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/9c/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/9c/aa317d2b0d1b62e66b139e9cac863a903a8883",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/9c/b59ad62147c5952fe622c81f402b4ee3346cc0",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/9d/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/9d/65c31e7ac1f07fc16b541e17638fe60cb51479",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/9d/d53d404badbb597d66eb65458babe8d154eb81",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/9e/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/9e/459f986e9385408935cb748f40d55929bab07c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/9f/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/9f/aff79a57604aedfc79ec47927847859b0760e0",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a0/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a0/356bc24e43f774145c0fff3f98f29917538536",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a1/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a1/00f5de674798486943c013b8c5ff6525d10913",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a1/0e22badb92003767b70caf09167ab61b689e3c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a2/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a2/fb22d3b3c9e2c72c64407e26ed2d611ae81b82",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a3/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a3/1a24e95cc4617264cf82cec133953b880df9d1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a3/5dcb94e8c61cdb66e6cca1e4aa126075119600",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a3/77dd1b06bf153f9647e4364a7e6d9e41d8b0b9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a4/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a4/4179d51591803d7548399a3a10e51ade69f023",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a4/a3223205fd02ac979ba484b6999611fe858982",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a5/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a5/85c47a281bd99f4b22defd2674ea4d4962aca5",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a5/879ffba1b4cae5de12466752bf2ac5fe5d1824",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a6/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a6/1114b6fa8ff0505b7efdb2e166fef99c815271",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a6/6f189e2a1d318d3cce8abb5987a36fe46c3e05",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a7/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a7/f7edba86f255ef90d824c3f48c2906e306bea5",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a8/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a8/50b8fbe6ff3dce47e75ef28eb84e22533bf1d9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a8/9c5f4da1e8620d1631cfc6518ab1463216a3c9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a8/a3619b7964056315f330205b53c7436678b751",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a8/d4936a8fc0ba88f91fb76ae8fe868b9d0d75f9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/a9/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a9/0f70ab7ac40b15f67ab1ff254d94b249bf845e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a9/a46ddbdc9e442dc4e18c0f78813dd38c76995e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a9/cc416e5ece6162736c09d14b77c3ac3320bd0f",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/a9/d8c3e3fa97e503e44c8770beeacedf87892a24",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/aa/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/aa/0e35e973f44bb663d622788ab57a8192b5c10e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/aa/32cd5dd97371a92c051e0144ca3e384d84dc9e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/aa/60a8fdeced464070a45e80136c1d626a7f1acb",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/aa/af4c1953b91eae7235eb147c5f42b463a330eb",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ab/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ab/343b13854a975351e79bf19b1c386e94425384",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ab/8961bc2b9f3db00eb64417fdd3f890bb95d370",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ab/b5eaae9915abfc7e7742af77a9240ef36292f7",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ab/ebcbda484d215bdc96ab99b768647685f19231",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ab/f8c2df863988ec94f08269a5841b79bd462160",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ac/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ac/6d4b37290fe19d3333c7e8637b896ee77fa8f4",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ad/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ad/3fac60975e4db28c69693672c8402bdd3d9c33",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ad/e81e1b39c29a1cf01d1c808649d0618d7475e9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ae/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ae/563047dbc2db08fe53f5f7dbbc2c7d9222d0cb",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ae/6c19c500a24e8d9252033dc7b9e214ac468359",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ae/f6eec6659a34bc0abab8e9e7f270e12ef739c3",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/af/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/af/30744876d7d67d4662bb73dd848358b0fb994b",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/af/da23b24d9212fd75aa351f1e53967ca00f5a7b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b0/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b0/2a7fe5e7c9d36231a477fbd850918ab9e5a835",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b0/9c02ad49b3d08dd2705588770114595ee20958",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b1/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b1/d9ecd0d88c30f6d6c9eb11e3c26d6f843e6a57",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b1/ecd3f1d8bf5691363309e050dd4e3aa3779e13",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b2/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b2/4951bf0b0329d57223dcfe470cc7a097370d55",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b2/5851f4dabf4e9d5caab7bf12dc82c414fd2476",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b2/68b611b5ff5685b10392c047beedb1b07e2448",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b2/d565eb3f2fdbd20be594c9705bd1962786ce92",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b3/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b3/03acbe7479570abac3a92f3723e2cfab8bb1b0",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b3/07888a1e9ade026f36f73222c6629771487fef",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b3/56f9b947c5c24d5683a5e136bba97dd08782e2",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b3/96ade8ecd08e843c1fcae12f6bff72401be06f",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b4/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b4/26f165581dcd40a4ba9356accad4c69cac99ce",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b5/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b5/1f5904aeac1423be546209d6c6251587bdd896",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b5/2a46a4e901258613541678a78c82e0c7f22395",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b5/35eb49879cd71bb036a923caa89253f7dcfbf5",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b6/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b6/03aa626d9fc8d7e33476a2b70bda6c479c2d42",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b6/06bb2acfdbe680ae36b808290fcbcbeb18a8dc",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b6/1b505fb7d8a4a5886f93bfd5332a66baff3c24",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b6/297f7600b90dd13aa61eac355da045d8cd4bb1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b6/7263d7efc03c2079b936baa2a6f4413c205622",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b7/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b7/3160c415840b16afd3e453da92ae2125d81bfb",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b7/3205c513f5476b6bb775d224a6874ab7c13721",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b7/62eb43f74d18bbeccf0d394db5b992dd5a5882",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b7/b978ac28ddc3889798ce5d389ffaac6e775413",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b7/eb0dbe71ad6c5228cb0a3bf2f6f5c140fb922b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b8/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b8/4d814ca0b92447cfa89e9b601eab288371b866",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b8/c1eb289e1840585c1f3eab1a6ee214ff8d7d2e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/b9/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b9/50c320d30bb11b39cccc5188823707e9c1e7fc",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/b9/e01973ce049df1a1b12ad95da3ab5450722c70",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ba/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ba/6529b4c6339ede95473da4a5194e0f4f167721",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ba/8497dcba87a705acde25eebfe483e0503b4d1e",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/bb/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/bb/519003c2ca34e4d7e928a6e404153896c4730c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/bb/e8b2135477702e838333b0f885bec127a49996",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/bc/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/bc/40336014713bbd6172787f38d7d2fabed12457",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/bc/6f00eedd215bb3188db308d6c928556e824574",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/bd/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/bd/19cc37519e761e17d231597df5106066eb6300",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/bd/9dd2f0773c0eaafba2a5d7ba295482e15bca53",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/bd/bb1ffa624fde4acb1ef10e92950ab383f7eb06",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/be/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/be/8f3092a4ca933826df48c1eccd8fe0ce0c072c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/bf/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/bf/4b4e0bf1fe3f775cd635b741521488f15f1a8f",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/c0/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c0/2cbfb5f15a421f047389d71917b74d6f40d693",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/c2/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c2/a3974750cefbee79211f8c2e9e7b976f2bc4fa",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c2/a707bef3b2425376033d152c0663004e77367c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c2/e2dd9161bb4e9326954e9cca7ef16083191b28",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/c3/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c3/443676c6bd87614d2a7e99164755cfb93cb04b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/c4/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c4/2cccf1eab8aec9d99227f4c20881f8cf5abfb9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c4/87f3057b26315b9d1491065dd9cc5f8310dd4a",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c4/d025c02d323026d95e2ead0cd313cba0aecac3",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c4/d534b1eb5e2ebeb670c40b37d47fa386972fff",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/c5/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c5/408ed054a4bb577f13e0183aa1335c91376589",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c5/85121cdaf205565eb7802a55a953496974d910",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/c7/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c7/c8b574c5e25b8086ce91eda2ee247b9e3dfa28",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/c8/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c8/131278c11ff05eac1aeec450614e2c9517e194",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c8/4058cc71f40e66c1fc51df06f6d34312acf89a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/c9/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c9/6e94936c6554a8013ff33f83a1bc22a9607c76",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/c9/eee0cc2fe81334317927a7190737f9a31c95b9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ca/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ca/007b7c0224e0e30261750965cbd528bfde8f5d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ca/169c7d9ebd89b2b052d77a99cb6fc359e95feb",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ca/9d2e79b008b1f8dc957d1db2c5a6330241699d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ca/a85a6e5699b8c0449326331960d413dcaa2688",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ca/b7945fd538a085568197207653f1883f77b4bc",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ca/bc74a5eabba4d6eb5aeabab30e22235d910c96",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ca/e7d2abd159669d9c697a35186a9d0235f4ad7f",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/cb/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/cb/3ce1a6b4f6f43192620b81d91e7a9f8f8fcaef",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/cc/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/cc/1ea81207c197912f9b50230c703b60bf7c5d71",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/cd/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/cd/519104ec9d682b764804a1bfa1fc7b8cbda2d3",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/cd/68aa6258b756a4cd8040086f9cad263626e7f8",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/cd/76ba750a76c1bc77b1bdac387b4a93ef40e349",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/cd/ac79f594f8a8518d5a29e3e9762728051fd5d4",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/cf/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/cf/f8b436b5a57a3214877363766d7cb26ddc9693",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/d0/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d0/2d9f23bc57621cebd9a9b4fe348fb9e6758ba4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d0/a5b23f5118481c8ef02320b8a1efea02c635f4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d0/b0defe6827157832e4b82089ec931b60a05858",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/d3/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d3/870ff3f3852ad43561e24bc67501190e533c64",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d3/9871e1ae558f9d19a35f6d573cc346ca79c7be",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d3/ceae38eea14365bdcbe857ea7b292884e1f68c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/d4/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d4/84a24a6b7ad478c63bbf50a55c3a546415bd4f",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d4/a215acb4dc136d18d0ce8e8dcc7b8542bee9a9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/d5/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d5/24c71c3a27b7dd7a14fa9c274bfd383b00f462",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d5/2b0248a0793f7c75eb8ee73c0fa9faa6e9d3c4",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d5/540bb6b55ce340871e54fa30ad5cefeacb62c8",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d5/d2d61348855f22d0b5b253359e259e50886904",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/d6/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d6/545c34e99775bb408aea642d7c6c9b3458a726",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d6/c63f5fb4879960430119aea3edcfa46971c99a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/d7/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d7/1e363d527ad2358642dddbf7cd67c91ae382a0",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/d8/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d8/08d6673aa7f53abaefef21b29528bdb0e6d780",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d8/f4d03279dcaf65eae444ac0dbcc73b504896d8",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/d9/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d9/0f7d4992041465f381604b4e307a5ae89d8342",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/d9/c45b16918a43bba785619f8017b1129d08ef99",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/da/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/da/4a8d5b9f79211921944961da5c56ee78efe6e2",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/da/9101025b6b14806026a542873fc158b9447829",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/db/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/db/41891f1298a8a595b0474f138de6ae8d354c24",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/db/9caee6d9ffa26d4abac71ced69f75245843cca",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/dc/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/dc/8aaacb92a0889be6514b0fb71c05ca82a06f1c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/dc/b1cb10be90718b4fd6c06baf81d027f9ee6381",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/dd/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/dd/090d8abedda0e32813ffc1b27ccea4ea9927fc",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/dd/63753122f7fa182ff8c7129cf9f74b0be295cc",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/dd/64b12758189e8bb9198c6b7e0ce025392696b9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/dd/71c00c4e0019570bd0df7ef244ff0c4aca14fd",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/df/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/df/5b423a5943fc9632d3a6d4562aae0e4abfba3c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/df/d932a4fabf27836eaafa62401b4c913ef1a521",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/e1/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e1/7b37a524445afd099ed4ea837918a203c82ae2",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e1/b80e2184e727ac8842c22bee09a77fccf8a555",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/e2/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e2/395781f1d8d1272fd73caf6ea77ea9372a7f34",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e2/89112d168d0d84aa5a88a3f451d23556d2dcd8",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/e4/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e4/ff4c2a0854f3ec027c83064f73f2a1c67b0a81",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/e5/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e5/600ee8c4868d0863a80b9304e6e3c9804cf477",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e5/7defbe59dc2b007cd299fa897d624ec3400645",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e5/829513d56028dd948df7195ab5ac3cc982d5f6",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/e6/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e6/5fe6d6f22fae9e92d091eea09bdcd07d6009b2",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/e7/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e7/4c20aa017112606c72a37f4097ada347c47ffe",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e7/a152638ccb6a484c5688cb2f0c8780eff97172",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/e8/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e8/0e00d796cd349d7fe25f803f5d789b12b8a73d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e8/81810877949505105014604b3349affc5341b3",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/e9/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e9/006756e55368250dca3d888b97eda4af4cd9d9",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/e9/eaa1cf75633c5900d212f84d49cad3bd7975ad",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ea/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ea/199de4e56e36ad1d754840e4fbdc157b483d27",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ea/90e7431a9ff55b7cd9e0cf382d8978c3f433f9",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/eb/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/eb/5ee63311185d250ec8326246f6d53f419dea47",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/eb/a254154788471dc92af569f8fd7eba79143b50",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ec/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ec/1a14c8cf5cb94261c0818bc80fc64eb235a216",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ec/9f8ddf46511b7a012c18e530fdf17863bac68a",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ec/ecc687da13f46a8ee2d577b3657c106efc896f",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ed/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ed/1a166edccf442e538da302819f51a679f2c4b1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ed/c54872d5e5da3b17c3c5a6f379ef7357125a95",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ee/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ee/9025cc383efaa614af76000839c29f67a474e0",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ee/e1e76efe57bcde95971e4fbbbaa188e93b67be",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/ef/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ef/00b9943ec495e9b9afbb83b5db7691445bbc24",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/ef/ab5b956faf85d84ba5ef2c4e6957a944823580",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/f0/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f0/20032bf03ada661a2690893694d951b74795ac",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/f1/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f1/0225167df0cecca95fe8f5828d8e98c046017d",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f1/df8890d07f27a93102a9d0198e138b337f1f5e",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f1/e31e7730aa5b7735add4fa55d1c4cb2d5e4855",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/f2/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f2/35e484caf5d3a4b3893f547609f6cd7459b88d",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/f3/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f3/af1bd8b6a0b41ffbd910a596e72d1aa8c43229",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f3/fc49422331818491f6a67e35a21f75c53552d2",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/f6/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f6/33814f02a7e71eda9f23ec5a2ea373c9a252cf",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f6/cc482934f5f749e5fe16148a9a23c6f5f7b248",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/f7/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f7/2001ddd582a74bc1395bb345bd880638b50f5c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/f8/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f8/3b6fcafb95d3302989f2296472083f74aadabd",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f8/5f3563f8befff9892bc63103e9bafb29f1097c",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f8/64bffc2623c034b14e6a30bdcdf2ad4987d122",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f8/cf1fbd9b12fcd66819e4ea2db7e30080d3c14b",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/f9/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/f9/b6ea6fd0f0180d9edc76ed068a2b42c7eb1b4c",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/fa/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/fa/1062c47ce62237541a1ce9ea7a85e1caaa9ad6",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/fa/9f2c0912d34ecd657508d504dfa2748ce69a39",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/fa/c6f9606f01d81f1a339705a87862a1e3209916",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/fb/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/fb/d4e9fd18157a57843ed2cfc46e8a88cf57dae1",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/fb/de884693e04b446d5456c60dde33109b2c31fa",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/fc/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/fc/d9c4e6090008d292e0e2c054e7c447cc9cd07a",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/fe/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/fe/70fb93ed8ecf059f29dab8cd2fc80b4eb51e90",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/fe/80967020f88713202864bff82cb4c6a759b4fb",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/info/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/info/commit-graph",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/info/packs",
                                "cd+++++++++ src/github.com/osism/release/.git/objects/pack/",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-130d1e552e57b7ae54fae5f7555b1d837f87812e.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-130d1e552e57b7ae54fae5f7555b1d837f87812e.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-1e9f52a2ad739b13d0ecb046d64da9add41d93e6.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-1e9f52a2ad739b13d0ecb046d64da9add41d93e6.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-2bf810a2a8516110bc54eb2fdc2471977924ec9a.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-2bf810a2a8516110bc54eb2fdc2471977924ec9a.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-356fe8c4bfecdf0202a316331f823700972b9626.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-356fe8c4bfecdf0202a316331f823700972b9626.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-3b923046fff831cd54a81ba23aafc86f1af14feb.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-3b923046fff831cd54a81ba23aafc86f1af14feb.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-40bb0cda8af460160c45ec0f2f9f7f1d3b902f8e.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-40bb0cda8af460160c45ec0f2f9f7f1d3b902f8e.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-47c046e90652abe405e3871b704cd4877a4df076.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-47c046e90652abe405e3871b704cd4877a4df076.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-4c7fdaa2a6ca9f9ba35fa2dc1cd4c6f801fd62a2.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-4c7fdaa2a6ca9f9ba35fa2dc1cd4c6f801fd62a2.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-4d83873a842a7c3b8975e5970788254e990deb6a.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-4d83873a842a7c3b8975e5970788254e990deb6a.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-553e2657db8dda9df930b41b1dfb812ef0cb1885.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-553e2657db8dda9df930b41b1dfb812ef0cb1885.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-5af86b8821e09c208de1fd993b177d2d8295bf50.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-5af86b8821e09c208de1fd993b177d2d8295bf50.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-5c912ed0929f2133b540f20a79b61d69a4179d53.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-5c912ed0929f2133b540f20a79b61d69a4179d53.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-68d1ee1a41cc00fd77f03cb7f4f8487ff55b2e8f.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-68d1ee1a41cc00fd77f03cb7f4f8487ff55b2e8f.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-8d71237dff082e08c1d45a4f25197f32988eb819.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-8d71237dff082e08c1d45a4f25197f32988eb819.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-9fec2cf063f197c1bff7306cd4d4f27ca8293f7e.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-9fec2cf063f197c1bff7306cd4d4f27ca8293f7e.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-a94642828d9fc3933f6b8d3e677b0a265013fd7f.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-a94642828d9fc3933f6b8d3e677b0a265013fd7f.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-b2c099119050a8b5f7c0530f54e58bea4bf9e64b.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-b2c099119050a8b5f7c0530f54e58bea4bf9e64b.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-d8c49277c4d8ffa7e810e3810603a61d971c11c1.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-d8c49277c4d8ffa7e810e3810603a61d971c11c1.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-e62eebe78bd586c98c484bb32d5e9e216c08607f.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-e62eebe78bd586c98c484bb32d5e9e216c08607f.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-e798c7d6e7dd8eea2e5b6c8c395a5dcafc44bcc6.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-e798c7d6e7dd8eea2e5b6c8c395a5dcafc44bcc6.pack",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-eddc5710712c3a96490bedcfe2b35ed912072da7.idx",
                                "<f+++++++++ src/github.com/osism/release/.git/objects/pack/pack-eddc5710712c3a96490bedcfe2b35ed912072da7.pack",
                                "cd+++++++++ src/github.com/osism/release/.git/refs/",
                                "cd+++++++++ src/github.com/osism/release/.git/refs/heads/",
                                "<f+++++++++ src/github.com/osism/release/.git/refs/heads/main",
                                "cd+++++++++ src/github.com/osism/release/.git/refs/remotes/",
                                "cd+++++++++ src/github.com/osism/release/.git/refs/remotes/origin/",
                                "<f+++++++++ src/github.com/osism/release/.git/refs/remotes/origin/main",
                                "cd+++++++++ src/github.com/osism/release/.git/refs/zuul/",
                                "<f+++++++++ src/github.com/osism/release/.git/refs/zuul/b28b7af69320201d1cf206ebf28373980add1451",
                                "<f+++++++++ src/github.com/osism/release/.git/refs/zuul/fetch",
                                "cd+++++++++ src/github.com/osism/release/.github/",
                                "<f+++++++++ src/github.com/osism/release/.github/renovate.json",
                                "cd+++++++++ src/github.com/osism/release/.github/workflows/",
                                "<f+++++++++ src/github.com/osism/release/.github/workflows/add-to-project.yml",
                                "cd+++++++++ src/github.com/osism/release/1.0.0/",
                                "<f+++++++++ src/github.com/osism/release/1.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/1.0.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/1.0.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/1.0.0/openstack-wallaby.yml",
                                "cL+++++++++ src/github.com/osism/release/1.0.0/openstack.yml -> openstack-wallaby.yml",
                                "cd+++++++++ src/github.com/osism/release/10.0.0/",
                                "<f+++++++++ src/github.com/osism/release/10.0.0/base.yml",
                                "cd+++++++++ src/github.com/osism/release/10.1.0/",
                                "<f+++++++++ src/github.com/osism/release/10.1.0/base.yml",
                                "cd+++++++++ src/github.com/osism/release/10.2.0/",
                                "<f+++++++++ src/github.com/osism/release/10.2.0/base.yml",
                                "cd+++++++++ src/github.com/osism/release/2.0.0/",
                                "<f+++++++++ src/github.com/osism/release/2.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/2.0.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/2.0.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/2.0.0/openstack-wallaby.yml",
                                "cL+++++++++ src/github.com/osism/release/2.0.0/openstack.yml -> openstack-wallaby.yml",
                                "cd+++++++++ src/github.com/osism/release/3.0.0/",
                                "<f+++++++++ src/github.com/osism/release/3.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/3.0.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/3.0.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/3.0.0/openstack-xena.yml",
                                "cL+++++++++ src/github.com/osism/release/3.0.0/openstack.yml -> openstack-xena.yml",
                                "cd+++++++++ src/github.com/osism/release/3.1.0/",
                                "<f+++++++++ src/github.com/osism/release/3.1.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/3.1.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/3.1.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/3.1.0/openstack-xena.yml",
                                "cL+++++++++ src/github.com/osism/release/3.1.0/openstack.yml -> openstack-xena.yml",
                                "cd+++++++++ src/github.com/osism/release/3.2.0/",
                                "<f+++++++++ src/github.com/osism/release/3.2.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/3.2.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/3.2.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/3.2.0/openstack-xena.yml",
                                "cL+++++++++ src/github.com/osism/release/3.2.0/openstack.yml -> openstack-xena.yml",
                                "cd+++++++++ src/github.com/osism/release/4.0.0/",
                                "<f+++++++++ src/github.com/osism/release/4.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/4.0.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/4.0.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/4.0.0/openstack-yoga.yml",
                                "cL+++++++++ src/github.com/osism/release/4.0.0/openstack.yml -> openstack-yoga.yml",
                                "cd+++++++++ src/github.com/osism/release/4.1.0/",
                                "<f+++++++++ src/github.com/osism/release/4.1.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/4.1.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/4.1.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/4.1.0/openstack-yoga.yml",
                                "cL+++++++++ src/github.com/osism/release/4.1.0/openstack.yml -> openstack-yoga.yml",
                                "cd+++++++++ src/github.com/osism/release/4.2.0/",
                                "<f+++++++++ src/github.com/osism/release/4.2.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/4.2.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/4.2.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/4.2.0/openstack-yoga.yml",
                                "cL+++++++++ src/github.com/osism/release/4.2.0/openstack.yml -> openstack-yoga.yml",
                                "cd+++++++++ src/github.com/osism/release/4.3.0/",
                                "<f+++++++++ src/github.com/osism/release/4.3.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/4.3.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/4.3.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/4.3.0/openstack-yoga.yml",
                                "cL+++++++++ src/github.com/osism/release/4.3.0/openstack.yml -> openstack-yoga.yml",
                                "cd+++++++++ src/github.com/osism/release/5.0.0/",
                                "<f+++++++++ src/github.com/osism/release/5.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/5.0.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/5.0.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/5.0.0/openstack-zed.yml",
                                "cL+++++++++ src/github.com/osism/release/5.0.0/openstack.yml -> openstack-zed.yml",
                                "cd+++++++++ src/github.com/osism/release/5.1.0/",
                                "<f+++++++++ src/github.com/osism/release/5.1.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/5.1.0/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/5.1.0/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/5.1.0/openstack-zed.yml",
                                "cL+++++++++ src/github.com/osism/release/5.1.0/openstack.yml -> openstack-zed.yml",
                                "cd+++++++++ src/github.com/osism/release/5.2.0/",
                                "<f+++++++++ src/github.com/osism/release/5.2.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/5.2.0/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/5.2.0/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/5.2.0/openstack-zed.yml",
                                "cL+++++++++ src/github.com/osism/release/5.2.0/openstack.yml -> openstack-zed.yml",
                                "cd+++++++++ src/github.com/osism/release/5.3.0/",
                                "<f+++++++++ src/github.com/osism/release/5.3.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/5.3.0/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/5.3.0/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/5.3.0/openstack-zed.yml",
                                "cL+++++++++ src/github.com/osism/release/5.3.0/openstack.yml -> openstack-zed.yml",
                                "cd+++++++++ src/github.com/osism/release/6.0.0/",
                                "<f+++++++++ src/github.com/osism/release/6.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/6.0.0/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/6.0.0/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/6.0.0/openstack-2023.1.yml",
                                "cL+++++++++ src/github.com/osism/release/6.0.0/openstack.yml -> openstack-2023.1.yml",
                                "cd+++++++++ src/github.com/osism/release/6.0.1/",
                                "<f+++++++++ src/github.com/osism/release/6.0.1/base.yml",
                                "<f+++++++++ src/github.com/osism/release/6.0.1/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/6.0.1/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/6.0.1/openstack-2023.1.yml",
                                "cL+++++++++ src/github.com/osism/release/6.0.1/openstack.yml -> openstack-2023.1.yml",
                                "cd+++++++++ src/github.com/osism/release/6.0.2/",
                                "<f+++++++++ src/github.com/osism/release/6.0.2/base.yml",
                                "<f+++++++++ src/github.com/osism/release/6.0.2/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/6.0.2/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/6.0.2/openstack-2023.1.yml",
                                "cL+++++++++ src/github.com/osism/release/6.0.2/openstack.yml -> openstack-2023.1.yml",
                                "cd+++++++++ src/github.com/osism/release/7.0.0/",
                                "<f+++++++++ src/github.com/osism/release/7.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.0/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.0/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.0/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.0/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.0.1/",
                                "<f+++++++++ src/github.com/osism/release/7.0.1/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.1/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.1/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.1/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.1/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.0.2/",
                                "<f+++++++++ src/github.com/osism/release/7.0.2/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.2/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.2/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.2/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.2/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.0.3/",
                                "<f+++++++++ src/github.com/osism/release/7.0.3/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.3/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.3/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.3/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.3/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.0.4/",
                                "<f+++++++++ src/github.com/osism/release/7.0.4/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.4/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.4/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.4/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.4/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.0.5/",
                                "<f+++++++++ src/github.com/osism/release/7.0.5/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.5/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.5/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.0.5/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.0.5/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.1.0/",
                                "<f+++++++++ src/github.com/osism/release/7.1.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.1.0/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.1.0/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.1.0/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.1.0/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.1.1/",
                                "<f+++++++++ src/github.com/osism/release/7.1.1/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.1.1/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.1.1/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.1.1/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.1.1/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.1.2/",
                                "<f+++++++++ src/github.com/osism/release/7.1.2/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.1.2/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.1.2/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.1.2/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.1.2/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/7.1.3/",
                                "<f+++++++++ src/github.com/osism/release/7.1.3/base.yml",
                                "<f+++++++++ src/github.com/osism/release/7.1.3/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/7.1.3/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/7.1.3/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/7.1.3/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/8.0.0/",
                                "<f+++++++++ src/github.com/osism/release/8.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/8.0.0/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/8.0.0/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/8.0.0/openstack-2024.1.yml",
                                "cL+++++++++ src/github.com/osism/release/8.0.0/openstack.yml -> openstack-2024.1.yml",
                                "cd+++++++++ src/github.com/osism/release/8.0.1/",
                                "<f+++++++++ src/github.com/osism/release/8.0.1/base.yml",
                                "<f+++++++++ src/github.com/osism/release/8.0.1/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/8.0.1/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/8.0.1/openstack-2024.1.yml",
                                "cL+++++++++ src/github.com/osism/release/8.0.1/openstack.yml -> openstack-2024.1.yml",
                                "cd+++++++++ src/github.com/osism/release/8.0.2/",
                                "<f+++++++++ src/github.com/osism/release/8.0.2/base.yml",
                                "<f+++++++++ src/github.com/osism/release/8.0.2/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/8.0.2/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/8.0.2/openstack-2024.1.yml",
                                "cL+++++++++ src/github.com/osism/release/8.0.2/openstack.yml -> openstack-2024.1.yml",
                                "cd+++++++++ src/github.com/osism/release/8.1.0/",
                                "<f+++++++++ src/github.com/osism/release/8.1.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/8.1.0/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/8.1.0/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/8.1.0/openstack-2024.1.yml",
                                "cL+++++++++ src/github.com/osism/release/8.1.0/openstack.yml -> openstack-2024.1.yml",
                                "<f+++++++++ src/github.com/osism/release/8.1.0/sbom-openstack-2024.1.yml",
                                "cL+++++++++ src/github.com/osism/release/8.1.0/sbom-openstack.yml -> sbom-openstack-2024.1.yml",
                                "cd+++++++++ src/github.com/osism/release/9.0.0/",
                                "<f+++++++++ src/github.com/osism/release/9.0.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/9.0.0/ceph-reef.yml",
                                "cL+++++++++ src/github.com/osism/release/9.0.0/ceph.yml -> ceph-reef.yml",
                                "<f+++++++++ src/github.com/osism/release/9.0.0/openstack-2024.2.yml",
                                "cL+++++++++ src/github.com/osism/release/9.0.0/openstack.yml -> openstack-2024.2.yml",
                                "<f+++++++++ src/github.com/osism/release/9.0.0/sbom-openstack-2024.2.yml",
                                "cL+++++++++ src/github.com/osism/release/9.0.0/sbom-openstack.yml -> sbom-openstack-2024.2.yml",
                                "cd+++++++++ src/github.com/osism/release/9.1.0/",
                                "<f+++++++++ src/github.com/osism/release/9.1.0/base.yml",
                                "cd+++++++++ src/github.com/osism/release/9.2.0/",
                                "<f+++++++++ src/github.com/osism/release/9.2.0/base.yml",
                                "cd+++++++++ src/github.com/osism/release/9.3.0/",
                                "<f+++++++++ src/github.com/osism/release/9.3.0/base.yml",
                                "cd+++++++++ src/github.com/osism/release/9.3.1/",
                                "<f+++++++++ src/github.com/osism/release/9.3.1/base.yml",
                                "cd+++++++++ src/github.com/osism/release/9.4.0/",
                                "<f+++++++++ src/github.com/osism/release/9.4.0/base.yml",
                                "cd+++++++++ src/github.com/osism/release/9.5.0/",
                                "<f+++++++++ src/github.com/osism/release/9.5.0/base.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/",
                                "<f+++++++++ src/github.com/osism/release/archive/ok-20171004-0.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/ok-20171013-0.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/ol-20171013-0.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/10.0.0-rc.1/",
                                "<f+++++++++ src/github.com/osism/release/archive/10.0.0-rc.1/base.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/10.0.0-rc.2/",
                                "<f+++++++++ src/github.com/osism/release/archive/10.0.0-rc.2/base.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20171120-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20171120-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20171120-0/ceph-kraken.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20171120-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20171120-0/openstack-ocata.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20180103-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20180103-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180103-0/ceph-kraken.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180103-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180103-0/openstack-ocata.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20180212-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20180212-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180212-0/ceph-kraken.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180212-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180212-0/openstack-ocata.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20180213-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20180213-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180213-0/ceph-kraken.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180213-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180213-0/openstack-ocata.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180213-0/openstack-pike.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20180306-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20180306-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180306-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180306-0/openstack-ocata.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180306-0/openstack-pike.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20180806-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20180806-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180806-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180806-0/openstack-ocata.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180806-0/openstack-pike.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20180807-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20180807-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180807-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180807-0/openstack-ocata.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20180807-0/openstack-pike.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20181001-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20181001-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181001-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181001-0/openstack-pike.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181001-0/openstack-queens.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20181015-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20181015-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181015-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181015-0/openstack-pike.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181015-0/openstack-queens.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20181101-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20181101-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181101-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181101-0/openstack-pike.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181101-0/openstack-queens.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/20181201-0/",
                                "<f+++++++++ src/github.com/osism/release/archive/20181201-0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181201-0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181201-0/openstack-pike.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/20181201-0/openstack-queens.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/2019.1.0/",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.1.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.1.0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.1.0/openstack-queens.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/2019.2.0/",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.2.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.2.0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.2.0/openstack-queens.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.2.0/openstack-rocky.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/2019.3.0/",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.3.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.3.0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.3.0/openstack-queens.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.3.0/openstack-rocky.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/2019.4.0/",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.4.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.4.0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.4.0/openstack-queens.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2019.4.0/openstack-rocky.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/2020.1.0/",
                                "<f+++++++++ src/github.com/osism/release/archive/2020.1.0/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2020.1.0/ceph-luminous.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2020.1.0/ceph-nautilus.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2020.1.0/openstack-rocky.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/2020.1.0/openstack-train.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/4.0.0a/",
                                "<f+++++++++ src/github.com/osism/release/archive/4.0.0a/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/4.0.0a/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/4.0.0a/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/4.0.0a/openstack-yoga.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/4.0.0a/openstack.yml -> openstack-yoga.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/4.0.0b/",
                                "<f+++++++++ src/github.com/osism/release/archive/4.0.0b/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/4.0.0b/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/4.0.0b/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/4.0.0b/openstack-yoga.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/4.0.0b/openstack.yml -> openstack-yoga.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/5.0.0a/",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0a/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0a/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/5.0.0a/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0a/openstack-zed.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/5.0.0a/openstack.yml -> openstack-zed.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/5.0.0b/",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0b/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0b/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/5.0.0b/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0b/openstack-zed.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/5.0.0b/openstack.yml -> openstack-zed.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/5.0.0c/",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0c/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0c/ceph-pacific.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/5.0.0c/ceph.yml -> ceph-pacific.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/5.0.0c/openstack-zed.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/5.0.0c/openstack.yml -> openstack-zed.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/6.0.0a/",
                                "<f+++++++++ src/github.com/osism/release/archive/6.0.0a/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/6.0.0a/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/6.0.0a/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/6.0.0a/openstack-2023.1.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/6.0.0a/openstack.yml -> openstack-2023.1.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/6.0.0b/",
                                "<f+++++++++ src/github.com/osism/release/archive/6.0.0b/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/6.0.0b/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/6.0.0b/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/6.0.0b/openstack-2023.1.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/6.0.0b/openstack.yml -> openstack-2023.1.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/7.0.0a/",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0a/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0a/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/7.0.0a/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0a/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/7.0.0a/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/7.0.0b/",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0b/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0b/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/7.0.0b/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0b/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/7.0.0b/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/7.0.0c/",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0c/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0c/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/7.0.0c/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0c/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/7.0.0c/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/7.0.0d/",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0d/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0d/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/7.0.0d/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/7.0.0d/openstack-2023.2.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/7.0.0d/openstack.yml -> openstack-2023.2.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/",
                                "<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/openstack-2024.1.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/8.0.0-rc.1/openstack.yml -> openstack-2024.1.yml",
                                "cd+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/",
                                "<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/base.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/ceph-quincy.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/ceph.yml -> ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/openstack-2024.1.yml",
                                "cL+++++++++ src/github.com/osism/release/archive/8.0.0-rc.2/openstack.yml -> openstack-2024.1.yml",
                                "cd+++++++++ src/github.com/osism/release/docs/",
                                "<f+++++++++ src/github.com/osism/release/docs/check-drift-catalog.md",
                                "<f+++++++++ src/github.com/osism/release/docs/check-drift-image.md",
                                "<f+++++++++ src/github.com/osism/release/docs/check-drift-kolla.md",
                                "<f+++++++++ src/github.com/osism/release/docs/sync-mirror-tutorial.md",
                                "<f+++++++++ src/github.com/osism/release/docs/sync-mirror.md",
                                "cd+++++++++ src/github.com/osism/release/etc/",
                                "<f+++++++++ src/github.com/osism/release/etc/changelog-repositories.yml",
                                "<f+++++++++ src/github.com/osism/release/etc/collections.yml",
                                "<f+++++++++ src/github.com/osism/release/etc/images.yml",
                                "<f+++++++++ src/github.com/osism/release/etc/other.yml",
                                "<f+++++++++ src/github.com/osism/release/etc/roles-manager.yml",
                                "<f+++++++++ src/github.com/osism/release/etc/roles.yml",
                                "cd+++++++++ src/github.com/osism/release/latest/",
                                "<f+++++++++ src/github.com/osism/release/latest/base.yml",
                                "<f+++++++++ src/github.com/osism/release/latest/ceph-quincy.yml",
                                "<f+++++++++ src/github.com/osism/release/latest/ceph-reef.yml",
                                "<f+++++++++ src/github.com/osism/release/latest/ceph-squid.yml",
                                "cL+++++++++ src/github.com/osism/release/latest/ceph.yml -> ceph-reef.yml",
                                "<f+++++++++ src/github.com/osism/release/latest/openstack-2024.1.yml",
                                "<f+++++++++ src/github.com/osism/release/latest/openstack-2024.2.yml",
                                "<f+++++++++ src/github.com/osism/release/latest/openstack-2025.1.yml",
                                "<f+++++++++ src/github.com/osism/release/latest/openstack-2025.2.yml",
                                "<f+++++++++ src/github.com/osism/release/latest/openstack-2026.1.yml",
                                "cL+++++++++ src/github.com/osism/release/latest/openstack.yml -> openstack-2025.1.yml",
                                "cd+++++++++ src/github.com/osism/release/next/",
                                "<f+++++++++ src/github.com/osism/release/next/kolla-ansible-v0.20250920.0.yml",
                                "<f+++++++++ src/github.com/osism/release/next/kolla-ansible-v0.20260129.0.yml",
                                "<f+++++++++ src/github.com/osism/release/next/kolla-v0.20250725.0.yml",
                                "cd+++++++++ src/github.com/osism/release/scripts/",
                                "<f+++++++++ src/github.com/osism/release/scripts/create-tags.sh",
                                "<f+++++++++ src/github.com/osism/release/scripts/generate-changelog-input.sh",
                                "<f+++++++++ src/github.com/osism/release/scripts/generate-release-changelog.sh",
                                "cd+++++++++ src/github.com/osism/release/src/",
                                "<f+++++++++ src/github.com/osism/release/src/check-drift.py",
                                "<f+++++++++ src/github.com/osism/release/src/create-version.py",
                                "<f+++++++++ src/github.com/osism/release/src/drift-allowlist.yml",
                                "<f+++++++++ src/github.com/osism/release/src/drift-config.yml",
                                "<f+++++++++ src/github.com/osism/release/src/git-diff-log.py",
                                "<f+++++++++ src/github.com/osism/release/src/release-notes.py",
                                "<f+++++++++ src/github.com/osism/release/src/remove-images-from-quay.py",
                                "<f+++++++++ src/github.com/osism/release/src/sync-mirror.py",
                                "cd+++++++++ src/github.com/osism/release/src/osism_drift/",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/__init__.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/archive.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/catalog.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/config.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/demo.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/driver.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/enablement.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/http.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/inventory_sections.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/kolla_docker.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/manager.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/manager_template.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/model.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/override_template.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/playbooks.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/release.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/report.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/role_defaults.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/role_scan.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/sbom_map.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/secrets_map.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/source.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/versions_template.py",
                                "cd+++++++++ src/github.com/osism/release/src/osism_drift/drift/",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/__init__.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/catalog_role_missing.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/image_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_enablement_build.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_enablement_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_groupvars_missing.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_image_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_inventory.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_mirror_verbatim.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_orphan_config.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_retired_patch_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_secrets_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_source_ref_phase.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_version_chain_inner.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_version_chain_upstream.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/kolla_version_gate_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/plugin.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/release_vs_manager.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/role_registry_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/role_shadows.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/role_unpinned.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/drift/rolling_pin.py",
                                "cd+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/__init__.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/attribute.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/classify.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/commit.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/detail.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/effective.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/gate.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/layers.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/model.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/render.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/worktree.py",
                                "<f+++++++++ src/github.com/osism/release/src/osism_drift/mirror_sync/write.py",
                                "cd+++++++++ src/github.com/osism/release/tests/",
                                "<f+++++++++ src/github.com/osism/release/tests/test_driver_groups.py",
                                "<f+++++++++ src/github.com/osism/release/tests/test_release_notes_defaults.py",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/__init__.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_catalog_extract.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_catalog_role_missing.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_integration_real_repos.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_playbooks_constants.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_playbooks_kolla.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_playbooks_resolution.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_playbooks_runtimes.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/test_plugin_registry.py",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/ceph-configure-lvm-volumes.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/squid/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/squid/ceph-pools.yml",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/squid/ceph-purge-cluster.yml",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/playbooks/squid/ceph-purge-storage-node.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/src/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-ceph-ansible/files/src/render-playbooks.py",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/kolla-facts.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/A/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/A/kolla-common.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/B/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/playbooks/B/kolla-common.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/scripts/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/scripts/split-kolla-ansible-site.py",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/src/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-kolla-ansible/files/src/render-playbooks.py",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/playbooks/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/playbooks/.gitkeep",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/src/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/src/generate-playbook-symlinks.py",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/container-image-osism-ansible/files/src/render-playbooks.py",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/kolla-ansible/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/kolla-ansible/.gitkeep",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/files/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/files/src/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/files/src/render-playbooks.py",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/playbooks/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/playbooks/kubernetes-k3s.yml",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/osism-kubernetes/playbooks/kubernetes-kubeconfig.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/",
                                "cd+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/latest/",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/latest/base.yml",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/latest/ceph-squid.yml",
                                "<f+++++++++ src/github.com/osism/release/tests/catalog_drift/fixtures/release/latest/ceph.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/__init__.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/conftest.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_demo.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_driver.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_image_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_manager_parser.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_manager_template_parser.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_override_template_parser.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_plugin_registry.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_release_parser.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_release_vs_manager.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_report.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_role_defaults_parser.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_role_registry_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_role_shadows.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_role_unpinned.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_rolling_pin.py",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/test_source_list_tree.py",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/adminer/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/adminer/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/adminer/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ceph_ansible/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ceph_ansible/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ceph_ansible/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ciinternal/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ciinternal/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/ciinternal/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/templates/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/docker/templates/daemon.json.j2",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/floatdemo/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/floatdemo/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/floatdemo/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/manager/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/manager/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/manager/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/netbox/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/netbox/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/netbox/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/files/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/shellcons/files/entrypoint.sh",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/streamdemo/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/streamdemo/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/streamdemo/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/widget/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/widget/defaults/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-collection-services/roles/widget/defaults/main.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-playbooks-manager/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-playbooks-manager/playbooks/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/ansible-playbooks-manager/playbooks/pull.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/files/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/files/src/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/files/src/templates/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/container-image-osism-ansible/files/src/templates/images.yml.j2",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/generics/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/generics/environments/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/generics/environments/manager/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/generics/environments/manager/images.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/release/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/release/latest/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/release/latest/base.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/testbed/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/testbed/environments/",
                                "cd+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/testbed/environments/manager/",
                                "<f+++++++++ src/github.com/osism/release/tests/image_drift/fixtures/testbed/environments/manager/images.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/__init__.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/conftest.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_archive.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_config.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_dir_helpers.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_driver.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_driver_stale.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_enablement.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_enablement_source_refs.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_enablement_values.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_enablement_version_gates.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_http_head.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_inventory_sections.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_docker.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_enablement_build.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_enablement_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_groupvars_missing.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_image_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_inventory.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_mirror_verbatim.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_orphan_config.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_retired_patch_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_secrets_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_source_ref_phase.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_version_chain_inner.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_version_chain_upstream.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_kolla_version_gate_orphan.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_model.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_plugin_registry.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_report.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_sbom_map.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_secrets_map.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_source.py",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/test_versions_template.py",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/environments/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/environments/kolla/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/environments/kolla/secrets.yml.A",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/cfg-cookiecutter/{{cookiecutter.project_name}}/environments/kolla/secrets.yml.B",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/files/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/files/src/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/files/src/templates/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-image-kolla-ansible/files/src/templates/versions.yml.j2",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-images-kolla/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-images-kolla/src/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/container-images-kolla/src/tag-images-with-the-version.py",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/defaults/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/defaults/all/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/defaults/all/050-images.yml",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/defaults/all/099-kolla.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/generics/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/generics/inventory/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/generics/inventory/50-kolla",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/generics/inventory/51-kolla",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla-ansible/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla-ansible/ansible/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla-ansible/ansible/inventory/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla-ansible/ansible/inventory/multinode",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/macros.j2",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/foo/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/foo/.gitkeep",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/ignored-svc/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/ignored-svc/.gitkeep",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/newsvc/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/newsvc/.gitkeep",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/off/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/off/.gitkeep",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/present_a/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/kolla/docker/present_a/.gitkeep",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/release/",
                                "cd+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/release/latest/",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/release/latest/openstack-A.yml",
                                "<f+++++++++ src/github.com/osism/release/tests/kolla_drift/fixtures/release/latest/openstack-B.yml",
                                "cd+++++++++ src/github.com/osism/release/tests/mirror_sync/",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/__init__.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/conftest.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_attribute.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_classify.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_cli.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_commit.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_detail.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_effective.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_enablement_additions.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_gate.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_layers.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_model.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_render.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_source_commits.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_worktree.py",
                                "<f+++++++++ src/github.com/osism/release/tests/mirror_sync/test_write.py"
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000002d",
                        "name": "prepare-workspace-log",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/prepare-workspace-log"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:08.171703Z",
                            "start": "2026-09-21T05:25:07.056144Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000030",
                        "name": "Synchronize src repos to workspace directory."
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/home/zuul/zuul-output/logs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": "0755",
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": "0755",
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/home/zuul/zuul-output/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 1000,
                                    "group": "zuul",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": "0755",
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/home/zuul/zuul-output/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "zuul",
                                    "path": "/home/zuul/zuul-output/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 1000,
                                    "zj_output_dir": "docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000032",
                        "name": "ensure-output-dirs-present",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/ensure-output-dirs-present"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:08.984651Z",
                            "start": "2026-09-21T05:25:08.185858Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000034",
                        "name": "Ensure Zuul output directories exist"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/zuul-output/logs"
                                },
                                "before": {
                                    "path": "/home/zuul/zuul-output/logs"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": "0755",
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/zuul-output/logs",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "zuul",
                            "path": "/home/zuul/zuul-output/logs",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:09.285340Z",
                            "start": "2026-09-21T05:25:08.997529Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000039",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "cmd": "set +e\nout=/home/zuul/zuul-output/logs/sudo-strace.log\n: > \"$out\"\nif command -v strace >/dev/null 2>&1; then\n  cmd=(timeout 40 strace -f -tt -T -y       -o \"$out\"       sudo -n true)\nelse\n  echo \"strace not installed; running bare sudo probe\" > \"$out\"\n  cmd=(timeout 40 sudo -n true)\nfi\n{ TIMEFORMAT='WALL: %3R s'; time \"${cmd[@]}\"; } 2> \"$out.time\"\necho \"EXIT: $?\" >> \"$out.time\"\n",
                            "delta": "0:00:00.053680",
                            "end": "2026-09-21 05:25:09.676491",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nout=/home/zuul/zuul-output/logs/sudo-strace.log\n: > \"$out\"\nif command -v strace >/dev/null 2>&1; then\n  cmd=(timeout 40 strace -f -tt -T -y       -o \"$out\"       sudo -n true)\nelse\n  echo \"strace not installed; running bare sudo probe\" > \"$out\"\n  cmd=(timeout 40 sudo -n true)\nfi\n{ TIMEFORMAT='WALL: %3R s'; time \"${cmd[@]}\"; } 2> \"$out.time\"\necho \"EXIT: $?\" >> \"$out.time\"\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-00000000003a-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:09.622811",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-00000000003a-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:09.843167Z",
                            "start": "2026-09-21T05:25:09.327603Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003a",
                        "name": "Probe first sudo invocation under strace"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "cmd": "set +e\nout=/home/zuul/zuul-output/logs/sudo-debug.txt\n{\n  echo \"== date ==\";            date -Iseconds\n  echo \"== uptime ==\";          uptime\n  echo \"== boot age (s) ==\";    awk '{print int($1)}' /proc/uptime\n  echo \"== /etc/hostname ==\"; cat /etc/hostname\n  echo \"== /etc/hosts ==\";      cat /etc/hosts\n  echo \"== nsswitch.conf ==\";   cat /etc/nsswitch.conf\n  echo \"== resolv.conf ==\";     cat /etc/resolv.conf 2>/dev/null\n  echo \"== ping 8.8.8.8 ==\"\n  ping -c1 -W2 8.8.8.8 2>&1 || true\n  echo \"== ping 81.163.194.9 ==\"\n  ping -c1 -W2 81.163.194.9 2>&1 || true\n  echo \"== ping 81.163.194.10 ==\"\n  ping -c1 -W2 81.163.194.10 2>&1 || true\n  echo \"== getent ahosts ==\"\n  getent ahosts \"$(cat /etc/hostname)\"\n  echo \"== timed getent hosts ==\"\n  { TIMEFORMAT='getent: %3R s'; time getent hosts \"$(cat /etc/hostname)\"; } 2>&1\n  echo \"== systemd-logind active ==\"\n  systemctl is-active systemd-logind\n  echo \"== systemd-logind ActiveEnterTimestampMonotonic ==\"\n  systemctl show systemd-logind -p ActiveEnterTimestampMonotonic\n  echo \"== systemd-resolved active ==\"\n  systemctl is-active systemd-resolved 2>/dev/null\n  echo \"== /etc/pam.d/sudo ==\"\n  cat /etc/pam.d/sudo 2>/dev/null\n  echo \"== sudoers.d listing ==\"\n  ls -la /etc/sudoers.d/ 2>/dev/null\n} > \"$out\" 2>&1\n",
                            "delta": "0:00:00.135770",
                            "end": "2026-09-21 05:25:10.303239",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nout=/home/zuul/zuul-output/logs/sudo-debug.txt\n{\n  echo \"== date ==\";            date -Iseconds\n  echo \"== uptime ==\";          uptime\n  echo \"== boot age (s) ==\";    awk '{print int($1)}' /proc/uptime\n  echo \"== /etc/hostname ==\"; cat /etc/hostname\n  echo \"== /etc/hosts ==\";      cat /etc/hosts\n  echo \"== nsswitch.conf ==\";   cat /etc/nsswitch.conf\n  echo \"== resolv.conf ==\";     cat /etc/resolv.conf 2>/dev/null\n  echo \"== ping 8.8.8.8 ==\"\n  ping -c1 -W2 8.8.8.8 2>&1 || true\n  echo \"== ping 81.163.194.9 ==\"\n  ping -c1 -W2 81.163.194.9 2>&1 || true\n  echo \"== ping 81.163.194.10 ==\"\n  ping -c1 -W2 81.163.194.10 2>&1 || true\n  echo \"== getent ahosts ==\"\n  getent ahosts \"$(cat /etc/hostname)\"\n  echo \"== timed getent hosts ==\"\n  { TIMEFORMAT='getent: %3R s'; time getent hosts \"$(cat /etc/hostname)\"; } 2>&1\n  echo \"== systemd-logind active ==\"\n  systemctl is-active systemd-logind\n  echo \"== systemd-logind ActiveEnterTimestampMonotonic ==\"\n  systemctl show systemd-logind -p ActiveEnterTimestampMonotonic\n  echo \"== systemd-resolved active ==\"\n  systemctl is-active systemd-resolved 2>/dev/null\n  echo \"== /etc/pam.d/sudo ==\"\n  cat /etc/pam.d/sudo 2>/dev/null\n  echo \"== sudoers.d listing ==\"\n  ls -la /etc/sudoers.d/ 2>/dev/null\n} > \"$out\" 2>&1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-00000000003b-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:10.167469",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-00000000003b-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000037",
                        "name": "diagnose-first-sudo",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-first-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:10.407521Z",
                            "start": "2026-09-21T05:25:09.899051Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003b",
                        "name": "Snapshot DNS / PAM / logind state (no become)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/zuul-output/logs"
                                },
                                "before": {
                                    "path": "/home/zuul/zuul-output/logs"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": "0755",
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/zuul-output/logs",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "zuul",
                            "path": "/home/zuul/zuul-output/logs",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:10.749409Z",
                            "start": "2026-09-21T05:25:10.417112Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003f",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j214218133658.932",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nphase=pre\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\niface=$(ip -6 route show default 2>/dev/null        | awk '{for(i=1;i<=NF;i++) if($i==\"dev\"){print $(i+1); exit}}')\n: \"${iface:=eth0}\"\ngw=$(ip -6 route show default 2>/dev/null     | awk '{for(i=1;i<=NF;i++) if($i==\"via\"){print $(i+1); exit}}')\n{\n  echo \"== date ==\";    date -Is\n  echo \"== iface / gw ==\"; echo \"iface=$iface gw=$gw\"\n  echo \"== ip -6 addr (lifetimes = SLAAC evidence) ==\"; ip -6 addr show\n  echo \"== ip -6 route show ==\"; ip -6 route show\n  echo \"== ip -6 route show default (expires/proto ra = RA evidence) ==\"\n  ip -6 route show default\n  echo \"== ip -4 route show default ==\"; ip -4 route show default\n  echo \"== accept_ra / forwarding (procfs; RA-suppression evidence) ==\"\n  for k in all default \"$iface\"; do\n    for s in forwarding accept_ra; do\n      v=$(cat \"/proc/sys/net/ipv6/conf/$k/$s\" 2>/dev/null)\n      echo \"net.ipv6.conf.$k.$s = ${v:-<unavailable>}\"\n    done\n  done\n  echo \"== resolvectl status ==\"\n  if command -v resolvectl >/dev/null 2>&1; then resolvectl status 2>&1\n  else echo \"resolvectl not installed\"; fi\n  echo \"== /etc/resolv.conf (resolver stub) ==\"\n  cat /etc/resolv.conf 2>/dev/null || echo \"(absent)\"\n  echo \"== /run/systemd/resolve/resolv.conf (upstreams) ==\"\n  cat /run/systemd/resolve/resolv.conf 2>/dev/null    || echo \"(no systemd-resolved upstream file)\"\n  for d in $targets; do\n    echo \"== target: $d ==\"\n    echo \"-- getent ahosts (families glibc returns) --\"\n    getent ahosts \"$d\" 2>&1\n    if command -v resolvectl >/dev/null 2>&1; then\n      echo \"-- resolvectl query --\"; resolvectl query --cache=no \"$d\" 2>&1\n    fi\n    v6=$(getent ahosts \"$d\" 2>/dev/null | awk '$1~/:/{print $1; exit}')\n    v4=$(getent ahosts \"$d\" 2>/dev/null         | awk '$1~/^[0-9]+(\\.[0-9]+){3}$/{print $1; exit}')\n    if [ -n \"$v6\" ]; then\n      echo \"-- ip -6 route get $v6 --\"; ip -6 route get \"$v6\" 2>&1\n    fi\n    if [ -n \"$v4\" ]; then\n      echo \"-- ip -4 route get $v4 --\"; ip -4 route get \"$v4\" 2>&1\n    fi\n    # Several attempts per family: a single sample misclassifies a\n    # ~50%-loss path as healthy or dead by coin flip, defeating the\n    # pre/post bracket. Bounded and in-line -- not a background sampler.\n    for fam in 6 4; do\n      echo \"-- curl -$fam (3 attempts) --\"\n      ok=0\n      for n in 1 2 3; do\n        curl -$fam -sS -m 10 -o /dev/null          -w \"  #$n http=%{http_code} ip=%{remote_ip} t=%{time_total}s\\n\"          \"https://$d/\" 2>&1 && ok=1 || echo \"  #$n curl -$fam FAILED\"\n      done\n      # Trace only the family that failed, to its resolved address:\n      # localises WHERE the failing path dies instead of tracing the\n      # healthy family. v4 via traceroute, v6 via traceroute6.\n      if [ \"$ok\" = 0 ]; then\n        addr=$v6; [ \"$fam\" = 4 ] && addr=$v4\n        tr=traceroute6; [ \"$fam\" = 4 ] && tr=traceroute\n        if [ -n \"$addr\" ] && command -v \"$tr\" >/dev/null 2>&1; then\n          echo \"  !! curl -$fam failed 3x; $tr to $addr\"\n          timeout 30 \"$tr\" -q1 -w2 \"$addr\" 2>&1\n        fi\n      fi\n    done\n  done\n  echo \"== ping -6 gateway ==\"\n  if [ -n \"$gw\" ]; then\n    ping -6 -c1 -W2 \"${gw}%${iface}\" 2>&1\n  else echo \"no v6 gw\"; fi\n} > \"$out\" 2>&1\n",
                            "delta": "0:00:04.798811",
                            "end": "2026-09-21 05:25:16.513484",
                            "failed_when_result": false,
                            "finished": 1,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nphase=pre\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\niface=$(ip -6 route show default 2>/dev/null        | awk '{for(i=1;i<=NF;i++) if($i==\"dev\"){print $(i+1); exit}}')\n: \"${iface:=eth0}\"\ngw=$(ip -6 route show default 2>/dev/null     | awk '{for(i=1;i<=NF;i++) if($i==\"via\"){print $(i+1); exit}}')\n{\n  echo \"== date ==\";    date -Is\n  echo \"== iface / gw ==\"; echo \"iface=$iface gw=$gw\"\n  echo \"== ip -6 addr (lifetimes = SLAAC evidence) ==\"; ip -6 addr show\n  echo \"== ip -6 route show ==\"; ip -6 route show\n  echo \"== ip -6 route show default (expires/proto ra = RA evidence) ==\"\n  ip -6 route show default\n  echo \"== ip -4 route show default ==\"; ip -4 route show default\n  echo \"== accept_ra / forwarding (procfs; RA-suppression evidence) ==\"\n  for k in all default \"$iface\"; do\n    for s in forwarding accept_ra; do\n      v=$(cat \"/proc/sys/net/ipv6/conf/$k/$s\" 2>/dev/null)\n      echo \"net.ipv6.conf.$k.$s = ${v:-<unavailable>}\"\n    done\n  done\n  echo \"== resolvectl status ==\"\n  if command -v resolvectl >/dev/null 2>&1; then resolvectl status 2>&1\n  else echo \"resolvectl not installed\"; fi\n  echo \"== /etc/resolv.conf (resolver stub) ==\"\n  cat /etc/resolv.conf 2>/dev/null || echo \"(absent)\"\n  echo \"== /run/systemd/resolve/resolv.conf (upstreams) ==\"\n  cat /run/systemd/resolve/resolv.conf 2>/dev/null    || echo \"(no systemd-resolved upstream file)\"\n  for d in $targets; do\n    echo \"== target: $d ==\"\n    echo \"-- getent ahosts (families glibc returns) --\"\n    getent ahosts \"$d\" 2>&1\n    if command -v resolvectl >/dev/null 2>&1; then\n      echo \"-- resolvectl query --\"; resolvectl query --cache=no \"$d\" 2>&1\n    fi\n    v6=$(getent ahosts \"$d\" 2>/dev/null | awk '$1~/:/{print $1; exit}')\n    v4=$(getent ahosts \"$d\" 2>/dev/null         | awk '$1~/^[0-9]+(\\.[0-9]+){3}$/{print $1; exit}')\n    if [ -n \"$v6\" ]; then\n      echo \"-- ip -6 route get $v6 --\"; ip -6 route get \"$v6\" 2>&1\n    fi\n    if [ -n \"$v4\" ]; then\n      echo \"-- ip -4 route get $v4 --\"; ip -4 route get \"$v4\" 2>&1\n    fi\n    # Several attempts per family: a single sample misclassifies a\n    # ~50%-loss path as healthy or dead by coin flip, defeating the\n    # pre/post bracket. Bounded and in-line -- not a background sampler.\n    for fam in 6 4; do\n      echo \"-- curl -$fam (3 attempts) --\"\n      ok=0\n      for n in 1 2 3; do\n        curl -$fam -sS -m 10 -o /dev/null          -w \"  #$n http=%{http_code} ip=%{remote_ip} t=%{time_total}s\\n\"          \"https://$d/\" 2>&1 && ok=1 || echo \"  #$n curl -$fam FAILED\"\n      done\n      # Trace only the family that failed, to its resolved address:\n      # localises WHERE the failing path dies instead of tracing the\n      # healthy family. v4 via traceroute, v6 via traceroute6.\n      if [ \"$ok\" = 0 ]; then\n        addr=$v6; [ \"$fam\" = 4 ] && addr=$v4\n        tr=traceroute6; [ \"$fam\" = 4 ] && tr=traceroute\n        if [ -n \"$addr\" ] && command -v \"$tr\" >/dev/null 2>&1; then\n          echo \"  !! curl -$fam failed 3x; $tr to $addr\"\n          timeout 30 \"$tr\" -q1 -w2 \"$addr\" 2>&1\n        fi\n      fi\n    done\n  done\n  echo \"== ping -6 gateway ==\"\n  if [ -n \"$gw\" ]; then\n    ping -6 -c1 -W2 \"${gw}%${iface}\" 2>&1\n  else echo \"no v6 gw\"; fi\n} > \"$out\" 2>&1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-000000000040-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "results_file": "/home/zuul/.ansible_async/j214218133658.932",
                            "start": "2026-09-21 05:25:11.714673",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-000000000040-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:17.274332Z",
                            "start": "2026-09-21T05:25:10.759900Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000040",
                        "name": "Snapshot dual-stack network state (pre)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"post\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:17.338802Z",
                            "start": "2026-09-21T05:25:17.282285Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000041",
                        "name": "Snapshot Docker/BuildKit IPv6 config (teardown)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"post\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:17.406152Z",
                            "start": "2026-09-21T05:25:17.348135Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000042",
                        "name": "Probe container network namespace (teardown)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nnet=/home/zuul/zuul-output/logs/net-debug.pre.txt\nsud=/home/zuul/zuul-output/logs/sudo-debug.txt\n\nemit() {\n  echo \"$1\"\n  {\n    echo \"== isolation gate ==\"\n    echo \"$1\"\n  } >> \"$net\" 2>/dev/null\n  exit 0\n}\n\n[ -s \"$sud\" ]  || emit \"VERDICT=unknown reason=no-sudo-debug-snapshot\"\n\n# (A) Raw-IP reachability, independent of DNS. Three targets, one\n#     packet each; the role above writes one summary line per target.\nprobes=$(grep -cE '[0-9]+% packet loss' \"$sud\")\nlost=$(grep -cE '100% packet loss' \"$sud\")\n[ \"$probes\" -ge 3 ]  || emit \"VERDICT=unknown reason=too-few-ping-probes probes=$probes\"\n[ \"$lost\" -eq \"$probes\" ]  || emit \"VERDICT=healthy reason=ping-answered lost=$lost/$probes\"\n\n# (B) Cost of resolving the hostname of the node itself.\ngetent=$(awk '/^getent: /{print $2; exit}' \"$sud\" 2>/dev/null)\n[ -n \"$getent\" ]  || emit \"VERDICT=unknown reason=no-getent-timing\"\nslow=$(awk -v g=\"$getent\" -v t=5.0  'BEGIN {print (g + 0 >= t + 0) ? 1 : 0}')\n[ \"$slow\" = 1 ]  || emit \"VERDICT=unknown reason=ping-dead-but-dns-fast getent=${getent}s\"\n\n# (C) Veto only: if any HTTPS probe above got a response, the node\n#     has egress whatever ping and DNS say. Absent or truncated file\n#     cannot block the verdict -- it just cannot veto it.\nanswered=$(grep -cE 'http=[1-5][0-9]{2}' \"$net\" 2>/dev/null)\n[ \"${answered:-0}\" -eq 0 ]  || emit \"VERDICT=healthy reason=https-answered answered=$answered\"\n\nemit \"VERDICT=isolated ping_lost=$lost/$probes getent=${getent}s\"\n",
                            "delta": "0:00:00.012991",
                            "end": "2026-09-21 05:25:17.724783",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nnet=/home/zuul/zuul-output/logs/net-debug.pre.txt\nsud=/home/zuul/zuul-output/logs/sudo-debug.txt\n\nemit() {\n  echo \"$1\"\n  {\n    echo \"== isolation gate ==\"\n    echo \"$1\"\n  } >> \"$net\" 2>/dev/null\n  exit 0\n}\n\n[ -s \"$sud\" ]  || emit \"VERDICT=unknown reason=no-sudo-debug-snapshot\"\n\n# (A) Raw-IP reachability, independent of DNS. Three targets, one\n#     packet each; the role above writes one summary line per target.\nprobes=$(grep -cE '[0-9]+% packet loss' \"$sud\")\nlost=$(grep -cE '100% packet loss' \"$sud\")\n[ \"$probes\" -ge 3 ]  || emit \"VERDICT=unknown reason=too-few-ping-probes probes=$probes\"\n[ \"$lost\" -eq \"$probes\" ]  || emit \"VERDICT=healthy reason=ping-answered lost=$lost/$probes\"\n\n# (B) Cost of resolving the hostname of the node itself.\ngetent=$(awk '/^getent: /{print $2; exit}' \"$sud\" 2>/dev/null)\n[ -n \"$getent\" ]  || emit \"VERDICT=unknown reason=no-getent-timing\"\nslow=$(awk -v g=\"$getent\" -v t=5.0  'BEGIN {print (g + 0 >= t + 0) ? 1 : 0}')\n[ \"$slow\" = 1 ]  || emit \"VERDICT=unknown reason=ping-dead-but-dns-fast getent=${getent}s\"\n\n# (C) Veto only: if any HTTPS probe above got a response, the node\n#     has egress whatever ping and DNS say. Absent or truncated file\n#     cannot block the verdict -- it just cannot veto it.\nanswered=$(grep -cE 'http=[1-5][0-9]{2}' \"$net\" 2>/dev/null)\n[ \"${answered:-0}\" -eq 0 ]  || emit \"VERDICT=healthy reason=https-answered answered=$answered\"\n\nemit \"VERDICT=isolated ping_lost=$lost/$probes getent=${getent}s\"\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-000000000043-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:17.711792",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "VERDICT=healthy reason=ping-answered lost=0/3",
                            "stdout_lines": [
                                "VERDICT=healthy reason=ping-answered lost=0/3"
                            ],
                            "zuul_log_id": "0242ac1f-6606-ac4f-4fe5-000000000043-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:17.944002Z",
                            "start": "2026-09-21T05:25:17.430959Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000043",
                        "name": "Evaluate node isolation verdict (pre-run gate)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.fail",
                            "changed": false,
                            "false_condition": "'VERDICT=isolated' in diagnose_network_gate_verdict.stdout",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-ac4f-4fe5-00000000003d",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:18.015327Z",
                            "start": "2026-09-21T05:25:17.949817Z"
                        },
                        "id": "0242ac1f-6606-ac4f-4fe5-000000000044",
                        "name": "Abort the pre-run on a fully isolated node"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 12,
            "failures": 0,
            "ignored": 0,
            "ok": 33,
            "rescued": 0,
            "skipped": 6,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "master",
    "index": "1",
    "phase": "pre",
    "playbook": "github.com/osism/openinfra-zuul-jobs/playbooks/unittests/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-09-21T05:25:21.086030Z",
                    "start": "2026-09-21T05:25:19.050045Z"
                },
                "id": "0242ac1f-6606-7b5d-1931-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "bindep"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:19.141011Z",
                            "start": "2026-09-21T05:25:19.066212Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000004",
                        "name": "Install binary dependencies"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "find.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:19.215137Z",
                            "start": "2026-09-21T05:25:19.185227Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-00000000001e",
                        "name": "Include find tasks"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/osism/release/bindep.txt"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:19.646396Z",
                            "start": "2026-09-21T05:25:19.231212Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-00000000003e",
                        "name": "Look for bindep.txt"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "bindep_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:19.676897Z",
                            "start": "2026-09-21T05:25:19.652704Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-00000000003f",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/osism/release/other-requirements.txt"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:19.955136Z",
                            "start": "2026-09-21T05:25:19.682584Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000040",
                        "name": "Look for other-requirements.txt"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "not bindep_other_file_stat is skipped and  bindep_other_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:19.996273Z",
                            "start": "2026-09-21T05:25:19.960331Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000041",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "stat",
                            "changed": false,
                            "false_condition": "bindep_fallback is defined and not bindep_other_file_stat is skipped and not bindep_other_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:20.038644Z",
                            "start": "2026-09-21T05:25:20.004618Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000042",
                        "name": "Look for bindep fallback file"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "not bindep_fallback_file_stat is skipped and  bindep_fallback_file_stat.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:20.069033Z",
                            "start": "2026-09-21T05:25:20.044584Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000043",
                        "name": "Define bindep_file fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:20.101331Z",
                            "start": "2026-09-21T05:25:20.075759Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-00000000001f",
                        "name": "Include bindep tasks"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:20.139847Z",
                            "start": "2026-09-21T05:25:20.107152Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000020",
                        "name": "Include install tasks"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "bindep_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000001c",
                        "name": "bindep",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/bindep"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:20.215999Z",
                            "start": "2026-09-21T05:25:20.150810Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000021",
                        "name": "Include package tasks"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "test-setup"
                            }
                        }
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:20.268191Z",
                            "start": "2026-09-21T05:25:20.226127Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000005",
                        "name": "Run test-setup role"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "stat",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "checksum_algorithm": "sha1",
                                    "follow": false,
                                    "get_attributes": true,
                                    "get_checksum": true,
                                    "get_mime": true,
                                    "path": "src/github.com/osism/release/tools/test-setup.sh"
                                }
                            },
                            "stat": {
                                "exists": false
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000008f",
                        "name": "test-setup",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/test-setup"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:20.545180Z",
                            "start": "2026-09-21T05:25:20.290807Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000091",
                        "name": "Check if project's tools/test-setup.sh exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "p.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-7b5d-1931-00000000008f",
                        "name": "test-setup",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/test-setup"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:21.086030Z",
                            "start": "2026-09-21T05:25:20.575847Z"
                        },
                        "id": "0242ac1f-6606-7b5d-1931-000000000092",
                        "name": "Run tools/test-setup.sh"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 0,
            "failures": 0,
            "ignored": 0,
            "ok": 4,
            "rescued": 0,
            "skipped": 8,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "2",
    "phase": "pre",
    "playbook": "github.com/osism/openinfra-zuul-jobs/playbooks/tox/pre.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-09-21T05:25:45.798044Z",
                    "start": "2026-09-21T05:25:22.055830Z"
                },
                "id": "0242ac1f-6606-6548-08d4-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "assert",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.108430Z",
                            "start": "2026-09-21T05:25:22.072659Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000008",
                        "name": "Validate python_version value"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.150725Z",
                            "start": "2026-09-21T05:25:22.116037Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000000a",
                        "name": "Install specified version of python interpreter and development files (DEB)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.181039Z",
                            "start": "2026-09-21T05:25:22.156973Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000000b",
                        "name": "Pull in venv package"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.214662Z",
                            "start": "2026-09-21T05:25:22.187444Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000000d",
                        "name": "Set default RPM package name"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.248230Z",
                            "start": "2026-09-21T05:25:22.223947Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000000e",
                        "name": "Set RPM package name for CentOS/RHEL 9/10"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.280835Z",
                            "start": "2026-09-21T05:25:22.256163Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000000f",
                        "name": "Install RPM package"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "python_use_pyenv",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.305063Z",
                            "start": "2026-09-21T05:25:22.289033Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000011",
                        "name": "Install python using pyenv"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "python_version is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000006",
                        "name": "ensure-python",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-python"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.352006Z",
                            "start": "2026-09-21T05:25:22.315389Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000012",
                        "name": "Activate python using stow"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_role",
                            "changed": false,
                            "include_args": {
                                "name": "ensure-pip"
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.396351Z",
                            "start": "2026-09-21T05:25:22.373358Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000016",
                        "name": "Install pip"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                            "delta": "0:00:00.008203",
                            "end": "2026-09-21 05:25:22.896272",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "PYTHON2=0\nPYTHON3=1\n\n# Not all platforms install a `pip` when installing python\n# specific pip packages. We first check if pip$VERSION is\n# available and if not fallback to checking if just `pip`\n# is present.\nif [ \"$PYTHON2\" -eq \"1\" ] ; then\n    command -v pip2 || command -v pip || exit 1\n    python2 -m wheel --help || exit 1\nfi\nif [ \"$PYTHON3\" -eq \"1\" ] ; then\n    command -v pip3 || command -v pip || exit 1\n    python3 -m wheel --help || exit 1\nfi\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-6548-08d4-000000000081-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-09-21 05:25:22.888069",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-6548-08d4-000000000081-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:22.966482Z",
                            "start": "2026-09-21T05:25:22.455542Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000081",
                        "name": "Check if pip is installed"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_distro_os",
                                    "include": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip/tasks/Debian.yaml",
                                    "include_args": {},
                                    "zj_distro_os": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip/tasks/Debian.yaml"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:23.029222Z",
                            "start": "2026-09-21T05:25:22.981999Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000082",
                        "name": "Install pip from packages"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "apt",
                            "cache_update_time": 1789968325,
                            "cache_updated": true,
                            "changed": true,
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "only_upgrade": false,
                                    "package": null,
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": true,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:27.417429Z",
                            "start": "2026-09-21T05:25:23.049828Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-0000000000be",
                        "name": "Update package lists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "package",
                            "cache_update_time": 1789968325,
                            "cache_updated": false,
                            "changed": true,
                            "diff": {},
                            "invocation": {
                                "module_args": {
                                    "allow_change_held_packages": false,
                                    "allow_downgrade": false,
                                    "allow_unauthenticated": false,
                                    "autoclean": false,
                                    "autoremove": false,
                                    "cache_valid_time": 0,
                                    "clean": false,
                                    "deb": null,
                                    "default_release": null,
                                    "dpkg_options": "force-confdef,force-confold",
                                    "fail_on_autoremove": false,
                                    "force": false,
                                    "force_apt_get": false,
                                    "install_recommends": null,
                                    "lock_timeout": 60,
                                    "name": [
                                        "python3-pip",
                                        "python3-setuptools",
                                        "python3-venv",
                                        "python3-wheel"
                                    ],
                                    "only_upgrade": false,
                                    "package": [
                                        "python3-pip",
                                        "python3-setuptools",
                                        "python3-venv",
                                        "python3-wheel"
                                    ],
                                    "policy_rc_d": null,
                                    "purge": false,
                                    "state": "present",
                                    "update_cache": null,
                                    "update_cache_retries": 5,
                                    "update_cache_retry_max_delay": 12,
                                    "upgrade": null
                                }
                            },
                            "stderr": "debconf: delaying package configuration, since apt-utils is not installed\n",
                            "stderr_lines": [
                                "debconf: delaying package configuration, since apt-utils is not installed"
                            ],
                            "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nSuggested packages:\n  python-setuptools-doc\nThe following NEW packages will be installed:\n  python3-pip python3-setuptools python3-wheel\n0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 1877 kB of archives.\nAfter this operation, 9567 kB of additional disk space will be used.\nGet:1 http://deb.debian.org/debian bookworm/main amd64 python3-setuptools all 66.1.1-1+deb12u2 [522 kB]\nGet:2 http://deb.debian.org/debian bookworm/main amd64 python3-wheel all 0.38.4-2 [30.8 kB]\nGet:3 http://deb.debian.org/debian bookworm/main amd64 python3-pip all 23.0.1+dfsg-1 [1325 kB]\nFetched 1877 kB in 0s (18.5 MB/s)\nSelecting previously unselected package python3-setuptools.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 27779 files and directories currently installed.)\r\nPreparing to unpack .../python3-setuptools_66.1.1-1+deb12u2_all.deb ...\r\nUnpacking python3-setuptools (66.1.1-1+deb12u2) ...\r\nSelecting previously unselected package python3-wheel.\r\nPreparing to unpack .../python3-wheel_0.38.4-2_all.deb ...\r\nUnpacking python3-wheel (0.38.4-2) ...\r\nSelecting previously unselected package python3-pip.\r\nPreparing to unpack .../python3-pip_23.0.1+dfsg-1_all.deb ...\r\nUnpacking python3-pip (23.0.1+dfsg-1) ...\r\nSetting up python3-setuptools (66.1.1-1+deb12u2) ...\r\nSetting up python3-wheel (0.38.4-2) ...\r\nSetting up python3-pip (23.0.1+dfsg-1) ...\r\n",
                            "stdout_lines": [
                                "Reading package lists...",
                                "Building dependency tree...",
                                "Reading state information...",
                                "Suggested packages:",
                                "  python-setuptools-doc",
                                "The following NEW packages will be installed:",
                                "  python3-pip python3-setuptools python3-wheel",
                                "0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.",
                                "Need to get 1877 kB of archives.",
                                "After this operation, 9567 kB of additional disk space will be used.",
                                "Get:1 http://deb.debian.org/debian bookworm/main amd64 python3-setuptools all 66.1.1-1+deb12u2 [522 kB]",
                                "Get:2 http://deb.debian.org/debian bookworm/main amd64 python3-wheel all 0.38.4-2 [30.8 kB]",
                                "Get:3 http://deb.debian.org/debian bookworm/main amd64 python3-pip all 23.0.1+dfsg-1 [1325 kB]",
                                "Fetched 1877 kB in 0s (18.5 MB/s)",
                                "Selecting previously unselected package python3-setuptools.",
                                "(Reading database ... ",
                                "(Reading database ... 5%",
                                "(Reading database ... 10%",
                                "(Reading database ... 15%",
                                "(Reading database ... 20%",
                                "(Reading database ... 25%",
                                "(Reading database ... 30%",
                                "(Reading database ... 35%",
                                "(Reading database ... 40%",
                                "(Reading database ... 45%",
                                "(Reading database ... 50%",
                                "(Reading database ... 55%",
                                "(Reading database ... 60%",
                                "(Reading database ... 65%",
                                "(Reading database ... 70%",
                                "(Reading database ... 75%",
                                "(Reading database ... 80%",
                                "(Reading database ... 85%",
                                "(Reading database ... 90%",
                                "(Reading database ... 95%",
                                "(Reading database ... 100%",
                                "(Reading database ... 27779 files and directories currently installed.)",
                                "Preparing to unpack .../python3-setuptools_66.1.1-1+deb12u2_all.deb ...",
                                "Unpacking python3-setuptools (66.1.1-1+deb12u2) ...",
                                "Selecting previously unselected package python3-wheel.",
                                "Preparing to unpack .../python3-wheel_0.38.4-2_all.deb ...",
                                "Unpacking python3-wheel (0.38.4-2) ...",
                                "Selecting previously unselected package python3-pip.",
                                "Preparing to unpack .../python3-pip_23.0.1+dfsg-1_all.deb ...",
                                "Unpacking python3-pip (23.0.1+dfsg-1) ...",
                                "Setting up python3-setuptools (66.1.1-1+deb12u2) ...",
                                "Setting up python3-wheel (0.38.4-2) ...",
                                "Setting up python3-pip (23.0.1+dfsg-1) ..."
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:33.105965Z",
                            "start": "2026-09-21T05:25:27.422837Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-0000000000bf",
                        "name": "Install Python 3 pip"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ensure_pip_from_packages_with_python2",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:33.128289Z",
                            "start": "2026-09-21T05:25:33.114115Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-0000000000c0",
                        "name": "Install Python 2 pip"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "ansible_python.version.major == 2",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:33.174132Z",
                            "start": "2026-09-21T05:25:33.139265Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000087",
                        "name": "Ensure setuptools"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "python3",
                                "-m",
                                "ensurepip",
                                "--help"
                            ],
                            "delta": "0:00:00.105424",
                            "end": "2026-09-21 05:25:33.552059",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "python3 -m ensurepip --help",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-6548-08d4-000000000088-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:33.446635",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "usage: python -m ensurepip [-h] [--version] [-v] [-U] [--user] [--root ROOT]\n                           [--altinstall] [--default-pip]\n\noptions:\n  -h, --help     show this help message and exit\n  --version      Show the version of pip that is bundled with this Python.\n  -v, --verbose  Give more output. Option is additive, and can be used up to 3\n                 times.\n  -U, --upgrade  Upgrade pip and dependencies, even if already installed.\n  --user         Install using the user scheme.\n  --root ROOT    Install everything relative to this alternate root directory.\n  --altinstall   Make an alternate install, installing only the X.Y versioned\n                 scripts (Default: pipX, pipX.Y, easy_install-X.Y).\n  --default-pip  Make a default pip install, installing the unqualified pip\n                 and easy_install in addition to the versioned scripts.",
                            "stdout_lines": [
                                "usage: python -m ensurepip [-h] [--version] [-v] [-U] [--user] [--root ROOT]",
                                "                           [--altinstall] [--default-pip]",
                                "",
                                "options:",
                                "  -h, --help     show this help message and exit",
                                "  --version      Show the version of pip that is bundled with this Python.",
                                "  -v, --verbose  Give more output. Option is additive, and can be used up to 3",
                                "                 times.",
                                "  -U, --upgrade  Upgrade pip and dependencies, even if already installed.",
                                "  --user         Install using the user scheme.",
                                "  --root ROOT    Install everything relative to this alternate root directory.",
                                "  --altinstall   Make an alternate install, installing only the X.Y versioned",
                                "                 scripts (Default: pipX, pipX.Y, easy_install-X.Y).",
                                "  --default-pip  Make a default pip install, installing the unqualified pip",
                                "                 and easy_install in addition to the versioned scripts."
                            ],
                            "zuul_log_id": "0242ac1f-6606-6548-08d4-000000000088-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:33.713144Z",
                            "start": "2026-09-21T05:25:33.199688Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000088",
                        "name": "Check for ensurepip module"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "package",
                            "changed": false,
                            "false_condition": "_ensurepip_module.rc != 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:33.741861Z",
                            "start": "2026-09-21T05:25:33.718286Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000089",
                        "name": "Ensure python3-venv"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "ensure_pip_from_upstream",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:33.760619Z",
                            "start": "2026-09-21T05:25:33.747248Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000008a",
                        "name": "Install pip from source"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v python3\n",
                            "delta": "0:00:00.007046",
                            "end": "2026-09-21 05:25:34.066122",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v python3\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-6548-08d4-00000000008b-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:34.059076",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "/usr/bin/python3",
                            "stdout_lines": [
                                "/usr/bin/python3"
                            ],
                            "zuul_log_id": "0242ac1f-6606-6548-08d4-00000000008b-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:34.300138Z",
                            "start": "2026-09-21T05:25:33.792363Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000008b",
                        "name": "Probe for venv python full path"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "_host_virtualenv": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:34.365382Z",
                            "start": "2026-09-21T05:25:34.305338Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000008c",
                        "name": "Set host default"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "ensure_pip_virtualenv_command": "/usr/bin/python3 -m venv"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-00000000007f",
                        "name": "ensure-pip",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-pip"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:34.421527Z",
                            "start": "2026-09-21T05:25:34.371995Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000008d",
                        "name": "Set ensure_pip_virtualenv_command"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "command -v tox /home/zuul/.local/tox/bin/tox || exit 1\n",
                            "delta": "0:00:00.005233",
                            "end": "2026-09-21 05:25:34.791633",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "command -v tox /home/zuul/.local/tox/bin/tox || exit 1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-6548-08d4-000000000017-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "start": "2026-09-21 05:25:34.786400",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-6548-08d4-000000000017-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:35.017297Z",
                            "start": "2026-09-21T05:25:34.508525Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000017",
                        "name": "Check if tox is installed"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_preinstalled.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:35.056570Z",
                            "start": "2026-09-21T05:25:35.022385Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-000000000018",
                        "name": "Export preinstalled tox_exectuable"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/usr/bin/python3",
                                "-m",
                                "venv",
                                "/home/zuul/.local/tox"
                            ],
                            "delta": "0:00:04.702284",
                            "end": "2026-09-21 05:25:40.150492",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/usr/bin/python3 -m venv /home/zuul/.local/tox",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-6548-08d4-00000000001a-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:35.448208",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-6548-08d4-00000000001a-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:40.629975Z",
                            "start": "2026-09-21T05:25:35.115221Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000001a",
                        "name": "Create local venv"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/pip",
                                "install",
                                "tox"
                            ],
                            "delta": "0:00:03.586435",
                            "end": "2026-09-21 05:25:44.569862",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/pip install tox",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-6548-08d4-00000000001b-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:40.983427",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "Collecting tox\n  Downloading tox-4.63.0-py3-none-any.whl (229 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 229.3/229.3 kB 5.1 MB/s eta 0:00:00\nCollecting cachetools>=7.0.3\n  Downloading cachetools-7.2.0-py3-none-any.whl (16 kB)\nCollecting colorama>=0.4.6\n  Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)\nCollecting filelock>=3.25\n  Downloading filelock-4.0.1-py3-none-any.whl (106 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 106.2/106.2 kB 15.1 MB/s eta 0:00:00\nCollecting packaging>=26\n  Downloading packaging-26.3-py3-none-any.whl (129 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 130.0/130.0 kB 15.0 MB/s eta 0:00:00\nCollecting platformdirs>=4.9.4\n  Downloading platformdirs-4.11.11-py3-none-any.whl (24 kB)\nCollecting pluggy>=1.6\n  Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)\nCollecting pyproject-api>=1.10\n  Downloading pyproject_api-1.11.2-py3-none-any.whl (13 kB)\nCollecting python-discovery>=1.4.4\n  Downloading python_discovery-1.6.1-py3-none-any.whl (38 kB)\nCollecting tomli-w>=1.2\n  Downloading tomli_w-1.2.0-py3-none-any.whl (6.7 kB)\nCollecting typing-extensions>=4.15\n  Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 45.6/45.6 kB 6.3 MB/s eta 0:00:00\nCollecting virtualenv>=21.1\n  Downloading virtualenv-21.9.0-py3-none-any.whl (5.5 MB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 5.5/5.5 MB 32.4 MB/s eta 0:00:00\nCollecting distlib<1,>=0.3.7\n  Downloading distlib-0.4.3-py2.py3-none-any.whl (470 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 470.6/470.6 kB 19.1 MB/s eta 0:00:00\nCollecting filelock>=3.25\n  Downloading filelock-3.32.7-py3-none-any.whl (100 kB)\n     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 100.2/100.2 kB 12.6 MB/s eta 0:00:00\nInstalling collected packages: distlib, typing-extensions, tomli-w, pluggy, platformdirs, packaging, filelock, colorama, cachetools, python-discovery, pyproject-api, virtualenv, tox\nSuccessfully installed cachetools-7.2.0 colorama-0.4.6 distlib-0.4.3 filelock-3.32.7 packaging-26.3 platformdirs-4.11.11 pluggy-1.6.0 pyproject-api-1.11.2 python-discovery-1.6.1 tomli-w-1.2.0 tox-4.63.0 typing-extensions-4.16.0 virtualenv-21.9.0",
                            "stdout_lines": [
                                "Collecting tox",
                                "  Downloading tox-4.63.0-py3-none-any.whl (229 kB)",
                                "     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 229.3/229.3 kB 5.1 MB/s eta 0:00:00",
                                "Collecting cachetools>=7.0.3",
                                "  Downloading cachetools-7.2.0-py3-none-any.whl (16 kB)",
                                "Collecting colorama>=0.4.6",
                                "  Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)",
                                "Collecting filelock>=3.25",
                                "  Downloading filelock-4.0.1-py3-none-any.whl (106 kB)",
                                "     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 106.2/106.2 kB 15.1 MB/s eta 0:00:00",
                                "Collecting packaging>=26",
                                "  Downloading packaging-26.3-py3-none-any.whl (129 kB)",
                                "     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 130.0/130.0 kB 15.0 MB/s eta 0:00:00",
                                "Collecting platformdirs>=4.9.4",
                                "  Downloading platformdirs-4.11.11-py3-none-any.whl (24 kB)",
                                "Collecting pluggy>=1.6",
                                "  Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)",
                                "Collecting pyproject-api>=1.10",
                                "  Downloading pyproject_api-1.11.2-py3-none-any.whl (13 kB)",
                                "Collecting python-discovery>=1.4.4",
                                "  Downloading python_discovery-1.6.1-py3-none-any.whl (38 kB)",
                                "Collecting tomli-w>=1.2",
                                "  Downloading tomli_w-1.2.0-py3-none-any.whl (6.7 kB)",
                                "Collecting typing-extensions>=4.15",
                                "  Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB)",
                                "     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 45.6/45.6 kB 6.3 MB/s eta 0:00:00",
                                "Collecting virtualenv>=21.1",
                                "  Downloading virtualenv-21.9.0-py3-none-any.whl (5.5 MB)",
                                "     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 5.5/5.5 MB 32.4 MB/s eta 0:00:00",
                                "Collecting distlib<1,>=0.3.7",
                                "  Downloading distlib-0.4.3-py2.py3-none-any.whl (470 kB)",
                                "     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 470.6/470.6 kB 19.1 MB/s eta 0:00:00",
                                "Collecting filelock>=3.25",
                                "  Downloading filelock-3.32.7-py3-none-any.whl (100 kB)",
                                "     \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 100.2/100.2 kB 12.6 MB/s eta 0:00:00",
                                "Installing collected packages: distlib, typing-extensions, tomli-w, pluggy, platformdirs, packaging, filelock, colorama, cachetools, python-discovery, pyproject-api, virtualenv, tox",
                                "Successfully installed cachetools-7.2.0 colorama-0.4.6 distlib-0.4.3 filelock-3.32.7 packaging-26.3 platformdirs-4.11.11 pluggy-1.6.0 pyproject-api-1.11.2 python-discovery-1.6.1 tomli-w-1.2.0 tox-4.63.0 typing-extensions-4.16.0 virtualenv-21.9.0"
                            ],
                            "zuul_log_id": "0242ac1f-6606-6548-08d4-00000000001b-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:44.687711Z",
                            "start": "2026-09-21T05:25:40.672419Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000001b",
                        "name": "Install tox to local venv"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "tox_executable": "/home/zuul/.local/tox/bin/tox"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:44.733244Z",
                            "start": "2026-09-21T05:25:44.698275Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000001c",
                        "name": "Export installed tox_executable path"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.403439",
                            "end": "2026-09-21 05:25:45.418699",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-6548-08d4-00000000001e-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:45.015260",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ROOT: No loadable tox.ini or setup.cfg or pyproject.toml or tox.toml found, assuming empty tox.ini at /home/zuul\n4.63.0 from /home/zuul/.local/tox/lib/python3.11/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "ROOT: No loadable tox.ini or setup.cfg or pyproject.toml or tox.toml found, assuming empty tox.ini at /home/zuul",
                                "4.63.0 from /home/zuul/.local/tox/lib/python3.11/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0242ac1f-6606-6548-08d4-00000000001e-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:45.769443Z",
                            "start": "2026-09-21T05:25:44.758965Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000001e",
                        "name": "Output tox version"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "ensure_global_symlinks",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-6548-08d4-000000000014",
                        "name": "ensure-tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/ensure-tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:45.798044Z",
                            "start": "2026-09-21T05:25:45.781241Z"
                        },
                        "id": "0242ac1f-6606-6548-08d4-00000000001f",
                        "name": "Make global symlink"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 9,
            "failures": 0,
            "ignored": 0,
            "ok": 13,
            "rescued": 0,
            "skipped": 14,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "0",
    "phase": "run",
    "playbook": "github.com/osism/openinfra-zuul-jobs/playbooks/tox/run.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-09-21T05:26:15.221521Z",
                    "start": "2026-09-21T05:25:46.645283Z"
                },
                "id": "0242ac1f-6606-515d-a28c-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "sudo",
                                "-n",
                                "true"
                            ],
                            "delta": "0:00:00.026050",
                            "end": "2026-09-21 05:25:47.136271",
                            "failed_when_result": false,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "sudo -n true",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000008-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:47.110221",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "sudo: unable to resolve host debian: Name or service not known",
                            "stdout_lines": [
                                "sudo: unable to resolve host debian: Name or service not known"
                            ],
                            "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000008-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:47.192552Z",
                            "start": "2026-09-21T05:25:46.678614Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000008",
                        "name": "Check if zuul is sudoer"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "rm",
                                "-rf",
                                "/etc/sudoers.d/zuul",
                                "/etc/sudoers.d/90-cloud-init-users"
                            ],
                            "delta": "0:00:00.005737",
                            "end": "2026-09-21 05:25:47.524506",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "rm -rf /etc/sudoers.d/zuul /etc/sudoers.d/90-cloud-init-users",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000009-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:47.518769",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000009-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:47.732976Z",
                            "start": "2026-09-21T05:25:47.223052Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000009",
                        "name": "Remove sudo access for zuul user."
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "! sudo -n true",
                            "delta": "0:00:00.020146",
                            "end": "2026-09-21 05:25:48.101576",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "! sudo -n true",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-515d-a28c-00000000000a-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:48.081430",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "sudo: unable to resolve host debian: Name or service not known\nsudo: a password is required",
                            "stdout_lines": [
                                "sudo: unable to resolve host debian: Name or service not known",
                                "sudo: a password is required"
                            ],
                            "zuul_log_id": "0242ac1f-6606-515d-a28c-00000000000a-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-000000000006",
                        "name": "revoke-sudo",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/revoke-sudo"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:48.275302Z",
                            "start": "2026-09-21T05:25:47.766833Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-00000000000a",
                        "name": "Prove that general sudo access is actually revoked."
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "stat",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:48.310076Z",
                            "start": "2026-09-21T05:25:48.285410Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-00000000000e",
                        "name": "Check to see if the constraints file exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "fail",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined and not stat_results.stat.exists",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:48.339952Z",
                            "start": "2026-09-21T05:25:48.316006Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-00000000000f",
                        "name": "Fail if constraints file is missing"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_constraints_file is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:48.370936Z",
                            "start": "2026-09-21T05:25:48.346178Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000010",
                        "name": "Record file location"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "include": "siblings.yaml",
                            "include_args": {}
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:48.402270Z",
                            "start": "2026-09-21T05:25:48.376917Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000011",
                        "name": "Install tox siblings"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "--notest",
                                "-edrift-test",
                                "-vv",
                                "--skip-missing-interpreters=false"
                            ],
                            "delta": "0:00:10.966730",
                            "end": "2026-09-21 05:25:59.720217",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox  --notest  -edrift-test  -vv --skip-missing-interpreters=false",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/osism/release",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000053-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:25:48.753487",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ROOT: 269 D setup logging to DEBUG on pid 1594 [tox/report.py:249]\ndrift-test: 303 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]\ndrift-test: 306 I find interpreter for spec PythonSpec(major=3, free_threaded=False) [python_discovery/_discovery.py:131]\ndrift-test: 311 D get interpreter info via cmd: /usr/bin/python3.11 /home/zuul/.local/tox/lib/python3.11/site-packages/python_discovery/_py_info_collect.py ab4b9c311ed56777c94069b4336e028d 49b4af7b2796e0ac5950b78bb5213ab7 [python_discovery/_cached_py_info.py:223]\ndrift-test: 401 D wrote python info of /usr/bin/python3.11 at /home/zuul/.cache/virtualenv/py_info/5/ca3ed784184f1b3bb7c3539bfb45e71710cd27667424f92c2d5bb4df9c107c23.json [virtualenv/app_data/via_disk_folder.py:159]\ndrift-test: 402 D filesystem is case-sensitive [python_discovery/_compat.py:18]\ndrift-test: 403 I proposed PythonInfo(spec=CPython3.11.2.final.0-64-x86_64, system=/usr/bin/python3.11, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:140]\ndrift-test: 403 D accepted PythonInfo(spec=CPython3.11.2.final.0-64-x86_64, system=/usr/bin/python3.11, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:144]\ndrift-test: 407 D symlink on filesystem does work [virtualenv/info.py:51]\ndrift-test: 407 D filesystem is case-sensitive [virtualenv/info.py:28]\ndrift-test: 448 I create virtual environment via CPython3Posix(dest=/home/zuul/src/github.com/osism/release/.tox/drift-test, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:77]\ndrift-test: 449 D create folder /home/zuul/src/github.com/osism/release/.tox/drift-test/bin [virtualenv/util/path/_sync.py:22]\ndrift-test: 449 D create folder /home/zuul/src/github.com/osism/release/.tox/drift-test/include [virtualenv/util/path/_sync.py:22]\ndrift-test: 449 D create folder /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:22]\ndrift-test: 450 D write /home/zuul/src/github.com/osism/release/.tox/drift-test/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:44]\ndrift-test: 450 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \tversion_info = 3.11.2.final.0 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \tversion = 3.11.2 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \texecutable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/osism/release/.tox/drift-test [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \tvirtualenv = 21.9.0 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 450 D \tbase-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 451 D symlink /usr/bin/python3.11 to /home/zuul/src/github.com/osism/release/.tox/drift-test/bin/python [virtualenv/util/path/_sync.py:42]\ndrift-test: 451 D ============================== target debug ============================== [virtualenv/run/session.py:79]\ndrift-test: 451 D debug via /home/zuul/src/github.com/osism/release/.tox/drift-test/bin/python /home/zuul/.local/tox/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:265]\ndrift-test: 451 D {\n  \"sys\": {\n    \"executable\": \"/home/zuul/src/github.com/osism/release/.tox/drift-test/bin/python\",\n    \"_base_executable\": \"/usr/bin/python3.11\",\n    \"prefix\": \"/home/zuul/src/github.com/osism/release/.tox/drift-test\",\n    \"base_prefix\": \"/usr\",\n    \"exec_prefix\": \"/home/zuul/src/github.com/osism/release/.tox/drift-test\",\n    \"base_exec_prefix\": \"/usr\",\n    \"path\": [\n      \"/usr/lib/python311.zip\",\n      \"/usr/lib/python3.11\",\n      \"/usr/lib/python3.11/lib-dynload\",\n      \"/home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages\"\n    ],\n    \"meta_path\": [\n      \"<class '_frozen_importlib.BuiltinImporter'>\",\n      \"<class '_frozen_importlib.FrozenImporter'>\",\n      \"<class '_frozen_importlib_external.PathFinder'>\"\n    ],\n    \"fs_encoding\": \"utf-8\",\n    \"io_encoding\": \"utf-8\"\n  },\n  \"version\": \"3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]\",\n  \"makefile_filename\": \"/usr/lib/python3.11/config-3.11-x86_64-linux-gnu/Makefile\",\n  \"os\": \"<module 'os' (frozen)>\",\n  \"site\": \"<module 'site' (frozen)>\",\n  \"datetime\": \"<module 'datetime' from '/usr/lib/python3.11/datetime.py'>\",\n  \"math\": \"<module 'math' (built-in)>\",\n  \"json\": \"<module 'json' from '/usr/lib/python3.11/json/__init__.py'>\"\n} [virtualenv/run/session.py:80]\ndrift-test: 489 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, via=copy, app_data_dir=/home/zuul/.cache/virtualenv) [virtualenv/run/session.py:84]\ndrift-test: 495 D install setuptools from wheel /home/zuul/.local/tox/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-84.0.0-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:65]\ndrift-test: 496 D install pip from wheel /home/zuul/.local/tox/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-26.2.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:65]\ndrift-test: 499 D build install image for setuptools-84.0.0-py3-none-any.whl to /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any [virtualenv/seed/embed/via_app_data/pip_install/base.py:81]\ndrift-test: 500 D build install image for pip-26.2.1-py3-none-any.whl to /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-26.2.1-py3-none-any [virtualenv/seed/embed/via_app_data/pip_install/base.py:81]\ndrift-test: 903 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/setuptools to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:50]\ndrift-test: 991 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-26.2.1-py3-none-any/pip to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:50]\ndrift-test: 1072 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/setuptools-84.0.0.dist-info to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/setuptools-84.0.0.dist-info [virtualenv/util/path/_sync.py:50]\ndrift-test: 1076 D copy /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/distutils-precedence.pth to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:50]\ndrift-test: 1078 D copy /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/setuptools-84.0.0.virtualenv to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/setuptools-84.0.0.virtualenv [virtualenv/util/path/_sync.py:50]\ndrift-test: 1080 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/_distutils_hack to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:50]\ndrift-test: 1081 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:69]\ndrift-test: 1122 D copy /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-26.2.1-py3-none-any/pip-26.2.1.virtualenv to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/pip-26.2.1.virtualenv [virtualenv/util/path/_sync.py:50]\ndrift-test: 1123 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-26.2.1-py3-none-any/pip-26.2.1.dist-info to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/pip-26.2.1.dist-info [virtualenv/util/path/_sync.py:50]\ndrift-test: 1131 D generated console scripts pip3 pip-3.11 pip pip3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:69]\ndrift-test: 1132 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python, Xonsh [virtualenv/run/session.py:90]\ndrift-test: 1143 D write /home/zuul/src/github.com/osism/release/.tox/drift-test/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:44]\ndrift-test: 1144 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1144 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1144 D \tversion_info = 3.11.2.final.0 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1144 D \tversion = 3.11.2 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1144 D \texecutable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1144 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/osism/release/.tox/drift-test [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1144 D \tvirtualenv = 21.9.0 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1144 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1145 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1145 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1145 D \tbase-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:54]\ndrift-test: 1152 W install_deps> python -I -m pip install -r requirements.txt [tox/tox_env/api.py:487]\nCollecting GitPython==3.1.62 (from -r requirements.txt (line 1))\n  Downloading gitpython-3.1.62-py3-none-any.whl.metadata (13 kB)\nCollecting PyDriller==2.12 (from -r requirements.txt (line 2))\n  Downloading pydriller-2.12-py3-none-any.whl.metadata (1.5 kB)\nCollecting PyGithub==2.10.0 (from -r requirements.txt (line 3))\n  Downloading pygithub-2.10.0-py3-none-any.whl.metadata (3.9 kB)\nCollecting PyYAML==6.0.3 (from -r requirements.txt (line 4))\n  Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)\nCollecting dictdiffer==0.10.0 (from -r requirements.txt (line 5))\n  Downloading dictdiffer-0.10.0-py3-none-any.whl.metadata (2.9 kB)\nCollecting docker==7.2.0 (from -r requirements.txt (line 6))\n  Downloading docker-7.2.0-py3-none-any.whl.metadata (3.8 kB)\nCollecting pytest==9.1.1 (from -r requirements.txt (line 7))\n  Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB)\nCollecting requests==2.34.2 (from -r requirements.txt (line 8))\n  Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)\nCollecting responses==0.26.3 (from -r requirements.txt (line 9))\n  Downloading responses-0.26.3-py3-none-any.whl.metadata (48 kB)\nCollecting ruamel.yaml==0.19.1 (from -r requirements.txt (line 10))\n  Downloading ruamel_yaml-0.19.1-py3-none-any.whl.metadata (16 kB)\nCollecting tabulate==0.10.0 (from -r requirements.txt (line 11))\n  Downloading tabulate-0.10.0-py3-none-any.whl.metadata (40 kB)\nCollecting gitdb<5,>=4.0.1 (from GitPython==3.1.62->-r requirements.txt (line 1))\n  Downloading gitdb-4.0.12-py3-none-any.whl.metadata (1.2 kB)\nCollecting pytz (from PyDriller==2.12->-r requirements.txt (line 2))\n  Downloading pytz-2026.3.post1-py2.py3-none-any.whl.metadata (22 kB)\nCollecting types-pytz (from PyDriller==2.12->-r requirements.txt (line 2))\n  Downloading types_pytz-2026.3.1.20260727-py3-none-any.whl.metadata (1.7 kB)\nCollecting lizard (from PyDriller==2.12->-r requirements.txt (line 2))\n  Downloading lizard-1.24.0-py2.py3-none-any.whl.metadata (17 kB)\nCollecting pynacl>=1.4.0 (from PyGithub==2.10.0->-r requirements.txt (line 3))\n  Downloading pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl.metadata (10.0 kB)\nCollecting pyjwt>=2.4.0 (from pyjwt[crypto]>=2.4.0->PyGithub==2.10.0->-r requirements.txt (line 3))\n  Downloading pyjwt-2.14.0-py3-none-any.whl.metadata (3.4 kB)\nCollecting typing-extensions>=4.5.0 (from PyGithub==2.10.0->-r requirements.txt (line 3))\n  Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)\nCollecting urllib3>=1.26.0 (from PyGithub==2.10.0->-r requirements.txt (line 3))\n  Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB)\nCollecting iniconfig>=1.0.1 (from pytest==9.1.1->-r requirements.txt (line 7))\n  Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting packaging>=22 (from pytest==9.1.1->-r requirements.txt (line 7))\n  Downloading packaging-26.3-py3-none-any.whl.metadata (3.5 kB)\nCollecting pluggy<2,>=1.5 (from pytest==9.1.1->-r requirements.txt (line 7))\n  Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)\nCollecting pygments>=2.7.2 (from pytest==9.1.1->-r requirements.txt (line 7))\n  Downloading pygments-2.21.0-py3-none-any.whl.metadata (2.5 kB)\nCollecting charset_normalizer<4,>=2 (from requests==2.34.2->-r requirements.txt (line 8))\n  Downloading charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (45 kB)\nCollecting idna<4,>=2.5 (from requests==2.34.2->-r requirements.txt (line 8))\n  Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB)\nCollecting certifi>=2023.5.7 (from requests==2.34.2->-r requirements.txt (line 8))\n  Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB)\nCollecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->GitPython==3.1.62->-r requirements.txt (line 1))\n  Downloading smmap-5.0.3-py3-none-any.whl.metadata (4.6 kB)\nCollecting cryptography>=3.4.0 (from pyjwt[crypto]>=2.4.0->PyGithub==2.10.0->-r requirements.txt (line 3))\n  Downloading cryptography-50.0.1-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (4.3 kB)\nCollecting cffi>=2.0.0 (from cryptography>=3.4.0->pyjwt[crypto]>=2.4.0->PyGithub==2.10.0->-r requirements.txt (line 3))\n  Downloading cffi-2.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.5 kB)\nCollecting pycparser (from cffi>=2.0.0->cryptography>=3.4.0->pyjwt[crypto]>=2.4.0->PyGithub==2.10.0->-r requirements.txt (line 3))\n  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)\nCollecting pathspec (from lizard->PyDriller==2.12->-r requirements.txt (line 2))\n  Downloading pathspec-1.1.1-py3-none-any.whl.metadata (14 kB)\nDownloading gitpython-3.1.62-py3-none-any.whl (222 kB)\nDownloading pydriller-2.12-py3-none-any.whl (37 kB)\nDownloading pygithub-2.10.0-py3-none-any.whl (455 kB)\nDownloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 806.6/806.6 kB 24.9 MB/s  0:00:00\nDownloading dictdiffer-0.10.0-py3-none-any.whl (16 kB)\nDownloading docker-7.2.0-py3-none-any.whl (148 kB)\nDownloading pytest-9.1.1-py3-none-any.whl (386 kB)\nDownloading requests-2.34.2-py3-none-any.whl (73 kB)\nDownloading responses-0.26.3-py3-none-any.whl (36 kB)\nDownloading ruamel_yaml-0.19.1-py3-none-any.whl (118 kB)\nDownloading tabulate-0.10.0-py3-none-any.whl (39 kB)\nDownloading charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (262 kB)\nDownloading gitdb-4.0.12-py3-none-any.whl (62 kB)\nDownloading idna-3.20-py3-none-any.whl (69 kB)\nDownloading pluggy-1.6.0-py3-none-any.whl (20 kB)\nDownloading smmap-5.0.3-py3-none-any.whl (24 kB)\nDownloading urllib3-2.8.0-py3-none-any.whl (135 kB)\nDownloading certifi-2026.7.22-py3-none-any.whl (136 kB)\nDownloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)\nDownloading packaging-26.3-py3-none-any.whl (129 kB)\nDownloading pygments-2.21.0-py3-none-any.whl (1.3 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.3/1.3 MB 28.7 MB/s  0:00:00\nDownloading pyjwt-2.14.0-py3-none-any.whl (32 kB)\nDownloading cryptography-50.0.1-cp311-abi3-manylinux_2_34_x86_64.whl (4.7 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 4.7/4.7 MB 46.0 MB/s  0:00:00\nDownloading cffi-2.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (217 kB)\nDownloading pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl (1.4 MB)\n   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.4/1.4 MB 32.9 MB/s  0:00:00\nDownloading typing_extensions-4.16.0-py3-none-any.whl (45 kB)\nDownloading lizard-1.24.0-py2.py3-none-any.whl (111 kB)\nDownloading pathspec-1.1.1-py3-none-any.whl (57 kB)\nDownloading pycparser-3.0-py3-none-any.whl (48 kB)\nDownloading pytz-2026.3.post1-py2.py3-none-any.whl (508 kB)\nDownloading types_pytz-2026.3.1.20260727-py3-none-any.whl (10 kB)\nInstalling collected packages: pytz, urllib3, typing-extensions, types-pytz, tabulate, smmap, ruamel.yaml, PyYAML, pyjwt, pygments, pycparser, pluggy, pathspec, packaging, iniconfig, idna, dictdiffer, charset_normalizer, certifi, requests, pytest, lizard, gitdb, cffi, responses, pynacl, GitPython, docker, cryptography, PyDriller, PyGithub\n\nSuccessfully installed GitPython-3.1.62 PyDriller-2.12 PyGithub-2.10.0 PyYAML-6.0.3 certifi-2026.7.22 cffi-2.1.1 charset_normalizer-3.5.1 cryptography-50.0.1 dictdiffer-0.10.0 docker-7.2.0 gitdb-4.0.12 idna-3.20 iniconfig-2.3.0 lizard-1.24.0 packaging-26.3 pathspec-1.1.1 pluggy-1.6.0 pycparser-3.0 pygments-2.21.0 pyjwt-2.14.0 pynacl-1.6.2 pytest-9.1.1 pytz-2026.3.post1 requests-2.34.2 responses-0.26.3 ruamel.yaml-0.19.1 smmap-5.0.3 tabulate-0.10.0 types-pytz-2026.3.1.20260727 typing-extensions-4.16.0 urllib3-2.8.0\ndrift-test: 10842 I exit 0 (9.69 seconds) /home/zuul/src/github.com/osism/release> python -I -m pip install -r requirements.txt pid=1607 [tox/execute/api.py:337]\n  drift-test: OK (10.55 seconds)\n  congratulations :) (10.58 seconds)",
                            "stdout_lines": [
                                "ROOT: 269 D setup logging to DEBUG on pid 1594 [tox/report.py:249]",
                                "drift-test: 303 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]",
                                "drift-test: 306 I find interpreter for spec PythonSpec(major=3, free_threaded=False) [python_discovery/_discovery.py:131]",
                                "drift-test: 311 D get interpreter info via cmd: /usr/bin/python3.11 /home/zuul/.local/tox/lib/python3.11/site-packages/python_discovery/_py_info_collect.py ab4b9c311ed56777c94069b4336e028d 49b4af7b2796e0ac5950b78bb5213ab7 [python_discovery/_cached_py_info.py:223]",
                                "drift-test: 401 D wrote python info of /usr/bin/python3.11 at /home/zuul/.cache/virtualenv/py_info/5/ca3ed784184f1b3bb7c3539bfb45e71710cd27667424f92c2d5bb4df9c107c23.json [virtualenv/app_data/via_disk_folder.py:159]",
                                "drift-test: 402 D filesystem is case-sensitive [python_discovery/_compat.py:18]",
                                "drift-test: 403 I proposed PythonInfo(spec=CPython3.11.2.final.0-64-x86_64, system=/usr/bin/python3.11, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:140]",
                                "drift-test: 403 D accepted PythonInfo(spec=CPython3.11.2.final.0-64-x86_64, system=/usr/bin/python3.11, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:144]",
                                "drift-test: 407 D symlink on filesystem does work [virtualenv/info.py:51]",
                                "drift-test: 407 D filesystem is case-sensitive [virtualenv/info.py:28]",
                                "drift-test: 448 I create virtual environment via CPython3Posix(dest=/home/zuul/src/github.com/osism/release/.tox/drift-test, clear=False, no_vcs_ignore=False, global=False) [virtualenv/run/session.py:77]",
                                "drift-test: 449 D create folder /home/zuul/src/github.com/osism/release/.tox/drift-test/bin [virtualenv/util/path/_sync.py:22]",
                                "drift-test: 449 D create folder /home/zuul/src/github.com/osism/release/.tox/drift-test/include [virtualenv/util/path/_sync.py:22]",
                                "drift-test: 449 D create folder /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages [virtualenv/util/path/_sync.py:22]",
                                "drift-test: 450 D write /home/zuul/src/github.com/osism/release/.tox/drift-test/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:44]",
                                "drift-test: 450 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \tversion_info = 3.11.2.final.0 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \tversion = 3.11.2 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \texecutable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/osism/release/.tox/drift-test [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \tvirtualenv = 21.9.0 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 450 D \tbase-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 451 D symlink /usr/bin/python3.11 to /home/zuul/src/github.com/osism/release/.tox/drift-test/bin/python [virtualenv/util/path/_sync.py:42]",
                                "drift-test: 451 D ============================== target debug ============================== [virtualenv/run/session.py:79]",
                                "drift-test: 451 D debug via /home/zuul/src/github.com/osism/release/.tox/drift-test/bin/python /home/zuul/.local/tox/lib/python3.11/site-packages/virtualenv/create/debug.py [virtualenv/create/creator.py:265]",
                                "drift-test: 451 D {",
                                "  \"sys\": {",
                                "    \"executable\": \"/home/zuul/src/github.com/osism/release/.tox/drift-test/bin/python\",",
                                "    \"_base_executable\": \"/usr/bin/python3.11\",",
                                "    \"prefix\": \"/home/zuul/src/github.com/osism/release/.tox/drift-test\",",
                                "    \"base_prefix\": \"/usr\",",
                                "    \"exec_prefix\": \"/home/zuul/src/github.com/osism/release/.tox/drift-test\",",
                                "    \"base_exec_prefix\": \"/usr\",",
                                "    \"path\": [",
                                "      \"/usr/lib/python311.zip\",",
                                "      \"/usr/lib/python3.11\",",
                                "      \"/usr/lib/python3.11/lib-dynload\",",
                                "      \"/home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages\"",
                                "    ],",
                                "    \"meta_path\": [",
                                "      \"<class '_frozen_importlib.BuiltinImporter'>\",",
                                "      \"<class '_frozen_importlib.FrozenImporter'>\",",
                                "      \"<class '_frozen_importlib_external.PathFinder'>\"",
                                "    ],",
                                "    \"fs_encoding\": \"utf-8\",",
                                "    \"io_encoding\": \"utf-8\"",
                                "  },",
                                "  \"version\": \"3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]\",",
                                "  \"makefile_filename\": \"/usr/lib/python3.11/config-3.11-x86_64-linux-gnu/Makefile\",",
                                "  \"os\": \"<module 'os' (frozen)>\",",
                                "  \"site\": \"<module 'site' (frozen)>\",",
                                "  \"datetime\": \"<module 'datetime' from '/usr/lib/python3.11/datetime.py'>\",",
                                "  \"math\": \"<module 'math' (built-in)>\",",
                                "  \"json\": \"<module 'json' from '/usr/lib/python3.11/json/__init__.py'>\"",
                                "} [virtualenv/run/session.py:80]",
                                "drift-test: 489 I add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, via=copy, app_data_dir=/home/zuul/.cache/virtualenv) [virtualenv/run/session.py:84]",
                                "drift-test: 495 D install setuptools from wheel /home/zuul/.local/tox/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-84.0.0-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:65]",
                                "drift-test: 496 D install pip from wheel /home/zuul/.local/tox/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-26.2.1-py3-none-any.whl via CopyPipInstall [virtualenv/seed/embed/via_app_data/via_app_data.py:65]",
                                "drift-test: 499 D build install image for setuptools-84.0.0-py3-none-any.whl to /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any [virtualenv/seed/embed/via_app_data/pip_install/base.py:81]",
                                "drift-test: 500 D build install image for pip-26.2.1-py3-none-any.whl to /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-26.2.1-py3-none-any [virtualenv/seed/embed/via_app_data/pip_install/base.py:81]",
                                "drift-test: 903 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/setuptools to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/setuptools [virtualenv/util/path/_sync.py:50]",
                                "drift-test: 991 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-26.2.1-py3-none-any/pip to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/pip [virtualenv/util/path/_sync.py:50]",
                                "drift-test: 1072 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/setuptools-84.0.0.dist-info to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/setuptools-84.0.0.dist-info [virtualenv/util/path/_sync.py:50]",
                                "drift-test: 1076 D copy /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/distutils-precedence.pth to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/distutils-precedence.pth [virtualenv/util/path/_sync.py:50]",
                                "drift-test: 1078 D copy /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/setuptools-84.0.0.virtualenv to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/setuptools-84.0.0.virtualenv [virtualenv/util/path/_sync.py:50]",
                                "drift-test: 1080 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-84.0.0-py3-none-any/_distutils_hack to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/_distutils_hack [virtualenv/util/path/_sync.py:50]",
                                "drift-test: 1081 D generated console scripts  [virtualenv/seed/embed/via_app_data/pip_install/base.py:69]",
                                "drift-test: 1122 D copy /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-26.2.1-py3-none-any/pip-26.2.1.virtualenv to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/pip-26.2.1.virtualenv [virtualenv/util/path/_sync.py:50]",
                                "drift-test: 1123 D copy directory /home/zuul/.cache/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-26.2.1-py3-none-any/pip-26.2.1.dist-info to /home/zuul/src/github.com/osism/release/.tox/drift-test/lib/python3.11/site-packages/pip-26.2.1.dist-info [virtualenv/util/path/_sync.py:50]",
                                "drift-test: 1131 D generated console scripts pip3 pip-3.11 pip pip3.11 [virtualenv/seed/embed/via_app_data/pip_install/base.py:69]",
                                "drift-test: 1132 I add activators for Bash, CShell, Fish, Nushell, PowerShell, Python, Xonsh [virtualenv/run/session.py:90]",
                                "drift-test: 1143 D write /home/zuul/src/github.com/osism/release/.tox/drift-test/pyvenv.cfg [virtualenv/create/pyenv_cfg.py:44]",
                                "drift-test: 1144 D \thome = /usr/bin [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1144 D \timplementation = CPython [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1144 D \tversion_info = 3.11.2.final.0 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1144 D \tversion = 3.11.2 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1144 D \texecutable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1144 D \tcommand = /home/zuul/.local/tox/bin/python3 -m virtualenv /home/zuul/src/github.com/osism/release/.tox/drift-test [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1144 D \tvirtualenv = 21.9.0 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1144 D \tinclude-system-site-packages = false [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1145 D \tbase-prefix = /usr [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1145 D \tbase-exec-prefix = /usr [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1145 D \tbase-executable = /usr/bin/python3.11 [virtualenv/create/pyenv_cfg.py:54]",
                                "drift-test: 1152 W install_deps> python -I -m pip install -r requirements.txt [tox/tox_env/api.py:487]",
                                "Collecting GitPython==3.1.62 (from -r requirements.txt (line 1))",
                                "  Downloading gitpython-3.1.62-py3-none-any.whl.metadata (13 kB)",
                                "Collecting PyDriller==2.12 (from -r requirements.txt (line 2))",
                                "  Downloading pydriller-2.12-py3-none-any.whl.metadata (1.5 kB)",
                                "Collecting PyGithub==2.10.0 (from -r requirements.txt (line 3))",
                                "  Downloading pygithub-2.10.0-py3-none-any.whl.metadata (3.9 kB)",
                                "Collecting PyYAML==6.0.3 (from -r requirements.txt (line 4))",
                                "  Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB)",
                                "Collecting dictdiffer==0.10.0 (from -r requirements.txt (line 5))",
                                "  Downloading dictdiffer-0.10.0-py3-none-any.whl.metadata (2.9 kB)",
                                "Collecting docker==7.2.0 (from -r requirements.txt (line 6))",
                                "  Downloading docker-7.2.0-py3-none-any.whl.metadata (3.8 kB)",
                                "Collecting pytest==9.1.1 (from -r requirements.txt (line 7))",
                                "  Downloading pytest-9.1.1-py3-none-any.whl.metadata (7.6 kB)",
                                "Collecting requests==2.34.2 (from -r requirements.txt (line 8))",
                                "  Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting responses==0.26.3 (from -r requirements.txt (line 9))",
                                "  Downloading responses-0.26.3-py3-none-any.whl.metadata (48 kB)",
                                "Collecting ruamel.yaml==0.19.1 (from -r requirements.txt (line 10))",
                                "  Downloading ruamel_yaml-0.19.1-py3-none-any.whl.metadata (16 kB)",
                                "Collecting tabulate==0.10.0 (from -r requirements.txt (line 11))",
                                "  Downloading tabulate-0.10.0-py3-none-any.whl.metadata (40 kB)",
                                "Collecting gitdb<5,>=4.0.1 (from GitPython==3.1.62->-r requirements.txt (line 1))",
                                "  Downloading gitdb-4.0.12-py3-none-any.whl.metadata (1.2 kB)",
                                "Collecting pytz (from PyDriller==2.12->-r requirements.txt (line 2))",
                                "  Downloading pytz-2026.3.post1-py2.py3-none-any.whl.metadata (22 kB)",
                                "Collecting types-pytz (from PyDriller==2.12->-r requirements.txt (line 2))",
                                "  Downloading types_pytz-2026.3.1.20260727-py3-none-any.whl.metadata (1.7 kB)",
                                "Collecting lizard (from PyDriller==2.12->-r requirements.txt (line 2))",
                                "  Downloading lizard-1.24.0-py2.py3-none-any.whl.metadata (17 kB)",
                                "Collecting pynacl>=1.4.0 (from PyGithub==2.10.0->-r requirements.txt (line 3))",
                                "  Downloading pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl.metadata (10.0 kB)",
                                "Collecting pyjwt>=2.4.0 (from pyjwt[crypto]>=2.4.0->PyGithub==2.10.0->-r requirements.txt (line 3))",
                                "  Downloading pyjwt-2.14.0-py3-none-any.whl.metadata (3.4 kB)",
                                "Collecting typing-extensions>=4.5.0 (from PyGithub==2.10.0->-r requirements.txt (line 3))",
                                "  Downloading typing_extensions-4.16.0-py3-none-any.whl.metadata (3.3 kB)",
                                "Collecting urllib3>=1.26.0 (from PyGithub==2.10.0->-r requirements.txt (line 3))",
                                "  Downloading urllib3-2.8.0-py3-none-any.whl.metadata (7.4 kB)",
                                "Collecting iniconfig>=1.0.1 (from pytest==9.1.1->-r requirements.txt (line 7))",
                                "  Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting packaging>=22 (from pytest==9.1.1->-r requirements.txt (line 7))",
                                "  Downloading packaging-26.3-py3-none-any.whl.metadata (3.5 kB)",
                                "Collecting pluggy<2,>=1.5 (from pytest==9.1.1->-r requirements.txt (line 7))",
                                "  Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)",
                                "Collecting pygments>=2.7.2 (from pytest==9.1.1->-r requirements.txt (line 7))",
                                "  Downloading pygments-2.21.0-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting charset_normalizer<4,>=2 (from requests==2.34.2->-r requirements.txt (line 8))",
                                "  Downloading charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (45 kB)",
                                "Collecting idna<4,>=2.5 (from requests==2.34.2->-r requirements.txt (line 8))",
                                "  Downloading idna-3.20-py3-none-any.whl.metadata (7.2 kB)",
                                "Collecting certifi>=2023.5.7 (from requests==2.34.2->-r requirements.txt (line 8))",
                                "  Downloading certifi-2026.7.22-py3-none-any.whl.metadata (2.5 kB)",
                                "Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->GitPython==3.1.62->-r requirements.txt (line 1))",
                                "  Downloading smmap-5.0.3-py3-none-any.whl.metadata (4.6 kB)",
                                "Collecting cryptography>=3.4.0 (from pyjwt[crypto]>=2.4.0->PyGithub==2.10.0->-r requirements.txt (line 3))",
                                "  Downloading cryptography-50.0.1-cp311-abi3-manylinux_2_34_x86_64.whl.metadata (4.3 kB)",
                                "Collecting cffi>=2.0.0 (from cryptography>=3.4.0->pyjwt[crypto]>=2.4.0->PyGithub==2.10.0->-r requirements.txt (line 3))",
                                "  Downloading cffi-2.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.5 kB)",
                                "Collecting pycparser (from cffi>=2.0.0->cryptography>=3.4.0->pyjwt[crypto]>=2.4.0->PyGithub==2.10.0->-r requirements.txt (line 3))",
                                "  Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB)",
                                "Collecting pathspec (from lizard->PyDriller==2.12->-r requirements.txt (line 2))",
                                "  Downloading pathspec-1.1.1-py3-none-any.whl.metadata (14 kB)",
                                "Downloading gitpython-3.1.62-py3-none-any.whl (222 kB)",
                                "Downloading pydriller-2.12-py3-none-any.whl (37 kB)",
                                "Downloading pygithub-2.10.0-py3-none-any.whl (455 kB)",
                                "Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 806.6/806.6 kB 24.9 MB/s  0:00:00",
                                "Downloading dictdiffer-0.10.0-py3-none-any.whl (16 kB)",
                                "Downloading docker-7.2.0-py3-none-any.whl (148 kB)",
                                "Downloading pytest-9.1.1-py3-none-any.whl (386 kB)",
                                "Downloading requests-2.34.2-py3-none-any.whl (73 kB)",
                                "Downloading responses-0.26.3-py3-none-any.whl (36 kB)",
                                "Downloading ruamel_yaml-0.19.1-py3-none-any.whl (118 kB)",
                                "Downloading tabulate-0.10.0-py3-none-any.whl (39 kB)",
                                "Downloading charset_normalizer-3.5.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (262 kB)",
                                "Downloading gitdb-4.0.12-py3-none-any.whl (62 kB)",
                                "Downloading idna-3.20-py3-none-any.whl (69 kB)",
                                "Downloading pluggy-1.6.0-py3-none-any.whl (20 kB)",
                                "Downloading smmap-5.0.3-py3-none-any.whl (24 kB)",
                                "Downloading urllib3-2.8.0-py3-none-any.whl (135 kB)",
                                "Downloading certifi-2026.7.22-py3-none-any.whl (136 kB)",
                                "Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)",
                                "Downloading packaging-26.3-py3-none-any.whl (129 kB)",
                                "Downloading pygments-2.21.0-py3-none-any.whl (1.3 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.3/1.3 MB 28.7 MB/s  0:00:00",
                                "Downloading pyjwt-2.14.0-py3-none-any.whl (32 kB)",
                                "Downloading cryptography-50.0.1-cp311-abi3-manylinux_2_34_x86_64.whl (4.7 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 4.7/4.7 MB 46.0 MB/s  0:00:00",
                                "Downloading cffi-2.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (217 kB)",
                                "Downloading pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl (1.4 MB)",
                                "   \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 1.4/1.4 MB 32.9 MB/s  0:00:00",
                                "Downloading typing_extensions-4.16.0-py3-none-any.whl (45 kB)",
                                "Downloading lizard-1.24.0-py2.py3-none-any.whl (111 kB)",
                                "Downloading pathspec-1.1.1-py3-none-any.whl (57 kB)",
                                "Downloading pycparser-3.0-py3-none-any.whl (48 kB)",
                                "Downloading pytz-2026.3.post1-py2.py3-none-any.whl (508 kB)",
                                "Downloading types_pytz-2026.3.1.20260727-py3-none-any.whl (10 kB)",
                                "Installing collected packages: pytz, urllib3, typing-extensions, types-pytz, tabulate, smmap, ruamel.yaml, PyYAML, pyjwt, pygments, pycparser, pluggy, pathspec, packaging, iniconfig, idna, dictdiffer, charset_normalizer, certifi, requests, pytest, lizard, gitdb, cffi, responses, pynacl, GitPython, docker, cryptography, PyDriller, PyGithub",
                                "",
                                "Successfully installed GitPython-3.1.62 PyDriller-2.12 PyGithub-2.10.0 PyYAML-6.0.3 certifi-2026.7.22 cffi-2.1.1 charset_normalizer-3.5.1 cryptography-50.0.1 dictdiffer-0.10.0 docker-7.2.0 gitdb-4.0.12 idna-3.20 iniconfig-2.3.0 lizard-1.24.0 packaging-26.3 pathspec-1.1.1 pluggy-1.6.0 pycparser-3.0 pygments-2.21.0 pyjwt-2.14.0 pynacl-1.6.2 pytest-9.1.1 pytz-2026.3.post1 requests-2.34.2 responses-0.26.3 ruamel.yaml-0.19.1 smmap-5.0.3 tabulate-0.10.0 types-pytz-2026.3.1.20260727 typing-extensions-4.16.0 urllib3-2.8.0",
                                "drift-test: 10842 I exit 0 (9.69 seconds) /home/zuul/src/github.com/osism/release> python -I -m pip install -r requirements.txt pid=1607 [tox/execute/api.py:337]",
                                "  drift-test: OK (10.55 seconds)",
                                "  congratulations :) (10.58 seconds)"
                            ],
                            "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000053-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:25:59.971600Z",
                            "start": "2026-09-21T05:25:48.450724Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000053",
                        "name": "Run tox without tests"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "tempfile",
                            "changed": true,
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "path": null,
                                    "prefix": "ansible.",
                                    "state": "file",
                                    "suffix": ""
                                }
                            },
                            "mode": "0600",
                            "owner": "zuul",
                            "path": "/tmp/ansible.5xplc7t1",
                            "size": 0,
                            "state": "file",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:00.413314Z",
                            "start": "2026-09-21T05:25:59.982975Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000054",
                        "name": "Create a tempfile to save tox showconfig"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "--version",
                                "--quiet"
                            ],
                            "delta": "0:00:00.376240",
                            "end": "2026-09-21 05:26:01.093989",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox --version --quiet",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/osism/release",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000055-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:26:00.717749",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "4.63.0 from /home/zuul/.local/tox/lib/python3.11/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "4.63.0 from /home/zuul/.local/tox/lib/python3.11/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000055-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:01.453513Z",
                            "start": "2026-09-21T05:26:00.439665Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000055",
                        "name": "Detect tox version"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "shell",
                            "changed": true,
                            "cmd": "/home/zuul/.local/tox/bin/tox   config   -edrift-test  > /tmp/ansible.5xplc7t1",
                            "delta": "0:00:00.425517",
                            "end": "2026-09-21 05:26:02.194535",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox   config   -edrift-test  > /tmp/ansible.5xplc7t1",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": "src/github.com/osism/release",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000056-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:26:01.769018",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000056-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:02.509170Z",
                            "start": "2026-09-21T05:26:01.498339Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000056",
                        "name": "Get tox envlist config"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "tox_install_sibling_packages",
                            "changed": false,
                            "invocation": {
                                "module_args": {
                                    "project_dir": "src/github.com/osism/release",
                                    "projects": [],
                                    "tox_constraints_file": null,
                                    "tox_package_name": null,
                                    "tox_show_config": "/tmp/ansible.5xplc7t1"
                                }
                            },
                            "msg": "No setup.cfg, no action needed"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:03.015992Z",
                            "start": "2026-09-21T05:26:02.518375Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000057",
                        "name": "Install any sibling python packages"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/tmp/ansible.5xplc7t1",
                                    "state": "absent"
                                },
                                "before": {
                                    "path": "/tmp/ansible.5xplc7t1",
                                    "state": "file"
                                }
                            },
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": null,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/tmp/ansible.5xplc7t1",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "absent",
                                    "unsafe_writes": false
                                }
                            },
                            "path": "/tmp/ansible.5xplc7t1",
                            "state": "absent"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:03.529691Z",
                            "start": "2026-09-21T05:26:03.022359Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000058",
                        "name": "Remove tempfile"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "debug",
                            "changed": false,
                            "msg": "/home/zuul/.local/tox/bin/tox   -edrift-test  -vv --skip-missing-interpreters=false"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:03.579228Z",
                            "start": "2026-09-21T05:26:03.535037Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000012",
                        "name": "Emit tox command"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "-edrift-test",
                                "-vv",
                                "--skip-missing-interpreters=false"
                            ],
                            "delta": "0:00:10.733958",
                            "end": "2026-09-21 05:26:14.619605",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox   -edrift-test  -vv --skip-missing-interpreters=false",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": "src/github.com/osism/release",
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000014-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:26:03.885647",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ROOT: 245 D setup logging to DEBUG on pid 1764 [tox/report.py:249]\ndrift-test: 279 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]\ndrift-test: 284 I find interpreter for spec PythonSpec(major=3, free_threaded=False) [python_discovery/_discovery.py:131]\ndrift-test: 289 D got python info of /usr/bin/python3.11 from /home/zuul/.cache/virtualenv/py_info/5/ca3ed784184f1b3bb7c3539bfb45e71710cd27667424f92c2d5bb4df9c107c23.json [virtualenv/app_data/via_disk_folder.py:139]\ndrift-test: 289 D filesystem is case-sensitive [python_discovery/_compat.py:18]\ndrift-test: 289 I proposed PythonInfo(spec=CPython3.11.2.final.0-64-x86_64, system=/usr/bin/python3.11, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:140]\ndrift-test: 289 D accepted PythonInfo(spec=CPython3.11.2.final.0-64-x86_64, system=/usr/bin/python3.11, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:144]\ndrift-test: 291 D symlink on filesystem does work [virtualenv/info.py:51]\ndrift-test: 291 D filesystem is case-sensitive [virtualenv/info.py:28]\ndrift-test: 329 W commands[0]> pytest tests/ -v [tox/tox_env/api.py:487]\n============================= test session starts ==============================\nplatform linux -- Python 3.11.2, pytest-9.1.1, pluggy-1.6.0 -- /home/zuul/src/github.com/osism/release/.tox/drift-test/bin/python\ncachedir: .tox/drift-test/.pytest_cache\nrootdir: /home/zuul/src/github.com/osism/release\ncollecting ... collected 790 items\n\ntests/catalog_drift/test_catalog_extract.py::test_collections_collect_nested_roles PASSED [  0%]\ntests/catalog_drift/test_catalog_extract.py::test_validators_default_the_playbook_name PASSED [  0%]\ntests/catalog_drift/test_catalog_extract.py::test_non_literal_map_role2role_raises PASSED [  0%]\ntests/catalog_drift/test_catalog_extract.py::test_missing_assignment_raises PASSED [  0%]\ntests/catalog_drift/test_catalog_extract.py::test_non_literal_validate_playbooks_raises PASSED [  0%]\ntests/catalog_drift/test_catalog_extract.py::test_role_with_non_literal_name_raises PASSED [  0%]\ntests/catalog_drift/test_catalog_extract.py::test_validator_entry_without_runtime_raises PASSED [  0%]\ntests/catalog_drift/test_catalog_extract.py::test_validate_playbooks_non_dict_literal_raises PASSED [  1%]\ntests/catalog_drift/test_catalog_extract.py::test_validator_entry_non_dict_raises PASSED [  1%]\ntests/catalog_drift/test_catalog_extract.py::test_non_literal_collection_key_raises PASSED [  1%]\ntests/catalog_drift/test_catalog_extract.py::test_collections_carry_release_bounds PASSED [  1%]\ntests/catalog_drift/test_catalog_extract.py::test_role_with_unknown_keyword_raises PASSED [  1%]\ntests/catalog_drift/test_catalog_extract.py::test_role_with_positional_bound_raises PASSED [  1%]\ntests/catalog_drift/test_catalog_extract.py::test_role_with_non_literal_bound_raises PASSED [  1%]\ntests/catalog_drift/test_catalog_role_missing.py::test_release_differential_is_one_entry_per_collection PASSED [  1%]\ntests/catalog_drift/test_catalog_role_missing.py::test_dead_everywhere_gets_its_own_summary PASSED [  2%]\ntests/catalog_drift/test_catalog_role_missing.py::test_resolving_role_is_no_finding PASSED [  2%]\ntests/catalog_drift/test_catalog_role_missing.py::test_validator_finding_image_is_playbook_alias_is_key PASSED [  2%]\ntests/catalog_drift/test_catalog_role_missing.py::test_validator_checked_against_its_own_runtime PASSED [  2%]\ntests/catalog_drift/test_catalog_role_missing.py::test_duplicate_role_in_one_collection_is_one_finding PASSED [  2%]\ntests/catalog_drift/test_catalog_role_missing.py::test_allowlist_is_applied PASSED [  2%]\ntests/catalog_drift/test_catalog_role_missing.py::test_empty_release_range_raises PASSED [  2%]\ntests/catalog_drift/test_catalog_role_missing.py::test_bounded_role_is_not_checked_outside_its_bounds PASSED [  2%]\ntests/catalog_drift/test_catalog_role_missing.py::test_bounded_role_still_reports_inside_its_bounds PASSED [  3%]\ntests/catalog_drift/test_catalog_role_missing.py::test_bounded_role_reports_only_the_releases_it_is_deployed_on PASSED [  3%]\ntests/catalog_drift/test_catalog_role_missing.py::test_role_deployed_on_no_supported_release_is_a_finding PASSED [  3%]\ntests/catalog_drift/test_catalog_role_missing.py::test_unparseable_release_bound_raises PASSED [  3%]\ntests/catalog_drift/test_integration_real_repos.py::test_no_findings_below_the_differential SKIPPED [  3%]\ntests/catalog_drift/test_integration_real_repos.py::test_redis_is_found_from_2025_2 SKIPPED [  3%]\ntests/catalog_drift/test_playbooks_constants.py::test_load_const_reads_a_list PASSED [  3%]\ntests/catalog_drift/test_playbooks_constants.py::test_load_const_reads_a_string PASSED [  3%]\ntests/catalog_drift/test_playbooks_constants.py::test_load_const_missing_name_raises PASSED [  4%]\ntests/catalog_drift/test_playbooks_constants.py::test_load_const_returns_last_assignment PASSED [  4%]\ntests/catalog_drift/test_playbooks_constants.py::test_load_const_non_literal_raises PASSED [  4%]\ntests/catalog_drift/test_playbooks_kolla.py::test_site_roles_minus_unsupported PASSED [  4%]\ntests/catalog_drift/test_playbooks_kolla.py::test_release_specific_osism_playbooks PASSED [  4%]\ntests/catalog_drift/test_playbooks_kolla.py::test_interface_applies_render_transform PASSED [  4%]\ntests/catalog_drift/test_playbooks_kolla.py::test_kolla_host_and_post_deploy_collisions_are_dropped PASSED [  4%]\ntests/catalog_drift/test_playbooks_kolla.py::test_mariadb_backup_recovery_get_hyphenated_aliases PASSED [  4%]\ntests/catalog_drift/test_playbooks_kolla.py::test_release_without_override_dir_raises PASSED [  5%]\ntests/catalog_drift/test_playbooks_resolution.py::test_membership_and_provenance PASSED [  5%]\ntests/catalog_drift/test_playbooks_resolution.py::test_ceph_special_case PASSED [  5%]\ntests/catalog_drift/test_playbooks_resolution.py::test_ceph_special_case_absent_ceph_ceph PASSED [  5%]\ntests/catalog_drift/test_playbooks_resolution.py::test_prefixed_key_resolves_only_when_the_prefixed_name_is_itself_a_key PASSED [  5%]\ntests/catalog_drift/test_playbooks_resolution.py::test_bare_prefix_strip_does_not_reconstruct_a_bare_role PASSED [  5%]\ntests/catalog_drift/test_playbooks_resolution.py::test_unknown_role_does_not_resolve PASSED [  5%]\ntests/catalog_drift/test_playbooks_resolution.py::test_runtime_interface_merges_all_four_runtimes PASSED [  5%]\ntests/catalog_drift/test_playbooks_resolution.py::test_runtime_interface_is_memoized_on_config PASSED [  6%]\ntests/catalog_drift/test_playbooks_resolution.py::test_runtime_interface_cache_keyed_by_release PASSED [  6%]\ntests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_uses_the_named_runtime PASSED [  6%]\ntests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_ceph_ansible_branch PASSED [  6%]\ntests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_wrong_environment_does_not_resolve PASSED [  6%]\ntests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_osism_ansible_requires_an_environment PASSED [  6%]\ntests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_unknown_runtime_raises PASSED [  6%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_osism_files_raises_on_bad_playbooks_version_pin PASSED [  6%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_osism_symlink_naming PASSED [  7%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_osism_underscore_guard_is_dead_code PASSED [  7%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_osism_interface_hides_and_keeps PASSED [  7%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_osism_interface_collision_last_prefix_wins PASSED [  7%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_osism_own_files_playbooks_copy_is_mirrored PASSED [  7%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_ceph_keeps_full_stem PASSED [  7%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_ceph_files_unions_flavour_and_toplevel PASSED [  7%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_ceph_upgrade_alias_always_created PASSED [  7%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_ceph_purge_survivors_only_the_osism_pair PASSED [  8%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_ceph_flavours_excludes_the_ceph_yml_alias PASSED [  8%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_ceph_mirrors_known_upstream_typos PASSED [  8%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_kubernetes_files_lists_prefixed PASSED [  8%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_kubernetes_strips_prefix PASSED [  8%]\ntests/catalog_drift/test_playbooks_runtimes.py::test_playbook_files_dispatch PASSED [  8%]\ntests/catalog_drift/test_plugin_registry.py::test_catalog_role_missing_plugin_registered PASSED [  8%]\ntests/catalog_drift/test_plugin_registry.py::test_catalog_plugin_group_matches_registry PASSED [  8%]\ntests/catalog_drift/test_plugin_registry.py::test_catalog_report_header_exists PASSED [  9%]\ntests/catalog_drift/test_plugin_registry.py::test_catalog_role_missing_enabled_in_config PASSED [  9%]\ntests/catalog_drift/test_plugin_registry.py::test_each_plugin_has_required_metadata PASSED [  9%]\ntests/image_drift/test_demo.py::test_three_entries_per_plugin PASSED     [  9%]\ntests/image_drift/test_demo.py::test_entries_carry_live_plugin_text PASSED [  9%]\ntests/image_drift/test_demo.py::test_entries_are_actionable PASSED       [  9%]\ntests/image_drift/test_demo.py::test_show_values_plugin_covers_both_render_branches PASSED [  9%]\ntests/image_drift/test_demo.py::test_paths_reflect_plugin_input_files PASSED [ 10%]\ntests/image_drift/test_driver.py::test_help_lists_plugins PASSED         [ 10%]\ntests/image_drift/test_driver.py::test_default_run_exits_1_with_drifting_images PASSED [ 10%]\ntests/image_drift/test_driver.py::test_allowlisted_osism_ansible_hidden_by_default PASSED [ 10%]\ntests/image_drift/test_driver.py::test_no_allowlist_surfaces_osism_ansible PASSED [ 10%]\ntests/image_drift/test_driver.py::test_format_json_keys PASSED           [ 10%]\ntests/image_drift/test_driver.py::test_plugin_filter_runs_only_role_shadows PASSED [ 10%]\ntests/image_drift/test_driver.py::test_summary_line_counts PASSED        [ 10%]\ntests/image_drift/test_driver.py::test_advisory_only_exits_0 PASSED      [ 11%]\ntests/image_drift/test_driver.py::test_advisory_finding_in_default_json PASSED [ 11%]\ntests/image_drift/test_driver.py::test_missing_group_errors PASSED       [ 11%]\ntests/image_drift/test_image_orphan.py::test_orphan_alias_detected PASSED [ 11%]\ntests/image_drift/test_image_orphan.py::test_consumed_alias_not_detected PASSED [ 11%]\ntests/image_drift/test_image_orphan.py::test_playbook_consumed_alias_not_detected PASSED [ 11%]\ntests/image_drift/test_image_orphan.py::test_consumer_in_an_unfiltered_file_is_found PASSED [ 11%]\ntests/image_drift/test_image_orphan.py::test_allowlist_suppresses_orphan PASSED [ 11%]\ntests/image_drift/test_manager_parser.py::test_plain_value PASSED        [ 12%]\ntests/image_drift/test_manager_parser.py::test_latest_override_pattern PASSED [ 12%]\ntests/image_drift/test_manager_parser.py::test_unresolved_jinja_marked PASSED [ 12%]\ntests/image_drift/test_manager_parser.py::test_multiple_entries PASSED   [ 12%]\ntests/image_drift/test_manager_template_parser.py::test_basic_alias_extraction PASSED [ 12%]\ntests/image_drift/test_manager_template_parser.py::test_jinja_escaped_lines_ignored PASSED [ 12%]\ntests/image_drift/test_manager_template_parser.py::test_double_quoted_versions_key PASSED [ 12%]\ntests/image_drift/test_manager_template_parser.py::test_lines_without_pattern_skipped PASSED [ 12%]\ntests/image_drift/test_manager_template_parser.py::test_extract_stream_resolved_basic PASSED [ 13%]\ntests/image_drift/test_manager_template_parser.py::test_extract_stream_resolved_multiple PASSED [ 13%]\ntests/image_drift/test_override_template_parser.py::test_returns_tag_aliases_only PASSED [ 13%]\ntests/image_drift/test_override_template_parser.py::test_ignores_image_lines PASSED [ 13%]\ntests/image_drift/test_override_template_parser.py::test_empty_input PASSED [ 13%]\ntests/image_drift/test_override_template_parser.py::test_comment_and_blank_lines_ignored PASSED [ 13%]\ntests/image_drift/test_plugin_registry.py::test_image_plugins_registered PASSED [ 13%]\ntests/image_drift/test_plugin_registry.py::test_image_plugin_group_matches_registry PASSED [ 13%]\ntests/image_drift/test_plugin_registry.py::test_role_unpinned_enabled_in_config PASSED [ 14%]\ntests/image_drift/test_plugin_registry.py::test_image_orphan_enabled_in_config PASSED [ 14%]\ntests/image_drift/test_plugin_registry.py::test_role_registry_orphan_enabled_in_config PASSED [ 14%]\ntests/image_drift/test_plugin_registry.py::test_rolling_pin_enabled_in_config PASSED [ 14%]\ntests/image_drift/test_plugin_registry.py::test_each_plugin_has_required_metadata PASSED [ 14%]\ntests/image_drift/test_release_parser.py::test_parse_release_returns_docker_images PASSED [ 14%]\ntests/image_drift/test_release_parser.py::test_parse_release_missing_docker_images_errors PASSED [ 14%]\ntests/image_drift/test_release_vs_manager.py::test_baseline_drift PASSED [ 14%]\ntests/image_drift/test_release_vs_manager.py::test_allowlist_broad_suppresses_all_redis PASSED [ 15%]\ntests/image_drift/test_release_vs_manager.py::test_allowlist_narrow_suppresses_one_alias_only PASSED [ 15%]\ntests/image_drift/test_release_vs_manager.py::test_latest_override_emitted_with_found_latest PASSED [ 15%]\ntests/image_drift/test_release_vs_manager.py::test_disabled_image_not_in_release_skipped PASSED [ 15%]\ntests/image_drift/test_report.py::test_show_values_produces_two_blocks PASSED [ 15%]\ntests/image_drift/test_report.py::test_show_values_live_block_collapses_file PASSED [ 15%]\ntests/image_drift/test_report.py::test_show_values_dormant_block_collapses_two_files PASSED [ 15%]\ntests/image_drift/test_report.py::test_show_values_refs_single_line_only PASSED [ 15%]\ntests/image_drift/test_report.py::test_show_values_item_order_by_path_then_alias PASSED [ 16%]\ntests/image_drift/test_report.py::test_show_values_fix_and_refs_present PASSED [ 16%]\ntests/image_drift/test_report.py::test_show_values_empty_expected_renders_no_release_pin PASSED [ 16%]\ntests/image_drift/test_report.py::test_show_values_empty_expected_refs_single_line PASSED [ 16%]\ntests/image_drift/test_report.py::test_show_values_empty_expected_sorted_by_path_then_alias PASSED [ 16%]\ntests/image_drift/test_report.py::test_show_values_nonempty_expected_still_uses_arrow PASSED [ 16%]\ntests/image_drift/test_report.py::test_kolla_chain_inner_regression_two_blocks PASSED [ 16%]\ntests/image_drift/test_role_defaults_parser.py::test_concrete_tag_extracted PASSED [ 16%]\ntests/image_drift/test_role_defaults_parser.py::test_jinja_value_skipped PASSED [ 17%]\ntests/image_drift/test_role_defaults_parser.py::test_multiple_aliases_in_one_role_file PASSED [ 17%]\ntests/image_drift/test_role_defaults_parser.py::test_empty_or_malformed_returns_empty PASSED [ 17%]\ntests/image_drift/test_role_defaults_parser.py::test_tag_indirected_through_own_version_resolved PASSED [ 17%]\ntests/image_drift/test_role_defaults_parser.py::test_tag_indirected_through_own_version_non_string_pin PASSED [ 17%]\ntests/image_drift/test_role_defaults_parser.py::test_tag_indirection_whitespace_insensitive PASSED [ 17%]\ntests/image_drift/test_role_defaults_parser.py::test_tag_indirection_skipped_when_version_non_concrete PASSED [ 17%]\ntests/image_drift/test_role_defaults_parser.py::test_tag_indirection_skipped_when_version_missing PASSED [ 17%]\ntests/image_drift/test_role_defaults_parser.py::test_tag_referencing_other_var_skipped PASSED [ 18%]\ntests/image_drift/test_role_defaults_parser.py::test_composed_tag_left_for_later_pass PASSED [ 18%]\ntests/image_drift/test_role_registry_orphan.py::test_unreferenced_registry_var_detected PASSED [ 18%]\ntests/image_drift/test_role_registry_orphan.py::test_own_definition_line_is_not_a_consumer PASSED [ 18%]\ntests/image_drift/test_role_registry_orphan.py::test_reference_in_same_role_not_detected PASSED [ 18%]\ntests/image_drift/test_role_registry_orphan.py::test_reference_from_another_role_not_detected PASSED [ 18%]\ntests/image_drift/test_role_registry_orphan.py::test_bare_jinja_statement_reference_counts_as_consumer PASSED [ 18%]\ntests/image_drift/test_role_registry_orphan.py::test_longer_name_does_not_mask_its_prefix PASSED [ 18%]\ntests/image_drift/test_role_registry_orphan.py::test_playbook_reference_not_detected PASSED [ 19%]\ntests/image_drift/test_role_registry_orphan.py::test_manager_template_reference_not_detected PASSED [ 19%]\ntests/image_drift/test_role_registry_orphan.py::test_base_docker_registry_var_is_not_reported PASSED [ 19%]\ntests/image_drift/test_role_registry_orphan.py::test_consumer_in_an_unfiltered_file_is_found PASSED [ 19%]\ntests/image_drift/test_role_registry_orphan.py::test_allowlist_suppresses_orphan PASSED [ 19%]\ntests/image_drift/test_role_shadows.py::test_baseline_drift PASSED       [ 19%]\ntests/image_drift/test_role_shadows.py::test_role_without_defaults_skipped PASSED [ 19%]\ntests/image_drift/test_role_shadows.py::test_jinja_valued_tag_not_drift PASSED [ 20%]\ntests/image_drift/test_role_shadows.py::test_allowlist_very_narrow_pins_to_role_file PASSED [ 20%]\ntests/image_drift/test_role_shadows.py::test_netbox_redis_is_live PASSED [ 20%]\ntests/image_drift/test_role_shadows.py::test_dormant_aliases_are_dormant PASSED [ 20%]\ntests/image_drift/test_role_shadows.py::test_floatdemo_is_live PASSED    [ 20%]\ntests/image_drift/test_role_shadows.py::test_stream_resolved_not_emitted PASSED [ 20%]\ntests/image_drift/test_role_shadows.py::test_dormant_findings_are_advisory PASSED [ 20%]\ntests/image_drift/test_role_shadows.py::test_live_findings_are_actionable PASSED [ 20%]\ntests/image_drift/test_role_unpinned.py::test_ciinternal_detected PASSED [ 21%]\ntests/image_drift/test_role_unpinned.py::test_widget_detected_with_release_key PASSED [ 21%]\ntests/image_drift/test_role_unpinned.py::test_adminer_not_emitted PASSED [ 21%]\ntests/image_drift/test_role_unpinned.py::test_stream_resolved_not_emitted PASSED [ 21%]\ntests/image_drift/test_role_unpinned.py::test_allowlist_marks_ciinternal_allowlisted PASSED [ 21%]\ntests/image_drift/test_rolling_pin.py::test_rolling_pins_flagged PASSED  [ 21%]\ntests/image_drift/test_rolling_pin.py::test_concrete_pin_not_flagged PASSED [ 21%]\ntests/image_drift/test_rolling_pin.py::test_odd_but_pinned_not_flagged PASSED [ 21%]\ntests/image_drift/test_rolling_pin.py::test_top_level_key_ignored PASSED [ 22%]\ntests/image_drift/test_rolling_pin.py::test_entry_fields PASSED          [ 22%]\ntests/image_drift/test_rolling_pin.py::test_allowlist_marks_entry PASSED [ 22%]\ntests/image_drift/test_source_list_tree.py::test_list_tree_returns_nested_paths PASSED [ 22%]\ntests/image_drift/test_source_list_tree.py::test_list_tree_absent_raises_by_default PASSED [ 22%]\ntests/image_drift/test_source_list_tree.py::test_list_tree_absent_missing_ok_returns_empty PASSED [ 22%]\ntests/kolla_drift/test_archive.py::test_repo_slug_and_archive_url PASSED [ 22%]\ntests/kolla_drift/test_archive.py::test_snapshot_dir_fetches_extracts_and_serves PASSED [ 22%]\ntests/kolla_drift/test_archive.py::test_snapshot_dir_memoizes_one_http_call PASSED [ 23%]\ntests/kolla_drift/test_archive.py::test_snapshot_dir_404_raises PASSED   [ 23%]\ntests/kolla_drift/test_archive.py::test_fetch_retries_once_then_succeeds PASSED [ 23%]\ntests/kolla_drift/test_archive.py::test_fetch_fails_twice_raises PASSED  [ 23%]\ntests/kolla_drift/test_archive.py::test_unsafe_traversal_member_rejected PASSED [ 23%]\ntests/kolla_drift/test_archive.py::test_absolute_symlink_member_rejected_on_fallback PASSED [ 23%]\ntests/kolla_drift/test_archive.py::test_safe_relative_symlink_extracted_on_fallback PASSED [ 23%]\ntests/kolla_drift/test_config.py::test_load_minimal_config PASSED        [ 23%]\ntests/kolla_drift/test_config.py::test_osism_root_and_paths_are_unknown_keys PASSED [ 24%]\ntests/kolla_drift/test_config.py::test_unknown_top_level_key_errors PASSED [ 24%]\ntests/kolla_drift/test_config.py::test_allowlist_broad_match PASSED      [ 24%]\ntests/kolla_drift/test_config.py::test_apply_marks_matching_drift_allowlisted PASSED [ 24%]\ntests/kolla_drift/test_config.py::test_apply_returns_unmatched_drift_unchanged PASSED [ 24%]\ntests/kolla_drift/test_config.py::test_allowlist_narrow_by_alias PASSED  [ 24%]\ntests/kolla_drift/test_config.py::test_allowlist_very_narrow PASSED      [ 24%]\ntests/kolla_drift/test_config.py::test_allowlist_empty_reason_errors PASSED [ 24%]\ntests/kolla_drift/test_config.py::test_allowlist_no_file_returns_empty PASSED [ 25%]\ntests/kolla_drift/test_config.py::test_sources_parsed PASSED             [ 25%]\ntests/kolla_drift/test_config.py::test_default_owner_defaults_when_absent PASSED [ 25%]\ntests/kolla_drift/test_config.py::test_unknown_source_key_errors PASSED  [ 25%]\ntests/kolla_drift/test_config.py::test_stale_flags_unused_entry PASSED   [ 25%]\ntests/kolla_drift/test_config.py::test_stale_scoped_to_ran_plugins PASSED [ 25%]\ntests/kolla_drift/test_config.py::test_prefix_matches_service_and_subgroups PASSED [ 25%]\ntests/kolla_drift/test_config.py::test_prefix_does_not_match_adjacent_name PASSED [ 25%]\ntests/kolla_drift/test_config.py::test_exact_is_default_and_unchanged PASSED [ 26%]\ntests/kolla_drift/test_config.py::test_allowlist_unknown_match_value_errors PASSED [ 26%]\ntests/kolla_drift/test_config.py::test_allowlist_empty_image_errors PASSED [ 26%]\ntests/kolla_drift/test_config.py::test_prefix_entry_stale_when_no_match PASSED [ 26%]\ntests/kolla_drift/test_config.py::test_releases_and_release_refs_parse PASSED [ 26%]\ntests/kolla_drift/test_config.py::test_releases_default_empty PASSED     [ 26%]\ntests/kolla_drift/test_config.py::test_archive_and_snapshot_cache_defaults PASSED [ 26%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_read_returns_bytes PASSED [ 26%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_read_missing_raises_with_where PASSED [ 27%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_read_optional_present PASSED [ 27%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_read_optional_absent_returns_none PASSED [ 27%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_list_tree_sorted_repo_relative PASSED [ 27%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_list_tree_missing_raises PASSED [ 27%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_list_tree_missing_ok_returns_empty PASSED [ 27%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_list_returns_names PASSED [ 27%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_list_dirs_only PASSED    [ 27%]\ntests/kolla_drift/test_dir_helpers.py::test_dir_list_missing_raises PASSED [ 28%]\ntests/kolla_drift/test_driver.py::test_local_only_run_refuses_a_plugin_that_must_reach_the_network PASSED [ 28%]\ntests/kolla_drift/test_driver.py::test_remote_fallback_permits_the_network_read PASSED [ 28%]\ntests/kolla_drift/test_driver.py::test_a_fully_remote_run_is_never_blocked PASSED [ 28%]\ntests/kolla_drift/test_driver.py::test_repo_only_plugins_are_not_blocked PASSED [ 28%]\ntests/kolla_drift/test_driver.py::test_every_offending_plugin_is_listed_at_once PASSED [ 28%]\ntests/kolla_drift/test_driver.py::test_network_plugin_in_a_local_only_run_exits_2 PASSED [ 28%]\ntests/kolla_drift/test_driver.py::test_base_dir_not_found_exits_2 PASSED [ 28%]\ntests/kolla_drift/test_driver_stale.py::test_stale_entry_forces_exit_1_and_is_reported PASSED [ 29%]\ntests/kolla_drift/test_driver_stale.py::test_no_allowlist_ignores_invalid_file PASSED [ 29%]\ntests/kolla_drift/test_enablement.py::test_canon_normalizes_hyphen_to_underscore PASSED [ 29%]\ntests/kolla_drift/test_enablement.py::test_parse_enable_flags_strips_prefix PASSED [ 29%]\ntests/kolla_drift/test_enablement.py::test_truthy_enables_literal_only_and_canon PASSED [ 29%]\ntests/kolla_drift/test_enablement.py::test_parse_build_set_unions_both_blocks_canon PASSED [ 29%]\ntests/kolla_drift/test_enablement.py::test_release_range_derives_from_file_set PASSED [ 29%]\ntests/kolla_drift/test_enablement.py::test_release_range_override_wins PASSED [ 30%]\ntests/kolla_drift/test_enablement.py::test_upstream_enable_keys_monolithic PASSED [ 30%]\ntests/kolla_drift/test_enablement.py::test_upstream_enable_keys_split_dir PASSED [ 30%]\ntests/kolla_drift/test_enablement.py::test_upstream_groupvars_keys_monolithic PASSED [ 30%]\ntests/kolla_drift/test_enablement.py::test_upstream_groupvars_keys_split_dir PASSED [ 30%]\ntests/kolla_drift/test_enablement.py::test_osism_groupvars_keys_merges_defaults_and_versions_template PASSED [ 30%]\ntests/kolla_drift/test_enablement.py::test_osism_groupvars_keys_counts_overlays PASSED [ 30%]\ntests/kolla_drift/test_enablement.py::test_osism_enable_flags_merges_across_all_files PASSED [ 30%]\ntests/kolla_drift/test_enablement.py::test_osism_enable_ids_truthy PASSED [ 31%]\ntests/kolla_drift/test_enablement.py::test_osism_enable_ids_explicit_includes_all_keys PASSED [ 31%]\ntests/kolla_drift/test_enablement.py::test_osism_enable_ids_unknown_scope_raises PASSED [ 31%]\ntests/kolla_drift/test_enablement.py::test_groupvars_home_names_the_per_service_file PASSED [ 31%]\ntests/kolla_drift/test_enablement.py::test_groupvars_home_falls_back_to_the_layer_without_homes PASSED [ 31%]\ntests/kolla_drift/test_enablement.py::test_groupvars_home_dropped_key_ignores_homes PASSED [ 31%]\ntests/kolla_drift/test_enablement.py::test_groupvars_home_in_newest_keys PASSED [ 31%]\ntests/kolla_drift/test_enablement.py::test_groupvars_home_dropped_only PASSED [ 31%]\ntests/kolla_drift/test_enablement.py::test_groupvars_home_newest_wins_over_dropped PASSED [ 32%]\ntests/kolla_drift/test_enablement.py::test_groupvars_home_neither_returns_none PASSED [ 32%]\ntests/kolla_drift/test_enablement.py::test_in_mirror_layer PASSED        [ 32%]\ntests/kolla_drift/test_enablement.py::test_upstream_role_default_keys_all_top_level_keys PASSED [ 32%]\ntests/kolla_drift/test_enablement.py::test_upstream_role_default_keys_role_without_defaults_skipped PASSED [ 32%]\ntests/kolla_drift/test_enablement.py::test_upstream_image_tag_keys_collects_both_suffixes PASSED [ 32%]\ntests/kolla_drift/test_enablement.py::test_upstream_homes_names_the_lexically_last_file PASSED [ 32%]\ntests/kolla_drift/test_enablement.py::test_upstream_groupvars_are_read_once_per_ref PASSED [ 32%]\ntests/kolla_drift/test_enablement_source_refs.py::test_parse_source_refs_returns_openstack_project_refs PASSED [ 33%]\ntests/kolla_drift/test_enablement_source_refs.py::test_parse_source_refs_preserves_hyphenated_project_names PASSED [ 33%]\ntests/kolla_drift/test_enablement_source_refs.py::test_parse_source_refs_keeps_valueless_entries PASSED [ 33%]\ntests/kolla_drift/test_enablement_source_refs.py::test_parse_source_refs_empty_when_block_absent PASSED [ 33%]\ntests/kolla_drift/test_enablement_values.py::test_groupvars_values_merges_and_parses PASSED [ 33%]\ntests/kolla_drift/test_enablement_values.py::test_groupvars_values_skips_non_mapping_and_empty PASSED [ 33%]\ntests/kolla_drift/test_enablement_values.py::test_osism_mirror_values_reads_only_001 PASSED [ 33%]\ntests/kolla_drift/test_enablement_values.py::test_mirror_values_merges_the_whole_001_layer PASSED [ 33%]\ntests/kolla_drift/test_enablement_values.py::test_supply_excluding_mirror_excludes_every_layer_file PASSED [ 34%]\ntests/kolla_drift/test_enablement_version_gates.py::test_parses_a_gate_into_its_listed_releases PASSED [ 34%]\ntests/kolla_drift/test_enablement_version_gates.py::test_parses_the_not_in_form_the_same_way PASSED [ 34%]\ntests/kolla_drift/test_enablement_version_gates.py::test_parses_a_named_release_literal PASSED [ 34%]\ntests/kolla_drift/test_enablement_version_gates.py::test_ignores_the_rest_of_the_expression PASSED [ 34%]\ntests/kolla_drift/test_enablement_version_gates.py::test_finds_a_gate_nested_inside_a_structured_value PASSED [ 34%]\ntests/kolla_drift/test_enablement_version_gates.py::test_var_without_a_gate_is_absent PASSED [ 34%]\ntests/kolla_drift/test_enablement_version_gates.py::test_deduplicates_repeated_literals_preserving_order PASSED [ 34%]\ntests/kolla_drift/test_enablement_version_gates.py::test_empty_and_non_mapping_documents_yield_nothing PASSED [ 35%]\ntests/kolla_drift/test_enablement_version_gates.py::test_per_release_file_round_trips PASSED [ 35%]\ntests/kolla_drift/test_enablement_version_gates.py::test_per_release_file_target_rejects_other_files PASSED [ 35%]\ntests/kolla_drift/test_http_head.py::test_head_returns_the_response_for_a_published_artifact PASSED [ 35%]\ntests/kolla_drift/test_http_head.py::test_head_returns_a_whitelisted_status_without_raising PASSED [ 35%]\ntests/kolla_drift/test_http_head.py::test_head_raises_on_a_status_that_is_not_whitelisted PASSED [ 35%]\ntests/kolla_drift/test_http_head.py::test_head_raises_on_server_error_even_when_404_is_whitelisted PASSED [ 35%]\ntests/kolla_drift/test_http_head.py::test_head_raises_on_rate_limit_even_when_404_is_whitelisted PASSED [ 35%]\ntests/kolla_drift/test_http_head.py::test_head_raises_source_error_on_transport_failure PASSED [ 36%]\ntests/kolla_drift/test_http_head.py::test_head_reports_the_status_on_the_error PASSED [ 36%]\ntests/kolla_drift/test_http_head.py::test_head_leaves_the_status_unset_for_a_transport_failure PASSED [ 36%]\ntests/kolla_drift/test_http_head.py::test_head_retries_a_transient_status_and_returns_the_recovered_response PASSED [ 36%]\ntests/kolla_drift/test_http_head.py::test_head_retries_a_transport_failure PASSED [ 36%]\ntests/kolla_drift/test_http_head.py::test_head_still_raises_when_the_host_keeps_refusing PASSED [ 36%]\ntests/kolla_drift/test_http_head.py::test_head_does_not_retry_a_settled_answer PASSED [ 36%]\ntests/kolla_drift/test_http_head.py::test_head_does_not_retry_a_whitelisted_status PASSED [ 36%]\ntests/kolla_drift/test_http_head.py::test_head_backs_off_between_attempts PASSED [ 37%]\ntests/kolla_drift/test_http_head.py::test_a_non_github_throttle_does_not_blame_github PASSED [ 37%]\ntests/kolla_drift/test_http_head.py::test_a_non_github_throttle_echoes_retry_after_when_offered PASSED [ 37%]\ntests/kolla_drift/test_http_head.py::test_a_github_throttle_still_gets_the_github_hint PASSED [ 37%]\ntests/kolla_drift/test_inventory_sections.py::test_returns_groups_with_sorted_members PASSED [ 37%]\ntests/kolla_drift/test_inventory_sections.py::test_empty_group_has_no_members PASSED [ 37%]\ntests/kolla_drift/test_inventory_sections.py::test_duplicate_member_in_group_does_not_raise PASSED [ 37%]\ntests/kolla_drift/test_kolla_docker.py::test_normalises_hyphen_to_underscore PASSED [ 37%]\ntests/kolla_drift/test_kolla_docker.py::test_empty PASSED                [ 38%]\ntests/kolla_drift/test_kolla_enablement_build.py::test_flags_enabled_buildable_not_built PASSED [ 38%]\ntests/kolla_drift/test_kolla_enablement_build.py::test_reads_enable_flags_split_across_files PASSED [ 38%]\ntests/kolla_drift/test_kolla_enablement_build.py::test_allowlist_marks_allowlisted PASSED [ 38%]\ntests/kolla_drift/test_kolla_enablement_orphan.py::test_truthy_scope_flags_absent_truthy_services PASSED [ 38%]\ntests/kolla_drift/test_kolla_enablement_orphan.py::test_explicit_scope_also_flags_dead_no_flags PASSED [ 38%]\ntests/kolla_drift/test_kolla_enablement_orphan.py::test_present_upstream_is_not_orphan PASSED [ 38%]\ntests/kolla_drift/test_kolla_enablement_orphan.py::test_union_across_releases_not_intersection PASSED [ 38%]\ntests/kolla_drift/test_kolla_enablement_orphan.py::test_allowlist_marks_allowlisted PASSED [ 39%]\ntests/kolla_drift/test_kolla_enablement_orphan.py::test_run_uses_explicit_default PASSED [ 39%]\ntests/kolla_drift/test_kolla_enablement_orphan.py::test_reads_enable_flags_split_across_files PASSED [ 39%]\ntests/kolla_drift/test_kolla_enablement_orphan.py::test_empty_release_range_raises PASSED [ 39%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_flags_upstream_key_missing_from_osism PASSED [ 39%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_present_in_osism_is_not_missing PASSED [ 39%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_osism_key_in_any_file_suppresses PASSED [ 39%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_versions_template_supplied_key_not_flagged PASSED [ 40%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_overlay_supplied_key_not_flagged PASSED [ 40%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_union_across_releases_not_intersection PASSED [ 40%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_allowlist_marks_allowlisted PASSED [ 40%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_empty_release_range_raises PASSED [ 40%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_missing_key_at_newest_routes_to_001 PASSED [ 40%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_missing_key_dropped_by_newest_routes_to_010 PASSED [ 40%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_missing_key_names_its_per_service_file PASSED [ 40%]\ntests/kolla_drift/test_kolla_groupvars_missing.py::test_two_keys_with_different_homes_have_distinct_remediations PASSED [ 41%]\ntests/kolla_drift/test_kolla_image_orphan.py::test_flags_removed_service_image_and_tag PASSED [ 41%]\ntests/kolla_drift/test_kolla_image_orphan.py::test_present_service_not_flagged PASSED [ 41%]\ntests/kolla_drift/test_kolla_image_orphan.py::test_union_across_releases_not_intersection PASSED [ 41%]\ntests/kolla_drift/test_kolla_image_orphan.py::test_allowlist_marks_osism_built PASSED [ 41%]\ntests/kolla_drift/test_kolla_image_orphan.py::test_ceph_catalogue_ignored PASSED [ 41%]\ntests/kolla_drift/test_kolla_image_orphan.py::test_empty_upstream_union_raises PASSED [ 41%]\ntests/kolla_drift/test_kolla_image_orphan.py::test_empty_catalogue_match_raises PASSED [ 41%]\ntests/kolla_drift/test_kolla_inventory.py::test_flags_upstream_only_groups_across_the_release_range PASSED [ 42%]\ntests/kolla_drift/test_kolla_inventory.py::test_entry_names_only_the_releases_that_want_the_group PASSED [ 42%]\ntests/kolla_drift/test_kolla_inventory.py::test_group_renamed_upstream_is_flagged_at_the_release_that_renamed_it PASSED [ 42%]\ntests/kolla_drift/test_kolla_inventory.py::test_members_come_from_the_last_release_that_wants_the_group PASSED [ 42%]\ntests/kolla_drift/test_kolla_inventory.py::test_red_entry_carries_members PASSED [ 42%]\ntests/kolla_drift/test_kolla_inventory.py::test_exact_and_prefix_allowlist_match PASSED [ 42%]\ntests/kolla_drift/test_kolla_inventory.py::test_empty_release_range_raises PASSED [ 42%]\ntests/kolla_drift/test_kolla_inventory.py::test_declares_the_release_repo_it_reads PASSED [ 42%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_clean_mirror_no_drift PASSED [ 43%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_value_diff_flagged PASSED [ 43%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_missing_from_mirror_flagged PASSED [ 43%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_dropped_key_routed_to_010 PASSED [ 43%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_dup_key_delete PASSED [ 43%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_invented_key PASSED [ 43%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_typo_mirrored_not_flagged PASSED [ 43%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_newest_selected_by_sort PASSED [ 43%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_dropped_key_classified_with_out_of_order_releases PASSED [ 44%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_allowlist_marks_entry PASSED [ 44%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_empty_release_range_raises PASSED [ 44%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_layer_split_across_files_is_a_clean_mirror PASSED [ 44%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_layer_later_file_wins_on_duplicate_key PASSED [ 44%]\ntests/kolla_drift/test_kolla_mirror_verbatim.py::test_missing_upstream_key_names_its_per_service_file PASSED [ 44%]\ntests/kolla_drift/test_kolla_orphan_config.py::test_flags_dead_service_companion_vars PASSED [ 44%]\ntests/kolla_drift/test_kolla_orphan_config.py::test_found_src_points_to_each_file PASSED [ 44%]\ntests/kolla_drift/test_kolla_orphan_config.py::test_no_dead_services_returns_empty PASSED [ 45%]\ntests/kolla_drift/test_kolla_orphan_config.py::test_respects_orphan_allowlist PASSED [ 45%]\ntests/kolla_drift/test_kolla_orphan_config.py::test_own_allowlist_marks_allowlisted PASSED [ 45%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_reports_retired_patch_orphan PASSED [ 45%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_disabled_patch_at_newest_is_consumer PASSED [ 45%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_live_patch_at_newest_not_reported PASSED [ 45%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_defined_upstream_in_groupvars_not_reported PASSED [ 45%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_defined_upstream_in_role_default_only_not_reported PASSED [ 45%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_defined_upstream_at_older_release_only_not_reported PASSED [ 46%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_mentioned_upstream_but_not_defined_is_reported PASSED [ 46%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_owned_by_dead_non_allowlisted_service_not_reported PASSED [ 46%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_owned_by_dead_allowlisted_service_is_reported PASSED [ 46%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_never_consumed_by_patch_not_reported PASSED [ 46%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_substring_safety PASSED [ 46%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_allowlist_applies PASSED [ 46%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_advisory_severity PASSED [ 46%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_fail_closed_empty_release_range PASSED [ 47%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_fail_closed_empty_kolla_yml PASSED [ 47%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_fail_closed_newest_patches_missing PASSED [ 47%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_fail_closed_newest_patches_empty PASSED [ 47%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_unreadable_newest_patch_raises PASSED [ 47%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_unreadable_older_patch_raises PASSED [ 47%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_missing_older_patches_dir_is_not_error PASSED [ 47%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_retired_while_applied_uses_behaviour_change_block PASSED [ 47%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_retired_while_parked_uses_cleanup_block PASSED [ 48%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_applied_file_wins_over_disabled_at_same_release PASSED [ 48%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_two_blocks_report_separately PASSED [ 48%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_found_carries_per_release_state PASSED [ 48%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_missing_older_patch_dir_renders_as_absent PASSED [ 48%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_non_contiguous_live_range PASSED [ 48%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_live_range_named_in_fix PASSED [ 48%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_gate_boundary_is_release_after_newest_live PASSED [ 48%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_non_contiguous_gate_boundary PASSED [ 49%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_no_live_release_asks_for_removal PASSED [ 49%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_applied_block_keeps_and_does_not_order_a_gate PASSED [ 49%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_keep_branch_close_does_not_claim_removal_is_the_only_exit PASSED [ 49%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_gated_definition_still_reported PASSED [ 49%]\ntests/kolla_drift/test_kolla_retired_patch_orphan.py::test_same_range_groups_one_block_different_ranges_split PASSED [ 49%]\ntests/kolla_drift/test_kolla_secrets_orphan.py::test_flags_orphan_secrets_per_release PASSED [ 49%]\ntests/kolla_drift/test_kolla_secrets_orphan.py::test_present_secret_is_not_orphan PASSED [ 50%]\ntests/kolla_drift/test_kolla_secrets_orphan.py::test_allowlist_marks_allowlisted PASSED [ 50%]\ntests/kolla_drift/test_kolla_secrets_orphan.py::test_missing_template_skips_release PASSED [ 50%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_flags_ref_when_a_later_phase_tarball_is_published PASSED [ 50%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_silent_when_no_later_phase_is_published PASSED [ 50%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_silent_when_already_on_the_latest_published_phase PASSED [ 50%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_does_not_probe_or_flag_the_configured_phase_itself PASSED [ 50%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_probes_only_the_phases_opendev_publishes_a_tarball_for PASSED [ 50%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_a_release_already_moved_costs_no_probes PASSED [ 51%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_later_phases_are_only_those_after_the_configured_one PASSED [ 51%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_skips_ref_that_does_not_name_the_release PASSED [ 51%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_skips_valueless_ref PASSED [ 51%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_preserves_hyphenated_project_names PASSED [ 51%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_inconclusive_probe_is_reported_unresolved_not_clean PASSED [ 51%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_inconclusive_probe_does_not_also_yield_a_stale_finding PASSED [ 51%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_one_inconclusive_project_does_not_hide_the_others PASSED [ 51%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_probe_inconclusive_is_a_source_error PASSED [ 52%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_tarball_exists_true_for_a_published_artifact PASSED [ 52%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_tarball_exists_false_when_absent PASSED [ 52%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_tarball_exists_raises_instead_of_reporting_absent_on_outage PASSED [ 52%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_tarball_exists_classifies_a_transport_failure PASSED [ 52%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_declares_the_host_no_base_dir_can_serve PASSED [ 52%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_report_names_the_target_phase_and_the_file_to_edit PASSED [ 52%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_report_does_not_offer_a_phase_that_has_no_tarball PASSED [ 52%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_projects_moving_to_the_same_phase_share_one_report_block PASSED [ 53%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_plugin_level_remediation_describes_the_rename_without_inventing_phases PASSED [ 53%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_unresolved_report_says_unknown_rather_than_clean PASSED [ 53%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_unresolved_refs_failing_alike_share_one_report_block PASSED [ 53%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_unresolved_and_stale_render_as_separate_blocks PASSED [ 53%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_unresolved_entry_is_actionable_so_the_run_exits_nonzero PASSED [ 53%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_run_reports_drift_read_from_the_release_manifest PASSED [ 53%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_run_reports_an_unverified_ref_when_the_probe_fails PASSED [ 53%]\ntests/kolla_drift/test_kolla_source_ref_phase.py::test_run_allowlists_an_unverified_ref_for_a_pinned_project PASSED [ 54%]\ntests/kolla_drift/test_kolla_version_chain_inner.py::test_flags_all_inert_keys PASSED [ 54%]\ntests/kolla_drift/test_kolla_version_chain_inner.py::test_enabled_and_buildable_key_is_an_add PASSED [ 54%]\ntests/kolla_drift/test_kolla_version_chain_inner.py::test_disabled_or_unbuildable_key_is_a_remove PASSED [ 54%]\ntests/kolla_drift/test_kolla_version_chain_inner.py::test_add_and_remove_render_as_separate_blocks PASSED [ 54%]\ntests/kolla_drift/test_kolla_version_chain_inner.py::test_hyphen_underscore_is_not_drift PASSED [ 54%]\ntests/kolla_drift/test_kolla_version_chain_inner.py::test_reads_enable_flags_split_across_files PASSED [ 54%]\ntests/kolla_drift/test_kolla_version_chain_inner.py::test_allowlist_marks_allowlisted PASSED [ 54%]\ntests/kolla_drift/test_kolla_version_chain_upstream.py::test_flags_services_without_template_key PASSED [ 55%]\ntests/kolla_drift/test_kolla_version_chain_upstream.py::test_expected_src_uses_configured_ref PASSED [ 55%]\ntests/kolla_drift/test_kolla_version_chain_upstream.py::test_present_service_not_flagged PASSED [ 55%]\ntests/kolla_drift/test_kolla_version_chain_upstream.py::test_allowlist_marks_allowlisted PASSED [ 55%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_flags_a_gate_naming_a_release_outside_the_supported_range PASSED [ 55%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_silent_when_every_named_release_is_supported PASSED [ 55%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_reports_only_the_dead_releases_of_a_mixed_gate PASSED [ 55%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_flags_a_not_in_gate_too PASSED [ 55%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_ignores_files_that_are_not_yaml PASSED [ 56%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_flags_a_per_release_file_for_a_retired_release PASSED [ 56%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_silent_for_a_per_release_file_of_a_supported_release PASSED [ 56%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_a_retired_per_release_file_can_also_carry_a_stale_gate PASSED [ 56%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_findings_are_advisory_so_the_nightly_job_stays_green PASSED [ 56%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_a_deliberate_gate_can_be_allowlisted PASSED [ 56%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_stale_releases_keeps_order_and_drops_supported PASSED [ 56%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_report_names_the_variable_the_release_and_the_file PASSED [ 56%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_gate_and_file_findings_render_as_separate_blocks PASSED [ 57%]\ntests/kolla_drift/test_kolla_version_gate_orphan.py::test_plugin_is_registered PASSED [ 57%]\ntests/kolla_drift/test_model.py::test_drift_entry_has_all_fields PASSED  [ 57%]\ntests/kolla_drift/test_model.py::test_drift_entry_to_dict_for_json PASSED [ 57%]\ntests/kolla_drift/test_model.py::test_default_severity_is_actionable PASSED [ 57%]\ntests/kolla_drift/test_model.py::test_as_allowlisted_preserves_severity PASSED [ 57%]\ntests/kolla_drift/test_plugin_registry.py::test_registry_is_a_list PASSED [ 57%]\ntests/kolla_drift/test_plugin_registry.py::test_each_plugin_has_required_metadata PASSED [ 57%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_inner_plugin_registered PASSED [ 58%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_upstream_plugin_registered PASSED [ 58%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_inventory_plugin_registered PASSED [ 58%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_enablement_build_plugin_registered PASSED [ 58%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_enablement_orphan_plugin_registered PASSED [ 58%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_secrets_orphan_plugin_registered PASSED [ 58%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_retired_patch_orphan_plugin_registered PASSED [ 58%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_orphan_config_plugin_registered PASSED [ 58%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_groupvars_missing_plugin_registered PASSED [ 59%]\ntests/kolla_drift/test_plugin_registry.py::test_every_plugin_has_summary_and_remediation PASSED [ 59%]\ntests/kolla_drift/test_plugin_registry.py::test_default_config_enables_every_registered_plugin PASSED [ 59%]\ntests/kolla_drift/test_plugin_registry.py::test_kolla_mirror_verbatim_plugin_registered PASSED [ 59%]\ntests/kolla_drift/test_plugin_registry.py::test_plugins_in_lifecycle_order PASSED [ 59%]\ntests/kolla_drift/test_plugin_registry.py::test_plugin_groups_match_registries_and_are_disjoint PASSED [ 59%]\ntests/kolla_drift/test_report.py::test_single_plugin_groups_sorts_and_renders PASSED [ 59%]\ntests/kolla_drift/test_report.py::test_orders_blocks_by_plugins_list PASSED [ 60%]\ntests/kolla_drift/test_report.py::test_build_style_splits_one_block_per_ref_pair PASSED [ 60%]\ntests/kolla_drift/test_report.py::test_allowlisted_excluded_from_blocks_and_count PASSED [ 60%]\ntests/kolla_drift/test_report.py::test_empty_returns_empty_list PASSED   [ 60%]\ntests/kolla_drift/test_report.py::test_entry_summary_remediation_override_plugin_default PASSED [ 60%]\ntests/kolla_drift/test_report.py::test_lists_image_not_alias PASSED      [ 60%]\ntests/kolla_drift/test_report.py::test_remediation_alone_splits_the_group PASSED [ 60%]\ntests/kolla_drift/test_sbom_map.py::test_extracts_keys PASSED            [ 60%]\ntests/kolla_drift/test_sbom_map.py::test_missing_map_raises PASSED       [ 61%]\ntests/kolla_drift/test_secrets_map.py::test_extracts_top_level_keys PASSED [ 61%]\ntests/kolla_drift/test_secrets_map.py::test_ignores_comments_indented_and_markers PASSED [ 61%]\ntests/kolla_drift/test_secrets_map.py::test_empty_input PASSED           [ 61%]\ntests/kolla_drift/test_source.py::test_read_local_working_tree_when_found PASSED [ 61%]\ntests/kolla_drift/test_source.py::test_read_not_found_in_base_dir_is_mode_b_error PASSED [ 61%]\ntests/kolla_drift/test_source.py::test_read_local_file_absent_is_error_not_remote PASSED [ 61%]\ntests/kolla_drift/test_source.py::test_read_remote_fallback_when_not_found PASSED [ 61%]\ntests/kolla_drift/test_source.py::test_read_no_base_dir_is_remote PASSED [ 62%]\ntests/kolla_drift/test_source.py::test_first_base_dir_with_the_repo_wins PASSED [ 62%]\ntests/kolla_drift/test_source.py::test_pinned_local_git_repo_reads_at_pin_ref PASSED [ 62%]\ntests/kolla_drift/test_source.py::test_pinned_non_git_dir_falls_back_to_remote PASSED [ 62%]\ntests/kolla_drift/test_source.py::test_pinned_non_git_dir_no_fallback_is_mode_b PASSED [ 62%]\ntests/kolla_drift/test_source.py::test_read_remote_404_errors PASSED     [ 62%]\ntests/kolla_drift/test_source.py::test_read_network_error PASSED         [ 62%]\ntests/kolla_drift/test_source.py::test_read_underscore_repo_translates_to_hyphen PASSED [ 62%]\ntests/kolla_drift/test_source.py::test_read_optional_present_local PASSED [ 63%]\ntests/kolla_drift/test_source.py::test_read_optional_missing_local_returns_none PASSED [ 63%]\ntests/kolla_drift/test_source.py::test_read_optional_404_returns_none PASSED [ 63%]\ntests/kolla_drift/test_source.py::test_read_optional_network_error_still_raises PASSED [ 63%]\ntests/kolla_drift/test_source.py::test_read_optional_underscore_repo_translates_to_hyphen PASSED [ 63%]\ntests/kolla_drift/test_source.py::test_list_dir_local PASSED             [ 63%]\ntests/kolla_drift/test_source.py::test_list_dir_remote PASSED            [ 63%]\ntests/kolla_drift/test_source.py::test_list_dir_remote_404_errors PASSED [ 63%]\ntests/kolla_drift/test_source.py::test_list_dir_remote_404_missing_ok_returns_empty PASSED [ 64%]\ntests/kolla_drift/test_source.py::test_list_dir_remote_rate_limit_missing_ok_still_raises PASSED [ 64%]\ntests/kolla_drift/test_source.py::test_list_dir_local_missing_ok_returns_empty PASSED [ 64%]\ntests/kolla_drift/test_source.py::test_list_dir_local_absent_raises_by_default PASSED [ 64%]\ntests/kolla_drift/test_source.py::test_list_dir_underscore_repo_translates_to_hyphen PASSED [ 64%]\ntests/kolla_drift/test_source.py::test_source_override_redirects_owner_and_ref PASSED [ 64%]\ntests/kolla_drift/test_source.py::test_list_dir_local_dirs_only_excludes_files PASSED [ 64%]\ntests/kolla_drift/test_source.py::test_list_dir_remote_dirs_only_filters_type PASSED [ 64%]\ntests/kolla_drift/test_source.py::test_list_dir_at_ref_uses_explicit_ref_and_owner PASSED [ 65%]\ntests/kolla_drift/test_source.py::test_list_dir_at_ref_404_raises PASSED [ 65%]\ntests/kolla_drift/test_source.py::test_list_dir_at_ref_404_missing_ok_returns_empty PASSED [ 65%]\ntests/kolla_drift/test_source.py::test_list_dir_at_ref_local_pinned_missing_ok_returns_empty PASSED [ 65%]\ntests/kolla_drift/test_source.py::test_release_to_ref_prefers_stable PASSED [ 65%]\ntests/kolla_drift/test_source.py::test_release_to_ref_falls_back_through_candidates PASSED [ 65%]\ntests/kolla_drift/test_source.py::test_release_to_ref_treats_422_as_absent PASSED [ 65%]\ntests/kolla_drift/test_source.py::test_release_to_ref_uses_eom_tag_last PASSED [ 65%]\ntests/kolla_drift/test_source.py::test_release_to_ref_none_raises PASSED [ 66%]\ntests/kolla_drift/test_source.py::test_release_to_ref_override_wins PASSED [ 66%]\ntests/kolla_drift/test_source.py::test_read_at_ref_returns_bytes_at_explicit_ref PASSED [ 66%]\ntests/kolla_drift/test_source.py::test_read_at_ref_optional_404_returns_none PASSED [ 66%]\ntests/kolla_drift/test_source.py::test_read_at_ref_404_raises_when_not_optional PASSED [ 66%]\ntests/kolla_drift/test_source.py::test_describe_resolution_local_and_remote PASSED [ 66%]\ntests/kolla_drift/test_source.py::test_describe_resolution_mode_b_raises PASSED [ 66%]\ntests/kolla_drift/test_source.py::test_describe_resolution_lists_all_missing PASSED [ 66%]\ntests/kolla_drift/test_source.py::test_git_show_multi_ref_from_one_clone PASSED [ 67%]\ntests/kolla_drift/test_source.py::test_git_show_optional_absent_path PASSED [ 67%]\ntests/kolla_drift/test_source.py::test_git_ls_tree_returns_basenames_and_dirs_only PASSED [ 67%]\ntests/kolla_drift/test_source.py::test_resolve_local_ref_finds_non_origin_remote PASSED [ 67%]\ntests/kolla_drift/test_source.py::test_git_show_unresolvable_ref_raises PASSED [ 67%]\ntests/kolla_drift/test_source.py::test_git_ref_exists PASSED             [ 67%]\ntests/kolla_drift/test_source.py::test_read_at_ref_local_git PASSED      [ 67%]\ntests/kolla_drift/test_source.py::test_describe_resolution_pinned_local_tag PASSED [ 67%]\ntests/kolla_drift/test_source.py::test_read_at_ref_unpinned_local_dir_is_remote PASSED [ 68%]\ntests/kolla_drift/test_source.py::test_release_to_ref_memoizes_probes PASSED [ 68%]\ntests/kolla_drift/test_source.py::test_read_remote_rate_limit_403_gives_helpful_error PASSED [ 68%]\ntests/kolla_drift/test_source.py::test_rate_limit_error_when_authenticated_omits_token_advice PASSED [ 68%]\ntests/kolla_drift/test_source.py::test_secondary_rate_limit_retry_after_gives_hint PASSED [ 68%]\ntests/kolla_drift/test_source.py::test_raw_cdn_429_without_headers_gives_raw_specific_hint PASSED [ 68%]\ntests/kolla_drift/test_source.py::test_plain_403_is_not_mistaken_for_rate_limiting PASSED [ 68%]\ntests/kolla_drift/test_source.py::test_non_github_host_does_not_get_the_github_hint PASSED [ 68%]\ntests/kolla_drift/test_source.py::test_non_github_host_echoes_retry_after_when_offered PASSED [ 69%]\ntests/kolla_drift/test_source.py::test_auth_headers_adds_bearer_for_github_host PASSED [ 69%]\ntests/kolla_drift/test_source.py::test_auth_headers_absent_when_no_token PASSED [ 69%]\ntests/kolla_drift/test_source.py::test_auth_headers_not_leaked_to_non_github_host PASSED [ 69%]\ntests/kolla_drift/test_source.py::test_get_sends_auth_header_to_github PASSED [ 69%]\ntests/kolla_drift/test_source.py::test_get_does_not_send_auth_to_non_github_mirror PASSED [ 69%]\ntests/kolla_drift/test_source.py::test_read_uses_archive_when_enabled PASSED [ 69%]\ntests/kolla_drift/test_source.py::test_archive_snapshot_shared_across_reads PASSED [ 70%]\ntests/kolla_drift/test_source.py::test_list_dir_uses_archive PASSED      [ 70%]\ntests/kolla_drift/test_source.py::test_list_tree_uses_archive PASSED     [ 70%]\ntests/kolla_drift/test_source.py::test_list_dir_at_ref_uses_archive PASSED [ 70%]\ntests/kolla_drift/test_source.py::test_read_at_ref_uses_archive PASSED   [ 70%]\ntests/kolla_drift/test_source.py::test_ref_exists_memoizes_probes PASSED [ 70%]\ntests/kolla_drift/test_source.py::test_ref_exists_memoizes_absence_too PASSED [ 70%]\ntests/kolla_drift/test_source.py::test_ref_exists_cache_is_per_ref PASSED [ 70%]\ntests/kolla_drift/test_versions_template.py::test_extracts_distinct_keys PASSED [ 71%]\ntests/kolla_drift/test_versions_template.py::test_empty_input PASSED     [ 71%]\ntests/mirror_sync/test_attribute.py::test_finds_the_commit_that_changed_the_key PASSED [ 71%]\ntests/mirror_sync/test_attribute.py::test_searches_both_old_and_new_homes PASSED [ 71%]\ntests/mirror_sync/test_attribute.py::test_a_missing_home_does_not_break_the_union PASSED [ 71%]\ntests/mirror_sync/test_attribute.py::test_key_is_regex_escaped PASSED    [ 71%]\ntests/mirror_sync/test_attribute.py::test_range_is_bounded_below PASSED  [ 71%]\ntests/mirror_sync/test_attribute.py::test_cap_is_globally_newest_first_across_homes PASSED [ 71%]\ntests/mirror_sync/test_attribute.py::test_a_commit_touching_both_homes_is_not_listed_twice PASSED [ 72%]\ntests/mirror_sync/test_attribute.py::test_a_git_failure_is_reported_not_silently_empty PASSED [ 72%]\ntests/mirror_sync/test_attribute.py::test_no_known_home_is_reported_not_silently_empty PASSED [ 72%]\ntests/mirror_sync/test_attribute.py::test_remote_only_run_skips_with_a_stated_reason PASSED [ 72%]\ntests/mirror_sync/test_attribute.py::test_missing_range_skips_with_a_stated_reason PASSED [ 72%]\ntests/mirror_sync/test_attribute.py::test_results_are_capped_and_say_so PASSED [ 72%]\ntests/mirror_sync/test_classify.py::test_quoted_no_vs_false_is_representation_not_semantic PASSED [ 72%]\ntests/mirror_sync/test_classify.py::test_yes_vs_true_is_representation PASSED [ 72%]\ntests/mirror_sync/test_classify.py::test_on_off_tokens_are_covered PASSED [ 73%]\ntests/mirror_sync/test_classify.py::test_token_match_is_case_insensitive PASSED [ 73%]\ntests/mirror_sync/test_classify.py::test_opposite_truth_values_are_semantic PASSED [ 73%]\ntests/mirror_sync/test_classify.py::test_a_non_boolish_string_is_not_representation PASSED [ 73%]\ntests/mirror_sync/test_classify.py::test_jinja_delimiter_whitespace_only_is_notation PASSED [ 73%]\ntests/mirror_sync/test_classify.py::test_whitespace_inside_a_jinja_expression_stays_semantic PASSED [ 73%]\ntests/mirror_sync/test_classify.py::test_a_changed_filter_argument_stays_semantic PASSED [ 73%]\ntests/mirror_sync/test_classify.py::test_overridden_requires_an_unconditional_later_layer PASSED [ 73%]\ntests/mirror_sync/test_classify.py::test_a_100_layer_counts_as_unconditional PASSED [ 74%]\ntests/mirror_sync/test_classify.py::test_a_010_layer_does_not_count PASSED [ 74%]\ntests/mirror_sync/test_classify.py::test_a_layer_sorting_before_the_mirror_does_not_count PASSED [ 74%]\ntests/mirror_sync/test_classify.py::test_release_conditional_override_is_not_overridden PASSED [ 74%]\ntests/mirror_sync/test_classify.py::test_a_release_gate_nested_in_a_mapping_is_not_overridden PASSED [ 74%]\ntests/mirror_sync/test_classify.py::test_a_release_gate_nested_in_a_list_is_not_overridden PASSED [ 74%]\ntests/mirror_sync/test_classify.py::test_a_release_gate_nested_two_levels_deep_is_not_overridden PASSED [ 74%]\ntests/mirror_sync/test_classify.py::test_a_plain_mapping_override_is_still_overridden PASSED [ 74%]\ntests/mirror_sync/test_classify.py::test_overlay_only_supply_is_not_overridden PASSED [ 75%]\ntests/mirror_sync/test_classify.py::test_versions_yml_is_the_named_exception PASSED [ 75%]\ntests/mirror_sync/test_classify.py::test_supply_info_reads_the_defaults_layers_with_last_wins PASSED [ 75%]\ntests/mirror_sync/test_classify.py::test_supply_info_includes_the_rendered_versions_layer PASSED [ 75%]\ntests/mirror_sync/test_cli.py::test_report_mode_also_requires_defaults_dir PASSED [ 75%]\ntests/mirror_sync/test_cli.py::test_the_same_key_under_two_dispositions_is_an_error PASSED [ 75%]\ntests/mirror_sync/test_cli.py::test_keep_is_decided_at_exit_not_entry PASSED [ 75%]\ntests/mirror_sync/test_cli.py::test_a_midwrite_failure_names_the_worktree_and_how_to_remove_it PASSED [ 75%]\ntests/mirror_sync/test_cli.py::test_a_failure_before_any_write_does_not_claim_a_partial_write PASSED [ 76%]\ntests/mirror_sync/test_cli.py::test_a_successful_apply_returns_zero_and_emits_one_json_document PASSED [ 76%]\ntests/mirror_sync/test_cli.py::test_a_refused_apply_reports_applied_false_not_null PASSED [ 76%]\ntests/mirror_sync/test_cli.py::test_a_report_run_reports_applied_null PASSED [ 76%]\ntests/mirror_sync/test_cli.py::test_worktree_failures_exit_3 PASSED      [ 76%]\ntests/mirror_sync/test_cli.py::test_arms_failures_exit_3 PASSED          [ 76%]\ntests/mirror_sync/test_cli.py::test_pins_from_conflicting_with_base_ref_is_an_error PASSED [ 76%]\ntests/mirror_sync/test_cli.py::test_the_report_file_is_written_by_default_and_named_in_the_output PASSED [ 76%]\ntests/mirror_sync/test_cli.py::test_report_file_honours_an_explicit_path PASSED [ 77%]\ntests/mirror_sync/test_cli.py::test_a_refused_apply_still_leaves_the_report_behind PASSED [ 77%]\ntests/mirror_sync/test_cli.py::test_json_names_the_report_file_so_a_consumer_can_find_it PASSED [ 77%]\ntests/mirror_sync/test_cli.py::test_commit_without_apply_is_refused PASSED [ 77%]\ntests/mirror_sync/test_cli.py::test_commit_branch_without_apply_is_refused_too PASSED [ 77%]\ntests/mirror_sync/test_cli.py::test_apply_reports_the_branch_and_commit_it_made PASSED [ 77%]\ntests/mirror_sync/test_commit.py::test_commit_branches_stages_and_returns_the_sha PASSED [ 77%]\ntests/mirror_sync/test_commit.py::test_commit_stages_a_deletion PASSED   [ 77%]\ntests/mirror_sync/test_commit.py::test_an_existing_branch_is_refused_not_moved PASSED [ 78%]\ntests/mirror_sync/test_commit.py::test_signoff_requires_an_identity PASSED [ 78%]\ntests/mirror_sync/test_commit.py::test_default_branch_is_named_for_the_target PASSED [ 78%]\ntests/mirror_sync/test_detail.py::test_multiline_value_is_written_with_real_newlines PASSED [ 78%]\ntests/mirror_sync/test_detail.py::test_quoting_is_preserved_for_short_values PASSED [ 78%]\ntests/mirror_sync/test_detail.py::test_each_class_carries_its_meaning PASSED [ 78%]\ntests/mirror_sync/test_detail.py::test_attribution_and_note_travel_with_the_row PASSED [ 78%]\ntests/mirror_sync/test_detail.py::test_header_names_the_base_ref_and_both_shas PASSED [ 78%]\ntests/mirror_sync/test_detail.py::test_files_and_keys_the_terminal_truncates_are_all_here PASSED [ 79%]\ntests/mirror_sync/test_detail.py::test_a_class_with_no_rows_gets_no_section PASSED [ 79%]\ntests/mirror_sync/test_effective.py::test_effective_range_stops_at_target PASSED [ 79%]\ntests/mirror_sync/test_effective.py::test_effective_range_rejects_unsupported_target PASSED [ 79%]\ntests/mirror_sync/test_effective.py::test_derive_sets_releases_override_and_fresh_caches PASSED [ 79%]\ntests/mirror_sync/test_effective.py::test_derive_prepends_the_worktree_parent_to_base_dirs PASSED [ 79%]\ntests/mirror_sync/test_effective.py::test_requested_shas_rejects_pin_and_pins_from_together PASSED [ 79%]\ntests/mirror_sync/test_effective.py::test_requested_shas_rejects_a_non_sha PASSED [ 80%]\ntests/mirror_sync/test_effective.py::test_requested_shas_applies_the_pin_only_to_the_target PASSED [ 80%]\ntests/mirror_sync/test_effective.py::test_check_pin_validates_against_the_real_tip_not_itself PASSED [ 80%]\ntests/mirror_sync/test_effective.py::test_check_pin_rejects_a_commit_before_the_branch_point PASSED [ 80%]\ntests/mirror_sync/test_effective.py::test_check_pin_rejects_a_pin_not_reachable_from_the_tip PASSED [ 80%]\ntests/mirror_sync/test_effective.py::test_check_pin_is_a_noop_when_nothing_was_overridden PASSED [ 80%]\ntests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_a_target_mismatch PASSED [ 80%]\ntests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_an_incomplete_release_set PASSED [ 80%]\ntests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_a_malformed_release_sha PASSED [ 81%]\ntests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_a_non_mapping_release_shas PASSED [ 81%]\ntests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_an_unknown_schema PASSED [ 81%]\ntests/mirror_sync/test_effective.py::test_validate_pins_payload_returns_the_map_and_base PASSED [ 81%]\ntests/mirror_sync/test_effective.py::test_resolve_tips_uses_release_to_ref_then_resolve_commit PASSED [ 81%]\ntests/mirror_sync/test_enablement_additions.py::test_mirror_prefix_is_public_and_matches_the_private_constant PASSED [ 81%]\ntests/mirror_sync/test_enablement_additions.py::test_upstream_groupvars_files_is_public PASSED [ 81%]\ntests/mirror_sync/test_gate.py::test_parses_the_canonical_shape PASSED   [ 81%]\ntests/mirror_sync/test_gate.py::test_declines_a_compound_condition PASSED [ 82%]\ntests/mirror_sync/test_gate.py::test_declines_a_nested_ternary PASSED    [ 82%]\ntests/mirror_sync/test_gate.py::test_declines_a_mixed_release_list PASSED [ 82%]\ntests/mirror_sync/test_gate.py::test_declines_an_unquoted_release PASSED [ 82%]\ntests/mirror_sync/test_gate.py::test_declines_an_empty_release_list PASSED [ 82%]\ntests/mirror_sync/test_gate.py::test_accepts_a_trailing_comma PASSED     [ 82%]\ntests/mirror_sync/test_gate.py::test_declines_a_variable_branch PASSED   [ 82%]\ntests/mirror_sync/test_gate.py::test_accepts_openstack_release_as_an_alias PASSED [ 82%]\ntests/mirror_sync/test_gate.py::test_check_retain_accepts_a_correct_gate PASSED [ 83%]\ntests/mirror_sync/test_gate.py::test_check_retain_rejects_a_reversed_gate PASSED [ 83%]\ntests/mirror_sync/test_gate.py::test_check_retain_rejects_a_wrong_release_list PASSED [ 83%]\ntests/mirror_sync/test_gate.py::test_check_retain_rejects_a_non_canonical_gate PASSED [ 83%]\ntests/mirror_sync/test_gate.py::test_check_retain_rejects_a_key_no_later_layer_supplies PASSED [ 83%]\ntests/mirror_sync/test_gate.py::test_check_retain_rejects_a_gate_in_the_010_layer PASSED [ 83%]\ntests/mirror_sync/test_gate.py::test_retain_unverified_is_rejected_for_a_canonical_gate PASSED [ 83%]\ntests/mirror_sync/test_gate.py::test_retain_unverified_is_rejected_when_no_gate_exists PASSED [ 83%]\ntests/mirror_sync/test_gate.py::test_retain_unverified_accepts_a_present_non_canonical_gate PASSED [ 84%]\ntests/mirror_sync/test_gate.py::test_an_unknown_disposition_key_is_an_error PASSED [ 84%]\ntests/mirror_sync/test_gate.py::test_a_failed_retention_check_propagates_rather_than_becoming_missing PASSED [ 84%]\ntests/mirror_sync/test_gate.py::test_missing_dispositions_only_lists_rows_with_no_flag PASSED [ 84%]\ntests/mirror_sync/test_gate.py::test_accept_upstream_is_noted PASSED     [ 84%]\ntests/mirror_sync/test_layers.py::test_mirror_layer_refuses_a_monolithic_upstream_layout PASSED [ 84%]\ntests/mirror_sync/test_layers.py::test_mirror_layer_refuses_an_empty_upstream_listing PASSED [ 84%]\ntests/mirror_sync/test_layers.py::test_every_arms_refusal_shares_one_base PASSED [ 84%]\ntests/mirror_sync/test_layers.py::test_mirror_layer_writes_prefixed_copies_and_deletes_orphans PASSED [ 85%]\ntests/mirror_sync/test_layers.py::test_mirror_layer_rejects_an_unsafe_upstream_name PASSED [ 85%]\ntests/mirror_sync/test_layers.py::test_mirror_homes_reads_the_tree_with_last_wins PASSED [ 85%]\ntests/mirror_sync/test_layers.py::test_compat_layer_emits_values_from_the_release_that_still_has_them PASSED [ 85%]\ntests/mirror_sync/test_layers.py::test_compat_layer_excludes_keys_another_osism_layer_supplies PASSED [ 85%]\ntests/mirror_sync/test_layers.py::test_compat_layer_excludes_keys_the_target_still_defines PASSED [ 85%]\ntests/mirror_sync/test_layers.py::test_compat_layer_raises_when_a_dropped_key_has_no_value PASSED [ 85%]\ntests/mirror_sync/test_layers.py::test_compat_layer_deletes_a_managed_file_with_no_desired_keys PASSED [ 85%]\ntests/mirror_sync/test_layers.py::test_report_mode_reports_an_unmarked_file_instead_of_refusing PASSED [ 86%]\ntests/mirror_sync/test_layers.py::test_compat_layer_refuses_an_unmarked_managed_file PASSED [ 86%]\ntests/mirror_sync/test_layers.py::test_compat_layer_refuses_to_delete_an_unmarked_file PASSED [ 86%]\ntests/mirror_sync/test_layers.py::test_require_owned_rejects_a_marker_used_inside_a_value PASSED [ 86%]\ntests/mirror_sync/test_layers.py::test_require_owned_rejects_a_marker_below_the_header PASSED [ 86%]\ntests/mirror_sync/test_layers.py::test_compat_layer_never_inspects_a_file_outside_the_range PASSED [ 86%]\ntests/mirror_sync/test_layers.py::test_compat_layer_ignores_releases_after_the_target PASSED [ 86%]\ntests/mirror_sync/test_layers.py::test_changed_and_created_compares_bytes_against_disk PASSED [ 86%]\ntests/mirror_sync/test_layers.py::test_changed_and_created_sees_a_content_change PASSED [ 87%]\ntests/mirror_sync/test_layers.py::test_generated_sequences_are_indented_for_yamllint PASSED [ 87%]\ntests/mirror_sync/test_layers.py::test_generated_values_match_the_upstream_quoting_style PASSED [ 87%]\ntests/mirror_sync/test_layers.py::test_mapping_keys_are_not_quoted PASSED [ 87%]\ntests/mirror_sync/test_layers.py::test_nested_keys_stay_bare_and_keep_upstream_order PASSED [ 87%]\ntests/mirror_sync/test_model.py::test_has_changes_is_false_when_every_write_is_unchanged PASSED [ 87%]\ntests/mirror_sync/test_model.py::test_has_changes_true_on_a_changed_write PASSED [ 87%]\ntests/mirror_sync/test_model.py::test_has_changes_true_on_a_mirror_delete_alone PASSED [ 87%]\ntests/mirror_sync/test_model.py::test_has_changes_true_on_a_compat_delete_alone PASSED [ 88%]\ntests/mirror_sync/test_model.py::test_semantic_keys_selects_only_semantic_rows_in_row_order PASSED [ 88%]\ntests/mirror_sync/test_model.py::test_plan_is_frozen PASSED              [ 88%]\ntests/mirror_sync/test_render.py::test_json_payload_is_deterministic_and_versioned PASSED [ 88%]\ntests/mirror_sync/test_render.py::test_json_payload_round_trips_through_the_pins_validator PASSED [ 88%]\ntests/mirror_sync/test_render.py::test_json_counts_each_class_separately PASSED [ 88%]\ntests/mirror_sync/test_render.py::test_text_labels_representation_and_shows_attribution PASSED [ 88%]\ntests/mirror_sync/test_render.py::test_text_offers_every_disposition_now_that_the_gate_exists PASSED [ 88%]\ntests/mirror_sync/test_render.py::test_text_lists_the_dispositions_that_were_applied PASSED [ 89%]\ntests/mirror_sync/test_render.py::test_text_distinguishes_no_rows_from_nothing_computed PASSED [ 89%]\ntests/mirror_sync/test_render.py::test_exit_code_2_when_a_blocker_exists_even_with_no_semantic_row PASSED [ 89%]\ntests/mirror_sync/test_render.py::test_text_names_the_blocker_and_how_to_clear_it PASSED [ 89%]\ntests/mirror_sync/test_render.py::test_exit_code_2_when_a_semantic_row_is_undispositioned PASSED [ 89%]\ntests/mirror_sync/test_render.py::test_exit_code_1_when_changes_are_planned_and_all_dispositioned PASSED [ 89%]\ntests/mirror_sync/test_render.py::test_exit_code_0_when_nothing_would_change PASSED [ 89%]\ntests/mirror_sync/test_render.py::test_exit_code_1_when_only_files_change_and_no_row_needs_review PASSED [ 90%]\ntests/mirror_sync/test_render.py::test_a_retain_flag_clears_a_row_now_that_it_is_validated_elsewhere PASSED [ 90%]\ntests/mirror_sync/test_render.py::test_acceptance_command_prepends_the_worktree_and_keeps_every_base_dir PASSED [ 90%]\ntests/mirror_sync/test_render.py::test_acceptance_command_works_for_a_remote_mode_run PASSED [ 90%]\ntests/mirror_sync/test_render.py::test_acceptance_command_quotes_paths_with_spaces PASSED [ 90%]\ntests/mirror_sync/test_render.py::test_acceptance_command_warns_when_the_derived_range_is_newer PASSED [ 90%]\ntests/mirror_sync/test_render.py::test_acceptance_command_has_no_caveat_when_the_target_is_newest PASSED [ 90%]\ntests/mirror_sync/test_render.py::test_text_summary_names_each_class_and_what_it_means PASSED [ 90%]\ntests/mirror_sync/test_render.py::test_text_inlines_a_short_value_but_elides_a_long_one PASSED [ 91%]\ntests/mirror_sync/test_render.py::test_text_truncates_a_long_name_list_to_a_sample_and_a_count PASSED [ 91%]\ntests/mirror_sync/test_render.py::test_text_groups_a_repeated_note_instead_of_repeating_it PASSED [ 91%]\ntests/mirror_sync/test_render.py::test_text_header_names_the_base_ref_alongside_its_sha PASSED [ 91%]\ntests/mirror_sync/test_render.py::test_text_states_the_exit_code_and_where_the_full_values_are PASSED [ 91%]\ntests/mirror_sync/test_render.py::test_text_omits_the_exit_line_when_the_caller_has_no_code_yet PASSED [ 91%]\ntests/mirror_sync/test_render.py::test_shape_pluralises_a_single_entry_correctly PASSED [ 91%]\ntests/mirror_sync/test_render.py::test_a_back_compat_layer_says_whether_it_is_new_or_already_correct PASSED [ 91%]\ntests/mirror_sync/test_render.py::test_a_header_only_rewrite_says_so_instead_of_just_rewritten PASSED [ 92%]\ntests/mirror_sync/test_render.py::test_real_key_movement_is_reported_as_counts PASSED [ 92%]\ntests/mirror_sync/test_render.py::test_exit_0_after_an_apply_does_not_claim_there_was_nothing_to_do PASSED [ 92%]\ntests/mirror_sync/test_render.py::test_commit_summary_records_pins_and_dispositions PASSED [ 92%]\ntests/mirror_sync/test_render.py::test_commit_summary_wraps_at_72_for_a_commit_body PASSED [ 92%]\ntests/mirror_sync/test_source_commits.py::test_resolve_commit_local_peels_branch_to_sha PASSED [ 92%]\ntests/mirror_sync/test_source_commits.py::test_resolve_commit_local_accepts_a_sha PASSED [ 92%]\ntests/mirror_sync/test_source_commits.py::test_resolve_commit_prefers_a_remote_over_a_stale_local_branch PASSED [ 92%]\ntests/mirror_sync/test_source_commits.py::test_resolve_commit_falls_back_to_a_local_head PASSED [ 93%]\ntests/mirror_sync/test_source_commits.py::test_resolve_commit_unknown_ref_raises PASSED [ 93%]\ntests/mirror_sync/test_source_commits.py::test_is_ancestor_local PASSED  [ 93%]\ntests/mirror_sync/test_source_commits.py::test_is_ancestor_raises_on_a_missing_descendant PASSED [ 93%]\ntests/mirror_sync/test_source_commits.py::test_is_ancestor_raises_when_the_ancestor_object_is_absent PASSED [ 93%]\ntests/mirror_sync/test_source_commits.py::test_merge_base_local PASSED   [ 93%]\ntests/mirror_sync/test_source_commits.py::test_local_checkout_returns_none_when_remote PASSED [ 93%]\ntests/mirror_sync/test_source_commits.py::test_local_checkout_returns_the_dir_when_local PASSED [ 93%]\ntests/mirror_sync/test_source_commits.py::test_resolve_commit_remote_reads_sha_from_commits_api PASSED [ 94%]\ntests/mirror_sync/test_source_commits.py::test_resolve_commit_rejects_a_non_sha_from_the_api PASSED [ 94%]\ntests/mirror_sync/test_source_commits.py::test_is_ancestor_remote_uses_compare_status PASSED [ 94%]\ntests/mirror_sync/test_source_commits.py::test_merge_base_remote_reads_compare_payload PASSED [ 94%]\ntests/mirror_sync/test_worktree.py::test_default_path_leaf_is_named_defaults PASSED [ 94%]\ntests/mirror_sync/test_worktree.py::test_create_yields_a_clean_tree_and_the_base_commit PASSED [ 94%]\ntests/mirror_sync/test_worktree.py::test_create_refuses_an_existing_path PASSED [ 94%]\ntests/mirror_sync/test_worktree.py::test_uncommitted_operator_work_is_not_consulted PASSED [ 94%]\ntests/mirror_sync/test_worktree.py::test_create_removes_the_worktree_when_head_cannot_be_read PASSED [ 95%]\ntests/mirror_sync/test_worktree.py::test_session_removes_on_exit_by_default PASSED [ 95%]\ntests/mirror_sync/test_worktree.py::test_session_removes_on_exception_too PASSED [ 95%]\ntests/mirror_sync/test_worktree.py::test_session_keeps_when_asked PASSED [ 95%]\ntests/mirror_sync/test_worktree.py::test_session_raises_when_cleanup_fails PASSED [ 95%]\ntests/mirror_sync/test_worktree.py::test_cleanup_failure_does_not_mask_the_original_error PASSED [ 95%]\ntests/mirror_sync/test_worktree.py::test_every_failure_is_a_worktree_error PASSED [ 95%]\ntests/mirror_sync/test_write.py::test_writes_only_changed_paths PASSED   [ 95%]\ntests/mirror_sync/test_write.py::test_deletes_after_writing PASSED       [ 96%]\ntests/mirror_sync/test_write.py::test_a_missing_delete_target_is_not_an_error PASSED [ 96%]\ntests/mirror_sync/test_write.py::test_refuses_a_path_outside_the_all_directory PASSED [ 96%]\ntests/mirror_sync/test_write.py::test_refuses_when_the_all_directory_is_a_symlink PASSED [ 96%]\ntests/mirror_sync/test_write.py::test_refuses_a_symlinked_destination PASSED [ 96%]\ntests/mirror_sync/test_write.py::test_refuses_a_symlinked_delete_target PASSED [ 96%]\ntests/mirror_sync/test_write.py::test_refuses_a_traversal_that_stays_lexically_under_all PASSED [ 96%]\ntests/mirror_sync/test_write.py::test_refuses_an_absolute_path PASSED    [ 96%]\ntests/mirror_sync/test_write.py::test_refuses_when_the_plan_is_blocked PASSED [ 97%]\ntests/mirror_sync/test_write.py::test_signals_before_the_first_mutation PASSED [ 97%]\ntests/mirror_sync/test_write.py::test_a_preflight_failure_does_not_signal PASSED [ 97%]\ntests/mirror_sync/test_write.py::test_a_blocked_plan_does_not_signal PASSED [ 97%]\ntests/test_driver_groups.py::test_group_image_runs_only_image_plugins PASSED [ 97%]\ntests/test_driver_groups.py::test_group_kolla_runs_only_kolla_plugins PASSED [ 97%]\ntests/test_driver_groups.py::test_group_all_runs_both_groups PASSED      [ 97%]\ntests/test_driver_groups.py::test_archive_mode_preamble_not_misleading PASSED [ 97%]\ntests/test_driver_groups.py::test_use_raw_get_preamble_warns_slow PASSED [ 98%]\ntests/test_driver_groups.py::test_missing_group_errors PASSED            [ 98%]\ntests/test_driver_groups.py::test_demo_exits_0_without_reading_config_or_allowlist PASSED [ 98%]\ntests/test_driver_groups.py::test_demo_renders_every_real_plugin PASSED  [ 98%]\ntests/test_driver_groups.py::test_demo_json_emits_entries PASSED         [ 98%]\ntests/test_driver_groups.py::test_help_lists_plugin_groups PASSED        [ 98%]\ntests/test_release_notes_defaults.py::test_layer_is_sorted_and_filtered PASSED [ 98%]\ntests/test_release_notes_defaults.py::test_layer_omits_directories_and_keeps_only_blobs PASSED [ 98%]\ntests/test_release_notes_defaults.py::test_layer_none_on_http_error PASSED [ 99%]\ntests/test_release_notes_defaults.py::test_layer_none_on_truncated_tree PASSED [ 99%]\ntests/test_release_notes_defaults.py::test_layer_none_on_request_exception PASSED [ 99%]\ntests/test_release_notes_defaults.py::test_section_fetches_the_layer_before_099_and_names_the_layer_in_prose PASSED [ 99%]\ntests/test_release_notes_defaults.py::test_layer_empty_list_when_listing_succeeds_with_no_matches PASSED [ 99%]\ntests/test_release_notes_defaults.py::test_section_is_none_when_the_listing_fails_even_if_099_would_fetch PASSED [ 99%]\ntests/test_release_notes_defaults.py::test_section_is_none_when_the_listing_is_truncated PASSED [ 99%]\ntests/test_release_notes_defaults.py::test_section_is_none_when_one_mirror_file_fails_to_fetch PASSED [100%]\n\n======================== 788 passed, 2 skipped in 9.77s ========================\ndrift-test: 10607 I exit 0 (10.27 seconds) /home/zuul/src/github.com/osism/release> pytest tests/ -v pid=1771 [tox/execute/api.py:337]\n  drift-test: OK (10.33=setup[0.06]+cmd[10.27] seconds)\n  congratulations :) (10.37 seconds)",
                            "stdout_lines": [
                                "ROOT: 245 D setup logging to DEBUG on pid 1764 [tox/report.py:249]",
                                "drift-test: 279 D created app data folder /home/zuul/.cache/virtualenv [virtualenv/app_data/__init__.py:65]",
                                "drift-test: 284 I find interpreter for spec PythonSpec(major=3, free_threaded=False) [python_discovery/_discovery.py:131]",
                                "drift-test: 289 D got python info of /usr/bin/python3.11 from /home/zuul/.cache/virtualenv/py_info/5/ca3ed784184f1b3bb7c3539bfb45e71710cd27667424f92c2d5bb4df9c107c23.json [virtualenv/app_data/via_disk_folder.py:139]",
                                "drift-test: 289 D filesystem is case-sensitive [python_discovery/_compat.py:18]",
                                "drift-test: 289 I proposed PythonInfo(spec=CPython3.11.2.final.0-64-x86_64, system=/usr/bin/python3.11, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:140]",
                                "drift-test: 289 D accepted PythonInfo(spec=CPython3.11.2.final.0-64-x86_64, system=/usr/bin/python3.11, exe=/home/zuul/.local/tox/bin/python3, platform=linux, version='3.11.2 (main, May 12 2026, 05:17:27) [GCC 12.2.0]', encoding_fs_io=utf-8-utf-8) [python_discovery/_discovery.py:144]",
                                "drift-test: 291 D symlink on filesystem does work [virtualenv/info.py:51]",
                                "drift-test: 291 D filesystem is case-sensitive [virtualenv/info.py:28]",
                                "drift-test: 329 W commands[0]> pytest tests/ -v [tox/tox_env/api.py:487]",
                                "============================= test session starts ==============================",
                                "platform linux -- Python 3.11.2, pytest-9.1.1, pluggy-1.6.0 -- /home/zuul/src/github.com/osism/release/.tox/drift-test/bin/python",
                                "cachedir: .tox/drift-test/.pytest_cache",
                                "rootdir: /home/zuul/src/github.com/osism/release",
                                "collecting ... collected 790 items",
                                "",
                                "tests/catalog_drift/test_catalog_extract.py::test_collections_collect_nested_roles PASSED [  0%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_validators_default_the_playbook_name PASSED [  0%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_non_literal_map_role2role_raises PASSED [  0%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_missing_assignment_raises PASSED [  0%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_non_literal_validate_playbooks_raises PASSED [  0%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_role_with_non_literal_name_raises PASSED [  0%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_validator_entry_without_runtime_raises PASSED [  0%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_validate_playbooks_non_dict_literal_raises PASSED [  1%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_validator_entry_non_dict_raises PASSED [  1%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_non_literal_collection_key_raises PASSED [  1%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_collections_carry_release_bounds PASSED [  1%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_role_with_unknown_keyword_raises PASSED [  1%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_role_with_positional_bound_raises PASSED [  1%]",
                                "tests/catalog_drift/test_catalog_extract.py::test_role_with_non_literal_bound_raises PASSED [  1%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_release_differential_is_one_entry_per_collection PASSED [  1%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_dead_everywhere_gets_its_own_summary PASSED [  2%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_resolving_role_is_no_finding PASSED [  2%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_validator_finding_image_is_playbook_alias_is_key PASSED [  2%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_validator_checked_against_its_own_runtime PASSED [  2%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_duplicate_role_in_one_collection_is_one_finding PASSED [  2%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_allowlist_is_applied PASSED [  2%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_empty_release_range_raises PASSED [  2%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_bounded_role_is_not_checked_outside_its_bounds PASSED [  2%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_bounded_role_still_reports_inside_its_bounds PASSED [  3%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_bounded_role_reports_only_the_releases_it_is_deployed_on PASSED [  3%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_role_deployed_on_no_supported_release_is_a_finding PASSED [  3%]",
                                "tests/catalog_drift/test_catalog_role_missing.py::test_unparseable_release_bound_raises PASSED [  3%]",
                                "tests/catalog_drift/test_integration_real_repos.py::test_no_findings_below_the_differential SKIPPED [  3%]",
                                "tests/catalog_drift/test_integration_real_repos.py::test_redis_is_found_from_2025_2 SKIPPED [  3%]",
                                "tests/catalog_drift/test_playbooks_constants.py::test_load_const_reads_a_list PASSED [  3%]",
                                "tests/catalog_drift/test_playbooks_constants.py::test_load_const_reads_a_string PASSED [  3%]",
                                "tests/catalog_drift/test_playbooks_constants.py::test_load_const_missing_name_raises PASSED [  4%]",
                                "tests/catalog_drift/test_playbooks_constants.py::test_load_const_returns_last_assignment PASSED [  4%]",
                                "tests/catalog_drift/test_playbooks_constants.py::test_load_const_non_literal_raises PASSED [  4%]",
                                "tests/catalog_drift/test_playbooks_kolla.py::test_site_roles_minus_unsupported PASSED [  4%]",
                                "tests/catalog_drift/test_playbooks_kolla.py::test_release_specific_osism_playbooks PASSED [  4%]",
                                "tests/catalog_drift/test_playbooks_kolla.py::test_interface_applies_render_transform PASSED [  4%]",
                                "tests/catalog_drift/test_playbooks_kolla.py::test_kolla_host_and_post_deploy_collisions_are_dropped PASSED [  4%]",
                                "tests/catalog_drift/test_playbooks_kolla.py::test_mariadb_backup_recovery_get_hyphenated_aliases PASSED [  4%]",
                                "tests/catalog_drift/test_playbooks_kolla.py::test_release_without_override_dir_raises PASSED [  5%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_membership_and_provenance PASSED [  5%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_ceph_special_case PASSED [  5%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_ceph_special_case_absent_ceph_ceph PASSED [  5%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_prefixed_key_resolves_only_when_the_prefixed_name_is_itself_a_key PASSED [  5%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_bare_prefix_strip_does_not_reconstruct_a_bare_role PASSED [  5%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_unknown_role_does_not_resolve PASSED [  5%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_runtime_interface_merges_all_four_runtimes PASSED [  5%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_runtime_interface_is_memoized_on_config PASSED [  6%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_runtime_interface_cache_keyed_by_release PASSED [  6%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_uses_the_named_runtime PASSED [  6%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_ceph_ansible_branch PASSED [  6%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_wrong_environment_does_not_resolve PASSED [  6%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_osism_ansible_requires_an_environment PASSED [  6%]",
                                "tests/catalog_drift/test_playbooks_resolution.py::test_validate_resolves_unknown_runtime_raises PASSED [  6%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_osism_files_raises_on_bad_playbooks_version_pin PASSED [  6%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_osism_symlink_naming PASSED [  7%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_osism_underscore_guard_is_dead_code PASSED [  7%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_osism_interface_hides_and_keeps PASSED [  7%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_osism_interface_collision_last_prefix_wins PASSED [  7%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_osism_own_files_playbooks_copy_is_mirrored PASSED [  7%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_ceph_keeps_full_stem PASSED [  7%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_ceph_files_unions_flavour_and_toplevel PASSED [  7%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_ceph_upgrade_alias_always_created PASSED [  7%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_ceph_purge_survivors_only_the_osism_pair PASSED [  8%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_ceph_flavours_excludes_the_ceph_yml_alias PASSED [  8%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_ceph_mirrors_known_upstream_typos PASSED [  8%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_kubernetes_files_lists_prefixed PASSED [  8%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_kubernetes_strips_prefix PASSED [  8%]",
                                "tests/catalog_drift/test_playbooks_runtimes.py::test_playbook_files_dispatch PASSED [  8%]",
                                "tests/catalog_drift/test_plugin_registry.py::test_catalog_role_missing_plugin_registered PASSED [  8%]",
                                "tests/catalog_drift/test_plugin_registry.py::test_catalog_plugin_group_matches_registry PASSED [  8%]",
                                "tests/catalog_drift/test_plugin_registry.py::test_catalog_report_header_exists PASSED [  9%]",
                                "tests/catalog_drift/test_plugin_registry.py::test_catalog_role_missing_enabled_in_config PASSED [  9%]",
                                "tests/catalog_drift/test_plugin_registry.py::test_each_plugin_has_required_metadata PASSED [  9%]",
                                "tests/image_drift/test_demo.py::test_three_entries_per_plugin PASSED     [  9%]",
                                "tests/image_drift/test_demo.py::test_entries_carry_live_plugin_text PASSED [  9%]",
                                "tests/image_drift/test_demo.py::test_entries_are_actionable PASSED       [  9%]",
                                "tests/image_drift/test_demo.py::test_show_values_plugin_covers_both_render_branches PASSED [  9%]",
                                "tests/image_drift/test_demo.py::test_paths_reflect_plugin_input_files PASSED [ 10%]",
                                "tests/image_drift/test_driver.py::test_help_lists_plugins PASSED         [ 10%]",
                                "tests/image_drift/test_driver.py::test_default_run_exits_1_with_drifting_images PASSED [ 10%]",
                                "tests/image_drift/test_driver.py::test_allowlisted_osism_ansible_hidden_by_default PASSED [ 10%]",
                                "tests/image_drift/test_driver.py::test_no_allowlist_surfaces_osism_ansible PASSED [ 10%]",
                                "tests/image_drift/test_driver.py::test_format_json_keys PASSED           [ 10%]",
                                "tests/image_drift/test_driver.py::test_plugin_filter_runs_only_role_shadows PASSED [ 10%]",
                                "tests/image_drift/test_driver.py::test_summary_line_counts PASSED        [ 10%]",
                                "tests/image_drift/test_driver.py::test_advisory_only_exits_0 PASSED      [ 11%]",
                                "tests/image_drift/test_driver.py::test_advisory_finding_in_default_json PASSED [ 11%]",
                                "tests/image_drift/test_driver.py::test_missing_group_errors PASSED       [ 11%]",
                                "tests/image_drift/test_image_orphan.py::test_orphan_alias_detected PASSED [ 11%]",
                                "tests/image_drift/test_image_orphan.py::test_consumed_alias_not_detected PASSED [ 11%]",
                                "tests/image_drift/test_image_orphan.py::test_playbook_consumed_alias_not_detected PASSED [ 11%]",
                                "tests/image_drift/test_image_orphan.py::test_consumer_in_an_unfiltered_file_is_found PASSED [ 11%]",
                                "tests/image_drift/test_image_orphan.py::test_allowlist_suppresses_orphan PASSED [ 11%]",
                                "tests/image_drift/test_manager_parser.py::test_plain_value PASSED        [ 12%]",
                                "tests/image_drift/test_manager_parser.py::test_latest_override_pattern PASSED [ 12%]",
                                "tests/image_drift/test_manager_parser.py::test_unresolved_jinja_marked PASSED [ 12%]",
                                "tests/image_drift/test_manager_parser.py::test_multiple_entries PASSED   [ 12%]",
                                "tests/image_drift/test_manager_template_parser.py::test_basic_alias_extraction PASSED [ 12%]",
                                "tests/image_drift/test_manager_template_parser.py::test_jinja_escaped_lines_ignored PASSED [ 12%]",
                                "tests/image_drift/test_manager_template_parser.py::test_double_quoted_versions_key PASSED [ 12%]",
                                "tests/image_drift/test_manager_template_parser.py::test_lines_without_pattern_skipped PASSED [ 12%]",
                                "tests/image_drift/test_manager_template_parser.py::test_extract_stream_resolved_basic PASSED [ 13%]",
                                "tests/image_drift/test_manager_template_parser.py::test_extract_stream_resolved_multiple PASSED [ 13%]",
                                "tests/image_drift/test_override_template_parser.py::test_returns_tag_aliases_only PASSED [ 13%]",
                                "tests/image_drift/test_override_template_parser.py::test_ignores_image_lines PASSED [ 13%]",
                                "tests/image_drift/test_override_template_parser.py::test_empty_input PASSED [ 13%]",
                                "tests/image_drift/test_override_template_parser.py::test_comment_and_blank_lines_ignored PASSED [ 13%]",
                                "tests/image_drift/test_plugin_registry.py::test_image_plugins_registered PASSED [ 13%]",
                                "tests/image_drift/test_plugin_registry.py::test_image_plugin_group_matches_registry PASSED [ 13%]",
                                "tests/image_drift/test_plugin_registry.py::test_role_unpinned_enabled_in_config PASSED [ 14%]",
                                "tests/image_drift/test_plugin_registry.py::test_image_orphan_enabled_in_config PASSED [ 14%]",
                                "tests/image_drift/test_plugin_registry.py::test_role_registry_orphan_enabled_in_config PASSED [ 14%]",
                                "tests/image_drift/test_plugin_registry.py::test_rolling_pin_enabled_in_config PASSED [ 14%]",
                                "tests/image_drift/test_plugin_registry.py::test_each_plugin_has_required_metadata PASSED [ 14%]",
                                "tests/image_drift/test_release_parser.py::test_parse_release_returns_docker_images PASSED [ 14%]",
                                "tests/image_drift/test_release_parser.py::test_parse_release_missing_docker_images_errors PASSED [ 14%]",
                                "tests/image_drift/test_release_vs_manager.py::test_baseline_drift PASSED [ 14%]",
                                "tests/image_drift/test_release_vs_manager.py::test_allowlist_broad_suppresses_all_redis PASSED [ 15%]",
                                "tests/image_drift/test_release_vs_manager.py::test_allowlist_narrow_suppresses_one_alias_only PASSED [ 15%]",
                                "tests/image_drift/test_release_vs_manager.py::test_latest_override_emitted_with_found_latest PASSED [ 15%]",
                                "tests/image_drift/test_release_vs_manager.py::test_disabled_image_not_in_release_skipped PASSED [ 15%]",
                                "tests/image_drift/test_report.py::test_show_values_produces_two_blocks PASSED [ 15%]",
                                "tests/image_drift/test_report.py::test_show_values_live_block_collapses_file PASSED [ 15%]",
                                "tests/image_drift/test_report.py::test_show_values_dormant_block_collapses_two_files PASSED [ 15%]",
                                "tests/image_drift/test_report.py::test_show_values_refs_single_line_only PASSED [ 15%]",
                                "tests/image_drift/test_report.py::test_show_values_item_order_by_path_then_alias PASSED [ 16%]",
                                "tests/image_drift/test_report.py::test_show_values_fix_and_refs_present PASSED [ 16%]",
                                "tests/image_drift/test_report.py::test_show_values_empty_expected_renders_no_release_pin PASSED [ 16%]",
                                "tests/image_drift/test_report.py::test_show_values_empty_expected_refs_single_line PASSED [ 16%]",
                                "tests/image_drift/test_report.py::test_show_values_empty_expected_sorted_by_path_then_alias PASSED [ 16%]",
                                "tests/image_drift/test_report.py::test_show_values_nonempty_expected_still_uses_arrow PASSED [ 16%]",
                                "tests/image_drift/test_report.py::test_kolla_chain_inner_regression_two_blocks PASSED [ 16%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_concrete_tag_extracted PASSED [ 16%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_jinja_value_skipped PASSED [ 17%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_multiple_aliases_in_one_role_file PASSED [ 17%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_empty_or_malformed_returns_empty PASSED [ 17%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_tag_indirected_through_own_version_resolved PASSED [ 17%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_tag_indirected_through_own_version_non_string_pin PASSED [ 17%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_tag_indirection_whitespace_insensitive PASSED [ 17%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_tag_indirection_skipped_when_version_non_concrete PASSED [ 17%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_tag_indirection_skipped_when_version_missing PASSED [ 17%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_tag_referencing_other_var_skipped PASSED [ 18%]",
                                "tests/image_drift/test_role_defaults_parser.py::test_composed_tag_left_for_later_pass PASSED [ 18%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_unreferenced_registry_var_detected PASSED [ 18%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_own_definition_line_is_not_a_consumer PASSED [ 18%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_reference_in_same_role_not_detected PASSED [ 18%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_reference_from_another_role_not_detected PASSED [ 18%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_bare_jinja_statement_reference_counts_as_consumer PASSED [ 18%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_longer_name_does_not_mask_its_prefix PASSED [ 18%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_playbook_reference_not_detected PASSED [ 19%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_manager_template_reference_not_detected PASSED [ 19%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_base_docker_registry_var_is_not_reported PASSED [ 19%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_consumer_in_an_unfiltered_file_is_found PASSED [ 19%]",
                                "tests/image_drift/test_role_registry_orphan.py::test_allowlist_suppresses_orphan PASSED [ 19%]",
                                "tests/image_drift/test_role_shadows.py::test_baseline_drift PASSED       [ 19%]",
                                "tests/image_drift/test_role_shadows.py::test_role_without_defaults_skipped PASSED [ 19%]",
                                "tests/image_drift/test_role_shadows.py::test_jinja_valued_tag_not_drift PASSED [ 20%]",
                                "tests/image_drift/test_role_shadows.py::test_allowlist_very_narrow_pins_to_role_file PASSED [ 20%]",
                                "tests/image_drift/test_role_shadows.py::test_netbox_redis_is_live PASSED [ 20%]",
                                "tests/image_drift/test_role_shadows.py::test_dormant_aliases_are_dormant PASSED [ 20%]",
                                "tests/image_drift/test_role_shadows.py::test_floatdemo_is_live PASSED    [ 20%]",
                                "tests/image_drift/test_role_shadows.py::test_stream_resolved_not_emitted PASSED [ 20%]",
                                "tests/image_drift/test_role_shadows.py::test_dormant_findings_are_advisory PASSED [ 20%]",
                                "tests/image_drift/test_role_shadows.py::test_live_findings_are_actionable PASSED [ 20%]",
                                "tests/image_drift/test_role_unpinned.py::test_ciinternal_detected PASSED [ 21%]",
                                "tests/image_drift/test_role_unpinned.py::test_widget_detected_with_release_key PASSED [ 21%]",
                                "tests/image_drift/test_role_unpinned.py::test_adminer_not_emitted PASSED [ 21%]",
                                "tests/image_drift/test_role_unpinned.py::test_stream_resolved_not_emitted PASSED [ 21%]",
                                "tests/image_drift/test_role_unpinned.py::test_allowlist_marks_ciinternal_allowlisted PASSED [ 21%]",
                                "tests/image_drift/test_rolling_pin.py::test_rolling_pins_flagged PASSED  [ 21%]",
                                "tests/image_drift/test_rolling_pin.py::test_concrete_pin_not_flagged PASSED [ 21%]",
                                "tests/image_drift/test_rolling_pin.py::test_odd_but_pinned_not_flagged PASSED [ 21%]",
                                "tests/image_drift/test_rolling_pin.py::test_top_level_key_ignored PASSED [ 22%]",
                                "tests/image_drift/test_rolling_pin.py::test_entry_fields PASSED          [ 22%]",
                                "tests/image_drift/test_rolling_pin.py::test_allowlist_marks_entry PASSED [ 22%]",
                                "tests/image_drift/test_source_list_tree.py::test_list_tree_returns_nested_paths PASSED [ 22%]",
                                "tests/image_drift/test_source_list_tree.py::test_list_tree_absent_raises_by_default PASSED [ 22%]",
                                "tests/image_drift/test_source_list_tree.py::test_list_tree_absent_missing_ok_returns_empty PASSED [ 22%]",
                                "tests/kolla_drift/test_archive.py::test_repo_slug_and_archive_url PASSED [ 22%]",
                                "tests/kolla_drift/test_archive.py::test_snapshot_dir_fetches_extracts_and_serves PASSED [ 22%]",
                                "tests/kolla_drift/test_archive.py::test_snapshot_dir_memoizes_one_http_call PASSED [ 23%]",
                                "tests/kolla_drift/test_archive.py::test_snapshot_dir_404_raises PASSED   [ 23%]",
                                "tests/kolla_drift/test_archive.py::test_fetch_retries_once_then_succeeds PASSED [ 23%]",
                                "tests/kolla_drift/test_archive.py::test_fetch_fails_twice_raises PASSED  [ 23%]",
                                "tests/kolla_drift/test_archive.py::test_unsafe_traversal_member_rejected PASSED [ 23%]",
                                "tests/kolla_drift/test_archive.py::test_absolute_symlink_member_rejected_on_fallback PASSED [ 23%]",
                                "tests/kolla_drift/test_archive.py::test_safe_relative_symlink_extracted_on_fallback PASSED [ 23%]",
                                "tests/kolla_drift/test_config.py::test_load_minimal_config PASSED        [ 23%]",
                                "tests/kolla_drift/test_config.py::test_osism_root_and_paths_are_unknown_keys PASSED [ 24%]",
                                "tests/kolla_drift/test_config.py::test_unknown_top_level_key_errors PASSED [ 24%]",
                                "tests/kolla_drift/test_config.py::test_allowlist_broad_match PASSED      [ 24%]",
                                "tests/kolla_drift/test_config.py::test_apply_marks_matching_drift_allowlisted PASSED [ 24%]",
                                "tests/kolla_drift/test_config.py::test_apply_returns_unmatched_drift_unchanged PASSED [ 24%]",
                                "tests/kolla_drift/test_config.py::test_allowlist_narrow_by_alias PASSED  [ 24%]",
                                "tests/kolla_drift/test_config.py::test_allowlist_very_narrow PASSED      [ 24%]",
                                "tests/kolla_drift/test_config.py::test_allowlist_empty_reason_errors PASSED [ 24%]",
                                "tests/kolla_drift/test_config.py::test_allowlist_no_file_returns_empty PASSED [ 25%]",
                                "tests/kolla_drift/test_config.py::test_sources_parsed PASSED             [ 25%]",
                                "tests/kolla_drift/test_config.py::test_default_owner_defaults_when_absent PASSED [ 25%]",
                                "tests/kolla_drift/test_config.py::test_unknown_source_key_errors PASSED  [ 25%]",
                                "tests/kolla_drift/test_config.py::test_stale_flags_unused_entry PASSED   [ 25%]",
                                "tests/kolla_drift/test_config.py::test_stale_scoped_to_ran_plugins PASSED [ 25%]",
                                "tests/kolla_drift/test_config.py::test_prefix_matches_service_and_subgroups PASSED [ 25%]",
                                "tests/kolla_drift/test_config.py::test_prefix_does_not_match_adjacent_name PASSED [ 25%]",
                                "tests/kolla_drift/test_config.py::test_exact_is_default_and_unchanged PASSED [ 26%]",
                                "tests/kolla_drift/test_config.py::test_allowlist_unknown_match_value_errors PASSED [ 26%]",
                                "tests/kolla_drift/test_config.py::test_allowlist_empty_image_errors PASSED [ 26%]",
                                "tests/kolla_drift/test_config.py::test_prefix_entry_stale_when_no_match PASSED [ 26%]",
                                "tests/kolla_drift/test_config.py::test_releases_and_release_refs_parse PASSED [ 26%]",
                                "tests/kolla_drift/test_config.py::test_releases_default_empty PASSED     [ 26%]",
                                "tests/kolla_drift/test_config.py::test_archive_and_snapshot_cache_defaults PASSED [ 26%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_read_returns_bytes PASSED [ 26%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_read_missing_raises_with_where PASSED [ 27%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_read_optional_present PASSED [ 27%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_read_optional_absent_returns_none PASSED [ 27%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_list_tree_sorted_repo_relative PASSED [ 27%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_list_tree_missing_raises PASSED [ 27%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_list_tree_missing_ok_returns_empty PASSED [ 27%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_list_returns_names PASSED [ 27%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_list_dirs_only PASSED    [ 27%]",
                                "tests/kolla_drift/test_dir_helpers.py::test_dir_list_missing_raises PASSED [ 28%]",
                                "tests/kolla_drift/test_driver.py::test_local_only_run_refuses_a_plugin_that_must_reach_the_network PASSED [ 28%]",
                                "tests/kolla_drift/test_driver.py::test_remote_fallback_permits_the_network_read PASSED [ 28%]",
                                "tests/kolla_drift/test_driver.py::test_a_fully_remote_run_is_never_blocked PASSED [ 28%]",
                                "tests/kolla_drift/test_driver.py::test_repo_only_plugins_are_not_blocked PASSED [ 28%]",
                                "tests/kolla_drift/test_driver.py::test_every_offending_plugin_is_listed_at_once PASSED [ 28%]",
                                "tests/kolla_drift/test_driver.py::test_network_plugin_in_a_local_only_run_exits_2 PASSED [ 28%]",
                                "tests/kolla_drift/test_driver.py::test_base_dir_not_found_exits_2 PASSED [ 28%]",
                                "tests/kolla_drift/test_driver_stale.py::test_stale_entry_forces_exit_1_and_is_reported PASSED [ 29%]",
                                "tests/kolla_drift/test_driver_stale.py::test_no_allowlist_ignores_invalid_file PASSED [ 29%]",
                                "tests/kolla_drift/test_enablement.py::test_canon_normalizes_hyphen_to_underscore PASSED [ 29%]",
                                "tests/kolla_drift/test_enablement.py::test_parse_enable_flags_strips_prefix PASSED [ 29%]",
                                "tests/kolla_drift/test_enablement.py::test_truthy_enables_literal_only_and_canon PASSED [ 29%]",
                                "tests/kolla_drift/test_enablement.py::test_parse_build_set_unions_both_blocks_canon PASSED [ 29%]",
                                "tests/kolla_drift/test_enablement.py::test_release_range_derives_from_file_set PASSED [ 29%]",
                                "tests/kolla_drift/test_enablement.py::test_release_range_override_wins PASSED [ 30%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_enable_keys_monolithic PASSED [ 30%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_enable_keys_split_dir PASSED [ 30%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_groupvars_keys_monolithic PASSED [ 30%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_groupvars_keys_split_dir PASSED [ 30%]",
                                "tests/kolla_drift/test_enablement.py::test_osism_groupvars_keys_merges_defaults_and_versions_template PASSED [ 30%]",
                                "tests/kolla_drift/test_enablement.py::test_osism_groupvars_keys_counts_overlays PASSED [ 30%]",
                                "tests/kolla_drift/test_enablement.py::test_osism_enable_flags_merges_across_all_files PASSED [ 30%]",
                                "tests/kolla_drift/test_enablement.py::test_osism_enable_ids_truthy PASSED [ 31%]",
                                "tests/kolla_drift/test_enablement.py::test_osism_enable_ids_explicit_includes_all_keys PASSED [ 31%]",
                                "tests/kolla_drift/test_enablement.py::test_osism_enable_ids_unknown_scope_raises PASSED [ 31%]",
                                "tests/kolla_drift/test_enablement.py::test_groupvars_home_names_the_per_service_file PASSED [ 31%]",
                                "tests/kolla_drift/test_enablement.py::test_groupvars_home_falls_back_to_the_layer_without_homes PASSED [ 31%]",
                                "tests/kolla_drift/test_enablement.py::test_groupvars_home_dropped_key_ignores_homes PASSED [ 31%]",
                                "tests/kolla_drift/test_enablement.py::test_groupvars_home_in_newest_keys PASSED [ 31%]",
                                "tests/kolla_drift/test_enablement.py::test_groupvars_home_dropped_only PASSED [ 31%]",
                                "tests/kolla_drift/test_enablement.py::test_groupvars_home_newest_wins_over_dropped PASSED [ 32%]",
                                "tests/kolla_drift/test_enablement.py::test_groupvars_home_neither_returns_none PASSED [ 32%]",
                                "tests/kolla_drift/test_enablement.py::test_in_mirror_layer PASSED        [ 32%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_role_default_keys_all_top_level_keys PASSED [ 32%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_role_default_keys_role_without_defaults_skipped PASSED [ 32%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_image_tag_keys_collects_both_suffixes PASSED [ 32%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_homes_names_the_lexically_last_file PASSED [ 32%]",
                                "tests/kolla_drift/test_enablement.py::test_upstream_groupvars_are_read_once_per_ref PASSED [ 32%]",
                                "tests/kolla_drift/test_enablement_source_refs.py::test_parse_source_refs_returns_openstack_project_refs PASSED [ 33%]",
                                "tests/kolla_drift/test_enablement_source_refs.py::test_parse_source_refs_preserves_hyphenated_project_names PASSED [ 33%]",
                                "tests/kolla_drift/test_enablement_source_refs.py::test_parse_source_refs_keeps_valueless_entries PASSED [ 33%]",
                                "tests/kolla_drift/test_enablement_source_refs.py::test_parse_source_refs_empty_when_block_absent PASSED [ 33%]",
                                "tests/kolla_drift/test_enablement_values.py::test_groupvars_values_merges_and_parses PASSED [ 33%]",
                                "tests/kolla_drift/test_enablement_values.py::test_groupvars_values_skips_non_mapping_and_empty PASSED [ 33%]",
                                "tests/kolla_drift/test_enablement_values.py::test_osism_mirror_values_reads_only_001 PASSED [ 33%]",
                                "tests/kolla_drift/test_enablement_values.py::test_mirror_values_merges_the_whole_001_layer PASSED [ 33%]",
                                "tests/kolla_drift/test_enablement_values.py::test_supply_excluding_mirror_excludes_every_layer_file PASSED [ 34%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_parses_a_gate_into_its_listed_releases PASSED [ 34%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_parses_the_not_in_form_the_same_way PASSED [ 34%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_parses_a_named_release_literal PASSED [ 34%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_ignores_the_rest_of_the_expression PASSED [ 34%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_finds_a_gate_nested_inside_a_structured_value PASSED [ 34%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_var_without_a_gate_is_absent PASSED [ 34%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_deduplicates_repeated_literals_preserving_order PASSED [ 34%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_empty_and_non_mapping_documents_yield_nothing PASSED [ 35%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_per_release_file_round_trips PASSED [ 35%]",
                                "tests/kolla_drift/test_enablement_version_gates.py::test_per_release_file_target_rejects_other_files PASSED [ 35%]",
                                "tests/kolla_drift/test_http_head.py::test_head_returns_the_response_for_a_published_artifact PASSED [ 35%]",
                                "tests/kolla_drift/test_http_head.py::test_head_returns_a_whitelisted_status_without_raising PASSED [ 35%]",
                                "tests/kolla_drift/test_http_head.py::test_head_raises_on_a_status_that_is_not_whitelisted PASSED [ 35%]",
                                "tests/kolla_drift/test_http_head.py::test_head_raises_on_server_error_even_when_404_is_whitelisted PASSED [ 35%]",
                                "tests/kolla_drift/test_http_head.py::test_head_raises_on_rate_limit_even_when_404_is_whitelisted PASSED [ 35%]",
                                "tests/kolla_drift/test_http_head.py::test_head_raises_source_error_on_transport_failure PASSED [ 36%]",
                                "tests/kolla_drift/test_http_head.py::test_head_reports_the_status_on_the_error PASSED [ 36%]",
                                "tests/kolla_drift/test_http_head.py::test_head_leaves_the_status_unset_for_a_transport_failure PASSED [ 36%]",
                                "tests/kolla_drift/test_http_head.py::test_head_retries_a_transient_status_and_returns_the_recovered_response PASSED [ 36%]",
                                "tests/kolla_drift/test_http_head.py::test_head_retries_a_transport_failure PASSED [ 36%]",
                                "tests/kolla_drift/test_http_head.py::test_head_still_raises_when_the_host_keeps_refusing PASSED [ 36%]",
                                "tests/kolla_drift/test_http_head.py::test_head_does_not_retry_a_settled_answer PASSED [ 36%]",
                                "tests/kolla_drift/test_http_head.py::test_head_does_not_retry_a_whitelisted_status PASSED [ 36%]",
                                "tests/kolla_drift/test_http_head.py::test_head_backs_off_between_attempts PASSED [ 37%]",
                                "tests/kolla_drift/test_http_head.py::test_a_non_github_throttle_does_not_blame_github PASSED [ 37%]",
                                "tests/kolla_drift/test_http_head.py::test_a_non_github_throttle_echoes_retry_after_when_offered PASSED [ 37%]",
                                "tests/kolla_drift/test_http_head.py::test_a_github_throttle_still_gets_the_github_hint PASSED [ 37%]",
                                "tests/kolla_drift/test_inventory_sections.py::test_returns_groups_with_sorted_members PASSED [ 37%]",
                                "tests/kolla_drift/test_inventory_sections.py::test_empty_group_has_no_members PASSED [ 37%]",
                                "tests/kolla_drift/test_inventory_sections.py::test_duplicate_member_in_group_does_not_raise PASSED [ 37%]",
                                "tests/kolla_drift/test_kolla_docker.py::test_normalises_hyphen_to_underscore PASSED [ 37%]",
                                "tests/kolla_drift/test_kolla_docker.py::test_empty PASSED                [ 38%]",
                                "tests/kolla_drift/test_kolla_enablement_build.py::test_flags_enabled_buildable_not_built PASSED [ 38%]",
                                "tests/kolla_drift/test_kolla_enablement_build.py::test_reads_enable_flags_split_across_files PASSED [ 38%]",
                                "tests/kolla_drift/test_kolla_enablement_build.py::test_allowlist_marks_allowlisted PASSED [ 38%]",
                                "tests/kolla_drift/test_kolla_enablement_orphan.py::test_truthy_scope_flags_absent_truthy_services PASSED [ 38%]",
                                "tests/kolla_drift/test_kolla_enablement_orphan.py::test_explicit_scope_also_flags_dead_no_flags PASSED [ 38%]",
                                "tests/kolla_drift/test_kolla_enablement_orphan.py::test_present_upstream_is_not_orphan PASSED [ 38%]",
                                "tests/kolla_drift/test_kolla_enablement_orphan.py::test_union_across_releases_not_intersection PASSED [ 38%]",
                                "tests/kolla_drift/test_kolla_enablement_orphan.py::test_allowlist_marks_allowlisted PASSED [ 39%]",
                                "tests/kolla_drift/test_kolla_enablement_orphan.py::test_run_uses_explicit_default PASSED [ 39%]",
                                "tests/kolla_drift/test_kolla_enablement_orphan.py::test_reads_enable_flags_split_across_files PASSED [ 39%]",
                                "tests/kolla_drift/test_kolla_enablement_orphan.py::test_empty_release_range_raises PASSED [ 39%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_flags_upstream_key_missing_from_osism PASSED [ 39%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_present_in_osism_is_not_missing PASSED [ 39%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_osism_key_in_any_file_suppresses PASSED [ 39%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_versions_template_supplied_key_not_flagged PASSED [ 40%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_overlay_supplied_key_not_flagged PASSED [ 40%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_union_across_releases_not_intersection PASSED [ 40%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_allowlist_marks_allowlisted PASSED [ 40%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_empty_release_range_raises PASSED [ 40%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_missing_key_at_newest_routes_to_001 PASSED [ 40%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_missing_key_dropped_by_newest_routes_to_010 PASSED [ 40%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_missing_key_names_its_per_service_file PASSED [ 40%]",
                                "tests/kolla_drift/test_kolla_groupvars_missing.py::test_two_keys_with_different_homes_have_distinct_remediations PASSED [ 41%]",
                                "tests/kolla_drift/test_kolla_image_orphan.py::test_flags_removed_service_image_and_tag PASSED [ 41%]",
                                "tests/kolla_drift/test_kolla_image_orphan.py::test_present_service_not_flagged PASSED [ 41%]",
                                "tests/kolla_drift/test_kolla_image_orphan.py::test_union_across_releases_not_intersection PASSED [ 41%]",
                                "tests/kolla_drift/test_kolla_image_orphan.py::test_allowlist_marks_osism_built PASSED [ 41%]",
                                "tests/kolla_drift/test_kolla_image_orphan.py::test_ceph_catalogue_ignored PASSED [ 41%]",
                                "tests/kolla_drift/test_kolla_image_orphan.py::test_empty_upstream_union_raises PASSED [ 41%]",
                                "tests/kolla_drift/test_kolla_image_orphan.py::test_empty_catalogue_match_raises PASSED [ 41%]",
                                "tests/kolla_drift/test_kolla_inventory.py::test_flags_upstream_only_groups_across_the_release_range PASSED [ 42%]",
                                "tests/kolla_drift/test_kolla_inventory.py::test_entry_names_only_the_releases_that_want_the_group PASSED [ 42%]",
                                "tests/kolla_drift/test_kolla_inventory.py::test_group_renamed_upstream_is_flagged_at_the_release_that_renamed_it PASSED [ 42%]",
                                "tests/kolla_drift/test_kolla_inventory.py::test_members_come_from_the_last_release_that_wants_the_group PASSED [ 42%]",
                                "tests/kolla_drift/test_kolla_inventory.py::test_red_entry_carries_members PASSED [ 42%]",
                                "tests/kolla_drift/test_kolla_inventory.py::test_exact_and_prefix_allowlist_match PASSED [ 42%]",
                                "tests/kolla_drift/test_kolla_inventory.py::test_empty_release_range_raises PASSED [ 42%]",
                                "tests/kolla_drift/test_kolla_inventory.py::test_declares_the_release_repo_it_reads PASSED [ 42%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_clean_mirror_no_drift PASSED [ 43%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_value_diff_flagged PASSED [ 43%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_missing_from_mirror_flagged PASSED [ 43%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_dropped_key_routed_to_010 PASSED [ 43%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_dup_key_delete PASSED [ 43%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_invented_key PASSED [ 43%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_typo_mirrored_not_flagged PASSED [ 43%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_newest_selected_by_sort PASSED [ 43%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_dropped_key_classified_with_out_of_order_releases PASSED [ 44%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_allowlist_marks_entry PASSED [ 44%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_empty_release_range_raises PASSED [ 44%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_layer_split_across_files_is_a_clean_mirror PASSED [ 44%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_layer_later_file_wins_on_duplicate_key PASSED [ 44%]",
                                "tests/kolla_drift/test_kolla_mirror_verbatim.py::test_missing_upstream_key_names_its_per_service_file PASSED [ 44%]",
                                "tests/kolla_drift/test_kolla_orphan_config.py::test_flags_dead_service_companion_vars PASSED [ 44%]",
                                "tests/kolla_drift/test_kolla_orphan_config.py::test_found_src_points_to_each_file PASSED [ 44%]",
                                "tests/kolla_drift/test_kolla_orphan_config.py::test_no_dead_services_returns_empty PASSED [ 45%]",
                                "tests/kolla_drift/test_kolla_orphan_config.py::test_respects_orphan_allowlist PASSED [ 45%]",
                                "tests/kolla_drift/test_kolla_orphan_config.py::test_own_allowlist_marks_allowlisted PASSED [ 45%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_reports_retired_patch_orphan PASSED [ 45%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_disabled_patch_at_newest_is_consumer PASSED [ 45%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_live_patch_at_newest_not_reported PASSED [ 45%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_defined_upstream_in_groupvars_not_reported PASSED [ 45%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_defined_upstream_in_role_default_only_not_reported PASSED [ 45%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_defined_upstream_at_older_release_only_not_reported PASSED [ 46%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_mentioned_upstream_but_not_defined_is_reported PASSED [ 46%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_owned_by_dead_non_allowlisted_service_not_reported PASSED [ 46%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_owned_by_dead_allowlisted_service_is_reported PASSED [ 46%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_never_consumed_by_patch_not_reported PASSED [ 46%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_substring_safety PASSED [ 46%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_allowlist_applies PASSED [ 46%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_advisory_severity PASSED [ 46%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_fail_closed_empty_release_range PASSED [ 47%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_fail_closed_empty_kolla_yml PASSED [ 47%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_fail_closed_newest_patches_missing PASSED [ 47%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_fail_closed_newest_patches_empty PASSED [ 47%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_unreadable_newest_patch_raises PASSED [ 47%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_unreadable_older_patch_raises PASSED [ 47%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_missing_older_patches_dir_is_not_error PASSED [ 47%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_retired_while_applied_uses_behaviour_change_block PASSED [ 47%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_retired_while_parked_uses_cleanup_block PASSED [ 48%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_applied_file_wins_over_disabled_at_same_release PASSED [ 48%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_two_blocks_report_separately PASSED [ 48%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_found_carries_per_release_state PASSED [ 48%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_missing_older_patch_dir_renders_as_absent PASSED [ 48%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_non_contiguous_live_range PASSED [ 48%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_live_range_named_in_fix PASSED [ 48%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_gate_boundary_is_release_after_newest_live PASSED [ 48%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_non_contiguous_gate_boundary PASSED [ 49%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_no_live_release_asks_for_removal PASSED [ 49%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_applied_block_keeps_and_does_not_order_a_gate PASSED [ 49%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_keep_branch_close_does_not_claim_removal_is_the_only_exit PASSED [ 49%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_gated_definition_still_reported PASSED [ 49%]",
                                "tests/kolla_drift/test_kolla_retired_patch_orphan.py::test_same_range_groups_one_block_different_ranges_split PASSED [ 49%]",
                                "tests/kolla_drift/test_kolla_secrets_orphan.py::test_flags_orphan_secrets_per_release PASSED [ 49%]",
                                "tests/kolla_drift/test_kolla_secrets_orphan.py::test_present_secret_is_not_orphan PASSED [ 50%]",
                                "tests/kolla_drift/test_kolla_secrets_orphan.py::test_allowlist_marks_allowlisted PASSED [ 50%]",
                                "tests/kolla_drift/test_kolla_secrets_orphan.py::test_missing_template_skips_release PASSED [ 50%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_flags_ref_when_a_later_phase_tarball_is_published PASSED [ 50%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_silent_when_no_later_phase_is_published PASSED [ 50%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_silent_when_already_on_the_latest_published_phase PASSED [ 50%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_does_not_probe_or_flag_the_configured_phase_itself PASSED [ 50%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_probes_only_the_phases_opendev_publishes_a_tarball_for PASSED [ 50%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_a_release_already_moved_costs_no_probes PASSED [ 51%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_later_phases_are_only_those_after_the_configured_one PASSED [ 51%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_skips_ref_that_does_not_name_the_release PASSED [ 51%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_skips_valueless_ref PASSED [ 51%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_preserves_hyphenated_project_names PASSED [ 51%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_inconclusive_probe_is_reported_unresolved_not_clean PASSED [ 51%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_inconclusive_probe_does_not_also_yield_a_stale_finding PASSED [ 51%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_one_inconclusive_project_does_not_hide_the_others PASSED [ 51%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_probe_inconclusive_is_a_source_error PASSED [ 52%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_tarball_exists_true_for_a_published_artifact PASSED [ 52%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_tarball_exists_false_when_absent PASSED [ 52%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_tarball_exists_raises_instead_of_reporting_absent_on_outage PASSED [ 52%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_tarball_exists_classifies_a_transport_failure PASSED [ 52%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_declares_the_host_no_base_dir_can_serve PASSED [ 52%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_report_names_the_target_phase_and_the_file_to_edit PASSED [ 52%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_report_does_not_offer_a_phase_that_has_no_tarball PASSED [ 52%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_projects_moving_to_the_same_phase_share_one_report_block PASSED [ 53%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_plugin_level_remediation_describes_the_rename_without_inventing_phases PASSED [ 53%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_unresolved_report_says_unknown_rather_than_clean PASSED [ 53%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_unresolved_refs_failing_alike_share_one_report_block PASSED [ 53%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_unresolved_and_stale_render_as_separate_blocks PASSED [ 53%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_unresolved_entry_is_actionable_so_the_run_exits_nonzero PASSED [ 53%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_run_reports_drift_read_from_the_release_manifest PASSED [ 53%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_run_reports_an_unverified_ref_when_the_probe_fails PASSED [ 53%]",
                                "tests/kolla_drift/test_kolla_source_ref_phase.py::test_run_allowlists_an_unverified_ref_for_a_pinned_project PASSED [ 54%]",
                                "tests/kolla_drift/test_kolla_version_chain_inner.py::test_flags_all_inert_keys PASSED [ 54%]",
                                "tests/kolla_drift/test_kolla_version_chain_inner.py::test_enabled_and_buildable_key_is_an_add PASSED [ 54%]",
                                "tests/kolla_drift/test_kolla_version_chain_inner.py::test_disabled_or_unbuildable_key_is_a_remove PASSED [ 54%]",
                                "tests/kolla_drift/test_kolla_version_chain_inner.py::test_add_and_remove_render_as_separate_blocks PASSED [ 54%]",
                                "tests/kolla_drift/test_kolla_version_chain_inner.py::test_hyphen_underscore_is_not_drift PASSED [ 54%]",
                                "tests/kolla_drift/test_kolla_version_chain_inner.py::test_reads_enable_flags_split_across_files PASSED [ 54%]",
                                "tests/kolla_drift/test_kolla_version_chain_inner.py::test_allowlist_marks_allowlisted PASSED [ 54%]",
                                "tests/kolla_drift/test_kolla_version_chain_upstream.py::test_flags_services_without_template_key PASSED [ 55%]",
                                "tests/kolla_drift/test_kolla_version_chain_upstream.py::test_expected_src_uses_configured_ref PASSED [ 55%]",
                                "tests/kolla_drift/test_kolla_version_chain_upstream.py::test_present_service_not_flagged PASSED [ 55%]",
                                "tests/kolla_drift/test_kolla_version_chain_upstream.py::test_allowlist_marks_allowlisted PASSED [ 55%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_flags_a_gate_naming_a_release_outside_the_supported_range PASSED [ 55%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_silent_when_every_named_release_is_supported PASSED [ 55%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_reports_only_the_dead_releases_of_a_mixed_gate PASSED [ 55%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_flags_a_not_in_gate_too PASSED [ 55%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_ignores_files_that_are_not_yaml PASSED [ 56%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_flags_a_per_release_file_for_a_retired_release PASSED [ 56%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_silent_for_a_per_release_file_of_a_supported_release PASSED [ 56%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_a_retired_per_release_file_can_also_carry_a_stale_gate PASSED [ 56%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_findings_are_advisory_so_the_nightly_job_stays_green PASSED [ 56%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_a_deliberate_gate_can_be_allowlisted PASSED [ 56%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_stale_releases_keeps_order_and_drops_supported PASSED [ 56%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_report_names_the_variable_the_release_and_the_file PASSED [ 56%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_gate_and_file_findings_render_as_separate_blocks PASSED [ 57%]",
                                "tests/kolla_drift/test_kolla_version_gate_orphan.py::test_plugin_is_registered PASSED [ 57%]",
                                "tests/kolla_drift/test_model.py::test_drift_entry_has_all_fields PASSED  [ 57%]",
                                "tests/kolla_drift/test_model.py::test_drift_entry_to_dict_for_json PASSED [ 57%]",
                                "tests/kolla_drift/test_model.py::test_default_severity_is_actionable PASSED [ 57%]",
                                "tests/kolla_drift/test_model.py::test_as_allowlisted_preserves_severity PASSED [ 57%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_registry_is_a_list PASSED [ 57%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_each_plugin_has_required_metadata PASSED [ 57%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_inner_plugin_registered PASSED [ 58%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_upstream_plugin_registered PASSED [ 58%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_inventory_plugin_registered PASSED [ 58%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_enablement_build_plugin_registered PASSED [ 58%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_enablement_orphan_plugin_registered PASSED [ 58%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_secrets_orphan_plugin_registered PASSED [ 58%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_retired_patch_orphan_plugin_registered PASSED [ 58%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_orphan_config_plugin_registered PASSED [ 58%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_groupvars_missing_plugin_registered PASSED [ 59%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_every_plugin_has_summary_and_remediation PASSED [ 59%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_default_config_enables_every_registered_plugin PASSED [ 59%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_kolla_mirror_verbatim_plugin_registered PASSED [ 59%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_plugins_in_lifecycle_order PASSED [ 59%]",
                                "tests/kolla_drift/test_plugin_registry.py::test_plugin_groups_match_registries_and_are_disjoint PASSED [ 59%]",
                                "tests/kolla_drift/test_report.py::test_single_plugin_groups_sorts_and_renders PASSED [ 59%]",
                                "tests/kolla_drift/test_report.py::test_orders_blocks_by_plugins_list PASSED [ 60%]",
                                "tests/kolla_drift/test_report.py::test_build_style_splits_one_block_per_ref_pair PASSED [ 60%]",
                                "tests/kolla_drift/test_report.py::test_allowlisted_excluded_from_blocks_and_count PASSED [ 60%]",
                                "tests/kolla_drift/test_report.py::test_empty_returns_empty_list PASSED   [ 60%]",
                                "tests/kolla_drift/test_report.py::test_entry_summary_remediation_override_plugin_default PASSED [ 60%]",
                                "tests/kolla_drift/test_report.py::test_lists_image_not_alias PASSED      [ 60%]",
                                "tests/kolla_drift/test_report.py::test_remediation_alone_splits_the_group PASSED [ 60%]",
                                "tests/kolla_drift/test_sbom_map.py::test_extracts_keys PASSED            [ 60%]",
                                "tests/kolla_drift/test_sbom_map.py::test_missing_map_raises PASSED       [ 61%]",
                                "tests/kolla_drift/test_secrets_map.py::test_extracts_top_level_keys PASSED [ 61%]",
                                "tests/kolla_drift/test_secrets_map.py::test_ignores_comments_indented_and_markers PASSED [ 61%]",
                                "tests/kolla_drift/test_secrets_map.py::test_empty_input PASSED           [ 61%]",
                                "tests/kolla_drift/test_source.py::test_read_local_working_tree_when_found PASSED [ 61%]",
                                "tests/kolla_drift/test_source.py::test_read_not_found_in_base_dir_is_mode_b_error PASSED [ 61%]",
                                "tests/kolla_drift/test_source.py::test_read_local_file_absent_is_error_not_remote PASSED [ 61%]",
                                "tests/kolla_drift/test_source.py::test_read_remote_fallback_when_not_found PASSED [ 61%]",
                                "tests/kolla_drift/test_source.py::test_read_no_base_dir_is_remote PASSED [ 62%]",
                                "tests/kolla_drift/test_source.py::test_first_base_dir_with_the_repo_wins PASSED [ 62%]",
                                "tests/kolla_drift/test_source.py::test_pinned_local_git_repo_reads_at_pin_ref PASSED [ 62%]",
                                "tests/kolla_drift/test_source.py::test_pinned_non_git_dir_falls_back_to_remote PASSED [ 62%]",
                                "tests/kolla_drift/test_source.py::test_pinned_non_git_dir_no_fallback_is_mode_b PASSED [ 62%]",
                                "tests/kolla_drift/test_source.py::test_read_remote_404_errors PASSED     [ 62%]",
                                "tests/kolla_drift/test_source.py::test_read_network_error PASSED         [ 62%]",
                                "tests/kolla_drift/test_source.py::test_read_underscore_repo_translates_to_hyphen PASSED [ 62%]",
                                "tests/kolla_drift/test_source.py::test_read_optional_present_local PASSED [ 63%]",
                                "tests/kolla_drift/test_source.py::test_read_optional_missing_local_returns_none PASSED [ 63%]",
                                "tests/kolla_drift/test_source.py::test_read_optional_404_returns_none PASSED [ 63%]",
                                "tests/kolla_drift/test_source.py::test_read_optional_network_error_still_raises PASSED [ 63%]",
                                "tests/kolla_drift/test_source.py::test_read_optional_underscore_repo_translates_to_hyphen PASSED [ 63%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_local PASSED             [ 63%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_remote PASSED            [ 63%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_remote_404_errors PASSED [ 63%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_remote_404_missing_ok_returns_empty PASSED [ 64%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_remote_rate_limit_missing_ok_still_raises PASSED [ 64%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_local_missing_ok_returns_empty PASSED [ 64%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_local_absent_raises_by_default PASSED [ 64%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_underscore_repo_translates_to_hyphen PASSED [ 64%]",
                                "tests/kolla_drift/test_source.py::test_source_override_redirects_owner_and_ref PASSED [ 64%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_local_dirs_only_excludes_files PASSED [ 64%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_remote_dirs_only_filters_type PASSED [ 64%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_at_ref_uses_explicit_ref_and_owner PASSED [ 65%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_at_ref_404_raises PASSED [ 65%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_at_ref_404_missing_ok_returns_empty PASSED [ 65%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_at_ref_local_pinned_missing_ok_returns_empty PASSED [ 65%]",
                                "tests/kolla_drift/test_source.py::test_release_to_ref_prefers_stable PASSED [ 65%]",
                                "tests/kolla_drift/test_source.py::test_release_to_ref_falls_back_through_candidates PASSED [ 65%]",
                                "tests/kolla_drift/test_source.py::test_release_to_ref_treats_422_as_absent PASSED [ 65%]",
                                "tests/kolla_drift/test_source.py::test_release_to_ref_uses_eom_tag_last PASSED [ 65%]",
                                "tests/kolla_drift/test_source.py::test_release_to_ref_none_raises PASSED [ 66%]",
                                "tests/kolla_drift/test_source.py::test_release_to_ref_override_wins PASSED [ 66%]",
                                "tests/kolla_drift/test_source.py::test_read_at_ref_returns_bytes_at_explicit_ref PASSED [ 66%]",
                                "tests/kolla_drift/test_source.py::test_read_at_ref_optional_404_returns_none PASSED [ 66%]",
                                "tests/kolla_drift/test_source.py::test_read_at_ref_404_raises_when_not_optional PASSED [ 66%]",
                                "tests/kolla_drift/test_source.py::test_describe_resolution_local_and_remote PASSED [ 66%]",
                                "tests/kolla_drift/test_source.py::test_describe_resolution_mode_b_raises PASSED [ 66%]",
                                "tests/kolla_drift/test_source.py::test_describe_resolution_lists_all_missing PASSED [ 66%]",
                                "tests/kolla_drift/test_source.py::test_git_show_multi_ref_from_one_clone PASSED [ 67%]",
                                "tests/kolla_drift/test_source.py::test_git_show_optional_absent_path PASSED [ 67%]",
                                "tests/kolla_drift/test_source.py::test_git_ls_tree_returns_basenames_and_dirs_only PASSED [ 67%]",
                                "tests/kolla_drift/test_source.py::test_resolve_local_ref_finds_non_origin_remote PASSED [ 67%]",
                                "tests/kolla_drift/test_source.py::test_git_show_unresolvable_ref_raises PASSED [ 67%]",
                                "tests/kolla_drift/test_source.py::test_git_ref_exists PASSED             [ 67%]",
                                "tests/kolla_drift/test_source.py::test_read_at_ref_local_git PASSED      [ 67%]",
                                "tests/kolla_drift/test_source.py::test_describe_resolution_pinned_local_tag PASSED [ 67%]",
                                "tests/kolla_drift/test_source.py::test_read_at_ref_unpinned_local_dir_is_remote PASSED [ 68%]",
                                "tests/kolla_drift/test_source.py::test_release_to_ref_memoizes_probes PASSED [ 68%]",
                                "tests/kolla_drift/test_source.py::test_read_remote_rate_limit_403_gives_helpful_error PASSED [ 68%]",
                                "tests/kolla_drift/test_source.py::test_rate_limit_error_when_authenticated_omits_token_advice PASSED [ 68%]",
                                "tests/kolla_drift/test_source.py::test_secondary_rate_limit_retry_after_gives_hint PASSED [ 68%]",
                                "tests/kolla_drift/test_source.py::test_raw_cdn_429_without_headers_gives_raw_specific_hint PASSED [ 68%]",
                                "tests/kolla_drift/test_source.py::test_plain_403_is_not_mistaken_for_rate_limiting PASSED [ 68%]",
                                "tests/kolla_drift/test_source.py::test_non_github_host_does_not_get_the_github_hint PASSED [ 68%]",
                                "tests/kolla_drift/test_source.py::test_non_github_host_echoes_retry_after_when_offered PASSED [ 69%]",
                                "tests/kolla_drift/test_source.py::test_auth_headers_adds_bearer_for_github_host PASSED [ 69%]",
                                "tests/kolla_drift/test_source.py::test_auth_headers_absent_when_no_token PASSED [ 69%]",
                                "tests/kolla_drift/test_source.py::test_auth_headers_not_leaked_to_non_github_host PASSED [ 69%]",
                                "tests/kolla_drift/test_source.py::test_get_sends_auth_header_to_github PASSED [ 69%]",
                                "tests/kolla_drift/test_source.py::test_get_does_not_send_auth_to_non_github_mirror PASSED [ 69%]",
                                "tests/kolla_drift/test_source.py::test_read_uses_archive_when_enabled PASSED [ 69%]",
                                "tests/kolla_drift/test_source.py::test_archive_snapshot_shared_across_reads PASSED [ 70%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_uses_archive PASSED      [ 70%]",
                                "tests/kolla_drift/test_source.py::test_list_tree_uses_archive PASSED     [ 70%]",
                                "tests/kolla_drift/test_source.py::test_list_dir_at_ref_uses_archive PASSED [ 70%]",
                                "tests/kolla_drift/test_source.py::test_read_at_ref_uses_archive PASSED   [ 70%]",
                                "tests/kolla_drift/test_source.py::test_ref_exists_memoizes_probes PASSED [ 70%]",
                                "tests/kolla_drift/test_source.py::test_ref_exists_memoizes_absence_too PASSED [ 70%]",
                                "tests/kolla_drift/test_source.py::test_ref_exists_cache_is_per_ref PASSED [ 70%]",
                                "tests/kolla_drift/test_versions_template.py::test_extracts_distinct_keys PASSED [ 71%]",
                                "tests/kolla_drift/test_versions_template.py::test_empty_input PASSED     [ 71%]",
                                "tests/mirror_sync/test_attribute.py::test_finds_the_commit_that_changed_the_key PASSED [ 71%]",
                                "tests/mirror_sync/test_attribute.py::test_searches_both_old_and_new_homes PASSED [ 71%]",
                                "tests/mirror_sync/test_attribute.py::test_a_missing_home_does_not_break_the_union PASSED [ 71%]",
                                "tests/mirror_sync/test_attribute.py::test_key_is_regex_escaped PASSED    [ 71%]",
                                "tests/mirror_sync/test_attribute.py::test_range_is_bounded_below PASSED  [ 71%]",
                                "tests/mirror_sync/test_attribute.py::test_cap_is_globally_newest_first_across_homes PASSED [ 71%]",
                                "tests/mirror_sync/test_attribute.py::test_a_commit_touching_both_homes_is_not_listed_twice PASSED [ 72%]",
                                "tests/mirror_sync/test_attribute.py::test_a_git_failure_is_reported_not_silently_empty PASSED [ 72%]",
                                "tests/mirror_sync/test_attribute.py::test_no_known_home_is_reported_not_silently_empty PASSED [ 72%]",
                                "tests/mirror_sync/test_attribute.py::test_remote_only_run_skips_with_a_stated_reason PASSED [ 72%]",
                                "tests/mirror_sync/test_attribute.py::test_missing_range_skips_with_a_stated_reason PASSED [ 72%]",
                                "tests/mirror_sync/test_attribute.py::test_results_are_capped_and_say_so PASSED [ 72%]",
                                "tests/mirror_sync/test_classify.py::test_quoted_no_vs_false_is_representation_not_semantic PASSED [ 72%]",
                                "tests/mirror_sync/test_classify.py::test_yes_vs_true_is_representation PASSED [ 72%]",
                                "tests/mirror_sync/test_classify.py::test_on_off_tokens_are_covered PASSED [ 73%]",
                                "tests/mirror_sync/test_classify.py::test_token_match_is_case_insensitive PASSED [ 73%]",
                                "tests/mirror_sync/test_classify.py::test_opposite_truth_values_are_semantic PASSED [ 73%]",
                                "tests/mirror_sync/test_classify.py::test_a_non_boolish_string_is_not_representation PASSED [ 73%]",
                                "tests/mirror_sync/test_classify.py::test_jinja_delimiter_whitespace_only_is_notation PASSED [ 73%]",
                                "tests/mirror_sync/test_classify.py::test_whitespace_inside_a_jinja_expression_stays_semantic PASSED [ 73%]",
                                "tests/mirror_sync/test_classify.py::test_a_changed_filter_argument_stays_semantic PASSED [ 73%]",
                                "tests/mirror_sync/test_classify.py::test_overridden_requires_an_unconditional_later_layer PASSED [ 73%]",
                                "tests/mirror_sync/test_classify.py::test_a_100_layer_counts_as_unconditional PASSED [ 74%]",
                                "tests/mirror_sync/test_classify.py::test_a_010_layer_does_not_count PASSED [ 74%]",
                                "tests/mirror_sync/test_classify.py::test_a_layer_sorting_before_the_mirror_does_not_count PASSED [ 74%]",
                                "tests/mirror_sync/test_classify.py::test_release_conditional_override_is_not_overridden PASSED [ 74%]",
                                "tests/mirror_sync/test_classify.py::test_a_release_gate_nested_in_a_mapping_is_not_overridden PASSED [ 74%]",
                                "tests/mirror_sync/test_classify.py::test_a_release_gate_nested_in_a_list_is_not_overridden PASSED [ 74%]",
                                "tests/mirror_sync/test_classify.py::test_a_release_gate_nested_two_levels_deep_is_not_overridden PASSED [ 74%]",
                                "tests/mirror_sync/test_classify.py::test_a_plain_mapping_override_is_still_overridden PASSED [ 74%]",
                                "tests/mirror_sync/test_classify.py::test_overlay_only_supply_is_not_overridden PASSED [ 75%]",
                                "tests/mirror_sync/test_classify.py::test_versions_yml_is_the_named_exception PASSED [ 75%]",
                                "tests/mirror_sync/test_classify.py::test_supply_info_reads_the_defaults_layers_with_last_wins PASSED [ 75%]",
                                "tests/mirror_sync/test_classify.py::test_supply_info_includes_the_rendered_versions_layer PASSED [ 75%]",
                                "tests/mirror_sync/test_cli.py::test_report_mode_also_requires_defaults_dir PASSED [ 75%]",
                                "tests/mirror_sync/test_cli.py::test_the_same_key_under_two_dispositions_is_an_error PASSED [ 75%]",
                                "tests/mirror_sync/test_cli.py::test_keep_is_decided_at_exit_not_entry PASSED [ 75%]",
                                "tests/mirror_sync/test_cli.py::test_a_midwrite_failure_names_the_worktree_and_how_to_remove_it PASSED [ 75%]",
                                "tests/mirror_sync/test_cli.py::test_a_failure_before_any_write_does_not_claim_a_partial_write PASSED [ 76%]",
                                "tests/mirror_sync/test_cli.py::test_a_successful_apply_returns_zero_and_emits_one_json_document PASSED [ 76%]",
                                "tests/mirror_sync/test_cli.py::test_a_refused_apply_reports_applied_false_not_null PASSED [ 76%]",
                                "tests/mirror_sync/test_cli.py::test_a_report_run_reports_applied_null PASSED [ 76%]",
                                "tests/mirror_sync/test_cli.py::test_worktree_failures_exit_3 PASSED      [ 76%]",
                                "tests/mirror_sync/test_cli.py::test_arms_failures_exit_3 PASSED          [ 76%]",
                                "tests/mirror_sync/test_cli.py::test_pins_from_conflicting_with_base_ref_is_an_error PASSED [ 76%]",
                                "tests/mirror_sync/test_cli.py::test_the_report_file_is_written_by_default_and_named_in_the_output PASSED [ 76%]",
                                "tests/mirror_sync/test_cli.py::test_report_file_honours_an_explicit_path PASSED [ 77%]",
                                "tests/mirror_sync/test_cli.py::test_a_refused_apply_still_leaves_the_report_behind PASSED [ 77%]",
                                "tests/mirror_sync/test_cli.py::test_json_names_the_report_file_so_a_consumer_can_find_it PASSED [ 77%]",
                                "tests/mirror_sync/test_cli.py::test_commit_without_apply_is_refused PASSED [ 77%]",
                                "tests/mirror_sync/test_cli.py::test_commit_branch_without_apply_is_refused_too PASSED [ 77%]",
                                "tests/mirror_sync/test_cli.py::test_apply_reports_the_branch_and_commit_it_made PASSED [ 77%]",
                                "tests/mirror_sync/test_commit.py::test_commit_branches_stages_and_returns_the_sha PASSED [ 77%]",
                                "tests/mirror_sync/test_commit.py::test_commit_stages_a_deletion PASSED   [ 77%]",
                                "tests/mirror_sync/test_commit.py::test_an_existing_branch_is_refused_not_moved PASSED [ 78%]",
                                "tests/mirror_sync/test_commit.py::test_signoff_requires_an_identity PASSED [ 78%]",
                                "tests/mirror_sync/test_commit.py::test_default_branch_is_named_for_the_target PASSED [ 78%]",
                                "tests/mirror_sync/test_detail.py::test_multiline_value_is_written_with_real_newlines PASSED [ 78%]",
                                "tests/mirror_sync/test_detail.py::test_quoting_is_preserved_for_short_values PASSED [ 78%]",
                                "tests/mirror_sync/test_detail.py::test_each_class_carries_its_meaning PASSED [ 78%]",
                                "tests/mirror_sync/test_detail.py::test_attribution_and_note_travel_with_the_row PASSED [ 78%]",
                                "tests/mirror_sync/test_detail.py::test_header_names_the_base_ref_and_both_shas PASSED [ 78%]",
                                "tests/mirror_sync/test_detail.py::test_files_and_keys_the_terminal_truncates_are_all_here PASSED [ 79%]",
                                "tests/mirror_sync/test_detail.py::test_a_class_with_no_rows_gets_no_section PASSED [ 79%]",
                                "tests/mirror_sync/test_effective.py::test_effective_range_stops_at_target PASSED [ 79%]",
                                "tests/mirror_sync/test_effective.py::test_effective_range_rejects_unsupported_target PASSED [ 79%]",
                                "tests/mirror_sync/test_effective.py::test_derive_sets_releases_override_and_fresh_caches PASSED [ 79%]",
                                "tests/mirror_sync/test_effective.py::test_derive_prepends_the_worktree_parent_to_base_dirs PASSED [ 79%]",
                                "tests/mirror_sync/test_effective.py::test_requested_shas_rejects_pin_and_pins_from_together PASSED [ 79%]",
                                "tests/mirror_sync/test_effective.py::test_requested_shas_rejects_a_non_sha PASSED [ 80%]",
                                "tests/mirror_sync/test_effective.py::test_requested_shas_applies_the_pin_only_to_the_target PASSED [ 80%]",
                                "tests/mirror_sync/test_effective.py::test_check_pin_validates_against_the_real_tip_not_itself PASSED [ 80%]",
                                "tests/mirror_sync/test_effective.py::test_check_pin_rejects_a_commit_before_the_branch_point PASSED [ 80%]",
                                "tests/mirror_sync/test_effective.py::test_check_pin_rejects_a_pin_not_reachable_from_the_tip PASSED [ 80%]",
                                "tests/mirror_sync/test_effective.py::test_check_pin_is_a_noop_when_nothing_was_overridden PASSED [ 80%]",
                                "tests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_a_target_mismatch PASSED [ 80%]",
                                "tests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_an_incomplete_release_set PASSED [ 80%]",
                                "tests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_a_malformed_release_sha PASSED [ 81%]",
                                "tests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_a_non_mapping_release_shas PASSED [ 81%]",
                                "tests/mirror_sync/test_effective.py::test_validate_pins_payload_rejects_an_unknown_schema PASSED [ 81%]",
                                "tests/mirror_sync/test_effective.py::test_validate_pins_payload_returns_the_map_and_base PASSED [ 81%]",
                                "tests/mirror_sync/test_effective.py::test_resolve_tips_uses_release_to_ref_then_resolve_commit PASSED [ 81%]",
                                "tests/mirror_sync/test_enablement_additions.py::test_mirror_prefix_is_public_and_matches_the_private_constant PASSED [ 81%]",
                                "tests/mirror_sync/test_enablement_additions.py::test_upstream_groupvars_files_is_public PASSED [ 81%]",
                                "tests/mirror_sync/test_gate.py::test_parses_the_canonical_shape PASSED   [ 81%]",
                                "tests/mirror_sync/test_gate.py::test_declines_a_compound_condition PASSED [ 82%]",
                                "tests/mirror_sync/test_gate.py::test_declines_a_nested_ternary PASSED    [ 82%]",
                                "tests/mirror_sync/test_gate.py::test_declines_a_mixed_release_list PASSED [ 82%]",
                                "tests/mirror_sync/test_gate.py::test_declines_an_unquoted_release PASSED [ 82%]",
                                "tests/mirror_sync/test_gate.py::test_declines_an_empty_release_list PASSED [ 82%]",
                                "tests/mirror_sync/test_gate.py::test_accepts_a_trailing_comma PASSED     [ 82%]",
                                "tests/mirror_sync/test_gate.py::test_declines_a_variable_branch PASSED   [ 82%]",
                                "tests/mirror_sync/test_gate.py::test_accepts_openstack_release_as_an_alias PASSED [ 82%]",
                                "tests/mirror_sync/test_gate.py::test_check_retain_accepts_a_correct_gate PASSED [ 83%]",
                                "tests/mirror_sync/test_gate.py::test_check_retain_rejects_a_reversed_gate PASSED [ 83%]",
                                "tests/mirror_sync/test_gate.py::test_check_retain_rejects_a_wrong_release_list PASSED [ 83%]",
                                "tests/mirror_sync/test_gate.py::test_check_retain_rejects_a_non_canonical_gate PASSED [ 83%]",
                                "tests/mirror_sync/test_gate.py::test_check_retain_rejects_a_key_no_later_layer_supplies PASSED [ 83%]",
                                "tests/mirror_sync/test_gate.py::test_check_retain_rejects_a_gate_in_the_010_layer PASSED [ 83%]",
                                "tests/mirror_sync/test_gate.py::test_retain_unverified_is_rejected_for_a_canonical_gate PASSED [ 83%]",
                                "tests/mirror_sync/test_gate.py::test_retain_unverified_is_rejected_when_no_gate_exists PASSED [ 83%]",
                                "tests/mirror_sync/test_gate.py::test_retain_unverified_accepts_a_present_non_canonical_gate PASSED [ 84%]",
                                "tests/mirror_sync/test_gate.py::test_an_unknown_disposition_key_is_an_error PASSED [ 84%]",
                                "tests/mirror_sync/test_gate.py::test_a_failed_retention_check_propagates_rather_than_becoming_missing PASSED [ 84%]",
                                "tests/mirror_sync/test_gate.py::test_missing_dispositions_only_lists_rows_with_no_flag PASSED [ 84%]",
                                "tests/mirror_sync/test_gate.py::test_accept_upstream_is_noted PASSED     [ 84%]",
                                "tests/mirror_sync/test_layers.py::test_mirror_layer_refuses_a_monolithic_upstream_layout PASSED [ 84%]",
                                "tests/mirror_sync/test_layers.py::test_mirror_layer_refuses_an_empty_upstream_listing PASSED [ 84%]",
                                "tests/mirror_sync/test_layers.py::test_every_arms_refusal_shares_one_base PASSED [ 84%]",
                                "tests/mirror_sync/test_layers.py::test_mirror_layer_writes_prefixed_copies_and_deletes_orphans PASSED [ 85%]",
                                "tests/mirror_sync/test_layers.py::test_mirror_layer_rejects_an_unsafe_upstream_name PASSED [ 85%]",
                                "tests/mirror_sync/test_layers.py::test_mirror_homes_reads_the_tree_with_last_wins PASSED [ 85%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_emits_values_from_the_release_that_still_has_them PASSED [ 85%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_excludes_keys_another_osism_layer_supplies PASSED [ 85%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_excludes_keys_the_target_still_defines PASSED [ 85%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_raises_when_a_dropped_key_has_no_value PASSED [ 85%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_deletes_a_managed_file_with_no_desired_keys PASSED [ 85%]",
                                "tests/mirror_sync/test_layers.py::test_report_mode_reports_an_unmarked_file_instead_of_refusing PASSED [ 86%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_refuses_an_unmarked_managed_file PASSED [ 86%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_refuses_to_delete_an_unmarked_file PASSED [ 86%]",
                                "tests/mirror_sync/test_layers.py::test_require_owned_rejects_a_marker_used_inside_a_value PASSED [ 86%]",
                                "tests/mirror_sync/test_layers.py::test_require_owned_rejects_a_marker_below_the_header PASSED [ 86%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_never_inspects_a_file_outside_the_range PASSED [ 86%]",
                                "tests/mirror_sync/test_layers.py::test_compat_layer_ignores_releases_after_the_target PASSED [ 86%]",
                                "tests/mirror_sync/test_layers.py::test_changed_and_created_compares_bytes_against_disk PASSED [ 86%]",
                                "tests/mirror_sync/test_layers.py::test_changed_and_created_sees_a_content_change PASSED [ 87%]",
                                "tests/mirror_sync/test_layers.py::test_generated_sequences_are_indented_for_yamllint PASSED [ 87%]",
                                "tests/mirror_sync/test_layers.py::test_generated_values_match_the_upstream_quoting_style PASSED [ 87%]",
                                "tests/mirror_sync/test_layers.py::test_mapping_keys_are_not_quoted PASSED [ 87%]",
                                "tests/mirror_sync/test_layers.py::test_nested_keys_stay_bare_and_keep_upstream_order PASSED [ 87%]",
                                "tests/mirror_sync/test_model.py::test_has_changes_is_false_when_every_write_is_unchanged PASSED [ 87%]",
                                "tests/mirror_sync/test_model.py::test_has_changes_true_on_a_changed_write PASSED [ 87%]",
                                "tests/mirror_sync/test_model.py::test_has_changes_true_on_a_mirror_delete_alone PASSED [ 87%]",
                                "tests/mirror_sync/test_model.py::test_has_changes_true_on_a_compat_delete_alone PASSED [ 88%]",
                                "tests/mirror_sync/test_model.py::test_semantic_keys_selects_only_semantic_rows_in_row_order PASSED [ 88%]",
                                "tests/mirror_sync/test_model.py::test_plan_is_frozen PASSED              [ 88%]",
                                "tests/mirror_sync/test_render.py::test_json_payload_is_deterministic_and_versioned PASSED [ 88%]",
                                "tests/mirror_sync/test_render.py::test_json_payload_round_trips_through_the_pins_validator PASSED [ 88%]",
                                "tests/mirror_sync/test_render.py::test_json_counts_each_class_separately PASSED [ 88%]",
                                "tests/mirror_sync/test_render.py::test_text_labels_representation_and_shows_attribution PASSED [ 88%]",
                                "tests/mirror_sync/test_render.py::test_text_offers_every_disposition_now_that_the_gate_exists PASSED [ 88%]",
                                "tests/mirror_sync/test_render.py::test_text_lists_the_dispositions_that_were_applied PASSED [ 89%]",
                                "tests/mirror_sync/test_render.py::test_text_distinguishes_no_rows_from_nothing_computed PASSED [ 89%]",
                                "tests/mirror_sync/test_render.py::test_exit_code_2_when_a_blocker_exists_even_with_no_semantic_row PASSED [ 89%]",
                                "tests/mirror_sync/test_render.py::test_text_names_the_blocker_and_how_to_clear_it PASSED [ 89%]",
                                "tests/mirror_sync/test_render.py::test_exit_code_2_when_a_semantic_row_is_undispositioned PASSED [ 89%]",
                                "tests/mirror_sync/test_render.py::test_exit_code_1_when_changes_are_planned_and_all_dispositioned PASSED [ 89%]",
                                "tests/mirror_sync/test_render.py::test_exit_code_0_when_nothing_would_change PASSED [ 89%]",
                                "tests/mirror_sync/test_render.py::test_exit_code_1_when_only_files_change_and_no_row_needs_review PASSED [ 90%]",
                                "tests/mirror_sync/test_render.py::test_a_retain_flag_clears_a_row_now_that_it_is_validated_elsewhere PASSED [ 90%]",
                                "tests/mirror_sync/test_render.py::test_acceptance_command_prepends_the_worktree_and_keeps_every_base_dir PASSED [ 90%]",
                                "tests/mirror_sync/test_render.py::test_acceptance_command_works_for_a_remote_mode_run PASSED [ 90%]",
                                "tests/mirror_sync/test_render.py::test_acceptance_command_quotes_paths_with_spaces PASSED [ 90%]",
                                "tests/mirror_sync/test_render.py::test_acceptance_command_warns_when_the_derived_range_is_newer PASSED [ 90%]",
                                "tests/mirror_sync/test_render.py::test_acceptance_command_has_no_caveat_when_the_target_is_newest PASSED [ 90%]",
                                "tests/mirror_sync/test_render.py::test_text_summary_names_each_class_and_what_it_means PASSED [ 90%]",
                                "tests/mirror_sync/test_render.py::test_text_inlines_a_short_value_but_elides_a_long_one PASSED [ 91%]",
                                "tests/mirror_sync/test_render.py::test_text_truncates_a_long_name_list_to_a_sample_and_a_count PASSED [ 91%]",
                                "tests/mirror_sync/test_render.py::test_text_groups_a_repeated_note_instead_of_repeating_it PASSED [ 91%]",
                                "tests/mirror_sync/test_render.py::test_text_header_names_the_base_ref_alongside_its_sha PASSED [ 91%]",
                                "tests/mirror_sync/test_render.py::test_text_states_the_exit_code_and_where_the_full_values_are PASSED [ 91%]",
                                "tests/mirror_sync/test_render.py::test_text_omits_the_exit_line_when_the_caller_has_no_code_yet PASSED [ 91%]",
                                "tests/mirror_sync/test_render.py::test_shape_pluralises_a_single_entry_correctly PASSED [ 91%]",
                                "tests/mirror_sync/test_render.py::test_a_back_compat_layer_says_whether_it_is_new_or_already_correct PASSED [ 91%]",
                                "tests/mirror_sync/test_render.py::test_a_header_only_rewrite_says_so_instead_of_just_rewritten PASSED [ 92%]",
                                "tests/mirror_sync/test_render.py::test_real_key_movement_is_reported_as_counts PASSED [ 92%]",
                                "tests/mirror_sync/test_render.py::test_exit_0_after_an_apply_does_not_claim_there_was_nothing_to_do PASSED [ 92%]",
                                "tests/mirror_sync/test_render.py::test_commit_summary_records_pins_and_dispositions PASSED [ 92%]",
                                "tests/mirror_sync/test_render.py::test_commit_summary_wraps_at_72_for_a_commit_body PASSED [ 92%]",
                                "tests/mirror_sync/test_source_commits.py::test_resolve_commit_local_peels_branch_to_sha PASSED [ 92%]",
                                "tests/mirror_sync/test_source_commits.py::test_resolve_commit_local_accepts_a_sha PASSED [ 92%]",
                                "tests/mirror_sync/test_source_commits.py::test_resolve_commit_prefers_a_remote_over_a_stale_local_branch PASSED [ 92%]",
                                "tests/mirror_sync/test_source_commits.py::test_resolve_commit_falls_back_to_a_local_head PASSED [ 93%]",
                                "tests/mirror_sync/test_source_commits.py::test_resolve_commit_unknown_ref_raises PASSED [ 93%]",
                                "tests/mirror_sync/test_source_commits.py::test_is_ancestor_local PASSED  [ 93%]",
                                "tests/mirror_sync/test_source_commits.py::test_is_ancestor_raises_on_a_missing_descendant PASSED [ 93%]",
                                "tests/mirror_sync/test_source_commits.py::test_is_ancestor_raises_when_the_ancestor_object_is_absent PASSED [ 93%]",
                                "tests/mirror_sync/test_source_commits.py::test_merge_base_local PASSED   [ 93%]",
                                "tests/mirror_sync/test_source_commits.py::test_local_checkout_returns_none_when_remote PASSED [ 93%]",
                                "tests/mirror_sync/test_source_commits.py::test_local_checkout_returns_the_dir_when_local PASSED [ 93%]",
                                "tests/mirror_sync/test_source_commits.py::test_resolve_commit_remote_reads_sha_from_commits_api PASSED [ 94%]",
                                "tests/mirror_sync/test_source_commits.py::test_resolve_commit_rejects_a_non_sha_from_the_api PASSED [ 94%]",
                                "tests/mirror_sync/test_source_commits.py::test_is_ancestor_remote_uses_compare_status PASSED [ 94%]",
                                "tests/mirror_sync/test_source_commits.py::test_merge_base_remote_reads_compare_payload PASSED [ 94%]",
                                "tests/mirror_sync/test_worktree.py::test_default_path_leaf_is_named_defaults PASSED [ 94%]",
                                "tests/mirror_sync/test_worktree.py::test_create_yields_a_clean_tree_and_the_base_commit PASSED [ 94%]",
                                "tests/mirror_sync/test_worktree.py::test_create_refuses_an_existing_path PASSED [ 94%]",
                                "tests/mirror_sync/test_worktree.py::test_uncommitted_operator_work_is_not_consulted PASSED [ 94%]",
                                "tests/mirror_sync/test_worktree.py::test_create_removes_the_worktree_when_head_cannot_be_read PASSED [ 95%]",
                                "tests/mirror_sync/test_worktree.py::test_session_removes_on_exit_by_default PASSED [ 95%]",
                                "tests/mirror_sync/test_worktree.py::test_session_removes_on_exception_too PASSED [ 95%]",
                                "tests/mirror_sync/test_worktree.py::test_session_keeps_when_asked PASSED [ 95%]",
                                "tests/mirror_sync/test_worktree.py::test_session_raises_when_cleanup_fails PASSED [ 95%]",
                                "tests/mirror_sync/test_worktree.py::test_cleanup_failure_does_not_mask_the_original_error PASSED [ 95%]",
                                "tests/mirror_sync/test_worktree.py::test_every_failure_is_a_worktree_error PASSED [ 95%]",
                                "tests/mirror_sync/test_write.py::test_writes_only_changed_paths PASSED   [ 95%]",
                                "tests/mirror_sync/test_write.py::test_deletes_after_writing PASSED       [ 96%]",
                                "tests/mirror_sync/test_write.py::test_a_missing_delete_target_is_not_an_error PASSED [ 96%]",
                                "tests/mirror_sync/test_write.py::test_refuses_a_path_outside_the_all_directory PASSED [ 96%]",
                                "tests/mirror_sync/test_write.py::test_refuses_when_the_all_directory_is_a_symlink PASSED [ 96%]",
                                "tests/mirror_sync/test_write.py::test_refuses_a_symlinked_destination PASSED [ 96%]",
                                "tests/mirror_sync/test_write.py::test_refuses_a_symlinked_delete_target PASSED [ 96%]",
                                "tests/mirror_sync/test_write.py::test_refuses_a_traversal_that_stays_lexically_under_all PASSED [ 96%]",
                                "tests/mirror_sync/test_write.py::test_refuses_an_absolute_path PASSED    [ 96%]",
                                "tests/mirror_sync/test_write.py::test_refuses_when_the_plan_is_blocked PASSED [ 97%]",
                                "tests/mirror_sync/test_write.py::test_signals_before_the_first_mutation PASSED [ 97%]",
                                "tests/mirror_sync/test_write.py::test_a_preflight_failure_does_not_signal PASSED [ 97%]",
                                "tests/mirror_sync/test_write.py::test_a_blocked_plan_does_not_signal PASSED [ 97%]",
                                "tests/test_driver_groups.py::test_group_image_runs_only_image_plugins PASSED [ 97%]",
                                "tests/test_driver_groups.py::test_group_kolla_runs_only_kolla_plugins PASSED [ 97%]",
                                "tests/test_driver_groups.py::test_group_all_runs_both_groups PASSED      [ 97%]",
                                "tests/test_driver_groups.py::test_archive_mode_preamble_not_misleading PASSED [ 97%]",
                                "tests/test_driver_groups.py::test_use_raw_get_preamble_warns_slow PASSED [ 98%]",
                                "tests/test_driver_groups.py::test_missing_group_errors PASSED            [ 98%]",
                                "tests/test_driver_groups.py::test_demo_exits_0_without_reading_config_or_allowlist PASSED [ 98%]",
                                "tests/test_driver_groups.py::test_demo_renders_every_real_plugin PASSED  [ 98%]",
                                "tests/test_driver_groups.py::test_demo_json_emits_entries PASSED         [ 98%]",
                                "tests/test_driver_groups.py::test_help_lists_plugin_groups PASSED        [ 98%]",
                                "tests/test_release_notes_defaults.py::test_layer_is_sorted_and_filtered PASSED [ 98%]",
                                "tests/test_release_notes_defaults.py::test_layer_omits_directories_and_keeps_only_blobs PASSED [ 98%]",
                                "tests/test_release_notes_defaults.py::test_layer_none_on_http_error PASSED [ 99%]",
                                "tests/test_release_notes_defaults.py::test_layer_none_on_truncated_tree PASSED [ 99%]",
                                "tests/test_release_notes_defaults.py::test_layer_none_on_request_exception PASSED [ 99%]",
                                "tests/test_release_notes_defaults.py::test_section_fetches_the_layer_before_099_and_names_the_layer_in_prose PASSED [ 99%]",
                                "tests/test_release_notes_defaults.py::test_layer_empty_list_when_listing_succeeds_with_no_matches PASSED [ 99%]",
                                "tests/test_release_notes_defaults.py::test_section_is_none_when_the_listing_fails_even_if_099_would_fetch PASSED [ 99%]",
                                "tests/test_release_notes_defaults.py::test_section_is_none_when_the_listing_is_truncated PASSED [ 99%]",
                                "tests/test_release_notes_defaults.py::test_section_is_none_when_one_mirror_file_fails_to_fetch PASSED [100%]",
                                "",
                                "======================== 788 passed, 2 skipped in 9.77s ========================",
                                "drift-test: 10607 I exit 0 (10.27 seconds) /home/zuul/src/github.com/osism/release> pytest tests/ -v pid=1771 [tox/execute/api.py:337]",
                                "  drift-test: OK (10.33=setup[0.06]+cmd[10.27] seconds)",
                                "  congratulations :) (10.37 seconds)"
                            ],
                            "zuul_log_id": "0242ac1f-6606-515d-a28c-000000000014-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:14.693876Z",
                            "start": "2026-09-21T05:26:03.608776Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000014",
                        "name": "Run tox"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "tox_parse_output",
                            "changed": false,
                            "failed_when_result": false,
                            "file_comments": {},
                            "invocation": {
                                "module_args": {
                                    "tox_envlist": "drift-test",
                                    "tox_output": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
                                    "workdir": "src/github.com/osism/release"
                                }
                            }
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:15.151685Z",
                            "start": "2026-09-21T05:26:14.705491Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000015",
                        "name": "Look for output"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "zuul_return",
                            "changed": false,
                            "false_condition": "file_comments.file_comments",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-515d-a28c-00000000000c",
                        "name": "tox",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/tox"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:15.221521Z",
                            "start": "2026-09-21T05:26:15.177761Z"
                        },
                        "id": "0242ac1f-6606-515d-a28c-000000000016",
                        "name": "Return file comments to Zuul"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 9,
            "failures": 0,
            "ignored": 0,
            "ok": 13,
            "rescued": 0,
            "skipped": 4,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "0",
    "phase": "post",
    "playbook": "github.com/osism/openinfra-zuul-jobs/playbooks/tox/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-09-21T05:26:20.462617Z",
                    "start": "2026-09-21T05:26:16.188964Z"
                },
                "id": "0242ac1f-6606-9192-dc92-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:16.262172Z",
                            "start": "2026-09-21T05:26:16.206623Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-000000000007",
                        "name": "Set tox log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:16.321020Z",
                            "start": "2026-09-21T05:26:16.268312Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-000000000008",
                        "name": "Set tox log path for single node"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": true,
                            "diff": {
                                "after": {
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox",
                                    "state": "directory"
                                },
                                "before": {
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox",
                                    "state": "absent"
                                }
                            },
                            "gid": 0,
                            "group": "root",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": 493,
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "root",
                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox",
                            "size": 4096,
                            "state": "directory",
                            "uid": 0
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:16.951414Z",
                            "start": "2026-09-21T05:26:16.328018Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-000000000009",
                        "name": "Ensure local tox dir"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "zuul_use_fetch_output",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:17.005353Z",
                            "start": "2026-09-21T05:26:16.959960Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-00000000000a",
                        "name": "Ensure zuul-output tox dir"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "envlist": [
                                    "drift-test"
                                ]
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:17.055156Z",
                            "start": "2026-09-21T05:26:17.011872Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-00000000000b",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": true,
                            "cmd": [
                                "/home/zuul/.local/tox/bin/tox",
                                "--version"
                            ],
                            "delta": "0:00:00.412136",
                            "end": "2026-09-21 05:26:18.026772",
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "/home/zuul/.local/tox/bin/tox --version",
                                    "_uses_shell": false,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": null,
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-9192-dc92-00000000000c-1-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "start": "2026-09-21 05:26:17.614636",
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "ROOT: No loadable tox.ini or setup.cfg or pyproject.toml or tox.toml found, assuming empty tox.ini at /home/zuul\n4.63.0 from /home/zuul/.local/tox/lib/python3.11/site-packages/tox/__init__.py",
                            "stdout_lines": [
                                "ROOT: No loadable tox.ini or setup.cfg or pyproject.toml or tox.toml found, assuming empty tox.ini at /home/zuul",
                                "4.63.0 from /home/zuul/.local/tox/lib/python3.11/site-packages/tox/__init__.py"
                            ],
                            "zuul_log_id": "0242ac1f-6606-9192-dc92-00000000000c-1-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:18.141166Z",
                            "start": "2026-09-21T05:26:17.126070Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-00000000000c",
                        "name": "Get tox version"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "tox_envlist is not defined or not tox_envlist",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:18.694584Z",
                            "start": "2026-09-21T05:26:18.182267Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-00000000000d",
                        "name": "Find all default environments"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_default_environments.stdout_lines is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:18.757131Z",
                            "start": "2026-09-21T05:26:18.702192Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-00000000000e",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "command",
                            "changed": false,
                            "false_condition": "(tox_envlist is defined and tox_envlist == 'ALL') or (envlist is defined and not envlist)",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:19.314097Z",
                            "start": "2026-09-21T05:26:18.805957Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-00000000000f",
                        "name": "Find all default environments"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "tox_all_environments.stdout_lines is defined",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:19.364719Z",
                            "start": "2026-09-21T05:26:19.319977Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-000000000010",
                        "name": "Set envlist fact"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": false,
                            "msg": "All items skipped",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_testenv",
                                    "changed": false,
                                    "false_condition": "zuul_use_fetch_output",
                                    "skip_reason": "Conditional result was False",
                                    "skipped": true,
                                    "zj_testenv": "drift-test"
                                }
                            ],
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:19.436176Z",
                            "start": "2026-09-21T05:26:19.371774Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-000000000011",
                        "name": "Copy tox logs"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_testenv",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' '[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:src/github.com/osism/release/.tox/drift-test/log/' /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox/drift-test",
                                    "failed": false,
                                    "failed_when_result": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox/drift-test",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:src/github.com/osism/release/.tox/drift-test/log/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": "created directory /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox/drift-test\ncd+++++++++ ./\n>f+++++++++ 1-commands[0].log\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        "created directory /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/tox/drift-test",
                                        "cd+++++++++ ./",
                                        ">f+++++++++ 1-commands[0].log"
                                    ],
                                    "zj_testenv": "drift-test"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-9192-dc92-000000000005",
                        "name": "fetch-tox-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-tox-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:20.462617Z",
                            "start": "2026-09-21T05:26:19.443294Z"
                        },
                        "id": "0242ac1f-6606-9192-dc92-000000000013",
                        "name": "Collect tox logs"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 5,
            "rescued": 0,
            "skipped": 7,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "master",
    "index": "1",
    "phase": "post",
    "playbook": "github.com/osism/openinfra-zuul-jobs/playbooks/unittests/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-09-21T05:26:21.707005Z",
                    "start": "2026-09-21T05:26:21.321178Z"
                },
                "id": "0242ac1f-6606-39cc-6c06-000000000002",
                "name": "all"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "script",
                            "changed": true,
                            "exception": "NoneType: None\n",
                            "failed_when_result": false,
                            "msg": "non-zero return code",
                            "rc": 1,
                            "stderr": "Shared connection to 2a13:1a81:8000:3124:f816:3eff:fe3e:e417 closed.\r\n",
                            "stderr_lines": [
                                "Shared connection to 2a13:1a81:8000:3124:f816:3eff:fe3e:e417 closed."
                            ],
                            "stdout": "",
                            "stdout_lines": []
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.533588Z",
                            "start": "2026-09-21T05:26:21.341889Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-000000000007",
                        "name": "Find stestr or testr executable"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.559634Z",
                            "start": "2026-09-21T05:26:21.544936Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-000000000009",
                        "name": "Get the list of directories with subunit files"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "find",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.580507Z",
                            "start": "2026-09-21T05:26:21.566326Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-00000000000a",
                        "name": "Find any inflight partial subunit files"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.610977Z",
                            "start": "2026-09-21T05:26:21.587089Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-00000000000c",
                        "name": "Copy any inflight subunit files"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "tempfile",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.631540Z",
                            "start": "2026-09-21T05:26:21.618305Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-00000000000f",
                        "name": "Create a temporary file to store the subunit stream"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "shell",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.652084Z",
                            "start": "2026-09-21T05:26:21.637955Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-000000000010",
                        "name": "Generate subunit file"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "copy",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.670581Z",
                            "start": "2026-09-21T05:26:21.657226Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-000000000012",
                        "name": "Copy the combined subunit file to the zuul work directory"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.688578Z",
                            "start": "2026-09-21T05:26:21.675709Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-000000000013",
                        "name": "Remove the temporary file"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "include_tasks",
                            "changed": false,
                            "false_condition": "testr_command.rc == 0",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-39cc-6c06-000000000005",
                        "name": "fetch-subunit-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/untrusted/project_0/github.com/osism/openinfra-zuul-jobs/roles/fetch-subunit-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:21.707005Z",
                            "start": "2026-09-21T05:26:21.694265Z"
                        },
                        "id": "0242ac1f-6606-39cc-6c06-000000000014",
                        "name": "Process and fetch subunit results"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 1,
            "rescued": 0,
            "skipped": 8,
            "unreachable": 0
        }
    },
    "trusted": false
},
{
    "branch": "main",
    "index": "2",
    "phase": "post",
    "playbook": "github.com/osism/zuul-config/playbooks/base/post-fetch.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-09-21T05:26:51.001092Z",
                    "start": "2026-09-21T05:26:22.484422Z"
                },
                "id": "0242ac1f-6606-0af7-d2f8-000000000002",
                "name": "Base post-fetch"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.file",
                            "changed": false,
                            "diff": {
                                "after": {
                                    "path": "/home/zuul/zuul-output/logs"
                                },
                                "before": {
                                    "path": "/home/zuul/zuul-output/logs"
                                }
                            },
                            "gid": 1000,
                            "group": "zuul",
                            "invocation": {
                                "module_args": {
                                    "_diff_peek": null,
                                    "_original_basename": null,
                                    "access_time": null,
                                    "access_time_format": "%Y%m%d%H%M.%S",
                                    "attributes": null,
                                    "follow": true,
                                    "force": false,
                                    "group": null,
                                    "mode": "0755",
                                    "modification_time": null,
                                    "modification_time_format": "%Y%m%d%H%M.%S",
                                    "owner": null,
                                    "path": "/home/zuul/zuul-output/logs",
                                    "recurse": false,
                                    "selevel": null,
                                    "serole": null,
                                    "setype": null,
                                    "seuser": null,
                                    "src": null,
                                    "state": "directory",
                                    "unsafe_writes": false
                                }
                            },
                            "mode": "0755",
                            "owner": "zuul",
                            "path": "/home/zuul/zuul-output/logs",
                            "size": 4096,
                            "state": "directory",
                            "uid": 1000
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:22.896444Z",
                            "start": "2026-09-21T05:26:22.497328Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-000000000009",
                        "name": "Ensure log directory exists"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j669914351252.4069",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\niface=$(ip -6 route show default 2>/dev/null        | awk '{for(i=1;i<=NF;i++) if($i==\"dev\"){print $(i+1); exit}}')\n: \"${iface:=eth0}\"\ngw=$(ip -6 route show default 2>/dev/null     | awk '{for(i=1;i<=NF;i++) if($i==\"via\"){print $(i+1); exit}}')\n{\n  echo \"== date ==\";    date -Is\n  echo \"== iface / gw ==\"; echo \"iface=$iface gw=$gw\"\n  echo \"== ip -6 addr (lifetimes = SLAAC evidence) ==\"; ip -6 addr show\n  echo \"== ip -6 route show ==\"; ip -6 route show\n  echo \"== ip -6 route show default (expires/proto ra = RA evidence) ==\"\n  ip -6 route show default\n  echo \"== ip -4 route show default ==\"; ip -4 route show default\n  echo \"== accept_ra / forwarding (procfs; RA-suppression evidence) ==\"\n  for k in all default \"$iface\"; do\n    for s in forwarding accept_ra; do\n      v=$(cat \"/proc/sys/net/ipv6/conf/$k/$s\" 2>/dev/null)\n      echo \"net.ipv6.conf.$k.$s = ${v:-<unavailable>}\"\n    done\n  done\n  echo \"== resolvectl status ==\"\n  if command -v resolvectl >/dev/null 2>&1; then resolvectl status 2>&1\n  else echo \"resolvectl not installed\"; fi\n  echo \"== /etc/resolv.conf (resolver stub) ==\"\n  cat /etc/resolv.conf 2>/dev/null || echo \"(absent)\"\n  echo \"== /run/systemd/resolve/resolv.conf (upstreams) ==\"\n  cat /run/systemd/resolve/resolv.conf 2>/dev/null    || echo \"(no systemd-resolved upstream file)\"\n  for d in $targets; do\n    echo \"== target: $d ==\"\n    echo \"-- getent ahosts (families glibc returns) --\"\n    getent ahosts \"$d\" 2>&1\n    if command -v resolvectl >/dev/null 2>&1; then\n      echo \"-- resolvectl query --\"; resolvectl query --cache=no \"$d\" 2>&1\n    fi\n    v6=$(getent ahosts \"$d\" 2>/dev/null | awk '$1~/:/{print $1; exit}')\n    v4=$(getent ahosts \"$d\" 2>/dev/null         | awk '$1~/^[0-9]+(\\.[0-9]+){3}$/{print $1; exit}')\n    if [ -n \"$v6\" ]; then\n      echo \"-- ip -6 route get $v6 --\"; ip -6 route get \"$v6\" 2>&1\n    fi\n    if [ -n \"$v4\" ]; then\n      echo \"-- ip -4 route get $v4 --\"; ip -4 route get \"$v4\" 2>&1\n    fi\n    # Several attempts per family: a single sample misclassifies a\n    # ~50%-loss path as healthy or dead by coin flip, defeating the\n    # pre/post bracket. Bounded and in-line -- not a background sampler.\n    for fam in 6 4; do\n      echo \"-- curl -$fam (3 attempts) --\"\n      ok=0\n      for n in 1 2 3; do\n        curl -$fam -sS -m 10 -o /dev/null          -w \"  #$n http=%{http_code} ip=%{remote_ip} t=%{time_total}s\\n\"          \"https://$d/\" 2>&1 && ok=1 || echo \"  #$n curl -$fam FAILED\"\n      done\n      # Trace only the family that failed, to its resolved address:\n      # localises WHERE the failing path dies instead of tracing the\n      # healthy family. v4 via traceroute, v6 via traceroute6.\n      if [ \"$ok\" = 0 ]; then\n        addr=$v6; [ \"$fam\" = 4 ] && addr=$v4\n        tr=traceroute6; [ \"$fam\" = 4 ] && tr=traceroute\n        if [ -n \"$addr\" ] && command -v \"$tr\" >/dev/null 2>&1; then\n          echo \"  !! curl -$fam failed 3x; $tr to $addr\"\n          timeout 30 \"$tr\" -q1 -w2 \"$addr\" 2>&1\n        fi\n      fi\n    done\n  done\n  echo \"== ping -6 gateway ==\"\n  if [ -n \"$gw\" ]; then\n    ping -6 -c1 -W2 \"${gw}%${iface}\" 2>&1\n  else echo \"no v6 gw\"; fi\n} > \"$out\" 2>&1\n",
                            "delta": "0:00:05.938415",
                            "end": "2026-09-21 05:26:29.756641",
                            "failed_when_result": false,
                            "finished": 1,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\niface=$(ip -6 route show default 2>/dev/null        | awk '{for(i=1;i<=NF;i++) if($i==\"dev\"){print $(i+1); exit}}')\n: \"${iface:=eth0}\"\ngw=$(ip -6 route show default 2>/dev/null     | awk '{for(i=1;i<=NF;i++) if($i==\"via\"){print $(i+1); exit}}')\n{\n  echo \"== date ==\";    date -Is\n  echo \"== iface / gw ==\"; echo \"iface=$iface gw=$gw\"\n  echo \"== ip -6 addr (lifetimes = SLAAC evidence) ==\"; ip -6 addr show\n  echo \"== ip -6 route show ==\"; ip -6 route show\n  echo \"== ip -6 route show default (expires/proto ra = RA evidence) ==\"\n  ip -6 route show default\n  echo \"== ip -4 route show default ==\"; ip -4 route show default\n  echo \"== accept_ra / forwarding (procfs; RA-suppression evidence) ==\"\n  for k in all default \"$iface\"; do\n    for s in forwarding accept_ra; do\n      v=$(cat \"/proc/sys/net/ipv6/conf/$k/$s\" 2>/dev/null)\n      echo \"net.ipv6.conf.$k.$s = ${v:-<unavailable>}\"\n    done\n  done\n  echo \"== resolvectl status ==\"\n  if command -v resolvectl >/dev/null 2>&1; then resolvectl status 2>&1\n  else echo \"resolvectl not installed\"; fi\n  echo \"== /etc/resolv.conf (resolver stub) ==\"\n  cat /etc/resolv.conf 2>/dev/null || echo \"(absent)\"\n  echo \"== /run/systemd/resolve/resolv.conf (upstreams) ==\"\n  cat /run/systemd/resolve/resolv.conf 2>/dev/null    || echo \"(no systemd-resolved upstream file)\"\n  for d in $targets; do\n    echo \"== target: $d ==\"\n    echo \"-- getent ahosts (families glibc returns) --\"\n    getent ahosts \"$d\" 2>&1\n    if command -v resolvectl >/dev/null 2>&1; then\n      echo \"-- resolvectl query --\"; resolvectl query --cache=no \"$d\" 2>&1\n    fi\n    v6=$(getent ahosts \"$d\" 2>/dev/null | awk '$1~/:/{print $1; exit}')\n    v4=$(getent ahosts \"$d\" 2>/dev/null         | awk '$1~/^[0-9]+(\\.[0-9]+){3}$/{print $1; exit}')\n    if [ -n \"$v6\" ]; then\n      echo \"-- ip -6 route get $v6 --\"; ip -6 route get \"$v6\" 2>&1\n    fi\n    if [ -n \"$v4\" ]; then\n      echo \"-- ip -4 route get $v4 --\"; ip -4 route get \"$v4\" 2>&1\n    fi\n    # Several attempts per family: a single sample misclassifies a\n    # ~50%-loss path as healthy or dead by coin flip, defeating the\n    # pre/post bracket. Bounded and in-line -- not a background sampler.\n    for fam in 6 4; do\n      echo \"-- curl -$fam (3 attempts) --\"\n      ok=0\n      for n in 1 2 3; do\n        curl -$fam -sS -m 10 -o /dev/null          -w \"  #$n http=%{http_code} ip=%{remote_ip} t=%{time_total}s\\n\"          \"https://$d/\" 2>&1 && ok=1 || echo \"  #$n curl -$fam FAILED\"\n      done\n      # Trace only the family that failed, to its resolved address:\n      # localises WHERE the failing path dies instead of tracing the\n      # healthy family. v4 via traceroute, v6 via traceroute6.\n      if [ \"$ok\" = 0 ]; then\n        addr=$v6; [ \"$fam\" = 4 ] && addr=$v4\n        tr=traceroute6; [ \"$fam\" = 4 ] && tr=traceroute\n        if [ -n \"$addr\" ] && command -v \"$tr\" >/dev/null 2>&1; then\n          echo \"  !! curl -$fam failed 3x; $tr to $addr\"\n          timeout 30 \"$tr\" -q1 -w2 \"$addr\" 2>&1\n        fi\n      fi\n    done\n  done\n  echo \"== ping -6 gateway ==\"\n  if [ -n \"$gw\" ]; then\n    ping -6 -c1 -W2 \"${gw}%${iface}\" 2>&1\n  else echo \"no v6 gw\"; fi\n} > \"$out\" 2>&1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-0af7-d2f8-00000000000a-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "non-zero return code",
                            "rc": 1,
                            "results_file": "/home/zuul/.ansible_async/j669914351252.4069",
                            "start": "2026-09-21 05:26:23.818226",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-0af7-d2f8-00000000000a-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:34.648359Z",
                            "start": "2026-09-21T05:26:22.906313Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-00000000000a",
                        "name": "Snapshot dual-stack network state (post)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j198550988453.4177",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\n{\n  echo \"== docker / buildkit IPv6 config ==\"\n  if ! command -v docker >/dev/null 2>&1; then\n    echo \"docker not available; skipped\"\n  else\n    echo \"-- docker info (IPv6 lines) --\"\n    if info=$(timeout 30 docker info 2>&1); then\n      printf '%s\\n' \"$info\" | grep -iE 'ipv6|ip6tables'        || echo \"(no IPv6 lines)\"\n    else\n      echo \"docker info FAILED/timed out (daemon down or no permission):\"\n      printf '%s\\n' \"$info\" | head -5\n    fi\n    echo \"-- /etc/docker/daemon.json --\"\n    cat /etc/docker/daemon.json 2>/dev/null || echo \"(absent)\"\n    echo \"-- docker network inspect bridge (EnableIPv6 + IPAM) --\"\n    timeout 30 docker network inspect bridge 2>&1      | grep -iE '\"Name\"|EnableIPv6|Subnet|Gateway'      || echo \"(inspect failed)\"\n    echo \"-- docker buildx ls --\"\n    timeout 30 docker buildx ls 2>&1 || echo \"(buildx unavailable)\"\n  fi\n} >> \"$out\" 2>&1\n",
                            "delta": "0:00:00.005371",
                            "end": "2026-09-21 05:26:35.349053",
                            "failed_when_result": false,
                            "finished": 1,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\n{\n  echo \"== docker / buildkit IPv6 config ==\"\n  if ! command -v docker >/dev/null 2>&1; then\n    echo \"docker not available; skipped\"\n  else\n    echo \"-- docker info (IPv6 lines) --\"\n    if info=$(timeout 30 docker info 2>&1); then\n      printf '%s\\n' \"$info\" | grep -iE 'ipv6|ip6tables'        || echo \"(no IPv6 lines)\"\n    else\n      echo \"docker info FAILED/timed out (daemon down or no permission):\"\n      printf '%s\\n' \"$info\" | head -5\n    fi\n    echo \"-- /etc/docker/daemon.json --\"\n    cat /etc/docker/daemon.json 2>/dev/null || echo \"(absent)\"\n    echo \"-- docker network inspect bridge (EnableIPv6 + IPAM) --\"\n    timeout 30 docker network inspect bridge 2>&1      | grep -iE '\"Name\"|EnableIPv6|Subnet|Gateway'      || echo \"(inspect failed)\"\n    echo \"-- docker buildx ls --\"\n    timeout 30 docker buildx ls 2>&1 || echo \"(buildx unavailable)\"\n  fi\n} >> \"$out\" 2>&1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-0af7-d2f8-00000000000b-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "results_file": "/home/zuul/.ansible_async/j198550988453.4177",
                            "start": "2026-09-21 05:26:35.343682",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-0af7-d2f8-00000000000b-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:40.746359Z",
                            "start": "2026-09-21T05:26:34.656814Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-00000000000b",
                        "name": "Snapshot Docker/BuildKit IPv6 config (teardown)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "ansible_job_id": "j637038610126.4212",
                            "changed": false,
                            "cmd": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\n{\n  echo \"== container netns exec probe (default bridge) ==\"\n  if ! command -v docker >/dev/null 2>&1; then\n    echo \"docker not available; skipped\"\n  else\n    # Prefer a full base image likely to carry ip/curl/getent,\n    # skipping dangling (<none>) tags; fall back to any local image\n    # ID (a valid run reference). Never pull. (docker image ls\n    # columns: REPOSITORY TAG IMAGE_ID ...)\n    img=$(timeout 30 docker image ls 2>/dev/null | awk      '$1~/^(ubuntu|debian)$/ && $2!=\"<none>\"{print $1\":\"$2; exit}')\n    if [ -z \"$img\" ]; then\n      img=$(timeout 30 docker image ls -q 2>/dev/null | head -1)\n    fi\n    if [ -z \"$img\" ]; then\n      echo \"no local image; skipped (will not pull over a broken network)\"\n    else\n      echo \"using local image $img\"\n      # Bound the whole probe: on the degraded node this role exists\n      # to diagnose, a wedged daemon can make `docker run` hang\n      # indefinitely and stall teardown. timeout keeps it best-effort.\n      # A killed client may orphan the container, but the node is torn\n      # down right after, so that is acceptable here.\n      timeout 60 docker run --rm \"$img\" sh -c '\n        echo \"tools: ip=$(command -v ip || echo no)\" \\\n             \"curl=$(command -v curl || echo no)\" \\\n             \"getent=$(command -v getent || echo no)\"\n        echo \"-- ip -6 addr / route --\"\n        (ip -6 addr show 2>/dev/null; ip -6 route show 2>/dev/null) \\\n          || cat /proc/net/ipv6_route 2>/dev/null || echo \"no ip tool\"\n        echo \"-- /etc/resolv.conf --\"; cat /etc/resolv.conf 2>/dev/null\n        for d in '\"$targets\"'; do\n          echo \"target $d:\"\n          getent ahosts \"$d\" 2>&1 | head -4 || echo \"  getent unavailable\"\n          (curl -6 -sS -m 8 -o /dev/null \\\n             -w \"  v6 %{http_code} %{remote_ip} t=%{time_total}\\n\" \\\n             \"https://$d/\" 2>&1 || echo \"  v6 FAIL/unavailable\")\n          (curl -4 -sS -m 8 -o /dev/null \\\n             -w \"  v4 %{http_code} %{remote_ip} t=%{time_total}\\n\" \\\n             \"https://$d/\" 2>&1 || echo \"  v4 FAIL/unavailable\")\n        done\n      ' 2>&1\n    fi\n  fi\n} >> \"$out\" 2>&1\n",
                            "delta": "0:00:00.010261",
                            "end": "2026-09-21 05:26:41.447266",
                            "failed_when_result": false,
                            "finished": 1,
                            "invocation": {
                                "module_args": {
                                    "_raw_params": "set +e\nset -o pipefail\nphase=post\nout=/home/zuul/zuul-output/logs/net-debug.$phase.txt\ntargets=\"tarballs.opendev.org galaxy.ansible.com\"\n{\n  echo \"== container netns exec probe (default bridge) ==\"\n  if ! command -v docker >/dev/null 2>&1; then\n    echo \"docker not available; skipped\"\n  else\n    # Prefer a full base image likely to carry ip/curl/getent,\n    # skipping dangling (<none>) tags; fall back to any local image\n    # ID (a valid run reference). Never pull. (docker image ls\n    # columns: REPOSITORY TAG IMAGE_ID ...)\n    img=$(timeout 30 docker image ls 2>/dev/null | awk      '$1~/^(ubuntu|debian)$/ && $2!=\"<none>\"{print $1\":\"$2; exit}')\n    if [ -z \"$img\" ]; then\n      img=$(timeout 30 docker image ls -q 2>/dev/null | head -1)\n    fi\n    if [ -z \"$img\" ]; then\n      echo \"no local image; skipped (will not pull over a broken network)\"\n    else\n      echo \"using local image $img\"\n      # Bound the whole probe: on the degraded node this role exists\n      # to diagnose, a wedged daemon can make `docker run` hang\n      # indefinitely and stall teardown. timeout keeps it best-effort.\n      # A killed client may orphan the container, but the node is torn\n      # down right after, so that is acceptable here.\n      timeout 60 docker run --rm \"$img\" sh -c '\n        echo \"tools: ip=$(command -v ip || echo no)\" \\\n             \"curl=$(command -v curl || echo no)\" \\\n             \"getent=$(command -v getent || echo no)\"\n        echo \"-- ip -6 addr / route --\"\n        (ip -6 addr show 2>/dev/null; ip -6 route show 2>/dev/null) \\\n          || cat /proc/net/ipv6_route 2>/dev/null || echo \"no ip tool\"\n        echo \"-- /etc/resolv.conf --\"; cat /etc/resolv.conf 2>/dev/null\n        for d in '\"$targets\"'; do\n          echo \"target $d:\"\n          getent ahosts \"$d\" 2>&1 | head -4 || echo \"  getent unavailable\"\n          (curl -6 -sS -m 8 -o /dev/null \\\n             -w \"  v6 %{http_code} %{remote_ip} t=%{time_total}\\n\" \\\n             \"https://$d/\" 2>&1 || echo \"  v6 FAIL/unavailable\")\n          (curl -4 -sS -m 8 -o /dev/null \\\n             -w \"  v4 %{http_code} %{remote_ip} t=%{time_total}\\n\" \\\n             \"https://$d/\" 2>&1 || echo \"  v4 FAIL/unavailable\")\n        done\n      ' 2>&1\n    fi\n  fi\n} >> \"$out\" 2>&1\n",
                                    "_uses_shell": true,
                                    "argv": null,
                                    "chdir": null,
                                    "creates": null,
                                    "executable": "/bin/bash",
                                    "expand_argument_vars": true,
                                    "removes": null,
                                    "stdin": null,
                                    "stdin_add_newline": true,
                                    "strip_empty_ends": true,
                                    "zuul_ansible_split_streams": false,
                                    "zuul_log_id": "0242ac1f-6606-0af7-d2f8-00000000000c-0-debianbookworm",
                                    "zuul_output_max_bytes": 1073741824
                                }
                            },
                            "msg": "",
                            "rc": 0,
                            "results_file": "/home/zuul/.ansible_async/j637038610126.4212",
                            "start": "2026-09-21 05:26:41.437005",
                            "started": 1,
                            "stderr": "",
                            "stderr_lines": [],
                            "stdout": "",
                            "stdout_lines": [],
                            "zuul_log_id": "0242ac1f-6606-0af7-d2f8-00000000000c-0-debianbookworm"
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:46.823266Z",
                            "start": "2026-09-21T05:26:40.753233Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-00000000000c",
                        "name": "Probe container network namespace (teardown)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.shell",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"pre\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:47.371741Z",
                            "start": "2026-09-21T05:26:46.856076Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-00000000000d",
                        "name": "Evaluate node isolation verdict (pre-run gate)"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "ansible.builtin.fail",
                            "changed": false,
                            "false_condition": "diagnose_network_phase == \"pre\"",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000007",
                        "name": "diagnose-network",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_0/github.com/osism/zuul-config/roles/diagnose-network"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:47.423428Z",
                            "start": "2026-09-21T05:26:47.378414Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-00000000000e",
                        "name": "Abort the pre-run on a fully isolated node"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "changed": false,
                            "false_condition": "groups['all'] | length > 1",
                            "skip_reason": "Conditional result was False",
                            "skipped": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000010",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:47.479267Z",
                            "start": "2026-09-21T05:26:47.434763Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-000000000012",
                        "name": "Set log path for multiple nodes"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "set_fact",
                            "ansible_facts": {
                                "log_path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs"
                            },
                            "changed": false
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000010",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:47.537168Z",
                            "start": "2026-09-21T05:26:47.485344Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-000000000013",
                        "name": "Set log path for single node"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "file",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": false,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts"
                                },
                                {
                                    "ansible_loop_var": "zj_output_dir",
                                    "changed": true,
                                    "diff": {
                                        "after": {
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs",
                                            "state": "directory"
                                        },
                                        "before": {
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs",
                                            "state": "absent"
                                        }
                                    },
                                    "failed": false,
                                    "gid": 0,
                                    "group": "root",
                                    "invocation": {
                                        "module_args": {
                                            "_diff_peek": null,
                                            "_original_basename": null,
                                            "access_time": null,
                                            "access_time_format": "%Y%m%d%H%M.%S",
                                            "attributes": null,
                                            "follow": true,
                                            "force": false,
                                            "group": null,
                                            "mode": 493,
                                            "modification_time": null,
                                            "modification_time_format": "%Y%m%d%H%M.%S",
                                            "owner": null,
                                            "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs",
                                            "recurse": false,
                                            "selevel": null,
                                            "serole": null,
                                            "setype": null,
                                            "seuser": null,
                                            "src": null,
                                            "state": "directory",
                                            "unsafe_writes": false
                                        }
                                    },
                                    "mode": "0755",
                                    "owner": "root",
                                    "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs",
                                    "size": 4096,
                                    "state": "directory",
                                    "uid": 0,
                                    "zj_output_dir": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000010",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:48.417074Z",
                            "start": "2026-09-21T05:26:47.542347Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-000000000014",
                        "name": "Ensure local output dirs"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "synchronize",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' '[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:/home/zuul/zuul-output/logs/' /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:/home/zuul/zuul-output/logs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n>f+++++++++ net-debug.post.txt\n>f+++++++++ net-debug.pre.txt\n>f+++++++++ sudo-debug.txt\n>f+++++++++ sudo-strace.log\n>f+++++++++ sudo-strace.log.time\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./",
                                        ">f+++++++++ net-debug.post.txt",
                                        ">f+++++++++ net-debug.pre.txt",
                                        ">f+++++++++ sudo-debug.txt",
                                        ">f+++++++++ sudo-strace.log",
                                        ">f+++++++++ sudo-strace.log.time"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs",
                                        "src": "logs"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' '[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:/home/zuul/zuul-output/artifacts/' /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:/home/zuul/zuul-output/artifacts/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts",
                                        "src": "artifacts"
                                    }
                                },
                                {
                                    "ansible_loop_var": "zj_output",
                                    "changed": true,
                                    "cmd": "/usr/bin/rsync --delay-updates -F --compress --archive --no-owner --no-group --rsh='/usr/bin/ssh -S none -o Port=22' --out-format='<<CHANGED>>%i %n%L' '[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:/home/zuul/zuul-output/docs/' /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs/",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_local_rsync_password": null,
                                            "_local_rsync_path": "rsync",
                                            "_ssh_args": null,
                                            "_substitute_controller": false,
                                            "archive": true,
                                            "checksum": false,
                                            "compress": true,
                                            "copy_links": false,
                                            "delay_updates": true,
                                            "delete": false,
                                            "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs/",
                                            "dest_port": 22,
                                            "dirs": false,
                                            "existing_only": false,
                                            "group": false,
                                            "link_dest": null,
                                            "links": null,
                                            "mode": "pull",
                                            "owner": false,
                                            "partial": false,
                                            "perms": null,
                                            "private_key": null,
                                            "recursive": null,
                                            "rsync_opts": [],
                                            "rsync_path": null,
                                            "rsync_timeout": 0,
                                            "set_remote_user": true,
                                            "src": "[zuul@2a13:1a81:8000:3124:f816:3eff:fe3e:e417]:/home/zuul/zuul-output/docs/",
                                            "ssh_connection_multiplexing": false,
                                            "times": null,
                                            "use_ssh_args": false,
                                            "verify_host": true
                                        }
                                    },
                                    "msg": ".d..t...... ./\n",
                                    "rc": 0,
                                    "stdout_lines": [
                                        ".d..t...... ./"
                                    ],
                                    "zj_output": {
                                        "dest": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs",
                                        "src": "docs"
                                    }
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000010",
                        "name": "fetch-output",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/fetch-output"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:50.383892Z",
                            "start": "2026-09-21T05:26:48.424286Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-000000000016",
                        "name": "Collect logs, artifacts and docs"
                    }
                },
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "shell",
                            "changed": true,
                            "msg": "All items completed",
                            "results": [
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/artifacts\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts/* /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/artifacts\nfi\n",
                                    "delta": "0:00:00.006022",
                                    "end": "2026-09-21 05:26:50.693225",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/artifacts\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/artifacts/* /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/artifacts\nfi\n",
                                            "_uses_shell": true,
                                            "argv": null,
                                            "chdir": null,
                                            "creates": null,
                                            "executable": null,
                                            "expand_argument_vars": true,
                                            "removes": null,
                                            "stdin": null,
                                            "stdin_add_newline": true,
                                            "strip_empty_ends": true,
                                            "zuul_ansible_split_streams": false,
                                            "zuul_log_id": "in-loop-ignore",
                                            "zuul_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-09-21 05:26:50.687203",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "artifacts",
                                    "zuul_log_id": "in-loop-ignore"
                                },
                                {
                                    "ansible_loop_var": "zj_item",
                                    "changed": true,
                                    "cmd": "if [ -n \"$(find /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/docs\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs/* /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/docs\nfi\n",
                                    "delta": "0:00:00.009983",
                                    "end": "2026-09-21 05:26:50.960620",
                                    "failed": false,
                                    "invocation": {
                                        "module_args": {
                                            "_raw_params": "if [ -n \"$(find /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs -mindepth 1)\" ] ; then\n  # Only create target directory if it is needed.\n  # Do not fail if it is already there.\n  mkdir -p /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/docs\n  # Leave the original directory behind so that other roles\n  # operating on the interface directories can simply no-op.\n  mv -f /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/docs/* /var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/work/logs/docs\nfi\n",
                                            "_uses_shell": true,
                                            "argv": null,
                                            "chdir": null,
                                            "creates": null,
                                            "executable": null,
                                            "expand_argument_vars": true,
                                            "removes": null,
                                            "stdin": null,
                                            "stdin_add_newline": true,
                                            "strip_empty_ends": true,
                                            "zuul_ansible_split_streams": false,
                                            "zuul_log_id": "in-loop-ignore",
                                            "zuul_output_max_bytes": 1073741824
                                        }
                                    },
                                    "msg": "",
                                    "rc": 0,
                                    "start": "2026-09-21 05:26:50.950637",
                                    "stderr": "",
                                    "stderr_lines": [],
                                    "stdout": "",
                                    "stdout_lines": [],
                                    "zj_item": "docs",
                                    "zuul_log_id": "in-loop-ignore"
                                }
                            ]
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-0af7-d2f8-000000000019",
                        "name": "merge-output-to-logs",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/merge-output-to-logs"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:51.001092Z",
                            "start": "2026-09-21T05:26:50.396381Z"
                        },
                        "id": "0242ac1f-6606-0af7-d2f8-00000000001b",
                        "name": "Move artifacts and docs to logs dir"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 3,
            "failures": 0,
            "ignored": 0,
            "ok": 8,
            "rescued": 0,
            "skipped": 3,
            "unreachable": 0
        }
    },
    "trusted": true
},
{
    "branch": "main",
    "index": "3",
    "phase": "post",
    "playbook": "github.com/osism/zuul-config/playbooks/base/post.yaml",
    "plays": [
        {
            "play": {
                "duration": {
                    "end": "2026-09-21T05:26:52.526344Z",
                    "start": "2026-09-21T05:26:51.911734Z"
                },
                "id": "0242ac1f-6606-fc62-a356-000000000002",
                "name": "Base post"
            },
            "tasks": [
                {
                    "hosts": {
                        "debian-bookworm": {
                            "action": "authorized_key",
                            "changed": true,
                            "comment": null,
                            "exclusive": false,
                            "follow": false,
                            "invocation": {
                                "module_args": {
                                    "changed": true,
                                    "comment": null,
                                    "exclusive": false,
                                    "follow": false,
                                    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAeG+wYy6xzBJzXx1wLingkJZXlsJiKzhXCRWY/eX+1JXmbvbmi1hAOcyjpdUBV3la9drzebaNqojfRnAgYJs7VJxrEIg06ol3gHcFItxim26D6lWJRxU+uX+6ZYZ6UosEq1Ogsf1vNzkWSE0lg20VfvGs8TQds6x6XstQK8gaxJVl2qELfa6819XzcWGWRL+/+QzGvoMvgLgoHihaO2YPEO+ayic+glsXepzZ8GGzA+g39JCY+87VLq2tOoLn0s4BOR6RAzifOzIpmT6fpy22Q+TD1P96O28q5hp5OKAmdFhLfgSsts6DAmL7H56HTUUPqP8GxMF0i95erGRFWjlaiDAZOCm/a0fMw3nWSkw+BIZBJG7tdxsPUJtINUqcHDq0RNQYiQy6lGAA8mA7rK+yjjWj81m+G4Ew+Ypgkgr2h7yWIsKuFM1T6LAitQpZLM9zNIYUTfu0fw8GDPnIGMxIl7qTzhdcH/VWBG2Qeoi89Sw9UXq25hXDgAB0yQ4qVmc= zuul-build-sshkey",
                                    "key_options": null,
                                    "keyfile": "/home/zuul/.ssh/authorized_keys",
                                    "manage_dir": true,
                                    "path": null,
                                    "state": "absent",
                                    "user": "zuul",
                                    "validate_certs": true
                                }
                            },
                            "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAeG+wYy6xzBJzXx1wLingkJZXlsJiKzhXCRWY/eX+1JXmbvbmi1hAOcyjpdUBV3la9drzebaNqojfRnAgYJs7VJxrEIg06ol3gHcFItxim26D6lWJRxU+uX+6ZYZ6UosEq1Ogsf1vNzkWSE0lg20VfvGs8TQds6x6XstQK8gaxJVl2qELfa6819XzcWGWRL+/+QzGvoMvgLgoHihaO2YPEO+ayic+glsXepzZ8GGzA+g39JCY+87VLq2tOoLn0s4BOR6RAzifOzIpmT6fpy22Q+TD1P96O28q5hp5OKAmdFhLfgSsts6DAmL7H56HTUUPqP8GxMF0i95erGRFWjlaiDAZOCm/a0fMw3nWSkw+BIZBJG7tdxsPUJtINUqcHDq0RNQYiQy6lGAA8mA7rK+yjjWj81m+G4Ew+Ypgkgr2h7yWIsKuFM1T6LAitQpZLM9zNIYUTfu0fw8GDPnIGMxIl7qTzhdcH/VWBG2Qeoi89Sw9UXq25hXDgAB0yQ4qVmc= zuul-build-sshkey",
                            "key_options": null,
                            "keyfile": "/home/zuul/.ssh/authorized_keys",
                            "manage_dir": true,
                            "path": null,
                            "state": "absent",
                            "user": "zuul",
                            "validate_certs": true
                        }
                    },
                    "role": {
                        "id": "0242ac1f-6606-fc62-a356-000000000005",
                        "name": "remove-build-sshkey",
                        "path": "/var/lib/zuul/builds/8c832a8a96ea4d47aa877fd304ecb48a/trusted/project_1/github.com/osism/openinfra-zuul-jobs/roles/remove-build-sshkey"
                    },
                    "task": {
                        "duration": {
                            "end": "2026-09-21T05:26:52.526344Z",
                            "start": "2026-09-21T05:26:51.925658Z"
                        },
                        "id": "0242ac1f-6606-fc62-a356-000000000007",
                        "name": "Remove the build SSH key from all nodes"
                    }
                }
            ]
        }
    ],
    "stats": {
        "debian-bookworm": {
            "changed": 1,
            "failures": 0,
            "ignored": 0,
            "ok": 1,
            "rescued": 0,
            "skipped": 0,
            "unreachable": 0
        }
    },
    "trusted": true
}
]
