Link-check CI + wiki redirect notice#156
Conversation
Runs on every push to main, every PR that touches docs/, on a Monday 00:00 UTC schedule (catches external link rot without spamming), and on workflow_dispatch. Configuration: - --cache + .lycheecache restored from a previous run; cache key includes the SHA so each commit picks up its own state, with the run-key fallback shipping the previous cache as warm-start. - --max-cache-age 1d so external URL responses don't pin a stale OK across release windows. - --accept 200,206,429 — lychee defaults to 200 only. 206 (partial content) is what some CDNs return for HEAD requests; 429 (rate limited) is treated as 'host is up, we just got throttled' rather than 'link is broken' — the right call for scheduled runs. - GITHUB_TOKEN passed in so GitHub URL checks use authenticated rate limits (else they hit the 60/hour unauthenticated cap). fail: true means broken links fail the workflow — contributors catch their own dead URLs at PR time. Third PR against #147.
|
Warning Review limit reached
More reviews will be available in 24 minutes and 37 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- arriba: https://arriba.readthedocs.io/en/latest/ -> https://github.com/suhrig/arriba. Arriba's RTD page is 404; the GitHub README is now the canonical docs entry-point. - mambaforge install: https://mamba.readthedocs.io/en/latest/installation.html -> https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html. The page was reorganized into the installation/ sub-section. - IEDB: https://www.immuneepitope.org/ -> https://www.iedb.org/. The project rebranded to its short domain; the old hostname times out rather than redirecting. All three were inherited from the wiki and would have been wrong on the new docs site from day one. The lychee workflow added in this PR caught them on first run.
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/workflows/links.yml (1)
31-31: ⚡ Quick winDisable checkout credential persistence for this job.
Line 31 currently keeps credentials in local git config by default; this job only reads code and doesn’t push, so this can be tightened.
🔧 Suggested patch
- - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + with: + persist-credentials: false🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/links.yml at line 31, The actions/checkout@v4 action on line 31 currently persists credentials in the local git config by default, but since this workflow job only reads code and never pushes changes, credential persistence should be disabled for tighter security. Add a with section to the actions/checkout@v4 action with persist-credentials set to false to prevent credentials from being stored in the local git config after the checkout completes.Source: Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/index.md`:
- Line 11: In the documentation file at line 11, correct two issues in the text:
replace the project name `Scanneo2` with `ScanNeo2` (adjusting the
capitalization of N and e), and change the phrase "mamba directory" to "mamba
environment" to accurately describe what the environment.yml file creates. These
corrections improve consistency with the proper project naming convention and
clarify the installation process documentation.
---
Nitpick comments:
In @.github/workflows/links.yml:
- Line 31: The actions/checkout@v4 action on line 31 currently persists
credentials in the local git config by default, but since this workflow job only
reads code and never pushes changes, credential persistence should be disabled
for tighter security. Add a with section to the actions/checkout@v4 action with
persist-credentials set to false to prevent credentials from being stored in the
local git config after the checkout completes.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: e0cb7b51-8307-4603-9959-8c58a24cb5c5
📒 Files selected for processing (4)
.github/workflows/links.ymldocs/configuration.mddocs/index.mddocs/resources.md
| ## Install & Deploy Workflow | ||
|
|
||
| Scanneo2 requires snakemake and snakedeploy which are most easily installed using the Mamba Package Manager (or by conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation.html). We provide an `environment.yml` which allows creating a mamba directory that includes the above-defined dependencies. | ||
| Scanneo2 requires snakemake and snakedeploy which are most easily installed using the Mamba Package Manager (or by conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` which allows creating a mamba directory that includes the above-defined dependencies. |
There was a problem hiding this comment.
Fix project-name typo and installation wording in docs.
Line 11 still says Scanneo2 and “mamba directory”; this should be ScanNeo2 and “mamba environment” for clarity.
✏️ Suggested patch
-Scanneo2 requires snakemake and snakedeploy which are most easily installed using the Mamba Package Manager (or by conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` which allows creating a mamba directory that includes the above-defined dependencies.
+ScanNeo2 requires Snakemake and Snakedeploy, which are most easily installed using the Mamba package manager (or conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` to create a mamba environment that includes the dependencies above.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Scanneo2 requires snakemake and snakedeploy which are most easily installed using the Mamba Package Manager (or by conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` which allows creating a mamba directory that includes the above-defined dependencies. | |
| ScanNeo2 requires Snakemake and Snakedeploy, which are most easily installed using the Mamba package manager (or conda itself). If neither mamba nor conda is present, it is best to install it from [Mambaforge](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html). We provide an `environment.yml` to create a mamba environment that includes the dependencies above. |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/index.md` at line 11, In the documentation file at line 11, correct two
issues in the text: replace the project name `Scanneo2` with `ScanNeo2`
(adjusting the capitalization of N and e), and change the phrase "mamba
directory" to "mamba environment" to accurately describe what the
environment.yml file creates. These corrections improve consistency with the
proper project naming convention and clarify the installation process
documentation.
Review summary (self-review)CI all green now. lychee first run paid for itself — caught three wiki-inherited dead URLs that the docs site would have shipped with on day one (arriba RTD 404, mamba install path moved, IEDB rebrand). All fixed in `839fa64`. Second lychee run is green. Wiki notice pushed as a separate commit on the wiki repo (`289669c`); the banner now appears at the top of https://github.com/ylab-hi/ScanNeo2/wiki and points readers at the new canonical site. CodeRabbitWalkthrough only; no actionable inline comments. Mike-versioning deferral (FYI)The original PR-C plan included `mike`-based per-tag versioning. That would require switching from the current Pages-from-Actions deploy (which I set up in #154) back to a `gh-pages`-branch deploy, plus another Settings → Pages admin flip. Not worth the disruption for the current release cadence — single-version "latest" docs are fine, and `mike` can be revisited when there's a concrete reason to look at older versions. Logged the deferral in the PR description. FindingsNo correctness bugs. Three URL corrections were really wiki-inherited bugs that this workflow surfaced — exactly what link-check CI is for. |
Summary
Changed
.github/workflows/links.yml— new lychee link-check workflow. Runs on every PR that touchesdocs//mkdocs.yml/README.md, on push tomain, on a Monday 00:00 UTC schedule (catches external link rot without spamming), and on manual dispatch. Configured with--accept 200,206,429so a rate-limited GitHub URL doesn't masquerade as a dead link, an authenticatedGITHUB_TOKENfor GH API rate limits, and--cachewith a 1-day max-age (warm-starts from the previous run, but doesn't pin stale-OK across release windows).arriba.readthedocs.io/en/latest/→github.com/suhrig/arriba(RTD page is 404; README is canonical now),mamba.readthedocs.io/en/latest/installation.html→…/installation/mamba-installation.html(path moved),immuneepitope.org→iedb.org(rebrand; old hostname times out).289669c) — points readers athttps://ylab-hi.github.io/ScanNeo2/as the canonical site, notes the wiki is the unmaintained fallback.Third and final PR against #147. The mike-based per-tag versioning piece from the original plan is deliberately deferred — `mike` writes to a `gh-pages` branch, which would require switching back from Pages-from-Actions and another admin flip; the single-version site is fine for the current release cadence.
QC
Closes #147.