Skip to content

ingest: config readers may follow a PR symlink out of the source root #732

Open

Description

@zaebee

Raised in the #731 re-review and not confirmed.

cgis ingest skips source files that resolve outside the root (pipeline/__init__.py:319). The project readers may still follow a symlink out of the root:

  • tsconfig and package.json under languages/typescript/*;
  • go.mod in languages/go/project.py.

Risk is low. In guardian.yml the ingest step holds no secrets, and the target has to parse as JSON or go.mod. The class is the same, though: data the PR controls reads somewhere else.

Done when: each project reader either uses the same containment (resolve().is_relative_to(root)) or is shown not to follow links, and a test links a config file outside the root.

🤖 Generated with Claude Code

Activity

  1. added
    tailLoose end: something left to check or finish later
    on Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    tailLoose end: something left to check or finish later

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions