iducationducation
IndexArticlesFormationsProfilOutilsBibliothech
N°014 — 2026
Navigation
01Index02Articles03Formations04Profil05Outils06Bibliothech
N°014 — 2026
iducationducation
IndexArticlesFormationsProfilOutilsBibliothech
N°014 — 2026
Navigation
01Index02Articles03Formations04Profil05Outils06Bibliothech
N°014 — 2026
Formations
Markdown · Débutant

GitHub Profile README

Construire un profil GitHub qui attire l'attention — badges dynamiques, stats en temps réel, mise en page soignée et automatisation via GitHub Actions.

Markdownshields.ioGitHub ActionsSVG
GitHub
01Le repo spécial GitHub02Markdown avancé et HTML inline03Badges shields.io04Stats GitHub dynamiques05Mise en page et design06Contenu et personal branding07Automatisation avec GitHub Actions
Chapitre 7·25 min

Automatisation avec GitHub Actions

GitHub Actions peut mettre à jour votre README automatiquement : snake animation, derniers articles de blog, activité récente. On déclenche un workflow sur schedule et il commit le résultat dans le repo.

Structure du dossier

williamloree/
├── README.md
└── .github/
    └── workflows/
        ├── snake.yml         ← génère l'animation serpent
        └── blog-posts.yml    ← récupère les derniers articles

Snake animation — contribution grid

L'animation serpent qui mange les cases de la grille de contribution :

.github/workflows/snake.yml
name: Generate Snake
 
on:
  schedule:
    - cron: '0 12 * * *'   # tous les jours à midi UTC
  workflow_dispatch:         # déclenchement manuel possible
 
jobs:
  generate:
    runs-on: ubuntu-latest
    permissions:
      contents: write
 
    steps:
      - uses: Platane/snk/svg-only@v3
        with:
          github_user_name: ${{ github.repository_owner }}
          outputs: |
            dist/github-contribution-grid-snake.svg
            dist/github-contribution-grid-snake-dark.svg?palette=github-dark
 
      - name: Push output
        uses: crazy-max/ghaction-github-pages@v3
        with:
          target_branch: output
          build_dir: dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Ce workflow :

  1. Lit la grille de contributions de l'API GitHub
  2. Génère deux SVG (clair + sombre)
  3. Les pousse dans la branche output du repo

Le README.md les référence via une URL raw :

README.md
<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/williamloree/williamloree/output/github-contribution-grid-snake-dark.svg" />
  <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/williamloree/williamloree/output/github-contribution-grid-snake.svg" />
  <img src="https://raw.githubusercontent.com/williamloree/williamloree/output/github-contribution-grid-snake.svg" width="100%" />
</picture>

GITHUB_TOKEN est disponible automatiquement dans tous les workflows — pas besoin de le configurer.

Derniers articles de blog

Si vous publiez sur iducation.fr, le RSS peut alimenter automatiquement une section du README :

.github/workflows/blog-posts.yml
name: Latest Blog Posts
 
on:
  schedule:
    - cron: '0 8 * * *'    # tous les jours à 8h UTC
  workflow_dispatch:
 
jobs:
  update-readme:
    runs-on: ubuntu-latest
    permissions:
      contents: write
 
    steps:
      - uses: actions/checkout@v4
 
      - uses: gautamkrishnar/blog-post-workflow@master
        with:
          feed_list: "https://iducation.fr/rss.xml"
          max_post_count: 5
          readme_path: README.md
          gh_token: ${{ secrets.GITHUB_TOKEN }}

Dans README.md, ajouter des marqueurs commentaires là où les articles doivent apparaître :

README.md
### ✍️ Derniers articles
 
<!-- BLOG-POST-LIST:START -->
<!-- BLOG-POST-LIST:END -->

Le workflow remplace le contenu entre les marqueurs par les titres des 5 derniers articles avec leurs liens. À chaque run, la liste est rafraîchie.

Cela nécessite que iducation.fr expose un flux RSS à /rss.xml — voir l'article sur OpenRSS avec Next.js.

Activité GitHub récente

.github/workflows/recent-activity.yml
name: Recent Activity
 
on:
  schedule:
    - cron: '*/30 * * * *'   # toutes les 30 minutes
  workflow_dispatch:
 
jobs:
  update-readme:
    runs-on: ubuntu-latest
    permissions:
      contents: write
 
    steps:
      - uses: actions/checkout@v4
 
      - uses: Readme-Workflows/recent-activity@v2.0.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          MAX_LINES: 5

Marqueurs dans le README :

README.md
### ⚡ Activité récente
 
<!--RECENT_ACTIVITY:start-->
<!--RECENT_ACTIVITY:end-->

Le workflow remplace le contenu par les 5 derniers événements GitHub : commits, PRs, issues, stars de repos.

Déclencher manuellement un workflow

Dans l'onglet Actions du repo → sélectionner le workflow → bouton "Run workflow". Utile pour tester avant d'attendre le prochain run automatique.

Vérifier que les permissions sont activées

Pour que les workflows puissent commiter dans le repo, aller dans Settings → Actions → General → Workflow permissions et sélectionner "Read and write permissions".

Sans ça, le git push du workflow échoue avec une erreur 403.

Fréquence recommandée

WorkflowFréquenceRaison
Snake animation0 12 * * * (quotidien)La grille de contribution change une fois par jour
Articles de blog0 8 * * * (quotidien)Suffisant pour les nouveaux articles
Activité récente*/30 * * * * (30 min)Activité GitHub peut changer souvent

GitHub Actions sur les repos publics est gratuit sans limite de minutes — pas de contrainte budgétaire pour ces workflows.

Précédent
Contenu et personal branding

Développeur fullstack passionné. J'apprends en construisant et je documente tout — front, back, outils. Le code s'apprend mieux en public.

Naviguer

IndexTous les articlesFormationsProfilOutilsBibliothech

Ailleurs

GitHub RSS

Newsletter

Les articles, libs et découvertes. Une fois par semaine, pas plus.

© 2026 William LoreeConçu & codé à la main