Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

Comment on lines 60 to 63
Copy link

Copilot AI Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ce workflow codeql.yml exécute déjà CodeQL sur gh-pages (avec une matrice incluant notamment actions), alors que security.yml lance aussi CodeQL sur les mêmes événements. Cela peut entraîner des runs/alertes en double et rend plus difficile le diagnostic du problème mentionné sur la matrice actions. Envisagez de consolider vers un seul workflow CodeQL (ou de différencier clairement les triggers / matrices entre les deux).

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot apply changes based on this feedback

# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gemini-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ jobs:
id: 'generate_token'
if: |-
${{ vars.APP_ID }}
uses: 'actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e' # ratchet:actions/create-github-app-token@v2
uses: 'actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3' # ratchet:actions/create-github-app-token@v3
with:
app-id: '${{ vars.APP_ID }}'
private-key: '${{ secrets.APP_PRIVATE_KEY }}'
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/gemini-issue-automated-triage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,14 @@ jobs:
id: 'generate_token'
if: |-
${{ vars.APP_ID }}
uses: 'actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e' # ratchet:actions/create-github-app-token@v2
uses: 'actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3' # ratchet:actions/create-github-app-token@v3
with:
app-id: '${{ vars.APP_ID }}'
private-key: '${{ secrets.APP_PRIVATE_KEY }}'

- name: 'Get Repository Labels'
id: 'get_labels'
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea'
uses: 'actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3' # v9
with:
github-token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}'
script: |-
Expand All @@ -70,7 +70,7 @@ jobs:
return labelNames;

- name: 'Run Gemini Issue Analysis'
uses: 'google-github-actions/run-gemini-cli@v0.1.10'
uses: 'google-github-actions/run-gemini-cli@06123c6a203eb7a964ce3be7c48479cc66059f23' # v0.1.10
id: 'gemini_issue_analysis'
env:
GITHUB_TOKEN: '' # Do not pass any auth token here since this runs on untrusted inputs
Expand Down Expand Up @@ -138,7 +138,7 @@ jobs:
REPOSITORY: '${{ github.repository }}'
ISSUE_NUMBER: '${{ github.event.issue.number }}'
LABELS_OUTPUT: '${{ steps.gemini_issue_analysis.outputs.summary }}'
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea'
uses: 'actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3' # v9
with:
github-token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}'
script: |-
Expand Down Expand Up @@ -179,7 +179,7 @@ jobs:
env:
ISSUE_NUMBER: '${{ github.event.issue.number }}'
RUN_URL: '${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}'
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea'
uses: 'actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3' # v9
with:
github-token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}'
script: |-
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/gemini-issue-scheduled-triage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
id: 'generate_token'
if: |-
${{ vars.APP_ID }}
uses: 'actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e' # ratchet:actions/create-github-app-token@v2
uses: 'actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3' # ratchet:actions/create-github-app-token@v3
with:
app-id: '${{ vars.APP_ID }}'
private-key: '${{ secrets.APP_PRIVATE_KEY }}'
Expand Down Expand Up @@ -64,7 +64,7 @@ jobs:

- name: 'Get Repository Labels'
id: 'get_labels'
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea'
uses: 'actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3' # v9
with:
github-token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}'
script: |-
Expand All @@ -80,7 +80,7 @@ jobs:
- name: 'Run Gemini Issue Analysis'
if: |-
${{ steps.find_issues.outputs.issues_to_triage != '[]' }}
uses: 'google-github-actions/run-gemini-cli@v0.1.10'
uses: 'google-github-actions/run-gemini-cli@06123c6a203eb7a964ce3be7c48479cc66059f23' # v0.1.10
id: 'gemini_issue_analysis'
env:
GITHUB_TOKEN: '' # Do not pass any auth token here since this runs on untrusted inputs
Expand Down Expand Up @@ -152,7 +152,7 @@ jobs:
env:
REPOSITORY: '${{ github.repository }}'
LABELS_OUTPUT: '${{ steps.gemini_issue_analysis.outputs.summary }}'
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea'
uses: 'actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3' # v9
with:
github-token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}'
script: |-
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/gemini-pr-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ jobs:
id: 'generate_token'
if: |-
${{ vars.APP_ID }}
uses: 'actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e' # ratchet:actions/create-github-app-token@v2
uses: 'actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3' # ratchet:actions/create-github-app-token@v3
with:
app-id: '${{ vars.APP_ID }}'
private-key: '${{ secrets.APP_PRIVATE_KEY }}'
Expand Down Expand Up @@ -152,7 +152,7 @@ jobs:
} >> "${GITHUB_OUTPUT}"

- name: 'Run Gemini PR Review'
uses: 'google-github-actions/run-gemini-cli@v0.1.10'
uses: 'google-github-actions/run-gemini-cli@06123c6a203eb7a964ce3be7c48479cc66059f23' # v0.1.10
id: 'gemini_pr_review'
env:
GITHUB_TOKEN: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}'
Expand Down Expand Up @@ -456,7 +456,7 @@ jobs:
- name: 'Post PR review failure comment'
if: |-
${{ failure() && steps.gemini_pr_review.outcome == 'failure' }}
uses: 'actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea'
uses: 'actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3' # v9
with:
github-token: '${{ steps.generate_token.outputs.token || secrets.GITHUB_TOKEN }}'
script: |-
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
steps:
# Récupérer le code source avec les nouvelles images
- name: Checkout du dépôt
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

# Optimiser automatiquement les images JPEG, PNG et WebP
# Qualité 85% : bon compromis entre poids et fidélité visuelle
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/jekyll.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: gh-pages

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/lighthouse.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
steps:
# Récupérer le code source (nécessaire pour lire la config .lighthouserc.json)
- name: Checkout du dépôt
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

# Lancer l'audit Lighthouse sur les pages principales du site
# Les seuils sont définis dans .lighthouserc.json :
Expand Down Expand Up @@ -58,7 +58,7 @@ jobs:
# Créer une issue GitHub si les scores sont inférieurs aux seuils
- name: Créer une issue si les scores sont insuffisants
if: failure() && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
with:
script: |
const requiredLabels = [
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/maintenance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
steps:
# Récupérer le contenu du site publié (branche gh-pages) pour scanner ses liens
- name: Checkout du dépôt
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: gh-pages

Expand All @@ -52,7 +52,7 @@ jobs:
# S'assurer que les labels requis existent avant de créer l'issue
- name: Créer les labels si absents
if: steps.lychee.outputs.exit_code != 0
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
with:
script: |
const requiredLabels = [
Expand Down Expand Up @@ -114,7 +114,7 @@ jobs:
steps:
# Récupérer le contenu du site publié (branche gh-pages) pour l'archiver
- name: Checkout complet du dépôt
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: gh-pages
fetch-depth: 0
Expand Down Expand Up @@ -142,7 +142,7 @@ jobs:

# Publier l'archive dans une GitHub Release taguée
- name: Publier le backup dans GitHub Releases
uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
with:
tag_name: backup-${{ steps.archive.outputs.date }}
name: "💾 Backup hebdomadaire — ${{ steps.archive.outputs.date }}"
Expand Down Expand Up @@ -179,7 +179,7 @@ jobs:
# Marquer les issues sans activité depuis 60 jours comme "stale"
# et les fermer automatiquement après 7 jours supplémentaires
- name: Gérer les issues et PR inactives
uses: actions/stale@v9
uses: actions/stale@v10
Copy link

Copilot AI Apr 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actions/stale@v10 est laissé sur un tag flottant, alors que le reste des actions du workflow est SHA-pin (checkout, github-script, lychee, gh-release). Pour réduire le risque supply-chain et rester cohérent, épinglez aussi actions/stale sur le SHA du release v10 utilisé (et gardez un commentaire de version si besoin).

Suggested change
uses: actions/stale@v10
uses: actions/stale@c7ee4bb7fa9e1923e38d45e1020c8b2c7b1f5fca # v10

Copilot uses AI. Check for mistakes.
with:
# ── Issues ──────────────────────────────────────────
days-before-issue-stale: 60
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/music-social.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
steps:
# Récupérer le code source avec l'historique complet pour comparer tout le push
- name: Checkout du dépôt
uses: actions/checkout@v4
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0

Expand Down Expand Up @@ -66,7 +66,7 @@ jobs:

# Créer une issue GitHub récapitulative de la mise à jour musicale
- name: Créer une issue "New Music Update"
uses: actions/github-script@v7
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
env:
LINES_ADDED: ${{ steps.diff.outputs.lines_added }}
LINES_REMOVED: ${{ steps.diff.outputs.lines_removed }}
Expand Down
11 changes: 5 additions & 6 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: 🔒 Sécurité - CodeQL & Gitleaks

on:
push:
branches: [main]
branches: [main, gh-pages]
pull_request:
branches: [main, gh-pages]
schedule:
Expand Down Expand Up @@ -30,14 +30,13 @@ jobs:
# Analyse JavaScript / TypeScript (code front-end)
- language: javascript-typescript
build-mode: none
# Analyse des workflows GitHub Actions
- language: actions
build-mode: none

steps:
# Récupérer le code source du dépôt
- name: Checkout du dépôt
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

# Initialiser les outils CodeQL avec les requêtes de sécurité étendues
- name: Initialisation de CodeQL
Expand Down Expand Up @@ -68,7 +67,7 @@ jobs:
steps:
# Récupérer l'historique GIT complet pour analyser tous les commits
- name: Checkout complet du dépôt
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/social-media-post.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Placeholder social post
run: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/uptime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:
# Récupérer explicitement la branche qui héberge les badges/statuts
- name: Checkout du dépôt
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: gh-pages

Expand Down Expand Up @@ -92,7 +92,7 @@ jobs:
# Si le site est de nouveau en ligne, fermer les issues d'alerte ouvertes
- name: Fermer l'alerte uptime si le site est revenu en ligne
if: steps.check.outputs.is_up == 'true'
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
with:
script: |
// Rechercher les issues d'alerte uptime ouvertes
Expand Down Expand Up @@ -122,7 +122,7 @@ jobs:
# Si le site est hors ligne, créer une issue d'alerte (une seule à la fois)
- name: Créer une alerte si le site est hors ligne
if: steps.check.outputs.is_up == 'false'
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
env:
STATUS_CODE: ${{ steps.check.outputs.status_code }}
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/youtube-section-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: gh-pages

Expand Down
43 changes: 39 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,39 @@
node_modules
# Local Netlify folder
.netlify
E
# Dependencies
node_modules/

# Netlify
.netlify/

# macOS
.DS_Store
.AppleDouble
.LSOverride

# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Build outputs
_site/
dist/
.jekyll-cache/
.jekyll-metadata

# Environment files
.env
.env.local
.env.*.local

# Editor directories
.idea/
.vscode/
*.swp
*.swo
*~

# OS generated
Thumbs.db
ehthumbs.db
Desktop.ini
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 DavidKRK

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading