Skip to content

Parse pull request snippet refs - #1297

Closed
danielporterda wants to merge 1 commit into
snippet-parse-immutable-sourcefrom
snippet-parse-pull-request-source
Closed

Parse pull request snippet refs#1297
danielporterda wants to merge 1 commit into
snippet-parse-immutable-sourcefrom
snippet-parse-pull-request-source

Conversation

@danielporterda

@danielporterda danielporterda commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

What changed

Adds a pure parser for candidate snippet sources expressed as canonical GitHub pull-request URLs.

It accepts only https://github.com/<owner>/<repo>/pull/<positive-number> and returns repository identity plus the PR number as a typed reference. Alternate hosts, zero or non-numeric IDs, trailing slashes, subpages, and query strings do not parse.

This PR does not parse the candidate file path, require an enclosing <IfVersion>, or compare the candidate with a condition. Those are separate semantic layers.

Why

Candidate references have a different lifecycle and shape from immutable blob references, so their syntax should be independently reviewable.

Validation

  • python -m pytest tests/test_pull_request_snippet_source_parser.py tests/test_immutable_snippet_source_parser.py (14 passed)
  • python -m ruff check scripts/snippets/model.py scripts/snippets/references.py tests/test_pull_request_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