Files
Yuanyuan Chen 19e8e7d6c9 ci: ignore link-checker URLs that block automated requests (#8338)
### Motivation and Context

The **Check URLs** workflow is failing on `main` — every scheduled and
push run for the last several days
([latest](https://github.com/onnx/onnx/actions/runs/32334272449)):

```
🔍 2079 Total  🔗 1331 Unique   2053 OK  🚫 6 Errors  👻 20 Excluded  🔀 58 Redirects
```

All 6 are `403 Forbidden` from live pages that reject the link checker,
not broken links:

| URL | Referenced from |
|---|---|
| `https://lfaifoundation.slack.com/` | `CONTRIBUTING.md:13`,
`README.md:70` |
| `https://lfaifoundation.slack.com/archives/C016UBNDBL2` |
`docs/OnnxReleases.md:136` |
| `https://lfaifoundation.slack.com/archives/C018VGGJUGK` |
`docs/OnnxReleases.md:15`, `:136` |
| `https://gitlab.kitware.com/cmake/cmake/-/issues/25145` |
`CMakeLists.txt:148` |

The Slack links 302-redirect to a login page that then answers 403. The
Kitware issue is reachable — it returns 200 to a plain request and 403
to a browser-like one, i.e. fingerprint-based bot filtering, not a dead
page. In both cases the destination is correct and should stay in the
docs.

### Changes

Add all four to `.lycheeignore`, which already carries entries for
exactly this category (`join.slack.com`, Cloudflare-fronted pages,
StackOverflow).

The Slack workspace is matched by host —
`https://lfaifoundation\.slack\.com/.*` — rather than URL by URL. Every
link to that workspace is blocked the same way, and
`docs/OnnxReleases.md` gains channel archive links over time; matching
per-URL would just break the workflow again on the next one. Verified
the pattern matches the five failing occurrences and nothing else in the
repo (in particular it does not swallow the existing `join.slack.com`
invite entry).

The Kitware link is listed individually since it is the only one.

### Validation

`lychee` is not installable in my environment, so I could not run the
checker locally. Verified instead that:

- each URL is live and returns 403 only to automated requests
- the regex matches exactly the 5 failing occurrences and no other URL
in the tree

CI on this PR will exercise the real check, since `.lycheeignore`
changes are picked up by the same workflow. Worth confirming the run
goes green before merging.

### Maintainer label note

Suggested labels: `topic: CI`.

---------

Signed-off-by: Yuanyuan Chen <cyyever@outlook.com>
2026-08-20 14:27:27 +08:00
..
2026-06-17 19:37:14 +02:00