Fix failing "Check markdown files for broken links" CI job#367
Closed
Copilot wants to merge 3 commits into
Closed
Conversation
…nt patterns for internal links, and fix specific broken links
Copilot
AI
changed the title
[WIP] Fix failing GitHub Actions job for broken links
Fix failing "Check markdown files for broken links" CI job
Jun 12, 2026
manuignatius
approved these changes
Jun 12, 2026
manuignatius
approved these changes
Jun 12, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR addresses failures in the “Check markdown files for broken links” workflow by updating the markdown-link-check configuration, adjusting the workflow to generate a derived config at runtime, and fixing/removing several problematic links in blog posts.
Changes:
- Expanded markdown-link-check config to tolerate bot-blocking status codes and ignore known-unreachable URLs.
- Updated the broken-links GitHub Actions workflow to generate a temporary config that includes internal-link replacement patterns.
- Edited several posts to remove or update dead/invalid links and a front-matter
sourceURL.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/markdown.links.config.json |
Adjusts link-check behavior via ignore patterns and accepted “alive” HTTP status codes. |
.github/workflows/broken-links.yml |
Generates a derived link-check config (via jq) and points the action at it. |
_posts/2024-03-01-Product-Launch-S40H-series-modems.md |
Adjusts an internal product link to avoid link-check failure. |
_posts/2021-04-23-New-SwanViz-UI-developed-together-with-CSSSR.md |
Removes a dead external link to a removed page. |
_posts/2018-09-28-UnetStack-Newsletter.md |
Replaces a deleted notebook link with a stable README link. |
_posts/2018-07-17-SWANs-monitor-reservoirs-water-quality.md |
Updates front-matter source URL away from a 404. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
notthetup
approved these changes
Jun 12, 2026
Contributor
|
Didn't merge as some of these changes will go away in the next iteration of the website, so I will apply on top of that. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The broken links CI job was failing due to four distinct categories: internal Jekyll routes failing as absolute filesystem paths, bot-blocking sites returning 403/429/999, a socket hang-up on hydro-surv.com, and genuinely removed external pages (404s).
Config changes (
markdown.links.config.json)aliveStatusCodes: [200, 206, 301, 302, 303, 304, 403, 429, 999]— treats bot-blocking responses from sites like LinkedIn, e27.co, economist.com as aliveignorePatternsfor permanently gone/unreachable URLs:hydro-surv.com(socket hang-up),wired.co.uk/magazine/archive/(old archive structure),podcasts.apple.com(removed podcast),subnero.com/solutions/swan.html(page removed from site),github.com/org-arl/unetsockets/blob/(notebook deleted from repo)Workflow change (
broken-links.yml)Added a
jqstep before the checker that augments the config withreplacementPatterns, mapping root-relative Jekyll routes to local filesystem paths so the checker can verify them without building the site:Blog post fixes
2024-03-01-Product-Launch-S40H-series-modems.md: Corrected internal link/products/wnc/gen4x/accessories/multi-receiver.html→multi-receiver(file is.md;.htmlnever existed on the filesystem)2018-09-28-UnetStack-Newsletter.md: Replaced deleted Jupyter notebook link with the Python package README2021-04-23-New-SwanViz-UI-developed-together-with-CSSSR.md: Removed dead anchor to the removed SWAN solutions page2018-07-17-SWANs-monitor-reservoirs-water-quality.md: Updatedsourcefront-matter field from a 404 Straits Times cartoons URL to the base domain