github Python analyzed dc8c4f3

featurecreep-cron/roustabout

v0.15.0
github

Generate structured markdown documentation of a Docker environment

maintainer
featurecreep-cron
licence
MIT
first seen
2026-06-27
last seen
2026-09-17
releases · 30d
4
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 18 tools
transport stdio · http counts 18 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • docker_audit
  • docker_capabilities
  • docker_container
  • docker_deep_health
  • docker_dr_plan
  • docker_generate
  • docker_health
  • docker_logs
  • docker_net_check
  • docker_network_inspect
  • docker_ports
  • docker_probe_connectivity
  • docker_probe_dns
  • docker_recreate
  • docker_restart
  • docker_snapshot
  • docker_start
  • docker_stop
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit dc8c4f3 · analyzer v33 · 3h ago

danger signals4

code evidence v0.15.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 104

filesystem 21

  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/api/routes.py :890 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/cli/main.py :12 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/compose_gitops.py :17 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/config.py :16 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/diff.py :11 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/digest_tracker.py :15 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/dockstarter_env.py :11 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/env_splitter.py :12 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/file_ops.py :12 import shutil
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/gateway.py :434 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/integrations/manager.py :45 def open(self) -> bool:
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/lockdown.py :11 from pathlib import Path
show 9 more
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/notifications.py :158 _no_redirect_opener.open(req, timeout=10) # noqa: S310
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/state.py :15 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/state_db.py :20 from pathlib import Path
  • fs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/supply_chain.py :16 import shutil
  • fs (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_file_ops.py :32 from pathlib import Path
  • fs (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_import_constraints.py :20 from pathlib import Path
  • fs (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_lockdown.py :8 from pathlib import Path
  • fs (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_session.py :11 from pathlib import Path
  • fs (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_state_db.py :12 from pathlib import Path

shell / exec 2

  • shell featurecreep-cron-roustabout-dc8c4f3/src/roustabout/compose_gitops.py :14 import subprocess
  • shell (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_compose_gitops.py :223 import subprocess

network 15

  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/cli/http.py :1 """HTTPBackend — calls roustabout REST API via httpx.
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/cli/main.py :658 import httpx
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/deep_health.py :14 import socket
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/exec.py :15 import requests.exceptions
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/integrations/grafana.py :7 import httpx
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/integrations/traefik.py :8 import httpx
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/integrations/uptime_kuma.py :7 import httpx
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :14 import httpx
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/notifications.py :13 import urllib.request
  • net featurecreep-cron-roustabout-dc8c4f3/src/roustabout/supply_chain.py :17 import urllib.error
  • net (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_exec.py :400 import requests.exceptions
  • net (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_integration_remote.py :4 Uses httpx.ASGITransport to wire the proxy directly to the FastAPI app
show 3 more
  • net (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_integrations.py :53 @patch("roustabout.integrations.traefik.httpx.get")
  • net (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_mcp_proxy.py :3 All tests mock httpx.AsyncClient responses. No Docker or server required.
  • net (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_redactor.py :141 from urllib.parse import urlsplit

secrets 4

  • secrets featurecreep-cron-roustabout-dc8c4f3/src/roustabout/api/auth.py :46 secret = os.environ.get("ROUSTABOUT_API_KEY", "")
  • secrets featurecreep-cron-roustabout-dc8c4f3/src/roustabout/cli/backend.py :95 api_key = os.environ.get("ROUSTABOUT_API_KEY")
  • secrets featurecreep-cron-roustabout-dc8c4f3/src/roustabout/cli/main.py :106 os.environ["ROUSTABOUT_API_KEY"] = api_key
  • secrets featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :183 api_key = os.environ.get("ROUSTABOUT_API_KEY", "")

database 3

  • db featurecreep-cron-roustabout-dc8c4f3/src/roustabout/state_db.py :15 import sqlite3
  • db (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_digest_tracker.py :152 import sqlite3
  • db (weak) featurecreep-cron-roustabout-dc8c4f3/tests/test_import_constraints.py :318 """Only state_db.py may import sqlite3."""

tool registrations 18

  • docker_snapshot featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :71
  • docker_audit featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :76
  • docker_container featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :81
  • docker_health featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :86
  • docker_logs featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :91
  • docker_dr_plan featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :96
  • docker_capabilities featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :101
  • docker_net_check featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :108
  • docker_network_inspect featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :113
  • docker_ports featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :118
  • docker_probe_dns featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :125
  • docker_probe_connectivity featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :130
show 6 more
  • docker_deep_health featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :141
  • docker_generate featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :150
  • docker_start featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :157
  • docker_stop featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :162
  • docker_restart featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :167
  • docker_recreate featurecreep-cron-roustabout-dc8c4f3/src/roustabout/mcp_proxy/server.py :172

declared dependencies 15

  • mcp@==2.2.0
  • click@==8.5.0
  • ruamel.yaml@==0.19.1
  • secretscreen@==0.6.0
  • httpx@==0.28.1
  • structlog@==26.1.0
  • docker@==7.2.0
  • fastapi@==0.141.1
  • uvicorn@==0.52.4
  • pytest@==9.1.1
  • pytest-asyncio@==1.4.0
  • pytest-mock@==3.15.1
show 3 more
  • pytest-cov@==7.1.0
  • ruff@==0.16.7
  • mypy@==2.3.1

perm:untrusted 1

  • untrusted featurecreep-cron-roustabout-dc8c4f3/src/roustabout/integrations/traefik.py :48 routers = httpx.get(f"{self.url}/api/http/routers", timeout=5).json()