Skip to content

fix: validate parsed PR URLs before extraction#577

Merged
matt2e merged 1 commit intomainfrom
invalid-pr-url
Apr 2, 2026
Merged

fix: validate parsed PR URLs before extraction#577
matt2e merged 1 commit intomainfrom
invalid-pr-url

Conversation

@matt2e
Copy link
Copy Markdown
Contributor

@matt2e matt2e commented Apr 2, 2026

Summary

  • validate markers before accepting them as GitHub pull request links
  • normalize extracted PR URLs to a canonical form and strip surrounding markdown punctuation
  • add regression tests for placeholder markers and fallback URL extraction

@matt2e matt2e requested review from baxen and wesbillman as code owners April 2, 2026 05:00
@matt2e matt2e merged commit 9af5f82 into main Apr 2, 2026
4 checks passed
@matt2e matt2e deleted the invalid-pr-url branch April 2, 2026 05:03
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a907e01daa

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

function normalizePrUrl(candidate: string): string | null {
const trimmed = candidate.trim().replace(/^[<`'"\[(]+|[>`'"\]),.?!;:]+$/g, '');
const match = trimmed.match(
/^https:\/\/github\.com\/([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)\/pull\/(\d+)(?:[/?#].*)?$/
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Parse GitHub host case-insensitively in PR URL normalization

normalizePrUrl currently accepts only lowercase https://github.com/..., so valid URLs like https://GitHub.com/org/repo/pull/123 are rejected and extractPrUrl can report no PR URL (or fall back to an unrelated one). Because hostnames are case-insensitive and the prior logic accepted these marker URLs, this introduces a regression in PR detection for some assistant/tool outputs.

Useful? React with 👍 / 👎.

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