Comments (4)
I haven't found good CI support for a concept of a warning that lets you continue the build, but collect all the warnings for a report that can be acted upon, so for now I think the manual audit is the way to go for external links to avoid getting your CI pipeline blocked
Since @khoivan88 brought that topic up in the 11ty Discord before, let me chime in :-)
Alternatively to fail
ling external links, wouldn't it be possible to mark them as skip
ped? This way, there could be a list of „skipped” tests, which could act as a list of external links to check.
(I'm using https://www.screamingfrog.co.uk/seo-spider/ for semi-automated manual checks, but 500 limit is hard).
Ideally, I'd expect a plain text with a link per line.
Although, knowing which page contained that link could be helpful if I want to fix it.
I'm not only interested in 4xx or 5xx but also in 301 (Moved Permanently) or similar.
from hyperlink.
@Ryuno-Ki In TAP semantics SKIP
means that the test should never be run in the first place. Hyperlink honors this by not even making the request. This is the feature you want to use to speed up your tests if you don't care about the result.
What @khoivan88 did with marking a test as TODO
is the correct way to get the behavior you describe. The test will be run, the request is made, but any FAIL
will be marked as TODO
. Again, the problem here is that you need to manually inspect the CI output because no CI service that I'm aware of picks up on those TAP semantics. They all just rely on exit codes, which are quite binary.
I am definitely interested in finding a way where the external link check can be made useful as a CI task. But I think it would require some sort of report gathering and then having o pipe it to a different command that submits a webhook, or something along those lines. I feel that sort of work is a never-ending scope explosion, which doesn't overlap much with the core hyperlink functionality.
If you want to change the output from hyperlink you can do so with a custom TAP reporter. This is one of the reasons I chose this format. You could use such a reporter as a filter to get just the TODO
's. Here's where I make decisions on test statuses in tap-spot
: https://github.com/Munter/tap-spot/blob/master/index.js#L48-L63
Hyperlink does indeed report linking to a permanent redirect (301) as a failure
from hyperlink.
I think I would recommend never to check external links in your build process, using the -i
flag as you already have.
For the external lin check I would recommend to run it as a manual audit once in a while, not marking them as TODO
, but just letting them fail.
I haven't found good CI support for a concept of a warning that lets you continue the build, but collect all the warnings for a report that can be acted upon, so for now I think the manual audit is the way to go for external links to avoid getting your CI pipeline blocked
from hyperlink.
thank you very much for your answer!!
from hyperlink.
Related Issues (20)
- BUG: Checks pages outside its boundaries
- Follows links to canonicalRoot instead of resolving as local HOT 1
- Doesn't recognize fragment links to name attributes
- An in-range update of eslint-config-standard is breaking the build 🚨 HOT 3
- Fails when a directory-name has an @ symbol HOT 1
- Netlify build fails early with no info HOT 3
- embed src causes internal traversal to extend to foreign domain HOT 2
- False negatives HOT 4
- Security vulnerability in deprecated package HOT 2
- Can I mark a file/node to be ignored? HOT 6
- Spurious fail caused by `fetch("https://some.url.that/only/accepts/post", { method: "POST" })` HOT 2
- Memory leak issue during checking of all links
- Feature request: garbage collection / dead file detection HOT 7
- Update assetgraph to remove vulnerable dependency HOT 2
- Exits badly (stack trace) on some external links HOT 10
- Document dependency on 'file'/'libmagic1'? HOT 5
- img src ignores ``--internal`` HOT 1
- Mistaken "not ok" links HOT 2
- Remove dependency on deprecated request package HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyperlink.