Github, langages et trahison

Avec un ami nous travaillons actuellement sur un bot IRC en Go (Goxxx).

Quelle ne fut pas ma surprise en constatant qu’après avoir ajouté des fichiers HTML (pour les tests), le projet était désormais considéré par github comme un projet « HTML » au niveau de ses statistiques !
Ce problème peut également se produire sur les dépôt ou sont présents des fichiers/librairies « vendored », développées par des tiers mais inclus au projet pour plus de facilité.

Suite à cette trahison et à quelque recherches sur le web, il y a une solution simple: Il suffit d’ajouter dans le fichier .gitattributes du dépôt une des directives suivante pour les fichiers/patterns à exclure des statistiques :

  • linguist-documentation pour tout se qui se rapporte a la documentation
  • linguist-language pour forcer le langage de certains fichiers à une valeur donnée
  • linguist-vendored pour les fichiers « vendored »

Exemples :

# Traite les fichiers .rb (ruby) comme étant des fichiers Java
*.rb linguist-language=Java

# Ignore les fichiers présents dans le dossier "project-docs" (Considérés comme de la documentation)
project-docs/* linguist-documentation 

# Ignore les fichiers présents dans le dossier "special-vendored-path" (Considérés comme des fichiers "vendored")
special-vendored-path/* linguist-vendored

pour plus d’informations et de détails: https://github.com/github/linguist#overrides