Lister le contenu d'un répertoire Github en ajax
Lister le contenu d'un répertoire Github en ajax
But du jeu
- Héberger un site de photographies sur les pages Github
- Le site doit pouvoir récupérer dynamiquement les images push sur Github
Démo
Structure du site
- img
- <prefix><nom d’un répertoire menu images>
- img_dyptique (dyptique sera un menu)
- image1.jpg
- image2.jpg
Méthode : ajax et API Github
Le principe est simple : il faut récupérer les informations du repository via l’API Github en ajax. Pas d’authentification, c’est juste du GET.
Les API Github :
$.ajax({
url: "https://api.github.com/repos/laure-photographies/laure-photographies.github.io/branches",
success: function(data){
// récupération du dernier sha last commit du repos
console.log(data[0].commit.sha) ;
}
});
- Lister le contenu du répertoire img/ où se trouve les répertoires préfixés qui constitueront les menus
$.ajax({
// github_repo_sha qu'on a récupéré dans l'appel ajax précédant
url: "https://api.github.com/repos/laure-photographies/laure-photographies.github.io/git/trees/"+github_repo_sha,
success: function(data){
// Récupération du sha du dossier img
$.each(data.tree,function(){
if( this.path == "img"){
console.log(this.sha);
}
});
}
});
- Lister les images du menu
$.ajax({
url: "https://api.github.com/repos/laure-photographies/laure-photographies.github.io/git/trees/"+img_sha,
success: function(data){
// data.tree array des items d'un menu
$.each(data.tree,function(){
// liste des noms des fichiers images
console.log(this.path) ;
});
}
});