fix(lychee): exclude auth-walled URLs - #135
Conversation
|
Claude finished @kyle-sexton's task in 0s —— View job I'll analyze this and get back to you. |
|
Claude finished @kyle-sexton's task in 2m 53s —— View job PR Review
Verdict: Looks good with two minor observations. The two-commit shape is clean: commit 1 added the Regex correctnessAll four path-scoped patterns use the right boundary: This correctly matches the bare path, an optional trailing slash, and an optional query/fragment — while rejecting longer paths or slugs that happen to share the prefix. Verified mentally for each of the four patterns. The '^https?://raw\.githubusercontent\.com/melodic-software/(claude-code-plugins|dotfiles|github-iac|medley|provisioning|standards)/',is symmetrical with the existing Test designThe structural Minor observations1. Raw-content dump assertion only covers one of the six repos ( The 2. README omits the pre-existing wide-host exclusions ( The README accurately describes the path-scoped exceptions (medium/miro/isdown/npmjs) and the private-repo inventory, but Neither observation blocks the merge. The |
|
Claude finished @kyle-sexton's task in 1m 57s —— View job PR Review
Verdict: Ready to merge. The regex patterns are correctly scoped, the test coverage is thorough, and the documentation is accurate. lychee.tomlAll four path-scoped patterns use the correct boundary: This matches the bare path and allows an optional trailing slash and query/fragment, while correctly rejecting any longer path or slug that shares the prefix. Spot-checked against the medium, miro, isdown, and npmjs patterns — all correct. One non-obvious case worth verifying: the scoped npm package name The '^https?://raw\.githubusercontent\.com/melodic-software/(claude-code-plugins|dotfiles|github-iac|medley|provisioning|standards)/',is symmetrical with the existing lychee.test.shThe Minor observations (non-blocking)1. Raw-content dump assertion covers only one of the six repos (line 41) The 2. README does not document the pre-existing wide-host social exclusions (README.md lines 14–23)
Neither observation requires action before merging. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 97cd1037b3
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| Other paths on those public hosts remain subject to checking: | ||
|
|
||
| - <https://medium.com/example> | ||
| - <https://help.miro.com/hc/en-us/articles/example> |
There was a problem hiding this comment.
Keep placeholder boundary links out of online checks
The scheduled/on-demand online link check scans ./**/*.md and only excludes components/[^/]+/fixtures/bad in .github/workflows/link-check.yml, so this new good fixture is still crawled. This placeholder Miro article is intentionally left non-excluded, but it is not a valid article URL, so the advisory job will report a broken external link whenever it runs; use a real same-host URL or exclude this boundary-only fixture from the online glob.
Useful? React with 👍 / 👎.
Closes #18 Depends on melodic-software/standards#135 and its generated standards-sync PR. ## Summary - ignore Claude Code runtime-variable links that are valid only after plugin installation expands the variable - ignore fictional release URLs embedded in ai-briefing eval fixtures - keep real local links and external dependency URLs checked ## Why The original `--accept-timeouts` compatibility failure is already fixed and the reusable workflow pin on `main` contains Lychee 0.24.2. Re-running the current full Markdown corpus exposed two consumer-owned false-positive classes: runtime-substituted plugin paths and fictional fixture URLs. The remaining shared exclusions belong to the standards-managed `lychee.toml`: exact private raw-content inventory plus five exact public bot-blocked paths. They are implemented and boundary-tested upstream in melodic-software/standards#135 rather than copied downstream; unrelated URLs on those public hosts remain checked. Lychee's current official documentation distinguishes URL regex exclusions (including `.lycheeignore`) from source-path exclusions: - https://lychee.cli.rs/recipes/excluding-links/ - https://lychee.cli.rs/recipes/excluding-paths/ - https://lychee.cli.rs/guides/config/#excluding-links ## Validation Using this branch's `.lycheeignore` with the proposed standards config: - online: 1,655 links scanned, 0 errors - offline: 1,655 links scanned, 0 errors - `git diff --check` The scheduled hosted lane remains intentionally skipped while `CI_RUNNER_POLICY=self-hosted-only`; no policy change is included.
Refs melodic-software/claude-code-plugins#18
Summary
raw.githubusercontent.comcontent URLsWhy
The downstream
claude-code-pluginsonline lane reaches extraction successfully with Lychee 0.24.2, but current content exposes expected auth-boundary failures: five public paths that reject automated probes and raw-content URLs for private repositories. The shared Lychee ruleset is standards-managed, so the fix belongs here and will return through the governed sync workflow.Lychee's current official documentation confirms that
excludeentries are URL regular expressions and demonstrates exact-URL exclusions:GitHub's repository contents documentation notes that private-repository download URLs are authenticated and temporary:
Validation
bash components/lychee/lychee.test.sh: 27 passed