Ctrl K
ComunidadGuías…

tests/test_audit_workflow_security.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
from pathlib import Path

from scripts.audit_workflow_security import audit


def _workflow(root: Path, text: str):
    directory = root / ".github" / "workflows"
    directory.mkdir(parents=True)
    (directory / "ci.yml").write_text(text, encoding="utf-8")


def test_workflow_security_accepts_read_only_versioned_actions(tmp_path: Path):
    _workflow(tmp_path, "permissions:\n  contents: read\njobs:\n  test:\n    steps:\n      - uses: actions/checkout@v4\n")
    assert audit(tmp_path) == []


def test_workflow_security_rejects_moving_refs_and_missing_permissions(tmp_path: Path):
    _workflow(tmp_path, "jobs:\n  test:\n    steps:\n      - uses: actions/checkout@main\n")
    failures = audit(tmp_path)
    assert any("permissions contents: read" in item for item in failures)
    assert any("stable version" in item for item in failures)