Github display

De Wiki LOGre
Aller à : navigation, rechercher
Langue : Français  • English

Projet


Suite a une discussion avec Amaury qui me faisait remarquer que l affichage des activites de github ressemble a tableau de pixel je me suis dit et pourquoi pas ?
J ai donc decide creer un soft qui genere un historique de contribution Git de maniere a faire afficher des motifs, textes comme sur l image ci-dessous

Affichage d Hello World dans les activites


Technos utilisées


  • Langage C++ et notamment les API de gestion de date et de temps introduits par le standard C++11
  • Compilateur g++
  • Gestionnaire de version Git
  • Shell scripts
  • SSH


Ressources



Programme


Principe


Git possede pas mal de fonctionnalites avancees et permet notammment de donner arbitrairement une date aux commits
C est cette fonctionnalite qui est utilisee ici
A partir de la date courante le soft calcule pour chaque pixel de l affichage des activites de combien de jours il precede la date courante
A partir d un fichier BMP representant le motif a afficher le programme va generer des commits pour chaque pixel a allumer et finit par les pusher vers un repo gitub
Pour interagir avec le repo Git le programme genere un script sh qu il va executer via execvp

Fonctionnalites


  • Lit un fichier BMP en entree qui definit le motif a afficher
  • Possibilite d utiliser un autre compte github que votre compte par defaut
  • Generation automatique d un fichier de config ssh afin d utiliser la clef ssh dediee au compte qui affiche les motifs
  • Creation d un repo Git local avec la date du commit initial suffisament dans le passe pour ne pas apparaitre dans le motif
  • Lors de l affichage le repo est remis dans l etat du commit initial et les nouveaux commits sont pousses


Limitations


  • Meme en ecrasant l historique Git, Github n efface pas les contributions qui n existent plus.
  • En supprimant completement le projet cela marche aleatoirement
  • Le seul moyen fiable que j ai trouve pour reinitialiser l affichage des activites est de supprimer le compte Github puis de le recreer mais c est pas ideal
  • J ai essaye de faire des affichages differentiels entre deux motifs en jouant sur la couleur ( ie frequence d activite ) mais Github cumule les stats malgre l ecrasement de l historique. L ecart du nombre de contribution pour allumer/eteindre un pixel doit augmenter exponentiellement ce qui revient a faire de meme pour le nombre de commits.
  • Le code peut etre utilise sur Gitlab mais probleme l affichage des activites sur Gitlab est lie aux push au lieu des commits et je ne pense pas qu on puisse controler la date d un push ( horodatage serveur ? )


Parametres


  • Parametre obligatoire
    • Fichier BMP contenant le motif a afficher
  • Parametres optionnels:
    • --remote : URL du repo de type git@github.com:<user>/<project>.git
    • --email : Email du compte Github qui fait les commits
    • --dedicated_account : specifie si on utilise un compte github autre que celui par defaut. Si oui il va generer un fichier de conf .ssh pour utiliser un clef RSA dediee
    • --key_file : nom du fichier contenant la clef ssh privee a utiliser dans le cas d un compte dedie


Exemple :

./bin/github_display.exe --remote=git@github.com:githubdisplay/test.git --dedicated_account=yes --email=toto@free.fr --key_file=githubdisplay_id_rsa color.bmp 


Comment essayer ?


Voici la procedure a suivre:

  • Creer un compte Github
  • Ajouter une clef ssh
  • Creer un projet
  • Creer un fichier BMP definissant votre propre motif a partir de l exemple fourni ( la ligne la plus basse n est pas prise en compte, elle sert juste de palette de couleur)
  • Lancer le soft en remplacant dans la commande exemple avec les valeurs correspondant a votre compte Github projet etc
  • Rafraichir la page web correspondant au compte Github cree. Normalement l affichage des activites devrait afficher votre motif !