all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe0e:7092
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 4099c7eb-9403-4ffb-b1be-3acbdd7c0ba7
        host_id: 82101243836454d7401d5893feae9e2c5df7cc291646d8a99b33b53b
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe0e:7092
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.13
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.232
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe0e:7092
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job python-black explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#54>'
      - '<Job python-black explicit: None implied: None source: osism/container-image-osism-ansible/.zuul.yaml@main#104>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 3d4ad1fffcf64120a8a376510d9740e2
      build_refs:
      - branch: main
        change: '726'
        change_message: "chore(deps): update dependency ansible-pylibssh to v1.4.0\n\nThis
          PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [ansible-pylibssh](https://redirect.github.com/ansible/pylibssh) | `==1.3.0`
          \u2192 `==1.4.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-pylibssh/1.4.0?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-pylibssh/1.3.0/1.4.0?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ansible/pylibssh (ansible-pylibssh)</summary>\n\n###
          [`v1.4.0`](https://redirect.github.com/ansible/pylibssh/releases/tag/v1.4.0)\n\n[Compare
          Source](https://redirect.github.com/ansible/pylibssh/compare/v1.3.0...v1.4.0)\n\n####
          \U0001F4DD Release notes\n\n\U0001F4E6 PyPI page: <https://pypi.org/project/ansible-pylibssh/1.4.0>\n\n\U0001F331
          v1.4.0 is marked as a stable release.\n\n\U0001F517 This release has been
          produced by  the following workflow run: <https://github.com/ansible/pylibssh/actions/runs/23120213721>\n\n###
          v1.4.0\n\n*(2026-03-15)*\n\n#### Bug fixes\n\n- Fixed the log level mapping
          to cover the entire `libssh` range -- by\n  [@&#8203;Jakuje](https://redirect.github.com/Jakuje)
          and [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  Previously
          it was not possible to set the most verbose `libssh` log\n  level `SSH_LOG_TRACE`
          to get the most verbose log messages useful for\n  debugging connection
          issues.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;597](https://redirect.github.com/ansible/pylibssh/issues/597).\n\n####
          Features\n\n- Made `libssh` use the Python `logging` system -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje)
          and\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  Previously
          the underlying `libssh` library was writing its logs\n  directly from the
          C-level into `stderr`, which caused inconsistent\n  behavior.\n\n  The default
          log level is now set to `ANSIBLE_PYLIBSSH_TRACE` and the\n  downstream loggers
          are able to trim the verbosity down. If you need\n  performance, it is possible
          to disable logging on the `libssh` side at\n  the source by setting a lower
          logging value, for example:\n\n  ```python\n  ssh_session.set_log_level(ANSIBLE_PYLIBSSH_NOLOG)\n
          \ ```\n\n  Additionally, the log level can be now be set also through the
          session\n  initializer:\n\n  ```python\n  ssh = Session(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)\n
          \ ```\n\n  or the `connect()` method arguments:\n\n  ```python\n  ssh.connect(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)\n
          \ ```\n\n  Setting any levels imported from `!logging` is also supported.\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;597](https://redirect.github.com/ansible/pylibssh/issues/597).\n\n####
          Packaging updates and notes for downstreams\n\n- Started shipping binary
          `armv7l` wheels -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          Upgrading `cibuildwheel` to v2.22.0 also picked up Python 3.13 and\n  enabled
          respective wheels to be built -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          The CI/CD/packaging infrastructure has been updated to produce\n  `source
          distribution <Source Distribution (or \"sdist\")>` file names\n  consistent
          with the requirement of uploading artifacts compliant with\n  the core packaging
          metadata 2.2 or newer to PyPI and TestPyPI -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Along with that, the infrastructure has been adjusted to expect\n  `625`-conforming
          names in its guard rails checks -- with some\n  [@&#8203;cidrblocks](https://redirect.github.com/cidrblocks)
          help.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;808](https://redirect.github.com/ansible/pylibssh/issues/808),
          [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809).\n\n-
          Upgrading `cibuildwheel` to v3.1.0 also picked up Python 3.14 and\n  enabled
          respective wheels to be built -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Building the free-threaded wheels remains disabled, though.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;823](https://redirect.github.com/ansible/pylibssh/issues/823).\n\n-
          While upgrading `cibuildwheel` to v3.1.4, its defaults changed to\n  attempt
          building wheels for the RISC-V architecture. This target is\n  now disabled
          explicitly due to the lack of infrastructure -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ We may enable it at a later time as a separate dedicated effort.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          Due to `cibuildwheel` to v3 bundling `delocate` 0.13.0 that enforces\n  deployment-target
          consistency with the brew-installed copy of the\n  `libssh` in the build
          jobs, the macOS wheels we build now require\n  macOS version 15.0 or newer.\n\n
          \ \\-- by [@&#8203;cidrblock](https://redirect.github.com/cidrblock) and
          [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related issues
          and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          The core packaging metadata now reflects that we test the project\n  under
          Python 3.13 and 3.14 (with GIL enabled) -- by [@&#8203;cidrblock](https://redirect.github.com/cidrblock)
          and\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The pre-cached `armv7l` images we build for the packaging\n  infrastructure
          are now correctly tagged with the `linux/arm/v7` OCI\n  platform tag --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;810](https://redirect.github.com/ansible/pylibssh/issues/810).\n\n-
          The build backend configuration no longer sets the deprecated\n  `bdist_wheel.universal`
          setting -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This does not influence the packaging artifacts in any way.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n-
          The build backend has been configured to exclude `.git_archival.txt`\n  from
          source distributions built from Git -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This reduces the number of false positive warning the backend outputs.\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n####
          Contributor-facing changes\n\n- The repository is now set up to auto-format
          Python files with Ruff.\n  Cython keeps being formatted by `cython-lint`.\n\n
          \ \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related
          commits on GitHub:*\n  [`234a2d3`](https://redirect.github.com/ansible/pylibssh/commit/234a2d34),\n
          \ [`a63b602`](https://redirect.github.com/ansible/pylibssh/commit/a63b6028),\n
          \ [`0e38569`](https://redirect.github.com/ansible/pylibssh/commit/0e385696).\n\n-
          The linting configuration now uses Ruff to run additional checks on\n  pure
          Python modules -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related commits on GitHub:*\n  [`8170954`](https://redirect.github.com/ansible/pylibssh/commit/817095443f6afa4b3822780110712db148693075).\n\n-
          `cibuildwheel` started making use of the `armv7l` container image\n  following
          its upgrade to v2.22.0 -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          Increased the amount of retries in test to avoid possible timeouts on\n
          \ slower systems -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;777](https://redirect.github.com/ansible/pylibssh/issues/777).\n\n-
          The SSHD start probe client command is now shielded from external\n  environmnent
          and will no longer attempt using an SSH agent on the\n  machine where the
          tests are involved, nor will it use alternative\n  authentication methods
          -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;782](https://redirect.github.com/ansible/pylibssh/issues/782).\n\n-
          Now that the `macos-13` runner VM image has been decommissioned, the\n  CI
          and CD jobs have been migrated to use `macos-15-intel` -- by\n  [@&#8203;komaldesai13](https://redirect.github.com/komaldesai13).\n\n
          \ This includes giving the macOS build job more time to complete as the\n
          \ new version is a little slower.\n\n  *Related issues and pull requests
          on GitHub:* [#&#8203;791](https://redirect.github.com/ansible/pylibssh/issues/791).\n\n-
          Updated the version of `libssh` to the latest release v0.12.0 in the\n  cached
          `manylinux` build environment container images -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;797](https://redirect.github.com/ansible/pylibssh/issues/797).\n\n-
          Updated the bundled version of libssh to 0.12.0 in platform-specific\n  wheels
          published on PyPI -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;798](https://redirect.github.com/ansible/pylibssh/issues/798).\n\n-
          Added Fedora and ubi9 images to CI/CD pipeline that are relevant in\n  2026
          and removed EOL Fedora versions -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;801](https://redirect.github.com/ansible/pylibssh/issues/801).\n\n-
          The `pre-commit` framework configuration has been updated to be in\n  sync
          with `awx-plugins` and other projects. It now has a few\n  additional linters
          and a workaround for the outdated ones.\n\n  \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;803](https://redirect.github.com/ansible/pylibssh/issues/803).\n\n-
          The standalone mentions of `pylibssh` have been replaced with\n  `ansible-pylibssh`
          in file license headers -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;804](https://redirect.github.com/ansible/pylibssh/issues/804).\n\n-
          The CI/CD/packaging infrastructure has been updated to produce\n  `source
          distribution <Source Distribution (or \"sdist\")>` file names\n  consistent
          with the requirement of uploading artifacts compliant with\n  the core packaging
          metadata 2.2 or newer to PyPI and TestPyPI -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Along with that, the infrastructure has been adjusted to expect\n  `625`-conforming
          names in its guard rails checks -- with some\n  [@&#8203;cidrblocks](https://redirect.github.com/cidrblocks)
          help.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;808](https://redirect.github.com/ansible/pylibssh/issues/808),
          [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809).\n\n-
          `cibuildwheel` has been upgraded to v3.1.4 -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;820](https://redirect.github.com/ansible/pylibssh/issues/820),
          [#&#8203;821](https://redirect.github.com/ansible/pylibssh/issues/821),\n
          \ [#&#8203;823](https://redirect.github.com/ansible/pylibssh/issues/823),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          The coverage measurement infrastructure now uses the `ctrace`\n  `measurement
          core <config_run_core>` across all the Python versions\n  consistently --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The CI now tests wheels built for Python 3.13 and 3.14 -- by\n  [@&#8203;cidrblock](https://redirect.github.com/cidrblock)
          and [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The pre-cached `armv7l` images we build for the packaging\n  infrastructure
          are now correctly tagged with the `linux/arm/v7` OCI\n  platform tag --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;810](https://redirect.github.com/ansible/pylibssh/issues/810).\n\n-
          The build backend configuration no longer sets the deprecated\n  `bdist_wheel.universal`
          setting -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This does not influence the packaging artifacts in any way.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n-
          The CI/CD infrastructure has been set up to avoid parts of the\n  template
          injection problem in GitHub Actions workflow definitions. The\n  shell entry
          point has been set to bash for any scripts with extra\n  strictness enabled.\n\n
          \ \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;816](https://redirect.github.com/ansible/pylibssh/issues/816).\n\n-
          The CI/CD and packaging infrastructure now sources the PyPI project\n  name
          from `setup.cfg` rather than hardcoding it -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;817](https://redirect.github.com/ansible/pylibssh/issues/817).\n\n-
          The documentation building infrastructure now integrates\n  GitHub-related
          RST roles using the `sphinx-issues` extension -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;818](https://redirect.github.com/ansible/pylibssh/issues/818).\n\n***\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/container-image-osism-ansible).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/container-image-osism-ansible/pull/726
        commit_id: 655d90450c8e39af3b03e9748c3eb52bd3aaf13c
        patchset: 655d90450c8e39af3b03e9748c3eb52bd3aaf13c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-osism-ansible
          name: osism/container-image-osism-ansible
          short_name: container-image-osism-ansible
        src_dir: src/github.com/osism/container-image-osism-ansible
        topic: null
      buildset: 02035ff4e1ed4d5f820d147b6004e4c0
      buildset_refs:
      - branch: main
        change: '726'
        change_message: "chore(deps): update dependency ansible-pylibssh to v1.4.0\n\nThis
          PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [ansible-pylibssh](https://redirect.github.com/ansible/pylibssh) | `==1.3.0`
          \u2192 `==1.4.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-pylibssh/1.4.0?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-pylibssh/1.3.0/1.4.0?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ansible/pylibssh (ansible-pylibssh)</summary>\n\n###
          [`v1.4.0`](https://redirect.github.com/ansible/pylibssh/releases/tag/v1.4.0)\n\n[Compare
          Source](https://redirect.github.com/ansible/pylibssh/compare/v1.3.0...v1.4.0)\n\n####
          \U0001F4DD Release notes\n\n\U0001F4E6 PyPI page: <https://pypi.org/project/ansible-pylibssh/1.4.0>\n\n\U0001F331
          v1.4.0 is marked as a stable release.\n\n\U0001F517 This release has been
          produced by  the following workflow run: <https://github.com/ansible/pylibssh/actions/runs/23120213721>\n\n###
          v1.4.0\n\n*(2026-03-15)*\n\n#### Bug fixes\n\n- Fixed the log level mapping
          to cover the entire `libssh` range -- by\n  [@&#8203;Jakuje](https://redirect.github.com/Jakuje)
          and [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  Previously
          it was not possible to set the most verbose `libssh` log\n  level `SSH_LOG_TRACE`
          to get the most verbose log messages useful for\n  debugging connection
          issues.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;597](https://redirect.github.com/ansible/pylibssh/issues/597).\n\n####
          Features\n\n- Made `libssh` use the Python `logging` system -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje)
          and\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  Previously
          the underlying `libssh` library was writing its logs\n  directly from the
          C-level into `stderr`, which caused inconsistent\n  behavior.\n\n  The default
          log level is now set to `ANSIBLE_PYLIBSSH_TRACE` and the\n  downstream loggers
          are able to trim the verbosity down. If you need\n  performance, it is possible
          to disable logging on the `libssh` side at\n  the source by setting a lower
          logging value, for example:\n\n  ```python\n  ssh_session.set_log_level(ANSIBLE_PYLIBSSH_NOLOG)\n
          \ ```\n\n  Additionally, the log level can be now be set also through the
          session\n  initializer:\n\n  ```python\n  ssh = Session(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)\n
          \ ```\n\n  or the `connect()` method arguments:\n\n  ```python\n  ssh.connect(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)\n
          \ ```\n\n  Setting any levels imported from `!logging` is also supported.\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;597](https://redirect.github.com/ansible/pylibssh/issues/597).\n\n####
          Packaging updates and notes for downstreams\n\n- Started shipping binary
          `armv7l` wheels -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          Upgrading `cibuildwheel` to v2.22.0 also picked up Python 3.13 and\n  enabled
          respective wheels to be built -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          The CI/CD/packaging infrastructure has been updated to produce\n  `source
          distribution <Source Distribution (or \"sdist\")>` file names\n  consistent
          with the requirement of uploading artifacts compliant with\n  the core packaging
          metadata 2.2 or newer to PyPI and TestPyPI -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Along with that, the infrastructure has been adjusted to expect\n  `625`-conforming
          names in its guard rails checks -- with some\n  [@&#8203;cidrblocks](https://redirect.github.com/cidrblocks)
          help.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;808](https://redirect.github.com/ansible/pylibssh/issues/808),
          [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809).\n\n-
          Upgrading `cibuildwheel` to v3.1.0 also picked up Python 3.14 and\n  enabled
          respective wheels to be built -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Building the free-threaded wheels remains disabled, though.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;823](https://redirect.github.com/ansible/pylibssh/issues/823).\n\n-
          While upgrading `cibuildwheel` to v3.1.4, its defaults changed to\n  attempt
          building wheels for the RISC-V architecture. This target is\n  now disabled
          explicitly due to the lack of infrastructure -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ We may enable it at a later time as a separate dedicated effort.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          Due to `cibuildwheel` to v3 bundling `delocate` 0.13.0 that enforces\n  deployment-target
          consistency with the brew-installed copy of the\n  `libssh` in the build
          jobs, the macOS wheels we build now require\n  macOS version 15.0 or newer.\n\n
          \ \\-- by [@&#8203;cidrblock](https://redirect.github.com/cidrblock) and
          [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related issues
          and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          The core packaging metadata now reflects that we test the project\n  under
          Python 3.13 and 3.14 (with GIL enabled) -- by [@&#8203;cidrblock](https://redirect.github.com/cidrblock)
          and\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The pre-cached `armv7l` images we build for the packaging\n  infrastructure
          are now correctly tagged with the `linux/arm/v7` OCI\n  platform tag --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;810](https://redirect.github.com/ansible/pylibssh/issues/810).\n\n-
          The build backend configuration no longer sets the deprecated\n  `bdist_wheel.universal`
          setting -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This does not influence the packaging artifacts in any way.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n-
          The build backend has been configured to exclude `.git_archival.txt`\n  from
          source distributions built from Git -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This reduces the number of false positive warning the backend outputs.\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n####
          Contributor-facing changes\n\n- The repository is now set up to auto-format
          Python files with Ruff.\n  Cython keeps being formatted by `cython-lint`.\n\n
          \ \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related
          commits on GitHub:*\n  [`234a2d3`](https://redirect.github.com/ansible/pylibssh/commit/234a2d34),\n
          \ [`a63b602`](https://redirect.github.com/ansible/pylibssh/commit/a63b6028),\n
          \ [`0e38569`](https://redirect.github.com/ansible/pylibssh/commit/0e385696).\n\n-
          The linting configuration now uses Ruff to run additional checks on\n  pure
          Python modules -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related commits on GitHub:*\n  [`8170954`](https://redirect.github.com/ansible/pylibssh/commit/817095443f6afa4b3822780110712db148693075).\n\n-
          `cibuildwheel` started making use of the `armv7l` container image\n  following
          its upgrade to v2.22.0 -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          Increased the amount of retries in test to avoid possible timeouts on\n
          \ slower systems -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;777](https://redirect.github.com/ansible/pylibssh/issues/777).\n\n-
          The SSHD start probe client command is now shielded from external\n  environmnent
          and will no longer attempt using an SSH agent on the\n  machine where the
          tests are involved, nor will it use alternative\n  authentication methods
          -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;782](https://redirect.github.com/ansible/pylibssh/issues/782).\n\n-
          Now that the `macos-13` runner VM image has been decommissioned, the\n  CI
          and CD jobs have been migrated to use `macos-15-intel` -- by\n  [@&#8203;komaldesai13](https://redirect.github.com/komaldesai13).\n\n
          \ This includes giving the macOS build job more time to complete as the\n
          \ new version is a little slower.\n\n  *Related issues and pull requests
          on GitHub:* [#&#8203;791](https://redirect.github.com/ansible/pylibssh/issues/791).\n\n-
          Updated the version of `libssh` to the latest release v0.12.0 in the\n  cached
          `manylinux` build environment container images -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;797](https://redirect.github.com/ansible/pylibssh/issues/797).\n\n-
          Updated the bundled version of libssh to 0.12.0 in platform-specific\n  wheels
          published on PyPI -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;798](https://redirect.github.com/ansible/pylibssh/issues/798).\n\n-
          Added Fedora and ubi9 images to CI/CD pipeline that are relevant in\n  2026
          and removed EOL Fedora versions -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;801](https://redirect.github.com/ansible/pylibssh/issues/801).\n\n-
          The `pre-commit` framework configuration has been updated to be in\n  sync
          with `awx-plugins` and other projects. It now has a few\n  additional linters
          and a workaround for the outdated ones.\n\n  \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;803](https://redirect.github.com/ansible/pylibssh/issues/803).\n\n-
          The standalone mentions of `pylibssh` have been replaced with\n  `ansible-pylibssh`
          in file license headers -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;804](https://redirect.github.com/ansible/pylibssh/issues/804).\n\n-
          The CI/CD/packaging infrastructure has been updated to produce\n  `source
          distribution <Source Distribution (or \"sdist\")>` file names\n  consistent
          with the requirement of uploading artifacts compliant with\n  the core packaging
          metadata 2.2 or newer to PyPI and TestPyPI -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Along with that, the infrastructure has been adjusted to expect\n  `625`-conforming
          names in its guard rails checks -- with some\n  [@&#8203;cidrblocks](https://redirect.github.com/cidrblocks)
          help.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;808](https://redirect.github.com/ansible/pylibssh/issues/808),
          [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809).\n\n-
          `cibuildwheel` has been upgraded to v3.1.4 -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;820](https://redirect.github.com/ansible/pylibssh/issues/820),
          [#&#8203;821](https://redirect.github.com/ansible/pylibssh/issues/821),\n
          \ [#&#8203;823](https://redirect.github.com/ansible/pylibssh/issues/823),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          The coverage measurement infrastructure now uses the `ctrace`\n  `measurement
          core <config_run_core>` across all the Python versions\n  consistently --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The CI now tests wheels built for Python 3.13 and 3.14 -- by\n  [@&#8203;cidrblock](https://redirect.github.com/cidrblock)
          and [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The pre-cached `armv7l` images we build for the packaging\n  infrastructure
          are now correctly tagged with the `linux/arm/v7` OCI\n  platform tag --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;810](https://redirect.github.com/ansible/pylibssh/issues/810).\n\n-
          The build backend configuration no longer sets the deprecated\n  `bdist_wheel.universal`
          setting -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This does not influence the packaging artifacts in any way.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n-
          The CI/CD infrastructure has been set up to avoid parts of the\n  template
          injection problem in GitHub Actions workflow definitions. The\n  shell entry
          point has been set to bash for any scripts with extra\n  strictness enabled.\n\n
          \ \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;816](https://redirect.github.com/ansible/pylibssh/issues/816).\n\n-
          The CI/CD and packaging infrastructure now sources the PyPI project\n  name
          from `setup.cfg` rather than hardcoding it -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;817](https://redirect.github.com/ansible/pylibssh/issues/817).\n\n-
          The documentation building infrastructure now integrates\n  GitHub-related
          RST roles using the `sphinx-issues` extension -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;818](https://redirect.github.com/ansible/pylibssh/issues/818).\n\n***\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/container-image-osism-ansible).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/container-image-osism-ansible/pull/726
        commit_id: 655d90450c8e39af3b03e9748c3eb52bd3aaf13c
        patchset: 655d90450c8e39af3b03e9748c3eb52bd3aaf13c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-osism-ansible
          name: osism/container-image-osism-ansible
          short_name: container-image-osism-ansible
        src_dir: src/github.com/osism/container-image-osism-ansible
        topic: null
      change: '726'
      change_message: "chore(deps): update dependency ansible-pylibssh to v1.4.0\n\nThis
        PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
        | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
        [ansible-pylibssh](https://redirect.github.com/ansible/pylibssh) | `==1.3.0`
        \u2192 `==1.4.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-pylibssh/1.4.0?slim=true)
        | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-pylibssh/1.3.0/1.4.0?slim=true)
        |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ansible/pylibssh (ansible-pylibssh)</summary>\n\n###
        [`v1.4.0`](https://redirect.github.com/ansible/pylibssh/releases/tag/v1.4.0)\n\n[Compare
        Source](https://redirect.github.com/ansible/pylibssh/compare/v1.3.0...v1.4.0)\n\n####
        \U0001F4DD Release notes\n\n\U0001F4E6 PyPI page: <https://pypi.org/project/ansible-pylibssh/1.4.0>\n\n\U0001F331
        v1.4.0 is marked as a stable release.\n\n\U0001F517 This release has been
        produced by  the following workflow run: <https://github.com/ansible/pylibssh/actions/runs/23120213721>\n\n###
        v1.4.0\n\n*(2026-03-15)*\n\n#### Bug fixes\n\n- Fixed the log level mapping
        to cover the entire `libssh` range -- by\n  [@&#8203;Jakuje](https://redirect.github.com/Jakuje)
        and [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  Previously
        it was not possible to set the most verbose `libssh` log\n  level `SSH_LOG_TRACE`
        to get the most verbose log messages useful for\n  debugging connection issues.\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;597](https://redirect.github.com/ansible/pylibssh/issues/597).\n\n####
        Features\n\n- Made `libssh` use the Python `logging` system -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje)
        and\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  Previously
        the underlying `libssh` library was writing its logs\n  directly from the
        C-level into `stderr`, which caused inconsistent\n  behavior.\n\n  The default
        log level is now set to `ANSIBLE_PYLIBSSH_TRACE` and the\n  downstream loggers
        are able to trim the verbosity down. If you need\n  performance, it is possible
        to disable logging on the `libssh` side at\n  the source by setting a lower
        logging value, for example:\n\n  ```python\n  ssh_session.set_log_level(ANSIBLE_PYLIBSSH_NOLOG)\n
        \ ```\n\n  Additionally, the log level can be now be set also through the
        session\n  initializer:\n\n  ```python\n  ssh = Session(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)\n
        \ ```\n\n  or the `connect()` method arguments:\n\n  ```python\n  ssh.connect(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)\n
        \ ```\n\n  Setting any levels imported from `!logging` is also supported.\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;597](https://redirect.github.com/ansible/pylibssh/issues/597).\n\n####
        Packaging updates and notes for downstreams\n\n- Started shipping binary `armv7l`
        wheels -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
        Upgrading `cibuildwheel` to v2.22.0 also picked up Python 3.13 and\n  enabled
        respective wheels to be built -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
        The CI/CD/packaging infrastructure has been updated to produce\n  `source
        distribution <Source Distribution (or \"sdist\")>` file names\n  consistent
        with the requirement of uploading artifacts compliant with\n  the core packaging
        metadata 2.2 or newer to PyPI and TestPyPI -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ Along with that, the infrastructure has been adjusted to expect\n  `625`-conforming
        names in its guard rails checks -- with some\n  [@&#8203;cidrblocks](https://redirect.github.com/cidrblocks)
        help.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;808](https://redirect.github.com/ansible/pylibssh/issues/808),
        [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809).\n\n-
        Upgrading `cibuildwheel` to v3.1.0 also picked up Python 3.14 and\n  enabled
        respective wheels to be built -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ Building the free-threaded wheels remains disabled, though.\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
        [#&#8203;823](https://redirect.github.com/ansible/pylibssh/issues/823).\n\n-
        While upgrading `cibuildwheel` to v3.1.4, its defaults changed to\n  attempt
        building wheels for the RISC-V architecture. This target is\n  now disabled
        explicitly due to the lack of infrastructure -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ We may enable it at a later time as a separate dedicated effort.\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
        [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
        Due to `cibuildwheel` to v3 bundling `delocate` 0.13.0 that enforces\n  deployment-target
        consistency with the brew-installed copy of the\n  `libssh` in the build jobs,
        the macOS wheels we build now require\n  macOS version 15.0 or newer.\n\n
        \ \\-- by [@&#8203;cidrblock](https://redirect.github.com/cidrblock) and [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
        [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
        The core packaging metadata now reflects that we test the project\n  under
        Python 3.13 and 3.14 (with GIL enabled) -- by [@&#8203;cidrblock](https://redirect.github.com/cidrblock)
        and\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
        [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
        The pre-cached `armv7l` images we build for the packaging\n  infrastructure
        are now correctly tagged with the `linux/arm/v7` OCI\n  platform tag -- by
        [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related issues
        and pull requests on GitHub:* [#&#8203;810](https://redirect.github.com/ansible/pylibssh/issues/810).\n\n-
        The build backend configuration no longer sets the deprecated\n  `bdist_wheel.universal`
        setting -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ This does not influence the packaging artifacts in any way.\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n-
        The build backend has been configured to exclude `.git_archival.txt`\n  from
        source distributions built from Git -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ This reduces the number of false positive warning the backend outputs.\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n####
        Contributor-facing changes\n\n- The repository is now set up to auto-format
        Python files with Ruff.\n  Cython keeps being formatted by `cython-lint`.\n\n
        \ \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related
        commits on GitHub:*\n  [`234a2d3`](https://redirect.github.com/ansible/pylibssh/commit/234a2d34),\n
        \ [`a63b602`](https://redirect.github.com/ansible/pylibssh/commit/a63b6028),\n
        \ [`0e38569`](https://redirect.github.com/ansible/pylibssh/commit/0e385696).\n\n-
        The linting configuration now uses Ruff to run additional checks on\n  pure
        Python modules -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ *Related commits on GitHub:*\n  [`8170954`](https://redirect.github.com/ansible/pylibssh/commit/817095443f6afa4b3822780110712db148693075).\n\n-
        `cibuildwheel` started making use of the `armv7l` container image\n  following
        its upgrade to v2.22.0 -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
        Increased the amount of retries in test to avoid possible timeouts on\n  slower
        systems -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;777](https://redirect.github.com/ansible/pylibssh/issues/777).\n\n-
        The SSHD start probe client command is now shielded from external\n  environmnent
        and will no longer attempt using an SSH agent on the\n  machine where the
        tests are involved, nor will it use alternative\n  authentication methods
        -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;782](https://redirect.github.com/ansible/pylibssh/issues/782).\n\n-
        Now that the `macos-13` runner VM image has been decommissioned, the\n  CI
        and CD jobs have been migrated to use `macos-15-intel` -- by\n  [@&#8203;komaldesai13](https://redirect.github.com/komaldesai13).\n\n
        \ This includes giving the macOS build job more time to complete as the\n
        \ new version is a little slower.\n\n  *Related issues and pull requests on
        GitHub:* [#&#8203;791](https://redirect.github.com/ansible/pylibssh/issues/791).\n\n-
        Updated the version of `libssh` to the latest release v0.12.0 in the\n  cached
        `manylinux` build environment container images -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;797](https://redirect.github.com/ansible/pylibssh/issues/797).\n\n-
        Updated the bundled version of libssh to 0.12.0 in platform-specific\n  wheels
        published on PyPI -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;798](https://redirect.github.com/ansible/pylibssh/issues/798).\n\n-
        Added Fedora and ubi9 images to CI/CD pipeline that are relevant in\n  2026
        and removed EOL Fedora versions -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;801](https://redirect.github.com/ansible/pylibssh/issues/801).\n\n-
        The `pre-commit` framework configuration has been updated to be in\n  sync
        with `awx-plugins` and other projects. It now has a few\n  additional linters
        and a workaround for the outdated ones.\n\n  \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;803](https://redirect.github.com/ansible/pylibssh/issues/803).\n\n-
        The standalone mentions of `pylibssh` have been replaced with\n  `ansible-pylibssh`
        in file license headers -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;804](https://redirect.github.com/ansible/pylibssh/issues/804).\n\n-
        The CI/CD/packaging infrastructure has been updated to produce\n  `source
        distribution <Source Distribution (or \"sdist\")>` file names\n  consistent
        with the requirement of uploading artifacts compliant with\n  the core packaging
        metadata 2.2 or newer to PyPI and TestPyPI -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ Along with that, the infrastructure has been adjusted to expect\n  `625`-conforming
        names in its guard rails checks -- with some\n  [@&#8203;cidrblocks](https://redirect.github.com/cidrblocks)
        help.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;808](https://redirect.github.com/ansible/pylibssh/issues/808),
        [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809).\n\n-
        `cibuildwheel` has been upgraded to v3.1.4 -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
        [#&#8203;820](https://redirect.github.com/ansible/pylibssh/issues/820), [#&#8203;821](https://redirect.github.com/ansible/pylibssh/issues/821),\n
        \ [#&#8203;823](https://redirect.github.com/ansible/pylibssh/issues/823),
        [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
        The coverage measurement infrastructure now uses the `ctrace`\n  `measurement
        core <config_run_core>` across all the Python versions\n  consistently --
        by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
        [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
        The CI now tests wheels built for Python 3.13 and 3.14 -- by\n  [@&#8203;cidrblock](https://redirect.github.com/cidrblock)
        and [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
        [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
        The pre-cached `armv7l` images we build for the packaging\n  infrastructure
        are now correctly tagged with the `linux/arm/v7` OCI\n  platform tag -- by
        [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related issues
        and pull requests on GitHub:* [#&#8203;810](https://redirect.github.com/ansible/pylibssh/issues/810).\n\n-
        The build backend configuration no longer sets the deprecated\n  `bdist_wheel.universal`
        setting -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ This does not influence the packaging artifacts in any way.\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n-
        The CI/CD infrastructure has been set up to avoid parts of the\n  template
        injection problem in GitHub Actions workflow definitions. The\n  shell entry
        point has been set to bash for any scripts with extra\n  strictness enabled.\n\n
        \ \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related
        issues and pull requests on GitHub:* [#&#8203;816](https://redirect.github.com/ansible/pylibssh/issues/816).\n\n-
        The CI/CD and packaging infrastructure now sources the PyPI project\n  name
        from `setup.cfg` rather than hardcoding it -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;817](https://redirect.github.com/ansible/pylibssh/issues/817).\n\n-
        The documentation building infrastructure now integrates\n  GitHub-related
        RST roles using the `sphinx-issues` extension -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
        \ *Related issues and pull requests on GitHub:* [#&#8203;818](https://redirect.github.com/ansible/pylibssh/issues/818).\n\n***\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time (no
        schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
        **Automerge**: Disabled by config. Please merge this manually once you are
        satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
        tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR and
        you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check
        -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was
        generated by [Mend Renovate](https://mend.io/renovate/). View the [repository
        job log](https://developer.mend.io/github/osism/container-image-osism-ansible).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
      change_url: https://github.com/osism/container-image-osism-ansible/pull/726
      child_jobs: []
      commit_id: 655d90450c8e39af3b03e9748c3eb52bd3aaf13c
      event_id: 1d6b4310-2138-11f1-9936-e6aa4fd82811
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/3d4ad1fffcf64120a8a376510d9740e2/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/3d4ad1fffcf64120a8a376510d9740e2/work/logs
        result_data_file: /var/lib/zuul/builds/3d4ad1fffcf64120a8a376510d9740e2/work/results.json
        src_root: /var/lib/zuul/builds/3d4ad1fffcf64120a8a376510d9740e2/work/src
        work_root: /var/lib/zuul/builds/3d4ad1fffcf64120a8a376510d9740e2/work
      include_vars: []
      items:
      - branch: main
        change: '726'
        change_message: "chore(deps): update dependency ansible-pylibssh to v1.4.0\n\nThis
          PR contains the following updates:\n\n| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/)
          | [Confidence](https://docs.renovatebot.com/merge-confidence/) |\n|---|---|---|---|\n|
          [ansible-pylibssh](https://redirect.github.com/ansible/pylibssh) | `==1.3.0`
          \u2192 `==1.4.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-pylibssh/1.4.0?slim=true)
          | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-pylibssh/1.3.0/1.4.0?slim=true)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ansible/pylibssh (ansible-pylibssh)</summary>\n\n###
          [`v1.4.0`](https://redirect.github.com/ansible/pylibssh/releases/tag/v1.4.0)\n\n[Compare
          Source](https://redirect.github.com/ansible/pylibssh/compare/v1.3.0...v1.4.0)\n\n####
          \U0001F4DD Release notes\n\n\U0001F4E6 PyPI page: <https://pypi.org/project/ansible-pylibssh/1.4.0>\n\n\U0001F331
          v1.4.0 is marked as a stable release.\n\n\U0001F517 This release has been
          produced by  the following workflow run: <https://github.com/ansible/pylibssh/actions/runs/23120213721>\n\n###
          v1.4.0\n\n*(2026-03-15)*\n\n#### Bug fixes\n\n- Fixed the log level mapping
          to cover the entire `libssh` range -- by\n  [@&#8203;Jakuje](https://redirect.github.com/Jakuje)
          and [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  Previously
          it was not possible to set the most verbose `libssh` log\n  level `SSH_LOG_TRACE`
          to get the most verbose log messages useful for\n  debugging connection
          issues.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;597](https://redirect.github.com/ansible/pylibssh/issues/597).\n\n####
          Features\n\n- Made `libssh` use the Python `logging` system -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje)
          and\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  Previously
          the underlying `libssh` library was writing its logs\n  directly from the
          C-level into `stderr`, which caused inconsistent\n  behavior.\n\n  The default
          log level is now set to `ANSIBLE_PYLIBSSH_TRACE` and the\n  downstream loggers
          are able to trim the verbosity down. If you need\n  performance, it is possible
          to disable logging on the `libssh` side at\n  the source by setting a lower
          logging value, for example:\n\n  ```python\n  ssh_session.set_log_level(ANSIBLE_PYLIBSSH_NOLOG)\n
          \ ```\n\n  Additionally, the log level can be now be set also through the
          session\n  initializer:\n\n  ```python\n  ssh = Session(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)\n
          \ ```\n\n  or the `connect()` method arguments:\n\n  ```python\n  ssh.connect(log_verbosity=ANSIBLE_PYLIBSSH_TRACE)\n
          \ ```\n\n  Setting any levels imported from `!logging` is also supported.\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;597](https://redirect.github.com/ansible/pylibssh/issues/597).\n\n####
          Packaging updates and notes for downstreams\n\n- Started shipping binary
          `armv7l` wheels -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          Upgrading `cibuildwheel` to v2.22.0 also picked up Python 3.13 and\n  enabled
          respective wheels to be built -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          The CI/CD/packaging infrastructure has been updated to produce\n  `source
          distribution <Source Distribution (or \"sdist\")>` file names\n  consistent
          with the requirement of uploading artifacts compliant with\n  the core packaging
          metadata 2.2 or newer to PyPI and TestPyPI -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Along with that, the infrastructure has been adjusted to expect\n  `625`-conforming
          names in its guard rails checks -- with some\n  [@&#8203;cidrblocks](https://redirect.github.com/cidrblocks)
          help.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;808](https://redirect.github.com/ansible/pylibssh/issues/808),
          [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809).\n\n-
          Upgrading `cibuildwheel` to v3.1.0 also picked up Python 3.14 and\n  enabled
          respective wheels to be built -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Building the free-threaded wheels remains disabled, though.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;823](https://redirect.github.com/ansible/pylibssh/issues/823).\n\n-
          While upgrading `cibuildwheel` to v3.1.4, its defaults changed to\n  attempt
          building wheels for the RISC-V architecture. This target is\n  now disabled
          explicitly due to the lack of infrastructure -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ We may enable it at a later time as a separate dedicated effort.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          Due to `cibuildwheel` to v3 bundling `delocate` 0.13.0 that enforces\n  deployment-target
          consistency with the brew-installed copy of the\n  `libssh` in the build
          jobs, the macOS wheels we build now require\n  macOS version 15.0 or newer.\n\n
          \ \\-- by [@&#8203;cidrblock](https://redirect.github.com/cidrblock) and
          [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related issues
          and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          The core packaging metadata now reflects that we test the project\n  under
          Python 3.13 and 3.14 (with GIL enabled) -- by [@&#8203;cidrblock](https://redirect.github.com/cidrblock)
          and\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The pre-cached `armv7l` images we build for the packaging\n  infrastructure
          are now correctly tagged with the `linux/arm/v7` OCI\n  platform tag --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;810](https://redirect.github.com/ansible/pylibssh/issues/810).\n\n-
          The build backend configuration no longer sets the deprecated\n  `bdist_wheel.universal`
          setting -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This does not influence the packaging artifacts in any way.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n-
          The build backend has been configured to exclude `.git_archival.txt`\n  from
          source distributions built from Git -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This reduces the number of false positive warning the backend outputs.\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n####
          Contributor-facing changes\n\n- The repository is now set up to auto-format
          Python files with Ruff.\n  Cython keeps being formatted by `cython-lint`.\n\n
          \ \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related
          commits on GitHub:*\n  [`234a2d3`](https://redirect.github.com/ansible/pylibssh/commit/234a2d34),\n
          \ [`a63b602`](https://redirect.github.com/ansible/pylibssh/commit/a63b6028),\n
          \ [`0e38569`](https://redirect.github.com/ansible/pylibssh/commit/0e385696).\n\n-
          The linting configuration now uses Ruff to run additional checks on\n  pure
          Python modules -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related commits on GitHub:*\n  [`8170954`](https://redirect.github.com/ansible/pylibssh/commit/817095443f6afa4b3822780110712db148693075).\n\n-
          `cibuildwheel` started making use of the `armv7l` container image\n  following
          its upgrade to v2.22.0 -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;648](https://redirect.github.com/ansible/pylibssh/issues/648).\n\n-
          Increased the amount of retries in test to avoid possible timeouts on\n
          \ slower systems -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;777](https://redirect.github.com/ansible/pylibssh/issues/777).\n\n-
          The SSHD start probe client command is now shielded from external\n  environmnent
          and will no longer attempt using an SSH agent on the\n  machine where the
          tests are involved, nor will it use alternative\n  authentication methods
          -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;782](https://redirect.github.com/ansible/pylibssh/issues/782).\n\n-
          Now that the `macos-13` runner VM image has been decommissioned, the\n  CI
          and CD jobs have been migrated to use `macos-15-intel` -- by\n  [@&#8203;komaldesai13](https://redirect.github.com/komaldesai13).\n\n
          \ This includes giving the macOS build job more time to complete as the\n
          \ new version is a little slower.\n\n  *Related issues and pull requests
          on GitHub:* [#&#8203;791](https://redirect.github.com/ansible/pylibssh/issues/791).\n\n-
          Updated the version of `libssh` to the latest release v0.12.0 in the\n  cached
          `manylinux` build environment container images -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;797](https://redirect.github.com/ansible/pylibssh/issues/797).\n\n-
          Updated the bundled version of libssh to 0.12.0 in platform-specific\n  wheels
          published on PyPI -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;798](https://redirect.github.com/ansible/pylibssh/issues/798).\n\n-
          Added Fedora and ubi9 images to CI/CD pipeline that are relevant in\n  2026
          and removed EOL Fedora versions -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;801](https://redirect.github.com/ansible/pylibssh/issues/801).\n\n-
          The `pre-commit` framework configuration has been updated to be in\n  sync
          with `awx-plugins` and other projects. It now has a few\n  additional linters
          and a workaround for the outdated ones.\n\n  \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;803](https://redirect.github.com/ansible/pylibssh/issues/803).\n\n-
          The standalone mentions of `pylibssh` have been replaced with\n  `ansible-pylibssh`
          in file license headers -- by [@&#8203;Jakuje](https://redirect.github.com/Jakuje).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;804](https://redirect.github.com/ansible/pylibssh/issues/804).\n\n-
          The CI/CD/packaging infrastructure has been updated to produce\n  `source
          distribution <Source Distribution (or \"sdist\")>` file names\n  consistent
          with the requirement of uploading artifacts compliant with\n  the core packaging
          metadata 2.2 or newer to PyPI and TestPyPI -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ Along with that, the infrastructure has been adjusted to expect\n  `625`-conforming
          names in its guard rails checks -- with some\n  [@&#8203;cidrblocks](https://redirect.github.com/cidrblocks)
          help.\n\n  *Related issues and pull requests on GitHub:* [#&#8203;808](https://redirect.github.com/ansible/pylibssh/issues/808),
          [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809).\n\n-
          `cibuildwheel` has been upgraded to v3.1.4 -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;820](https://redirect.github.com/ansible/pylibssh/issues/820),
          [#&#8203;821](https://redirect.github.com/ansible/pylibssh/issues/821),\n
          \ [#&#8203;823](https://redirect.github.com/ansible/pylibssh/issues/823),
          [#&#8203;824](https://redirect.github.com/ansible/pylibssh/issues/824).\n\n-
          The coverage measurement infrastructure now uses the `ctrace`\n  `measurement
          core <config_run_core>` across all the Python versions\n  consistently --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The CI now tests wheels built for Python 3.13 and 3.14 -- by\n  [@&#8203;cidrblock](https://redirect.github.com/cidrblock)
          and [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;809](https://redirect.github.com/ansible/pylibssh/issues/809),
          [#&#8203;825](https://redirect.github.com/ansible/pylibssh/issues/825).\n\n-
          The pre-cached `armv7l` images we build for the packaging\n  infrastructure
          are now correctly tagged with the `linux/arm/v7` OCI\n  platform tag --
          by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;810](https://redirect.github.com/ansible/pylibssh/issues/810).\n\n-
          The build backend configuration no longer sets the deprecated\n  `bdist_wheel.universal`
          setting -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ This does not influence the packaging artifacts in any way.\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;811](https://redirect.github.com/ansible/pylibssh/issues/811).\n\n-
          The CI/CD infrastructure has been set up to avoid parts of the\n  template
          injection problem in GitHub Actions workflow definitions. The\n  shell entry
          point has been set to bash for any scripts with extra\n  strictness enabled.\n\n
          \ \\-- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz)\n\n  *Related
          issues and pull requests on GitHub:* [#&#8203;816](https://redirect.github.com/ansible/pylibssh/issues/816).\n\n-
          The CI/CD and packaging infrastructure now sources the PyPI project\n  name
          from `setup.cfg` rather than hardcoding it -- by [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;817](https://redirect.github.com/ansible/pylibssh/issues/817).\n\n-
          The documentation building infrastructure now integrates\n  GitHub-related
          RST roles using the `sphinx-issues` extension -- by\n  [@&#8203;webknjaz](https://redirect.github.com/webknjaz).\n\n
          \ *Related issues and pull requests on GitHub:* [#&#8203;818](https://redirect.github.com/ansible/pylibssh/issues/818).\n\n***\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/container-image-osism-ansible).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->\n"
        change_url: https://github.com/osism/container-image-osism-ansible/pull/726
        commit_id: 655d90450c8e39af3b03e9748c3eb52bd3aaf13c
        patchset: 655d90450c8e39af3b03e9748c3eb52bd3aaf13c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-osism-ansible
          name: osism/container-image-osism-ansible
          short_name: container-image-osism-ansible
          src_dir: src/github.com/osism/container-image-osism-ansible
        topic: null
      job: python-black
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IGFuc2libGUtcHlsaWJzc2ggdG8gdjEuNC4wCgpUaGlzIFBSIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgdXBkYXRlczoKCnwgUGFja2FnZSB8IENoYW5nZSB8IFtBZ2VdKGh0dHBzOi8vZG9jcy5yZW5vdmF0ZWJvdC5jb20vbWVyZ2UtY29uZmlkZW5jZS8pIHwgW0NvbmZpZGVuY2VdKGh0dHBzOi8vZG9jcy5yZW5vdmF0ZWJvdC5jb20vbWVyZ2UtY29uZmlkZW5jZS8pIHwKfC0tLXwtLS18LS0tfC0tLXwKfCBbYW5zaWJsZS1weWxpYnNzaF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gpIHwgYD09MS4zLjBgIOKGkiBgPT0xLjQuMGAgfCAhW2FnZV0oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9hcGkvbWMvYmFkZ2VzL2FnZS9weXBpL2Fuc2libGUtcHlsaWJzc2gvMS40LjA/c2xpbT10cnVlKSB8ICFbY29uZmlkZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9hcGkvbWMvYmFkZ2VzL2NvbmZpZGVuY2UvcHlwaS9hbnNpYmxlLXB5bGlic3NoLzEuMy4wLzEuNC4wP3NsaW09dHJ1ZSkgfAoKLS0tCgojIyMgUmVsZWFzZSBOb3RlcwoKPGRldGFpbHM+CjxzdW1tYXJ5PmFuc2libGUvcHlsaWJzc2ggKGFuc2libGUtcHlsaWJzc2gpPC9zdW1tYXJ5PgoKIyMjIFtgdjEuNC4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvcmVsZWFzZXMvdGFnL3YxLjQuMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvY29tcGFyZS92MS4zLjAuLi52MS40LjApCgojIyMjIPCfk50gUmVsZWFzZSBub3RlcwoK8J+TpiBQeVBJIHBhZ2U6IDxodHRwczovL3B5cGkub3JnL3Byb2plY3QvYW5zaWJsZS1weWxpYnNzaC8xLjQuMD4KCvCfjLEgdjEuNC4wIGlzIG1hcmtlZCBhcyBhIHN0YWJsZSByZWxlYXNlLgoK8J+UlyBUaGlzIHJlbGVhc2UgaGFzIGJlZW4gcHJvZHVjZWQgYnkgIHRoZSBmb2xsb3dpbmcgd29ya2Zsb3cgcnVuOiA8aHR0cHM6Ly9naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvYWN0aW9ucy9ydW5zLzIzMTIwMjEzNzIxPgoKIyMjIHYxLjQuMAoKKigyMDI2LTAzLTE1KSoKCiMjIyMgQnVnIGZpeGVzCgotIEZpeGVkIHRoZSBsb2cgbGV2ZWwgbWFwcGluZyB0byBjb3ZlciB0aGUgZW50aXJlIGBsaWJzc2hgIHJhbmdlIC0tIGJ5CiAgW0AmIzgyMDM7SmFrdWplXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vSmFrdWplKSBhbmQgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogIFByZXZpb3VzbHkgaXQgd2FzIG5vdCBwb3NzaWJsZSB0byBzZXQgdGhlIG1vc3QgdmVyYm9zZSBgbGlic3NoYCBsb2cKICBsZXZlbCBgU1NIX0xPR19UUkFDRWAgdG8gZ2V0IHRoZSBtb3N0IHZlcmJvc2UgbG9nIG1lc3NhZ2VzIHVzZWZ1bCBmb3IKICBkZWJ1Z2dpbmcgY29ubmVjdGlvbiBpc3N1ZXMuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs1OTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy81OTcpLgoKIyMjIyBGZWF0dXJlcwoKLSBNYWRlIGBsaWJzc2hgIHVzZSB0aGUgUHl0aG9uIGBsb2dnaW5nYCBzeXN0ZW0gLS0gYnkgW0AmIzgyMDM7SmFrdWplXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vSmFrdWplKSBhbmQKICBbQCYjODIwMzt3ZWJrbmphel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3dlYmtuamF6KS4KCiAgUHJldmlvdXNseSB0aGUgdW5kZXJseWluZyBgbGlic3NoYCBsaWJyYXJ5IHdhcyB3cml0aW5nIGl0cyBsb2dzCiAgZGlyZWN0bHkgZnJvbSB0aGUgQy1sZXZlbCBpbnRvIGBzdGRlcnJgLCB3aGljaCBjYXVzZWQgaW5jb25zaXN0ZW50CiAgYmVoYXZpb3IuCgogIFRoZSBkZWZhdWx0IGxvZyBsZXZlbCBpcyBub3cgc2V0IHRvIGBBTlNJQkxFX1BZTElCU1NIX1RSQUNFYCBhbmQgdGhlCiAgZG93bnN0cmVhbSBsb2dnZXJzIGFyZSBhYmxlIHRvIHRyaW0gdGhlIHZlcmJvc2l0eSBkb3duLiBJZiB5b3UgbmVlZAogIHBlcmZvcm1hbmNlLCBpdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIGxvZ2dpbmcgb24gdGhlIGBsaWJzc2hgIHNpZGUgYXQKICB0aGUgc291cmNlIGJ5IHNldHRpbmcgYSBsb3dlciBsb2dnaW5nIHZhbHVlLCBmb3IgZXhhbXBsZToKCiAgYGBgcHl0aG9uCiAgc3NoX3Nlc3Npb24uc2V0X2xvZ19sZXZlbChBTlNJQkxFX1BZTElCU1NIX05PTE9HKQogIGBgYAoKICBBZGRpdGlvbmFsbHksIHRoZSBsb2cgbGV2ZWwgY2FuIGJlIG5vdyBiZSBzZXQgYWxzbyB0aHJvdWdoIHRoZSBzZXNzaW9uCiAgaW5pdGlhbGl6ZXI6CgogIGBgYHB5dGhvbgogIHNzaCA9IFNlc3Npb24obG9nX3ZlcmJvc2l0eT1BTlNJQkxFX1BZTElCU1NIX1RSQUNFKQogIGBgYAoKICBvciB0aGUgYGNvbm5lY3QoKWAgbWV0aG9kIGFyZ3VtZW50czoKCiAgYGBgcHl0aG9uCiAgc3NoLmNvbm5lY3QobG9nX3ZlcmJvc2l0eT1BTlNJQkxFX1BZTElCU1NIX1RSQUNFKQogIGBgYAoKICBTZXR0aW5nIGFueSBsZXZlbHMgaW1wb3J0ZWQgZnJvbSBgIWxvZ2dpbmdgIGlzIGFsc28gc3VwcG9ydGVkLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7NTk3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvNTk3KS4KCiMjIyMgUGFja2FnaW5nIHVwZGF0ZXMgYW5kIG5vdGVzIGZvciBkb3duc3RyZWFtcwoKLSBTdGFydGVkIHNoaXBwaW5nIGJpbmFyeSBgYXJtdjdsYCB3aGVlbHMgLS0gYnkgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs2NDhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy82NDgpLgoKLSBVcGdyYWRpbmcgYGNpYnVpbGR3aGVlbGAgdG8gdjIuMjIuMCBhbHNvIHBpY2tlZCB1cCBQeXRob24gMy4xMyBhbmQKICBlbmFibGVkIHJlc3BlY3RpdmUgd2hlZWxzIHRvIGJlIGJ1aWx0IC0tIGJ5IFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7NjQ4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvNjQ4KS4KCi0gVGhlIENJL0NEL3BhY2thZ2luZyBpbmZyYXN0cnVjdHVyZSBoYXMgYmVlbiB1cGRhdGVkIHRvIHByb2R1Y2UKICBgc291cmNlIGRpc3RyaWJ1dGlvbiA8U291cmNlIERpc3RyaWJ1dGlvbiAob3IgInNkaXN0Iik+YCBmaWxlIG5hbWVzCiAgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudCBvZiB1cGxvYWRpbmcgYXJ0aWZhY3RzIGNvbXBsaWFudCB3aXRoCiAgdGhlIGNvcmUgcGFja2FnaW5nIG1ldGFkYXRhIDIuMiBvciBuZXdlciB0byBQeVBJIGFuZCBUZXN0UHlQSSAtLSBieQogIFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICBBbG9uZyB3aXRoIHRoYXQsIHRoZSBpbmZyYXN0cnVjdHVyZSBoYXMgYmVlbiBhZGp1c3RlZCB0byBleHBlY3QKICBgNjI1YC1jb25mb3JtaW5nIG5hbWVzIGluIGl0cyBndWFyZCByYWlscyBjaGVja3MgLS0gd2l0aCBzb21lCiAgW0AmIzgyMDM7Y2lkcmJsb2Nrc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2NpZHJibG9ja3MpIGhlbHAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MDhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDgpLCBbIyYjODIwMzs4MDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDkpLgoKLSBVcGdyYWRpbmcgYGNpYnVpbGR3aGVlbGAgdG8gdjMuMS4wIGFsc28gcGlja2VkIHVwIFB5dGhvbiAzLjE0IGFuZAogIGVuYWJsZWQgcmVzcGVjdGl2ZSB3aGVlbHMgdG8gYmUgYnVpbHQgLS0gYnkgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogIEJ1aWxkaW5nIHRoZSBmcmVlLXRocmVhZGVkIHdoZWVscyByZW1haW5zIGRpc2FibGVkLCB0aG91Z2guCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDkpLCBbIyYjODIwMzs4MjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MjMpLgoKLSBXaGlsZSB1cGdyYWRpbmcgYGNpYnVpbGR3aGVlbGAgdG8gdjMuMS40LCBpdHMgZGVmYXVsdHMgY2hhbmdlZCB0bwogIGF0dGVtcHQgYnVpbGRpbmcgd2hlZWxzIGZvciB0aGUgUklTQy1WIGFyY2hpdGVjdHVyZS4gVGhpcyB0YXJnZXQgaXMKICBub3cgZGlzYWJsZWQgZXhwbGljaXRseSBkdWUgdG8gdGhlIGxhY2sgb2YgaW5mcmFzdHJ1Y3R1cmUgLS0gYnkKICBbQCYjODIwMzt3ZWJrbmphel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3dlYmtuamF6KS4KCiAgV2UgbWF5IGVuYWJsZSBpdCBhdCBhIGxhdGVyIHRpbWUgYXMgYSBzZXBhcmF0ZSBkZWRpY2F0ZWQgZWZmb3J0LgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7ODA5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODA5KSwgWyMmIzgyMDM7ODI0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODI0KS4KCi0gRHVlIHRvIGBjaWJ1aWxkd2hlZWxgIHRvIHYzIGJ1bmRsaW5nIGBkZWxvY2F0ZWAgMC4xMy4wIHRoYXQgZW5mb3JjZXMKICBkZXBsb3ltZW50LXRhcmdldCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBicmV3LWluc3RhbGxlZCBjb3B5IG9mIHRoZQogIGBsaWJzc2hgIGluIHRoZSBidWlsZCBqb2JzLCB0aGUgbWFjT1Mgd2hlZWxzIHdlIGJ1aWxkIG5vdyByZXF1aXJlCiAgbWFjT1MgdmVyc2lvbiAxNS4wIG9yIG5ld2VyLgoKICBcLS0gYnkgW0AmIzgyMDM7Y2lkcmJsb2NrXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vY2lkcmJsb2NrKSBhbmQgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikKCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqIFsjJiM4MjAzOzgwOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvaXNzdWVzLzgwOSksIFsjJiM4MjAzOzgyNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvaXNzdWVzLzgyNCkuCgotIFRoZSBjb3JlIHBhY2thZ2luZyBtZXRhZGF0YSBub3cgcmVmbGVjdHMgdGhhdCB3ZSB0ZXN0IHRoZSBwcm9qZWN0CiAgdW5kZXIgUHl0aG9uIDMuMTMgYW5kIDMuMTQgKHdpdGggR0lMIGVuYWJsZWQpIC0tIGJ5IFtAJiM4MjAzO2NpZHJibG9ja10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2NpZHJibG9jaykgYW5kCiAgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDkpLCBbIyYjODIwMzs4MjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MjUpLgoKLSBUaGUgcHJlLWNhY2hlZCBgYXJtdjdsYCBpbWFnZXMgd2UgYnVpbGQgZm9yIHRoZSBwYWNrYWdpbmcKICBpbmZyYXN0cnVjdHVyZSBhcmUgbm93IGNvcnJlY3RseSB0YWdnZWQgd2l0aCB0aGUgYGxpbnV4L2FybS92N2AgT0NJCiAgcGxhdGZvcm0gdGFnIC0tIGJ5IFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7ODEwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODEwKS4KCi0gVGhlIGJ1aWxkIGJhY2tlbmQgY29uZmlndXJhdGlvbiBubyBsb25nZXIgc2V0cyB0aGUgZGVwcmVjYXRlZAogIGBiZGlzdF93aGVlbC51bml2ZXJzYWxgIHNldHRpbmcgLS0gYnkgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogIFRoaXMgZG9lcyBub3QgaW5mbHVlbmNlIHRoZSBwYWNrYWdpbmcgYXJ0aWZhY3RzIGluIGFueSB3YXkuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MTEpLgoKLSBUaGUgYnVpbGQgYmFja2VuZCBoYXMgYmVlbiBjb25maWd1cmVkIHRvIGV4Y2x1ZGUgYC5naXRfYXJjaGl2YWwudHh0YAogIGZyb20gc291cmNlIGRpc3RyaWJ1dGlvbnMgYnVpbHQgZnJvbSBHaXQgLS0gYnkgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogIFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGZhbHNlIHBvc2l0aXZlIHdhcm5pbmcgdGhlIGJhY2tlbmQgb3V0cHV0cy4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqIFsjJiM4MjAzOzgxMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvaXNzdWVzLzgxMSkuCgojIyMjIENvbnRyaWJ1dG9yLWZhY2luZyBjaGFuZ2VzCgotIFRoZSByZXBvc2l0b3J5IGlzIG5vdyBzZXQgdXAgdG8gYXV0by1mb3JtYXQgUHl0aG9uIGZpbGVzIHdpdGggUnVmZi4KICBDeXRob24ga2VlcHMgYmVpbmcgZm9ybWF0dGVkIGJ5IGBjeXRob24tbGludGAuCgogIFwtLSBieSBbQCYjODIwMzt3ZWJrbmphel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3dlYmtuamF6KQoKICAqUmVsYXRlZCBjb21taXRzIG9uIEdpdEh1YjoqCiAgW2AyMzRhMmQzYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvY29tbWl0LzIzNGEyZDM0KSwKICBbYGE2M2I2MDJgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9jb21taXQvYTYzYjYwMjgpLAogIFtgMGUzODU2OWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2NvbW1pdC8wZTM4NTY5NikuCgotIFRoZSBsaW50aW5nIGNvbmZpZ3VyYXRpb24gbm93IHVzZXMgUnVmZiB0byBydW4gYWRkaXRpb25hbCBjaGVja3Mgb24KICBwdXJlIFB5dGhvbiBtb2R1bGVzIC0tIGJ5IFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICAqUmVsYXRlZCBjb21taXRzIG9uIEdpdEh1YjoqCiAgW2A4MTcwOTU0YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvY29tbWl0LzgxNzA5NTQ0M2Y2YWZhNGIzODIyNzgwMTEwNzEyZGIxNDg2OTMwNzUpLgoKLSBgY2lidWlsZHdoZWVsYCBzdGFydGVkIG1ha2luZyB1c2Ugb2YgdGhlIGBhcm12N2xgIGNvbnRhaW5lciBpbWFnZQogIGZvbGxvd2luZyBpdHMgdXBncmFkZSB0byB2Mi4yMi4wIC0tIGJ5IFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7NjQ4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvNjQ4KS4KCi0gSW5jcmVhc2VkIHRoZSBhbW91bnQgb2YgcmV0cmllcyBpbiB0ZXN0IHRvIGF2b2lkIHBvc3NpYmxlIHRpbWVvdXRzIG9uCiAgc2xvd2VyIHN5c3RlbXMgLS0gYnkgW0AmIzgyMDM7SmFrdWplXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vSmFrdWplKS4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqIFsjJiM4MjAzOzc3N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvaXNzdWVzLzc3NykuCgotIFRoZSBTU0hEIHN0YXJ0IHByb2JlIGNsaWVudCBjb21tYW5kIGlzIG5vdyBzaGllbGRlZCBmcm9tIGV4dGVybmFsCiAgZW52aXJvbm1uZW50IGFuZCB3aWxsIG5vIGxvbmdlciBhdHRlbXB0IHVzaW5nIGFuIFNTSCBhZ2VudCBvbiB0aGUKICBtYWNoaW5lIHdoZXJlIHRoZSB0ZXN0cyBhcmUgaW52b2x2ZWQsIG5vciB3aWxsIGl0IHVzZSBhbHRlcm5hdGl2ZQogIGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgLS0gYnkgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs3ODJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy83ODIpLgoKLSBOb3cgdGhhdCB0aGUgYG1hY29zLTEzYCBydW5uZXIgVk0gaW1hZ2UgaGFzIGJlZW4gZGVjb21taXNzaW9uZWQsIHRoZQogIENJIGFuZCBDRCBqb2JzIGhhdmUgYmVlbiBtaWdyYXRlZCB0byB1c2UgYG1hY29zLTE1LWludGVsYCAtLSBieQogIFtAJiM4MjAzO2tvbWFsZGVzYWkxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2tvbWFsZGVzYWkxMykuCgogIFRoaXMgaW5jbHVkZXMgZ2l2aW5nIHRoZSBtYWNPUyBidWlsZCBqb2IgbW9yZSB0aW1lIHRvIGNvbXBsZXRlIGFzIHRoZQogIG5ldyB2ZXJzaW9uIGlzIGEgbGl0dGxlIHNsb3dlci4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqIFsjJiM4MjAzOzc5MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvaXNzdWVzLzc5MSkuCgotIFVwZGF0ZWQgdGhlIHZlcnNpb24gb2YgYGxpYnNzaGAgdG8gdGhlIGxhdGVzdCByZWxlYXNlIHYwLjEyLjAgaW4gdGhlCiAgY2FjaGVkIGBtYW55bGludXhgIGJ1aWxkIGVudmlyb25tZW50IGNvbnRhaW5lciBpbWFnZXMgLS0gYnkgW0AmIzgyMDM7SmFrdWplXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vSmFrdWplKS4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqIFsjJiM4MjAzOzc5N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvaXNzdWVzLzc5NykuCgotIFVwZGF0ZWQgdGhlIGJ1bmRsZWQgdmVyc2lvbiBvZiBsaWJzc2ggdG8gMC4xMi4wIGluIHBsYXRmb3JtLXNwZWNpZmljCiAgd2hlZWxzIHB1Ymxpc2hlZCBvbiBQeVBJIC0tIGJ5IFtAJiM4MjAzO0pha3VqZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL0pha3VqZSkuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs3OThdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy83OTgpLgoKLSBBZGRlZCBGZWRvcmEgYW5kIHViaTkgaW1hZ2VzIHRvIENJL0NEIHBpcGVsaW5lIHRoYXQgYXJlIHJlbGV2YW50IGluCiAgMjAyNiBhbmQgcmVtb3ZlZCBFT0wgRmVkb3JhIHZlcnNpb25zIC0tIGJ5IFtAJiM4MjAzO0pha3VqZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL0pha3VqZSkuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MDFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDEpLgoKLSBUaGUgYHByZS1jb21taXRgIGZyYW1ld29yayBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgdG8gYmUgaW4KICBzeW5jIHdpdGggYGF3eC1wbHVnaW5zYCBhbmQgb3RoZXIgcHJvamVjdHMuIEl0IG5vdyBoYXMgYSBmZXcKICBhZGRpdGlvbmFsIGxpbnRlcnMgYW5kIGEgd29ya2Fyb3VuZCBmb3IgdGhlIG91dGRhdGVkIG9uZXMuCgogIFwtLSBieSBbQCYjODIwMzt3ZWJrbmphel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3dlYmtuamF6KQoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7ODAzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODAzKS4KCi0gVGhlIHN0YW5kYWxvbmUgbWVudGlvbnMgb2YgYHB5bGlic3NoYCBoYXZlIGJlZW4gcmVwbGFjZWQgd2l0aAogIGBhbnNpYmxlLXB5bGlic3NoYCBpbiBmaWxlIGxpY2Vuc2UgaGVhZGVycyAtLSBieSBbQCYjODIwMztKYWt1amVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9KYWt1amUpLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7ODA0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODA0KS4KCi0gVGhlIENJL0NEL3BhY2thZ2luZyBpbmZyYXN0cnVjdHVyZSBoYXMgYmVlbiB1cGRhdGVkIHRvIHByb2R1Y2UKICBgc291cmNlIGRpc3RyaWJ1dGlvbiA8U291cmNlIERpc3RyaWJ1dGlvbiAob3IgInNkaXN0Iik+YCBmaWxlIG5hbWVzCiAgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudCBvZiB1cGxvYWRpbmcgYXJ0aWZhY3RzIGNvbXBsaWFudCB3aXRoCiAgdGhlIGNvcmUgcGFja2FnaW5nIG1ldGFkYXRhIDIuMiBvciBuZXdlciB0byBQeVBJIGFuZCBUZXN0UHlQSSAtLSBieQogIFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICBBbG9uZyB3aXRoIHRoYXQsIHRoZSBpbmZyYXN0cnVjdHVyZSBoYXMgYmVlbiBhZGp1c3RlZCB0byBleHBlY3QKICBgNjI1YC1jb25mb3JtaW5nIG5hbWVzIGluIGl0cyBndWFyZCByYWlscyBjaGVja3MgLS0gd2l0aCBzb21lCiAgW0AmIzgyMDM7Y2lkcmJsb2Nrc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2NpZHJibG9ja3MpIGhlbHAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MDhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDgpLCBbIyYjODIwMzs4MDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDkpLgoKLSBgY2lidWlsZHdoZWVsYCBoYXMgYmVlbiB1cGdyYWRlZCB0byB2My4xLjQgLS0gYnkgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDkpLCBbIyYjODIwMzs4MjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MjApLCBbIyYjODIwMzs4MjFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MjEpLAogIFsjJiM4MjAzOzgyM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvaXNzdWVzLzgyMyksIFsjJiM4MjAzOzgyNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2Fuc2libGUvcHlsaWJzc2gvaXNzdWVzLzgyNCkuCgotIFRoZSBjb3ZlcmFnZSBtZWFzdXJlbWVudCBpbmZyYXN0cnVjdHVyZSBub3cgdXNlcyB0aGUgYGN0cmFjZWAKICBgbWVhc3VyZW1lbnQgY29yZSA8Y29uZmlnX3J1bl9jb3JlPmAgYWNyb3NzIGFsbCB0aGUgUHl0aG9uIHZlcnNpb25zCiAgY29uc2lzdGVudGx5IC0tIGJ5IFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7ODA5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODA5KSwgWyMmIzgyMDM7ODI1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODI1KS4KCi0gVGhlIENJIG5vdyB0ZXN0cyB3aGVlbHMgYnVpbHQgZm9yIFB5dGhvbiAzLjEzIGFuZCAzLjE0IC0tIGJ5CiAgW0AmIzgyMDM7Y2lkcmJsb2NrXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vY2lkcmJsb2NrKSBhbmQgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MDkpLCBbIyYjODIwMzs4MjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MjUpLgoKLSBUaGUgcHJlLWNhY2hlZCBgYXJtdjdsYCBpbWFnZXMgd2UgYnVpbGQgZm9yIHRoZSBwYWNrYWdpbmcKICBpbmZyYXN0cnVjdHVyZSBhcmUgbm93IGNvcnJlY3RseSB0YWdnZWQgd2l0aCB0aGUgYGxpbnV4L2FybS92N2AgT0NJCiAgcGxhdGZvcm0gdGFnIC0tIGJ5IFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7ODEwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODEwKS4KCi0gVGhlIGJ1aWxkIGJhY2tlbmQgY29uZmlndXJhdGlvbiBubyBsb25nZXIgc2V0cyB0aGUgZGVwcmVjYXRlZAogIGBiZGlzdF93aGVlbC51bml2ZXJzYWxgIHNldHRpbmcgLS0gYnkgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogIFRoaXMgZG9lcyBub3QgaW5mbHVlbmNlIHRoZSBwYWNrYWdpbmcgYXJ0aWZhY3RzIGluIGFueSB3YXkuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MTEpLgoKLSBUaGUgQ0kvQ0QgaW5mcmFzdHJ1Y3R1cmUgaGFzIGJlZW4gc2V0IHVwIHRvIGF2b2lkIHBhcnRzIG9mIHRoZQogIHRlbXBsYXRlIGluamVjdGlvbiBwcm9ibGVtIGluIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93IGRlZmluaXRpb25zLiBUaGUKICBzaGVsbCBlbnRyeSBwb2ludCBoYXMgYmVlbiBzZXQgdG8gYmFzaCBmb3IgYW55IHNjcmlwdHMgd2l0aCBleHRyYQogIHN0cmljdG5lc3MgZW5hYmxlZC4KCiAgXC0tIGJ5IFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MTYpLgoKLSBUaGUgQ0kvQ0QgYW5kIHBhY2thZ2luZyBpbmZyYXN0cnVjdHVyZSBub3cgc291cmNlcyB0aGUgUHlQSSBwcm9qZWN0CiAgbmFtZSBmcm9tIGBzZXR1cC5jZmdgIHJhdGhlciB0aGFuIGhhcmRjb2RpbmcgaXQgLS0gYnkgW0AmIzgyMDM7d2Via25qYXpdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS93ZWJrbmpheikuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KiBbIyYjODIwMzs4MTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hbnNpYmxlL3B5bGlic3NoL2lzc3Vlcy84MTcpLgoKLSBUaGUgZG9jdW1lbnRhdGlvbiBidWlsZGluZyBpbmZyYXN0cnVjdHVyZSBub3cgaW50ZWdyYXRlcwogIEdpdEh1Yi1yZWxhdGVkIFJTVCByb2xlcyB1c2luZyB0aGUgYHNwaGlueC1pc3N1ZXNgIGV4dGVuc2lvbiAtLSBieQogIFtAJiM4MjAzO3dlYmtuamF6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vd2Via25qYXopLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOiogWyMmIzgyMDM7ODE4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9pc3N1ZXMvODE4KS4KCioqKgoKPC9kZXRhaWxzPgoKLS0tCgojIyMgQ29uZmlndXJhdGlvbgoK8J+ThSAqKlNjaGVkdWxlKio6IEJyYW5jaCBjcmVhdGlvbiAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKSwgQXV0b21lcmdlIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpLgoK8J+apiAqKkF1dG9tZXJnZSoqOiBEaXNhYmxlZCBieSBjb25maWcuIFBsZWFzZSBtZXJnZSB0aGlzIG1hbnVhbGx5IG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQuCgrimbsgKipSZWJhc2luZyoqOiBXaGVuZXZlciBQUiBiZWNvbWVzIGNvbmZsaWN0ZWQsIG9yIHlvdSB0aWNrIHRoZSByZWJhc2UvcmV0cnkgY2hlY2tib3guCgrwn5SVICoqSWdub3JlKio6IENsb3NlIHRoaXMgUFIgYW5kIHlvdSB3b24ndCBiZSByZW1pbmRlZCBhYm91dCB0aGlzIHVwZGF0ZSBhZ2Fpbi4KCi0tLQoKIC0gWyBdIDwhLS0gcmViYXNlLWNoZWNrIC0tPklmIHlvdSB3YW50IHRvIHJlYmFzZS9yZXRyeSB0aGlzIFBSLCBjaGVjayB0aGlzIGJveAoKLS0tCgpUaGlzIFBSIHdhcyBnZW5lcmF0ZWQgYnkgW01lbmQgUmVub3ZhdGVdKGh0dHBzOi8vbWVuZC5pby9yZW5vdmF0ZS8pLiBWaWV3IHRoZSBbcmVwb3NpdG9yeSBqb2IgbG9nXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2dpdGh1Yi9vc2lzbS9jb250YWluZXItaW1hZ2Utb3Npc20tYW5zaWJsZSkuCjwhLS1yZW5vdmF0ZS1kZWJ1ZzpleUpqY21WaGRHVmtTVzVXWlhJaU9pSTBNeTQyTmk0MElpd2lkWEJrWVhSbFpFbHVWbVZ5SWpvaU5ETXVOall1TkNJc0luUmhjbWRsZEVKeVlXNWphQ0k2SW0xaGFXNGlMQ0pzWVdKbGJITWlPbHNpY21WdWIzWmhkR1VpWFgwPS0tPgo=
      patchset: 655d90450c8e39af3b03e9748c3eb52bd3aaf13c
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 4f450aa36c28b035ce97359a888edbd7599eaf31
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: a01eed06dffe368c1d01819193bfadccb137414d
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 4f450aa36c28b035ce97359a888edbd7599eaf31
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/python-black/run.yml
          roles:
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_0/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_0/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_2/openinfra-zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/container-image-osism-ansible
        name: osism/container-image-osism-ansible
        short_name: container-image-osism-ansible
        src_dir: src/github.com/osism/container-image-osism-ansible
      projects:
        github.com/osism/container-image-osism-ansible:
          canonical_hostname: github.com
          canonical_name: github.com/osism/container-image-osism-ansible
          checkout: main
          checkout_description: zuul branch
          commit: 641dc65102d0d02f571db371f8a141a1f2245ba7
          name: osism/container-image-osism-ansible
          required: false
          short_name: container-image-osism-ansible
          src_dir: src/github.com/osism/container-image-osism-ansible
      ref: refs/pull/726/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
