diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml
index 6a830413..8c19e891 100644
--- a/.github/workflows/security.yml
+++ b/.github/workflows/security.yml
@@ -34,6 +34,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
@@ -77,6 +79,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
@@ -126,6 +130,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
@@ -163,6 +169,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@e46ed2cbd01164d986452f91f178727624ae40d7 # v4
@@ -195,6 +203,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
- name: Run Semgrep
uses: semgrep/semgrep-action@713efdd345f3035192eaa63f56867b88e63e4e5d # v1 (v0.58.0, verified 2026-03-17)
@@ -204,6 +214,38 @@ jobs:
p/security-audit
p/secrets
+ gitleaks:
+ name: Gitleaks Secret Scan
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+
+ steps:
+ - name: Harden Runner
+ uses: step-security/harden-runner@a5ad31d6a139d249332a2605b85202e8c0b78450 # v2.19.1
+ with:
+ egress-policy: audit
+
+ - name: Checkout repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
+
+ - name: Install gitleaks
+ env:
+ GITLEAKS_VERSION: "8.30.1"
+ GITLEAKS_SHA256: "551f6fc83ea457d62a0d98237cbad105af8d557003051f41f3e7ca7b3f2470eb"
+ run: |
+ curl -sSfL "https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz" \
+ -o gitleaks.tar.gz
+ echo "${GITLEAKS_SHA256} gitleaks.tar.gz" | sha256sum -c -
+ tar -xz -C /usr/local/bin gitleaks < gitleaks.tar.gz
+ rm gitleaks.tar.gz
+ gitleaks version
+
+ - name: Run gitleaks
+ run: gitleaks detect --source . --no-git --verbose
+
socket-security:
name: Socket.dev Security
runs-on: ubuntu-latest
@@ -221,6 +263,8 @@ jobs:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
- name: Socket Security Review
uses: SocketDev/action@ba6de6cc0565af1f42295590380973573297e31f # v1.3.2
diff --git a/.gitignore b/.gitignore
index e570a5a5..212ce136 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,35 +1,128 @@
-# Dependencies
-node_modules/
+# ============================================================
+# Security baseline (SSOT: _meta/_templates/infra/gitignore-security-baseline.md)
+# ============================================================
-# Build output
-out/
-dist/
+# --- Secret insurance (STD-00020 R3) ---
+**/.env
+**/.env.local
+**/.env.*.local
+**/.envrc
+**/.envrc.local
-# Coverage reports
-coverage/
+**/*.pem
+**/*.key
+**/*.p12
+**/*.pfx
+**/*.jks
+**/*.keystore
+**/*.gpg
-# VS Code extension packages
-*.vsix
+**/id_rsa
+**/id_rsa.*
+**/id_dsa
+**/id_ecdsa
+**/id_ecdsa.*
+**/id_ed25519
+**/id_ed25519.*
-# VS Code test downloads
-.vscode-test/
+**/credentials
+**/credentials.json
+**/credentials.yaml
+**/credentials.yml
+**/*.credentials.json
+**/.git-credentials
+**/.netrc
+**/.npmrc
+**/.pgpass
+**/.htpasswd
+**/.vault_pass
+**/vault_pass.txt
+
+**/service_account*.json
+**/*-service-account*.json
+**/firebase-adminsdk*.json
+**/gcp-credentials*.json
+**/aws-credentials*.json
+**/client_secret*.json
+
+**/secret.yaml
+**/secret.yml
+**/secrets.yaml
+**/secrets.yml
+**/private.asc
+**/privkey.asc
+**/secret.asc
+
+**/.aws/config
+**/.config/gcloud/application_default_credentials.json
+**/.config/gcloud/credentials.db
+**/.credentials/
+**/sensitive/
+**/kubeconfig
+**/*.kubeconfig
+
+# --- OS generated files ---
+**/.DS_Store
+**/.DS_Store?
+**/._*
+**/.Spotlight-V100
+**/.Trashes
+**/Thumbs.db
+**/ehthumbs.db
+**/Desktop.ini
-# TypeScript cache
-*.tsbuildinfo
+# --- Editor / IDE ---
+**/.vscode/
+**/.idea/
+**/*.swp
+**/*.swo
+**/*~
+**/.project
+**/.classpath
+**/.settings/
-# ESLint cache
-.eslintcache
+# --- Node.js / TypeScript ---
+**/node_modules/
+**/.npm/
+**/*.tsbuildinfo
+**/.eslintcache
-# OS files
-.DS_Store
+# --- Python ---
+**/__pycache__/
+**/*.py[cod]
+**/*$py.class
+**/*.egg-info/
+**/.mypy_cache/
+**/.ruff_cache/
+**/.pytest_cache/
+**/venv/
+**/.venv/
-# IDE
-.idea/
+# --- Build output / coverage ---
+**/dist/
+**/coverage/
+**/.nyc_output/
-# Logs
-*.log
-npm-debug.log*
+# --- Logs / temp files ---
+**/*.log
+**/npm-debug.log*
+**/yarn-debug.log*
+**/yarn-error.log*
+**/*.tmp
+**/*.temp
-# Environment
-.env
-.env.local
+# ============================================================
+# Project-specific exclusions (add below)
+# ============================================================
+
+# VS Code workspace configs (intentionally tracked for extension development)
+!extensions/*/.vscode/
+
+# Build output
+out/
+
+# VS Code extension packages
+*.vsix
+
+# VS Code test downloads
+.vscode-test/
diff --git a/.gitleaks.toml b/.gitleaks.toml
new file mode 100644
index 00000000..d17d8559
--- /dev/null
+++ b/.gitleaks.toml
@@ -0,0 +1,10 @@
+[extend]
+useDefault = true
+
+[allowlist]
+paths = [
+ '''(src|out)/test/''',
+ '''(src|out)/ssh/sshAgent\.(ts|js)''',
+ '''\.vscode-test/''',
+ '''node_modules/''',
+]
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index d5c557c6..48b4cd6d 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -26,3 +26,9 @@ repos:
args: ['--maxkb=1000']
- id: mixed-line-ending
args: ['--fix=lf']
+
+ # Secret detection
+ - repo: https://github.com/gitleaks/gitleaks
+ rev: v8.30.1
+ hooks:
+ - id: gitleaks
diff --git a/README.md b/README.md
index 71ac8ff0..2b9253e7 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@
[](https://snyk.io/)
[](https://socket.dev/dashboard/org/null-variant/repo/nullvariant-vscode-extensions)
[](https://www.gitguardian.com/)
+[](https://github.com/gitleaks/gitleaks)
[](https://renovatebot.com)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fnullvariant%2Fnullvariant-vscode-extensions?ref=badge_shield&issueType=license)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fnullvariant%2Fnullvariant-vscode-extensions?ref=badge_shield&issueType=security)
diff --git a/SECURITY.md b/SECURITY.md
index bea50c31..96762266 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -67,6 +67,7 @@ This repository contains VS Code extensions with the following security measures
- **Fork Protection**: Sensitive workflows skip on fork repositories
- **SAST (Snyk Code)**: [Snyk](https://snyk.io/) runs static analysis; test fixtures are excluded via `.snyk` policy
- **License & Vulnerability Scanning**: [FOSSA](https://app.fossa.com/) runs license compliance, dependency quality, and security analysis on every commit (GitHub App integration)
+- **Secret Detection**: [Gitleaks](https://github.com/gitleaks/gitleaks) scans for hardcoded secrets in both CI (`security.yml`) and pre-commit hooks (`.pre-commit-config.yaml`)
- **Runtime Security Monitoring**: [StepSecurity Harden-Runner](https://github.com/step-security/harden-runner) monitors all workflow runs for suspicious network egress, file access, and process execution
- **Branch Protection**: Main branch requires PR approval (1 reviewer minimum). All PRs are automatically approved by nullvariant-justice[bot] after CI passes (solo-developer workflow for [OpenSSF Scorecard](https://securityscorecards.dev/) compliance). Dependency bot PRs receive additional safety review before approval. Enforced by [Allstar](https://github.com/ossf/allstar/)
diff --git a/extensions/git-id-switcher/CHANGELOG.md b/extensions/git-id-switcher/CHANGELOG.md
index b810bd25..68efec20 100644
--- a/extensions/git-id-switcher/CHANGELOG.md
+++ b/extensions/git-id-switcher/CHANGELOG.md
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.19.5] - 2026-05-09
+
+### Added
+
+- **Gitleaks secret detection**: Added gitleaks v8.30.1 for multi-layered secret scanning via pre-commit hook and CI job with SHA256 checksum verification
+- **Gitleaks badge**: Added Gitleaks badge to the root README, extension README, and all 26 localized READMEs
+
+### Changed
+
+- **.gitignore security baseline**: Rewrote .gitignore with comprehensive secret insurance patterns (`**/` prefix, credential files, key files) and project-specific negation for extension `.vscode/` dev configs
+- **Workflow hardening**: Added `persist-credentials: false` to all 8 checkout steps in `security.yml`
+
## [0.19.4] - 2026-04-16
### Removed
diff --git a/extensions/git-id-switcher/README.md b/extensions/git-id-switcher/README.md
index d6f0cc1d..b930bb90 100644
--- a/extensions/git-id-switcher/README.md
+++ b/extensions/git-id-switcher/README.md
@@ -25,6 +25,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/ain/README.md b/extensions/git-id-switcher/docs/i18n/ain/README.md
index 53825cfb..c6dacf6b 100644
--- a/extensions/git-id-switcher/docs/i18n/ain/README.md
+++ b/extensions/git-id-switcher/docs/i18n/ain/README.md
@@ -43,6 +43,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/bg/README.md b/extensions/git-id-switcher/docs/i18n/bg/README.md
index b0924113..506d7429 100644
--- a/extensions/git-id-switcher/docs/i18n/bg/README.md
+++ b/extensions/git-id-switcher/docs/i18n/bg/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/cs/README.md b/extensions/git-id-switcher/docs/i18n/cs/README.md
index a287312e..489556ed 100644
--- a/extensions/git-id-switcher/docs/i18n/cs/README.md
+++ b/extensions/git-id-switcher/docs/i18n/cs/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/de/README.md b/extensions/git-id-switcher/docs/i18n/de/README.md
index 18560573..399dee43 100644
--- a/extensions/git-id-switcher/docs/i18n/de/README.md
+++ b/extensions/git-id-switcher/docs/i18n/de/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/en/README.md b/extensions/git-id-switcher/docs/i18n/en/README.md
index 03288a25..dbf11e75 100644
--- a/extensions/git-id-switcher/docs/i18n/en/README.md
+++ b/extensions/git-id-switcher/docs/i18n/en/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/eo/README.md b/extensions/git-id-switcher/docs/i18n/eo/README.md
index 03f5ceea..3d556ffb 100644
--- a/extensions/git-id-switcher/docs/i18n/eo/README.md
+++ b/extensions/git-id-switcher/docs/i18n/eo/README.md
@@ -26,6 +26,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/es/README.md b/extensions/git-id-switcher/docs/i18n/es/README.md
index decab6e3..46da25ce 100644
--- a/extensions/git-id-switcher/docs/i18n/es/README.md
+++ b/extensions/git-id-switcher/docs/i18n/es/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/fr/README.md b/extensions/git-id-switcher/docs/i18n/fr/README.md
index 610a42a4..37747c6f 100644
--- a/extensions/git-id-switcher/docs/i18n/fr/README.md
+++ b/extensions/git-id-switcher/docs/i18n/fr/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/haw/README.md b/extensions/git-id-switcher/docs/i18n/haw/README.md
index 237fe763..5a38c6b2 100644
--- a/extensions/git-id-switcher/docs/i18n/haw/README.md
+++ b/extensions/git-id-switcher/docs/i18n/haw/README.md
@@ -41,6 +41,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/hu/README.md b/extensions/git-id-switcher/docs/i18n/hu/README.md
index de8bfda5..283e8e00 100644
--- a/extensions/git-id-switcher/docs/i18n/hu/README.md
+++ b/extensions/git-id-switcher/docs/i18n/hu/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/it/README.md b/extensions/git-id-switcher/docs/i18n/it/README.md
index 781455fe..75f5d536 100644
--- a/extensions/git-id-switcher/docs/i18n/it/README.md
+++ b/extensions/git-id-switcher/docs/i18n/it/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/ja/README.md b/extensions/git-id-switcher/docs/i18n/ja/README.md
index 5e7ec852..28126df2 100644
--- a/extensions/git-id-switcher/docs/i18n/ja/README.md
+++ b/extensions/git-id-switcher/docs/i18n/ja/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/ko/README.md b/extensions/git-id-switcher/docs/i18n/ko/README.md
index 5e0faf08..a2930f9e 100644
--- a/extensions/git-id-switcher/docs/i18n/ko/README.md
+++ b/extensions/git-id-switcher/docs/i18n/ko/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/pl/README.md b/extensions/git-id-switcher/docs/i18n/pl/README.md
index dd8995aa..0e1f2fb1 100644
--- a/extensions/git-id-switcher/docs/i18n/pl/README.md
+++ b/extensions/git-id-switcher/docs/i18n/pl/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/pt-BR/README.md b/extensions/git-id-switcher/docs/i18n/pt-BR/README.md
index f9865d6e..423d159f 100644
--- a/extensions/git-id-switcher/docs/i18n/pt-BR/README.md
+++ b/extensions/git-id-switcher/docs/i18n/pt-BR/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/ru/README.md b/extensions/git-id-switcher/docs/i18n/ru/README.md
index 0d04af15..d42cca49 100644
--- a/extensions/git-id-switcher/docs/i18n/ru/README.md
+++ b/extensions/git-id-switcher/docs/i18n/ru/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/ryu/README.md b/extensions/git-id-switcher/docs/i18n/ryu/README.md
index 2a11c060..12cefc42 100644
--- a/extensions/git-id-switcher/docs/i18n/ryu/README.md
+++ b/extensions/git-id-switcher/docs/i18n/ryu/README.md
@@ -43,6 +43,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/tlh/README.md b/extensions/git-id-switcher/docs/i18n/tlh/README.md
index a9f3657e..a70843a6 100644
--- a/extensions/git-id-switcher/docs/i18n/tlh/README.md
+++ b/extensions/git-id-switcher/docs/i18n/tlh/README.md
@@ -27,6 +27,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/tok/README.md b/extensions/git-id-switcher/docs/i18n/tok/README.md
index 6ebf6268..fc9cd7a8 100644
--- a/extensions/git-id-switcher/docs/i18n/tok/README.md
+++ b/extensions/git-id-switcher/docs/i18n/tok/README.md
@@ -27,6 +27,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/tr/README.md b/extensions/git-id-switcher/docs/i18n/tr/README.md
index d5e54787..0bb7f8a2 100644
--- a/extensions/git-id-switcher/docs/i18n/tr/README.md
+++ b/extensions/git-id-switcher/docs/i18n/tr/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/uk/README.md b/extensions/git-id-switcher/docs/i18n/uk/README.md
index 566f6aac..de269ebf 100644
--- a/extensions/git-id-switcher/docs/i18n/uk/README.md
+++ b/extensions/git-id-switcher/docs/i18n/uk/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/x-lolcat/README.md b/extensions/git-id-switcher/docs/i18n/x-lolcat/README.md
index 352e819c..5e5447b2 100644
--- a/extensions/git-id-switcher/docs/i18n/x-lolcat/README.md
+++ b/extensions/git-id-switcher/docs/i18n/x-lolcat/README.md
@@ -25,6 +25,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/x-pirate/README.md b/extensions/git-id-switcher/docs/i18n/x-pirate/README.md
index ddefa94f..95c2f0bd 100644
--- a/extensions/git-id-switcher/docs/i18n/x-pirate/README.md
+++ b/extensions/git-id-switcher/docs/i18n/x-pirate/README.md
@@ -25,6 +25,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/x-shakespeare/README.md b/extensions/git-id-switcher/docs/i18n/x-shakespeare/README.md
index 85f8960f..d7e31af5 100644
--- a/extensions/git-id-switcher/docs/i18n/x-shakespeare/README.md
+++ b/extensions/git-id-switcher/docs/i18n/x-shakespeare/README.md
@@ -26,6 +26,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/zh-CN/README.md b/extensions/git-id-switcher/docs/i18n/zh-CN/README.md
index 2496f76f..73520930 100644
--- a/extensions/git-id-switcher/docs/i18n/zh-CN/README.md
+++ b/extensions/git-id-switcher/docs/i18n/zh-CN/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/docs/i18n/zh-TW/README.md b/extensions/git-id-switcher/docs/i18n/zh-TW/README.md
index 262d5536..71674996 100644
--- a/extensions/git-id-switcher/docs/i18n/zh-TW/README.md
+++ b/extensions/git-id-switcher/docs/i18n/zh-TW/README.md
@@ -21,6 +21,7 @@
+
diff --git a/extensions/git-id-switcher/package.json b/extensions/git-id-switcher/package.json
index a09b1d7c..d28f3a1e 100644
--- a/extensions/git-id-switcher/package.json
+++ b/extensions/git-id-switcher/package.json
@@ -2,7 +2,7 @@
"name": "git-id-switcher",
"displayName": "%extension.displayName%",
"description": "%extension.description%",
- "version": "0.19.4",
+ "version": "0.19.5",
"publisher": "nullvariant",
"icon": "images/icon.png",
"engines": {
diff --git a/extensions/git-id-switcher/src/ui/documentationInternal.ts b/extensions/git-id-switcher/src/ui/documentationInternal.ts
index 1ec898ca..e5969187 100644
--- a/extensions/git-id-switcher/src/ui/documentationInternal.ts
+++ b/extensions/git-id-switcher/src/ui/documentationInternal.ts
@@ -33,44 +33,44 @@ export const DOCUMENT_HASHES: Record = {
'AGENTS.md': 'c4918e12fd7900bfc41e708992ebc4b7326600ce9327e8020a986fe4dd807f8d',
'CODE_OF_CONDUCT.md': 'a0e9cb2e004663cdedef4e1adc0e429417ccfc479e367cbc17b869f62ae759d2',
'CONTRIBUTING.md': 'ed4d1f391ffe04e3031dfc9f16fd8fd5dcd54ba23af3b3202c07adac5ba23da7',
- 'extensions/git-id-switcher/CHANGELOG.md': '02f268557fbdd94f4a94f84192e0b5db11dcad83406e3f8bc38975bddc7dc7c8',
+ 'extensions/git-id-switcher/CHANGELOG.md': 'df6ccd555473bdab19e6e3b278af41d32f9827ea0284655f2913e4c51d7f87cf',
'extensions/git-id-switcher/docs/ARCHITECTURE.md': 'd5d879d988054d208739497962a0f937f2f21bdaab51776c4e8363cba99d634c',
'extensions/git-id-switcher/docs/CONTRIBUTING.md': '7d6ad2bc4d8c838790754cb9df848cb65f9fdce7e1a13e5c965b83a3d5b6378c',
'extensions/git-id-switcher/docs/DESIGN_PHILOSOPHY.md': 'f9718b61ac161cb466dbc76845688e7acacf4e5fdc4b8b9553269dba4a094f6b',
- 'extensions/git-id-switcher/docs/i18n/ain/README.md': '0c638970cc577a25b980041fd0c5f9b79d39208bb69a6cc00a11cc6d4d83b2d8',
- 'extensions/git-id-switcher/docs/i18n/bg/README.md': '63cb98db0328666baf239eda99dd642cd53e68a2d78030a335683ce40c6a527e',
- 'extensions/git-id-switcher/docs/i18n/cs/README.md': '07e1054e61d43b41c7841ef46bc1118249e1c6885d5f4f349d242c3addaf8d2e',
- 'extensions/git-id-switcher/docs/i18n/de/README.md': '1c63e2de0e1000ffbdb73a7e557e1fd1409f2a9465e413b8f484c1fe798918aa',
- 'extensions/git-id-switcher/docs/i18n/en/README.md': '2ac255601a854e3915d5f03b30bec1b8ea9ebf9d44acabfe298e1ef76892d74e',
- 'extensions/git-id-switcher/docs/i18n/eo/README.md': '643d73b77910c3eb8d3ed25a762bed14d856701f420a71c0bfedcc61afc17697',
- 'extensions/git-id-switcher/docs/i18n/es/README.md': '67b6cc576fee5aa30831e15223de832f5b7961764d47e645ed8bfd6166b9e862',
- 'extensions/git-id-switcher/docs/i18n/fr/README.md': '0efd22ac58d0fa2cac8ed7e4e820bdceb48de82465a9aa0023fdb1321fe29cea',
- 'extensions/git-id-switcher/docs/i18n/haw/README.md': '80738803e9f673a00815921896cfd305a4378d04405e13bdc0cd8843523d372b',
- 'extensions/git-id-switcher/docs/i18n/hu/README.md': 'ec1fd0786deb9e9dfde06df11ad8fc93320bd669489e124aaa09ccb77a571d41',
- 'extensions/git-id-switcher/docs/i18n/it/README.md': '5efa2399a110b2f35ebb5484c6daa3c7bc2a29bb1a2deda305b44a35e2948aec',
- 'extensions/git-id-switcher/docs/i18n/ja/README.md': 'dbb76d355ac7d0fdf13a4b5c10cd10a4f255297ddddee849d22395dd23e773b6',
- 'extensions/git-id-switcher/docs/i18n/ko/README.md': 'ed76c11cfe55c8cf916dcf4ee0536c5795e9958954ddad3c5be6b0261abd8308',
- 'extensions/git-id-switcher/docs/i18n/pl/README.md': '6482aca9402770730edb0fb9bdb4d12239026c225e291932fea62fe2612308f9',
- 'extensions/git-id-switcher/docs/i18n/pt-BR/README.md': '12bef72da576bd4fa97394f08a095a4ae62e304ae7546cb3d21948580f5770a6',
- 'extensions/git-id-switcher/docs/i18n/ru/README.md': '7b13bdd4012e64768ab466a12756097655a9aad13e989bfa2f2691a4957cfd52',
- 'extensions/git-id-switcher/docs/i18n/ryu/README.md': '471c4be0dd95e28f5cb6edd24aff4656133c803572ae45da63a1a5d2d3188914',
- 'extensions/git-id-switcher/docs/i18n/tlh/README.md': '475e34b837dec6ba19216892dbf55700852f870c0989659d6e1646ccfd8dbd00',
- 'extensions/git-id-switcher/docs/i18n/tok/README.md': 'fea76a3e2615d9b2ec265e0f2e3ba56106c79a01f855cac96670c1b9e49ed0f2',
- 'extensions/git-id-switcher/docs/i18n/tr/README.md': 'e57bc6a550ccc35e155d4f40a51d4714d802dffa0b33ea372af3005a551aa5f8',
- 'extensions/git-id-switcher/docs/i18n/uk/README.md': '421c7a43bbbadbb8f936e0328ba58a18fdca26aac2d60f84d26e050ad6d631c4',
- 'extensions/git-id-switcher/docs/i18n/x-lolcat/README.md': '2e24b3deb949fdc0de74a09d5ddee9c3f142d23e6f286213e4272f112bbc361b',
- 'extensions/git-id-switcher/docs/i18n/x-pirate/README.md': 'c3d91cd293dc07dac59166bd4f6cd2d37747e4c1ad3deb1067947601b247a01a',
- 'extensions/git-id-switcher/docs/i18n/x-shakespeare/README.md': '2753c710e867542c7840070377946e3345f88aec211053a628033c5cd5599be8',
- 'extensions/git-id-switcher/docs/i18n/zh-CN/README.md': '1086c9e40ada92c728e2bb0adc0373f322a29d227943a110b4e307df2c42673f',
- 'extensions/git-id-switcher/docs/i18n/zh-TW/README.md': 'c3ea971daaaf1ad2a956ea5559d92b5b201c6cac11d5935d7fff43a87522f21b',
+ 'extensions/git-id-switcher/docs/i18n/ain/README.md': '1527fc1e93751169f6c7d58b1996c204c5eb01262f01f2005e671b637dd5ce42',
+ 'extensions/git-id-switcher/docs/i18n/bg/README.md': '0f7252154dfef22384a61998365285c922491cd234bb8bec5c567395f933249c',
+ 'extensions/git-id-switcher/docs/i18n/cs/README.md': '9d2d3d4955c27b6bcd61a1fcefe121300380846ba4548712da6ba22a51e9f088',
+ 'extensions/git-id-switcher/docs/i18n/de/README.md': '89b328366a7d64aefc263c11506b7afd413e882ba6c679636e968326994eaa08',
+ 'extensions/git-id-switcher/docs/i18n/en/README.md': 'e4099eac97c476a9c699f833b13ef0562ef82b106eea2366c0734ad972f284e8',
+ 'extensions/git-id-switcher/docs/i18n/eo/README.md': 'c2b33c2568c675feb0f8441378802bacdb0bd3423812cffa6e7c0d2d84a1cef9',
+ 'extensions/git-id-switcher/docs/i18n/es/README.md': '320d4480ec7e626c64a1f676d1d7c8fe6b978cf2e3f9fd38612e403a561fee1c',
+ 'extensions/git-id-switcher/docs/i18n/fr/README.md': 'd15c2081a7d90f45303946d9a4b2c10eb79a02a56307268b105b3159a1174cc8',
+ 'extensions/git-id-switcher/docs/i18n/haw/README.md': 'c8fef38ef3a675d5cda4702d297a6686e84bfaee46aa5ede17d6c433e6db483b',
+ 'extensions/git-id-switcher/docs/i18n/hu/README.md': '19a33f9cd4d1012d26a5c600d42903be193d62e16dc761a9eca951181d1a0371',
+ 'extensions/git-id-switcher/docs/i18n/it/README.md': '6b1676892e7c159f3d6c3b92e32fcb6fa6be457fd0dbe2203549264d9138094a',
+ 'extensions/git-id-switcher/docs/i18n/ja/README.md': 'e1ba11114e41f1112cdd0eef5b93ceeae777a36894bddca0f53a6823ebaeb3a5',
+ 'extensions/git-id-switcher/docs/i18n/ko/README.md': '446095c471d27fdda5ec27e60c3d1d4cba54399f0c13e481ea07ff144553533d',
+ 'extensions/git-id-switcher/docs/i18n/pl/README.md': '48e82820671610bd3983c563a1f0cb57d41902a7ed3c97b837be44cb01c77602',
+ 'extensions/git-id-switcher/docs/i18n/pt-BR/README.md': 'b1f185906a2b1751845116e784b8fcd5f68875de5d9e86c8eeaa6fa33018639e',
+ 'extensions/git-id-switcher/docs/i18n/ru/README.md': '73069e6538bf8335853960b424356d82c2f67997f8d9e6a697513b60c69f0a52',
+ 'extensions/git-id-switcher/docs/i18n/ryu/README.md': '951af5978558b838e5f7de9d9b93371355210d6d045987503cc3b1cbbdaf679a',
+ 'extensions/git-id-switcher/docs/i18n/tlh/README.md': '7e84655f015086812a43557ea6721988d473ef389cec49fb1488b71902e58c8a',
+ 'extensions/git-id-switcher/docs/i18n/tok/README.md': '3e92636a52dbc6c24bdff7e4712bfae41f58ce3116cb95b87e84d2f7c4bf38e9',
+ 'extensions/git-id-switcher/docs/i18n/tr/README.md': 'a5e7730f994d0b188a46136a70d471be67620b0f3a5b7bdc5522ecd0a48e453a',
+ 'extensions/git-id-switcher/docs/i18n/uk/README.md': 'aba6d008621123ee7ba989df6bf28c493c607bcc5cb43b9b064bee6dd137b7e2',
+ 'extensions/git-id-switcher/docs/i18n/x-lolcat/README.md': '76a9f0da6d547518267bf547b93ef230da2b610aeb55d2f05acfce15bfaa3f2b',
+ 'extensions/git-id-switcher/docs/i18n/x-pirate/README.md': 'ba6e7adcb3b2970fca2d76cf73d37df0054f446d51659024196849a6773491e9',
+ 'extensions/git-id-switcher/docs/i18n/x-shakespeare/README.md': '0c52644c0e6e206f329bd81763fa52a59d28fd7feb8a2af30742d860201aafc1',
+ 'extensions/git-id-switcher/docs/i18n/zh-CN/README.md': '158f5ce8a505ac3bacd796235cbb84526c62f6e1495cdf5345d3b5437185e476',
+ 'extensions/git-id-switcher/docs/i18n/zh-TW/README.md': '4f90deffda2848b4e1d9d069bc5127be314f18b7abc843a134babd4fe15ed601',
'extensions/git-id-switcher/docs/LANGUAGES.md': 'da50222843094479fd826837038dd62d619ecbc87d67f0b2c299973587abe8e9',
'extensions/git-id-switcher/docs/THREAT_MODEL.md': '1947cc3c940b872641a8f291bc7ad52eac02df1e91f8b91f67588149bc6fa6f7',
'extensions/git-id-switcher/LICENSE': 'e2383295422577622666fa2ff00e5f03abd8f2772d74cca5d5443020ab23d03d',
- 'extensions/git-id-switcher/README.md': 'd34dfb2a9ce27f3008a628105f9d355c84c6e827c094aa8d175bf9b60cfb4508',
+ 'extensions/git-id-switcher/README.md': '1af546f7162c7447c3decfc36a9c78486cc8d649ea0bb2789912c482ac4ccc4f',
'GOVERNANCE.md': '806cf32ec9fe9fd964a782927f8eaa7696d408c42d31f554eebd6755bd911c71',
'LICENSE': 'e2383295422577622666fa2ff00e5f03abd8f2772d74cca5d5443020ab23d03d',
- 'README.md': '1cac085ef93a167dc1dbda72c535050fbf4ce3041cb73f6f25ddd0ce9371747c',
- 'SECURITY.md': '7d2eaaf610c99a00d76e83c505354dd91841bbe842ea19f47da6e0220fc4e2c5',
+ 'README.md': 'd90d96a773889c52a2342d343201df2200fa49f214128a457fd84e60bd35454b',
+ 'SECURITY.md': '7a077ab0a536586d7e14c288a1d776c307906b2347c9fc4072c4ffb40d4254eb',
};
/** Supported locales for documentation */