Harden documentation link validation to prevent false CI passes#452
Harden documentation link validation to prevent false CI passes#452imbajin merged 12 commits intoapache:masterfrom
Conversation
- Add support for relative link validation - Check absolute root paths (e.g., /language/*) - Skip asset files (.png, .xml, .css, etc.) - Strip code blocks from validation - Add case-insensitive protocol detection This catches ~54 previously undetected broken links.
|
@imbajin This PR tightens the link validation so CI fails when unresolved internal links exist. Earlier some broken links were not being detected because the validation coverage was limited which allowed CI to pass. |
|
I improved the link validator by adding canonical path resolution, content directory boundary checks, and accurate file line reporting |
|
If the total number of changed lines isn't too large, I'd suggest fixing them together in this PR. Otherwise, (Required) CI failures might be troublesome & blocking the merge, and these fixes should have minimal side effects. |
ill start working on fixing the links |
|
sorry for committing the batch ill fix the issues and continue the url fixes |
|
Link validation checks are passing now. Fixed broken relative links, corrected SUMMARY navigation for Hugo routing, and removed an invalid reference to a nonexistent file Remaining messages are expected Hugo runtime URL warnings only. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 17 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Note: | ||
|
|
||
| > You can get the asynchronous job status by `GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/tasks/${task_id}` (the task_id here should be 1). See More [AsyncJob RESTfull API](../task) | ||
| > You can get the asynchronous job status by `GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/tasks/${task_id}` (the task_id here should be 1). See More [AsyncJob RESTfull API](./task) |
There was a problem hiding this comment.
Typo in link text: “RESTfull” should be “RESTful”.
| Note: | ||
|
|
||
| > You can get the asynchronous job status by `GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/tasks/${task_id}` (the task_id here should be 2). See More [AsyncJob RESTfull API](../task) | ||
| > You can get the asynchronous job status by `GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/tasks/${task_id}` (the task_id here should be 2). See More [AsyncJob RESTfull API](./task) |
There was a problem hiding this comment.
Typo in link text: “RESTfull” should be “RESTful”.
| Note: | ||
|
|
||
| > You can get the asynchronous job status by `GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/tasks/${task_id}` (the task_id here should be 3). See More [AsyncJob RESTfull API](../task) No newline at end of file | ||
| > You can get the asynchronous job status by `GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/tasks/${task_id}` (the task_id here should be 3). See More [AsyncJob RESTfull API](./task) No newline at end of file |
There was a problem hiding this comment.
Typo in link text: “RESTfull” should be “RESTful”.
|
Thanks for the review. I will debug the issues and push a proper fix after my classes. |
|
All validator issues raised in the review thread have been addressed. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 19 out of 20 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
imbajin
left a comment
There was a problem hiding this comment.
Thanks a lot for your contribution
Purpose of the PR
What this PR does
This PR hardens the documentation link validation used in CI.
Previously, CI could pass even when documentation contained broken internal links due to limited link detection and path resolution. This change expands validation coverage and ensures CI fails when unresolved internal links are present.
Key changes
/docs/* → content/en/docs/*/cn/docs/* → content/cn/docs/*Notes
This change surfaces existing broken documentation links that CI was previously not detecting.
Those issues can be addressed incrementally in follow-up PRs.