etalab / transport-site

Rendre disponible, valoriser et améliorer les données transports
https://transport.data.gouv.fr
197 stars 30 forks source link

Détection des liens morts #2579

Closed thbar closed 1 year ago

thbar commented 2 years ago

Issue débutée dans:

mais que j'élargis ici suite à mes découvertes.

Résumé

On cherche à nous assurer qu'on sera prévenu des éventuels "liens morts" (HTTP 404) qui peuvent petit à petit apparaître sur le site (https://transport.data.gouv.fr/) et dans notre documentation (https://doc.transport.data.gouv.fr), car cela est gênant pour les visiteurs, et que cela introduit de la friction dans l'open-data au passage.

Après le travail dans #2420 et #2577, j'ai eu l'idée d'utiliser pour un second check des outils extérieurs, juste pour me faire une idée (il sera aisé d'automatiser ça chez nous après, mais ça évite de faire ce travail tout de suite).

Je note un peu ce que j'ai trouvé ici, pour faire une base de travail.

Liens du site vers la doc

Dans #2577 et #2420, j'ai déjà vérifié qu'au moment où j'ouvre ce ticket, il n'y a pas de liens de ce type, sauf erreur, qui ne soient cassés actuellement, on semble bon pour le moment.

Liens de la doc vers la doc

Et autre sous forme d'image (l'export depuis l'outil est payant, pour l'instant je colle ça comme ça):

CleanShot 2022-08-16 at 14 17 12@2x

Liens de la doc vers d'autres sites

Ce cas peut être plus compliqué à corrigé, car le site ciblé n'est pas sous notre contrôle, ce qui peut impliquer des recherches pour trouver une alternative.

(voir ci-dessus)

Liens cassés depuis notre site

Il y a des erreurs par exemple dans des datasets qui sont sous notre gestion:

Voir des exemples ici:

CleanShot 2022-08-16 at 14 23 13@2x

AntoineAugusti commented 2 years ago

Sympa, tu as utilisé quel outil pour avoir ces rapports ? Est-ce que Matomo / Google Search Console pourrait détecter de telles choses ?

thbar commented 1 year ago

@AntoineAugusti je ne sais plus trop quel outil j'avais utilisé...

thbar commented 1 year ago

J'ai réutilisé https://www.deadlinkchecker.com aujourd'hui et il y a des liens cassés dans notre documentation.

Je compte 13 "404 Not Found" et également des "-1 Hostname not found", j'ai fait un export en PDF:

Dead Link Checker report - https:::doc.transport.data.gouv.fr:.pdf

thbar commented 1 year ago

Pour ce tour j'assigne à @Miryad3108 qui était preneuse de l'information.

Miryad3108 commented 1 year ago

Merci @thbar J'ai corrigé plusieurs URL et je voulais voir si j'en avais manqué certaines mais j'ai un message "canceled" qui apparait quand j'utilise l'outil Tu peux me refaire un export si de ton côté ça fonctionne ?

Il y a deux liens que je n'ai pas modifié :

thbar commented 1 year ago

@Miryad3108 oui ça a fonctionné:

dead-links.pdf

Ok pour le lien IRVE, pour le deuxième je pense que c'est un lien technique qu'on peut laisser comme ça, pas de souci.

Miryad3108 commented 1 year ago

Merci @thbar Les corrections de la page restante n'avaient pas été n'avaient pas été mergées dans Gitbook

Le lien IRVE a été supprimé car la partie concernée a été supprimé sur le site Il y a deux liens que je ne sais pas comment corriger :

thbar commented 1 year ago

@Miryad3108 voilà un scan à nouveau (on pourra regarder ensemble si tu veux voir comment le faire et pourquoi ça ne marche pas de ton côté, même si ça ne me dérange pas de le faire moi !)

Dead Link Checker report - https:::doc.transport.data.gouv.fr:.pdf

Il y a d'autres erreurs dans le dernier scan:

thbar commented 1 year ago

J'ai fait un check aujourd'hui pour vérifier que les liens contenus dans le code vers "doc.transport" étaient toujours bon, c'est ok:

   test "http links" do
     regexp = ~r/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)/
     {output, 0} = System.shell("grep -r doc.transport.data.gouv ../../apps/transport/lib")

     regexp
     |> Regex.scan(output)
     |> Enum.map(fn [global_match | _] -> global_match end)
     |> Enum.uniq()
     |> Enum.map(fn url -> {url, HTTPoison.head!(url).status_code} end)
     |> Enum.group_by(fn({url, x}) -> x end)
     |> IO.inspect()
   end
%{
  200 => [
    {"https://doc.transport.data.gouv.fr/producteurs/mettre-a-jour-des-donnees#remplacer-un-jeu-de-donnees-existant-plutot-quen-creer-un-nouveau",
     200},
    {"https://doc.transport.data.gouv.fr/foire-aux-questions-1/generalites",
     200},
    {"https://doc.transport.data.gouv.fr/producteurs/operateurs-de-transport-regulier-de-personnes/publier-des-horaires-theoriques-de-transport-regulier",
     200},
    {"https://doc.transport.data.gouv.fr/presentation-et-mode-demploi-du-pan/mentions-legales-et-conditions-generales-dutilisation",
     200},
    {"https://doc.transport.data.gouv.fr/presentation-et-mode-demploi-du-pan/conditions-dutilisation-des-donnees/licence-odbl",
     200},
    {"https://doc.transport.data.gouv.fr/guide-du-pan/budget", 200},
    {"https://doc.transport.data.gouv.fr/foire-aux-questions-1/donnees-temps-reel-des-transports-en-commun#proxy-gtfs-rt",
     200},
    {"https://doc.transport.data.gouv.fr/documentation/normes-europeennes", 200},
    {"https://doc.transport.data.gouv.fr/producteurs/comment-et-pourquoi-les-producteurs-de-donnees-utilisent-ils-le-pan",
     200},
    {"https://doc.transport.data.gouv.fr/presentation-et-mode-demploi-du-pan/cadre-juridique-harmonise",
     200},
    {"https://doc.transport.data.gouv.fr/reutilisateurs/apis/", 200},
    {"https://doc.transport.data.gouv.fr/reutilisateurs/outils-pour-les-reutilisateurs",
     200},
    {"https://doc.transport.data.gouv.fr/notre-ecosysteme/les-facilitateurs",
     200},
    {"https://doc.transport.data.gouv.fr/producteurs/operateurs-de-transport-regulier-de-personnes/temps-reel-des-transports-en-commun",
     200},
    {"https://doc.transport.data.gouv.fr/producteurs/mettre-a-jour-des-donnees",
     200},
    {"https://doc.transport.data.gouv.fr/presentation-et-mode-demploi-du-pan/conditions-dutilisation-des-donnees/licence-odbl#conditions-particulieres-dutilisation",
     200},
    {"https://doc.transport.data.gouv.fr/producteurs/gerer-la-qualite-des-donnees/sinscrire-aux-notifications",
     200},
    {"https://doc.transport.data.gouv.fr", 200},
    {"https://doc.transport.data.gouv.fr/presentation-et-mode-demploi-du-pan/declaration-de-conformite",
     200},
    {"https://doc.transport.data.gouv.fr/producteurs/operateurs-de-transport-regulier-de-personnes/mise-en-qualite-des-donnees-gtfs",
     200},
    {"https://doc.transport.data.gouv.fr/guide-du-pan", 200},
    {"https://doc.transport.data.gouv.fr/producteurs/gerer-la-qualite-des-donnees/sinscrire-aux-notifications#les-differents-types-de-notifications",
     200},
    {"https://doc.transport.data.gouv.fr/producteurs/comment-et-pourquoi-les-producteurs-de-donnees-utilisent-ils-le-pan/creer-une-organisation-sur-data.gouv.fr",
     200},
    {"https://doc.transport.data.gouv.fr/reutilisateurs/qualite-de-donnee#validateur-de-fichiers-gtfs",
     200},
    {"https://doc.transport.data.gouv.fr/producteurs/velos-en-libre-service",
     200},
    {"https://doc.transport.data.gouv.fr/producteurs/comptage-des-mobilites",
     200}
  ],
  302 => [
    {"https://doc.transport.data.gouv.fr/producteurs/gerer-la-qualite-des-donnees/sabonner-aux-notifications",
     302},
    {"https://doc.transport.data.gouv.fr/reutilisateurs/utilisation-par-les-reutilisateurs-de-donnees/repartager-les-modifications-apportees-a-une-ressource",
     302},
    {"https://transport.data.gouv.fr/espace_producteur", 302}
  ]
}

On pourra voir à ajouter ce test en intégration continue (ex: une fois par semaine) pour être prévenus éventuellement à un moment, mais pas d'urgence vu que tout est bon actuellement.

AntoineAugusti commented 1 year ago

@thbar J'ai quand même transcrit ça dans une PR et on a de belles surprises 😅

thbar commented 1 year ago

@AntoineAugusti peut-être que la doc a été committée entre temps ? Ou que tu scannes plus large ? En tout cas GG :-)

Miryad3108 commented 1 year ago
Liens cassés Nouveaux liens
https://doc.transport.data.gouv.fr/foire-aux-questions-1/generalites https://doc.transport.data.gouv.fr/le-point-d-acces-national/generalites/le-point-dacces-national
https://doc.transport.data.gouv.fr/reutilisateurs/utilisation-par-les-reutilisateurs-de-donnees/repartager-les-modifications-apportees-a-une-ressource https://doc.transport.data.gouv.fr/administration-des-donnees/reutilisation-des-donnees/procedures-de-repartage-des-donnees
https://doc.transport.data.gouv.fr/producteurs/gerer-la-qualite-des-donnees/sinscrire-aux-notifications https://doc.transport.data.gouv.fr/administration-des-donnees/procedures-de-publication/gerer-la-qualite-des-donnees#sinscrire-aux-notifications
https://doc.transport.data.gouv.fr/guide-du-pan A VENIR
https://doc.transport.data.gouv.fr/producteurs/comment-et-pourquoi-les-producteurs-de-donnees-utilisent-ils-le-pan/creer-une-organisation-sur-data.gouv.fr https://doc.transport.data.gouv.fr/administration-des-donnees/procedures-de-publication/creer-un-compte-utilisateur-sur-data.gouv.fr
https://doc.transport.data.gouv.fr/reutilisateurs/apis/ https://doc.transport.data.gouv.fr/administration-des-donnees/outils/api
https://doc.transport.data.gouv.fr/producteurs/gerer-la-qualite-des-donnees/sabonner-aux-notifications https://doc.transport.data.gouv.fr/administration-des-donnees/procedures-de-publication/gerer-la-qualite-des-donnees#sinscrire-aux-notifications
https://doc.transport.data.gouv.fr/reutilisateurs/outils-pour-les-reutilisateurs https://doc.transport.data.gouv.fr/administration-des-donnees/outils
https://doc.transport.data.gouv.fr/presentation-et-mode-demploi-du-pan/cadre-juridique-harmonise https://doc.transport.data.gouv.fr/le-point-d-acces-national/cadre-juridique
https://doc.transport.data.gouv.fr/reutilisateurs/qualite-de-donnee https://doc.transport.data.gouv.fr/administration-des-donnees/outils/validateurs
AntoineAugusti commented 1 year ago

@Miryad3108 J'ai remplacé le lien "guide du PAN", il était envoyé dans l'e-mail envoyé aux producteurs lors du référencement de leur JDD.

J'ai mis https://doc.transport.data.gouv.fr/le-point-d-acces-national/generalites/le-point-dacces-national

AntoineAugusti commented 1 year ago

3378 a introduit un test tous les lundis pour vérifier que les liens de documentation sont valides.

3405 fera peut-être quelque chose de similaire pour d'autres liens