Skip to main content

untaped-ansible

Install it as part of untaped: uv tool install 'untaped[ansible]' or pip install 'untaped[ansible]'. To add it to an existing install, see Getting started.

untaped ansible answers questions about how Ansible roles and projects depend on each other through their requirements files: what a role depends on, what depends on it, which projects reach a repository, and the whole graph. It is for anyone about to change a shared role.

Downstream works from live GitHub reads. Upstream needs a source: a saved set of orgs, teams or repos whose dependency files untaped scans and caches.

Set up

untaped ansible reads GitHub through the github settings, so set a GitHub token first. Then save a source, refresh it once, and make it the default so you can leave out --source:

untaped auth login github
untaped ansible source set platform --org acme --team acme/platform
untaped ansible source refresh platform
untaped config set ansible.default_source platform

Private repos also need Git access over HTTPS with that token, or over SSH with github.git_protocol: ssh. The repos live in the git plugin's repo store (git.store_dir). Scanned files, the index location and refresh tuning are in the configuration reference.

Show what a role depends on

untaped ansible deps acme/base-role
untaped ansible deps acme/base-role --ref v2.1.0 --depth 2
untaped ansible deps ./roles/web --target-repo acme/web --format json

One row per repo the role reaches, with the file that declares it and the shortest path. With a source selected, deps reads its cache; --live reads GitHub instead.

Find what depends on a role

untaped ansible impact acme/base-role
untaped ansible impact acme/base-role --org acme
untaped ansible impact acme/base-role --cached

impact lists the repos in the source that depend on the role, at any ref, from cached data, and marks where the walk stopped. A source older than ansible.caches.index.max_age_seconds (one day) is refreshed first; --cached reads only what is cached. Inline selectors such as --org answer a one-off question without saving a source.

Find which dependents use a variable

untaped ansible impact acme/base-role --uses base_port

One row per place a dependent defines, sets or reads base_port, with the file, line and YAML key path, read at the commit the source indexed. A refresh analyses each repo's YAML files and templates once per file version, beside its dependency files.

Find which roots contain a repository

untaped ansible find acme/base-role --root acme/site@main --root acme/app
untaped awx job-templates list --organization Default --with-scm --format pipe \
  | untaped ansible find acme/base-role --stdin --format pipe

One row per ref of the repository that each root reaches, with the shortest path. Rows carry the input record's id and name, so the results join back to AWX job templates or any other piped records.

Draw the graph

untaped ansible graph acme/base-role
untaped ansible graph acme/base-role --direction down --format mermaid --out deps.mmd
untaped ansible graph acme/base-role --direction up --depth 2 --format json

A tree of what depends on the target and what it depends on, a Mermaid diagram, or a JSON graph. Without a source it shows only the downstream half.

Manage sources

untaped ansible source patch platform --add-repo acme/legacy-app
untaped ansible source-alias set acme.base acme/ansible-role-base
untaped ansible source refresh platform
untaped ansible source remove platform --dry-run

Patch a source rather than replacing it, and map Galaxy role names to their repos with source aliases. A patch drops the source's cached data, and an alias applies only at the next scan, so run source refresh after either. source remove and source-alias remove preview and ask first. Removing a source also frees the repos only it used from the repo store; a repo another saved source or plugin still uses stays.

Reference

untaped agents ansible lists every command with its options, the settings, and the guides on where an answer's data comes from and how a walk resolves refs; the untaped you run generates it.

untaped skills install ansible --target claude (or another agent) points your agent at it.

Metadata

Release files for untaped-ansible 11.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for untaped-ansible 11.1.0
File Size Uploaded Provenance Actions
untaped_ansible-11.1.0.tar.gz 98.4 kB With provenance Details for untaped_ansible-11.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for untaped-ansible 11.1.0
File Interpreter ABI Platform Actions
untaped_ansible-11.1.0-py3-none-any.whl Python 3 none any Details for untaped_ansible-11.1.0-py3-none-any.whl

Total release size: 220.2 kB

Release files / untaped_ansible-11.1.0.tar.gz

Download URL untaped_ansible-11.1.0.tar.gz
Size 98.4 kB
Tags Source
SHA-256 checksum
How to use checksums
45015140954fc3a73e117df833ffdfe38cc2fffb6478e544be6b79766dff05ae
BLAKE2b-256 checksum
How to use checksums
4925388f54768d4c36302135cd1f0a34216ca6292145e3b6fbd61afe4193137a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Release files / untaped_ansible-11.1.0-py3-none-any.whl

Download URL untaped_ansible-11.1.0-py3-none-any.whl
Size 121.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d0a8d000adbeeaf9c40cc9efc98942ae938e367bb713f6da159fc384d5fc1030
BLAKE2b-256 checksum
How to use checksums
8ebe778c4fbfc9f266e7443ea33c9fd43575eed7f848b579aaa013160f57b04e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

Security for untaped-ansible 11.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for untaped_ansible-11.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page