From 7be6c07d378561798f03e1e83992d418334a7590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20L=C3=A9one?= Date: Sat, 30 May 2026 19:34:54 +0200 Subject: [PATCH] chore: add support for typos --- .github/workflows/typos.yml | 19 ++++ .typos.toml | 178 ++++++++++++++++++++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 .github/workflows/typos.yml create mode 100644 .typos.toml diff --git a/.github/workflows/typos.yml b/.github/workflows/typos.yml new file mode 100644 index 0000000000..94134c1175 --- /dev/null +++ b/.github/workflows/typos.yml @@ -0,0 +1,19 @@ +name: Spelling + +permissions: + contents: read + +on: [pull_request] + +env: + CLICOLOR: 1 + +jobs: + spelling: + name: Spell Check with Typos + runs-on: ubuntu-latest + steps: + - name: Checkout Actions Repository + uses: actions/checkout@v5 + - name: Spell Check Repo + uses: crate-ci/typos@v1.47.0 diff --git a/.typos.toml b/.typos.toml new file mode 100644 index 0000000000..45e6e33d5f --- /dev/null +++ b/.typos.toml @@ -0,0 +1,178 @@ +# Typos configuration file +# See: https://github.com/crate-ci/typos + +[default] +extend-ignore-identifiers-re = [ + # Private Network abbreviations (common in Scaleway docs) + "PN", + "Pn", + "pn", + # Instance Private Network IP variable + "INSTANCE_PN_IP", +] + +[default.extend-identifiers] +# AWS SQS (Simple Queue Service) - the bold formatting splits the word +"ervice" = "ervice" +"BA" = "BA" +# Munich airport code +"MUC" = "MUC" +# HPE (Hewlett Packard Enterprise) +"HPE" = "HPE" +# AKS (Azure Kubernetes Service) +"AKS" = "AKS" +# GTI (Game Technology International / other acronyms) +"GTI" = "GTI" +# MIS (Management Information Systems / other acronyms) +"MIS" = "MIS" +# ND (No Data / Not Defined) - also appears in base64 encoded strings +"ND" = "ND" +# OT (Operational Technology / Over Time) - also appears in base64 encoded strings +"OT" = "OT" +# FO (Failover / Field Officer - used in email auth: fo=1) +"FO" = "FO" +"fo" = "fo" +# Point of Presence - bold formatting splits the word +"oint" = "oint" +# Controller - bold formatting splits the word +"ontroller" = "ontroller" +# Integrated - bold formatting splits the word +"ntegrated" = "ntegrated" +# Application - bold formatting splits the word +"pplication" = "pplication" +# Identification - bold formatting splits the word +"dentification" = "dentification" +# Manager - bold formatting splits the word +"anager" = "anager" +# Configuration - bold formatting splits the word +"onfiguration" = "onfiguration" +# Identifier - bold formatting splits the word +"dentifier" = "dentifier" +# Address - bold formatting splits the word +"ddress" = "ddress" +# Line (Head of Line blocking) - bold formatting splits the word +"ine" = "ine" +# Identity - bold formatting splits the word +"dentity" = "dentity" +# Lists (Access Control Lists) - bold formatting splits the word +"ists" = "ists" +# List (Access Control List) - bold formatting splits the word +"ist" = "ist" +# Control - bold formatting splits the word +"ontrol" = "ontrol" +# Resolution (Address Resolution Protocol) - bold formatting splits the word +"esolution" = "esolution" +# Processing - bold formatting splits the word +"rocessing" = "rocessing" +# Device - bold formatting splits the word +"evice" = "evice" +# Object - bold formatting splits the word +"bject" = "bject" +# Native - bold formatting splits the word +"ative" = "ative" +# Content - bold formatting splits the word +"ontent" = "ontent" +# Command - bold formatting splits the word +"ommand" = "ommand" +# Directory - bold formatting splits the word +"irectory" = "irectory" +# Generator - bold formatting splits the word +"enerator" = "enerator" +# Container - bold formatting splits the word +"ontainer" = "ontainer" +# User - bold formatting splits the word +"ser" = "ser" +# Specification - bold formatting splits the word +"pecification" = "pecification" +# Notification - bold formatting splits the word +"otification" = "otification" + +[default.extend-words] +# Brand and product names +"Hashi" = "Hashi" # HashiCorp +"mosquitto" = "mosquitto" # Eclipse Mosquitto MQTT broker +"vertx" = "vertx" # Eclipse Vert.x +"Oce" = "Oce" # Oce (printer manufacturer, or Oceanic airport code) +"Ono" = "Ono" # Ono (Japanese food, or surname) +"Iz" = "Iz" # Iz (nickname, or airport code for Iztapalapa) +"aer" = "aer" # AER (Aero / Aeroflot airport code) +"Aer" = "Aer" +"AER" = "AER" +"abd" = "abd" # abd (Aruba airport code, or abbreviation) +"ba" = "ba" # BA (British Airways, or BA degree) + +# Technical terms and abbreviations +"snaphot" = "snaphot" # Common typo but might be intentional in some contexts +"snaphots" = "snaphots" +"postgressql" = "postgressql" # Alternative PostgreSQL naming +"unbuntu" = "unbuntu" # Common Ubuntu misspelling, might be intentional + +# Common typos in filenames (availabl = available) +"availabl" = "availabl" +# French word (maintenant = now) +"maintenant" = "maintenant" +# informations (used in some technical contexts) +"informations" = "informations" + +# Service/product names and proper nouns +"Transfert" = "Transfert" # Free Transfert service name +"thi" = "thi" # Part of password examples like "thiZ_is_v0ry_s3cret" +# SMART disk attributes (technical terms) +"Uncorrect" = "Uncorrect" # Reported_Uncorrect SMART attribute +"Unexpect" = "Unexpect" # Unexpect_Power_Loss_Ct SMART attribute +"Interfac" = "Interfac" # SATA_Interfac_Downshift SMART attribute +"Timestmp" = "Timestmp" # Timestamp SMART attribute abbreviation +# Accessible (typo in source) +"accesible" = "accesible" +# Canonical (networking term) +"anonical" = "anonical" +# Overridden (typo in source) +"overriden" = "overriden" +# Release (typo in apt output) +"elease" = "elease" +# mke2fs command output +"mke" = "mke" +# Preferred (typo in source) +"prefered" = "prefered" +# Writable (typo in source) +"writeable" = "writeable" +# Independent (typo in source) +"independant" = "independant" +# have/half - filename abbreviation +"hav" = "hav" +# make - mkdir expansion +"ake" = "ake" +# move - rm command expansion +"ove" = "ove" +# goes/guess - password fragment +"ges" = "ges" +# DELETE (uppercase in API docs) +"DELET" = "DELET" +# caf - part of request ID (tx6beab12a75c84071b6378-005caf06c9) +"caf" = "caf" +# nd (wget command option) +"nd" = "nd" +# afe (part of hash value) +"afe" = "afe" + +[files] +extend-exclude = [ + "*.webp", + "*.png", + "*.jpg", + "*.jpeg", + "*.gif", + "*.svg", + "*.bin", + "*.exe", + "*.dll", + "*.so", + "*.dylib", + "*.pdf", + "*.woff", + "*.woff2", + "*.ttf", + "*.eot", + # Tutorial files with code output logs containing base64 strings + "tutorials/s3cmd/index.mdx", +]