Skip to content

Parse immutable snippet source refs - #1296

Closed
danielporterda wants to merge 1 commit into
snippet-load-repository-registryfrom
snippet-parse-immutable-source
Closed

Parse immutable snippet source refs#1296
danielporterda wants to merge 1 commit into
snippet-load-repository-registryfrom
snippet-parse-immutable-source

Conversation

@danielporterda

@danielporterda danielporterda commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

What changed

Adds a pure parser for immutable snippet sources expressed as complete GitHub blob URLs.

It accepts only https://github.com/<owner>/<repo>/blob/<40-character-commit>/<path>, normalizes the commit hash to lowercase, and returns repository, commit, and path as a typed reference. Branch names, abbreviated hashes, missing paths, query strings, fragments, and non-GitHub hosts do not parse.

This PR does not parse candidate PR refs or local refs, check repository membership, or validate whether the parsed path is safe.

Why

Each supported source-reference form should be independently reviewable before they are combined into the <Snippet> semantic validator.

Validation

  • python -m pytest tests/test_immutable_snippet_source_parser.py (7 passed)
  • python -m ruff check scripts/snippets/model.py scripts/snippets/references.py tests/test_immutable_snippet_source_parser.py
  • python -m mypy scripts/snippets/model.py scripts/snippets/references.py
  • git diff --check

Signed-off-by: danielporterda <daniel.porter@digitalasset.com>
@danielporterda

Copy link
Copy Markdown
Contributor Author

Closing this draft because the inline release-aware snippet stack is being retired. The branch remains available if its implementation is needed later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant