Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Docs MCP URL normalization retains query strings and fragments

未关闭 适合新手
#1,618 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
73/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
typescript
领域
tooling

调研方向

阅读 docs MCP fetcher 中的 normalizeDocPath 和 fetchDocPage,然后参考现有的 mock fetch/cache 测试设置。覆盖完整的 docs URL 以及带查询参数或片段的相对路径,检查发出的 pathname 和规范的引用 URL,同时保留受支持的路径和精确的 origin 边界。这些用例通过,且 HTML 响应不再因格式错误的 .md 请求而被缓存为 Markdown 时,即为完成。

由索引模型根据 Issue 内容生成。

描述

bug MCP

Full docs URLs containing a query string or fragment can bypass the Markdown export. normalizeDocPath preserves ? and #, then fetchDocPage appends .md to the whole string.

For example, https://docs.sentry.io/platforms/javascript/#tracing produces a request with pathname /platforms/javascript/ and fragment #tracing.md. A query string similarly receives the suffix instead of the pathname. The fetcher accepts a successful HTML response and can cache it as Markdown for one hour.

Verified against the actual fetcher with mocked fetch/cache and no network calls. This is inherited from the original Worker, rather than introduced by the URL prefix-boundary correction in the port PR #1597.

Follow-up scope:

  • Strip query strings and fragments before suffix/trailing-slash normalization and use the resulting pathname for the .md request.
  • Cover full docs URLs and relative paths with query strings/fragments, including the outbound pathname and canonical citation URL.
  • Preserve the exact-origin boundary and existing supported path forms.

Keep this behavior change outside the migration PR.

主要语言
TypeScript
星标
938
派生
166
平均合并
1 天 5 小时
30 天内合并 PR
171

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

getsentry/toolkit 的其他 Issue

查看 getsentry/toolkit 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。