diff --git a/.github/cspell/cspell.json b/.github/cspell/cspell.json new file mode 100644 index 00000000..ea6e4a38 --- /dev/null +++ b/.github/cspell/cspell.json @@ -0,0 +1,26 @@ +{ + "version": "0.2", + "language": "en", + "allowCompoundWords": true, + "dictionaries": ["project-words", "project-names"], + "words": [], + "ignoreWords": [], + "ignorePaths": [ + "**/build/**", + "**/scripts/**", + "**/*.css", + "**/config/locales/**" + ], + "dictionaryDefinitions":[ + { + "name": "project-words", + "path": "./project-words.txt", + "addWords": true + }, + { + "name": "project-names", + "path": "./project-names.txt", + "addWords": true + } + ], +} \ No newline at end of file diff --git a/.github/cspell/project-names.txt b/.github/cspell/project-names.txt new file mode 100644 index 00000000..bd4c0bcd --- /dev/null +++ b/.github/cspell/project-names.txt @@ -0,0 +1,18 @@ +Brodjieski +CNSS +Colvin +DISA +Ekkehard +Elyse +Escobar +Gapinski +Gendler +Glemza +Golbig +Heiserman +Jamf +Kegerreis +LANL +Mahlman +PiƱeyro +Stamerjohann diff --git a/.github/cspell/project-words.txt b/.github/cspell/project-words.txt new file mode 100644 index 00000000..03567e13 --- /dev/null +++ b/.github/cspell/project-words.txt @@ -0,0 +1,288 @@ +addressbook +adminhostinfo +adoc +adoc +ahlt +AIOS +airprint +alacarte +allowi +amfi +Anyof +apachectl +apfs +APFS +apos +APPL +appleid +applepay +applicationaccess +appstore +asciidoctor +aslmanager +auditd +AUDITD +auditreduce +authorizationdb +autologin +autologoff +autologout +blankbd +blankcd +blankdvd +bluray +bootout +byoad +caldav +carddav +CCID +ccis +CERTDOMAIN +certificatetransparency +channeltimeout +chgrp +cisv +clientalivecountmax +clientaliveinterval +cmmc +cnssi +cnssi +collab +COMSEC +conferenceroomdisplay +configarray +configfiles +configurationprofile +configurator +contentfilter +controlcenter +coreservices +cref +csrutil +cupsctl +declarationtype +deidentification +desktopservices +destroyfvkeyonstandby +disa +diskmanagement +diskutil +displaysleep +docsub +doctitle +docver +dontAllowFDEDisable +drwx +drwxr +dseditgroup +dslocal +dvdram +ecdh +elif +ENDCONFIG +energysaver +esac +esim +EXEMPTGROUP +exfiltration +facetime +familycontrols +fdesetup +filevault +fips +FIPS +firmwarepasswd +FISMA +FPKI +garageband +genmoji +Genmoji +getaccountpolicies +getline +getnetworktimeserver +GPOS +gsub +harddisk +hibernatemode +highstandbythreshold +hmac +Hostbased +iacontrols +ibeacon +idprefix +idseparator +ifdef +ifndef +IMAP +IMAPS +ioreg +ISSO +kbdinteractiveauthentication +kcminit +labl +libexec +libraryvalidation +listallnetworkservices +locationd +locationmenu +Lockdown +logingracetime +loginitems +loginwindow +Loginwindow +loginwindowtext +lpadmin +lpstat +macsec +mcxloginscripts +mcxrefresh +mdmclient +minfree +Mirroing +mobileconfig +mobiledevice +motionapp +mscp +multifactor +Multifactor +networksetup +networkusagerules +newsyslog +nfsd +nistp +nofooter +nologin +nonlocal +noout +notenforcegroup +notificationsettings +notitle +nsmap +ntlm +nvram +OCSP +opendirectory +OPORDs +opticid +osascript +OSCP +osxserver +OTAPKI +passwordauthentication +passwordpolicy +pathlist +pdflogo +PEAP +permitrootlogin +persourcepenalties +pfctl +pgrep +pkcs +pkcs +PKINIT +plutil +pmset +powernap +ppid +PPPC +praudit +Preboot +Prefs +privs +psso +PSSO +pwpolicy +pydantic +pyyaml +reauthentication +Remediator +rootok +rstrip +rtfd +ruser +sandboxing +scap +scep +screencapture +screensharing +sectnums +serveralivecountmax +serveraliveinterval +setaccountpolicies +setallowsigned +setallowsignedapp +setglobalstate +setloggingopt +setnetworkserviceenabled +setpasswd +setpolicy +setremoteappleevents +setremotelogin +shareddefaults +shareddeviceconfiguration +sharingd +shellcommand +SHOWFULLNAME +SIPRNET +siri +Siri +smartcard +Smartcard +smartcards +Smartcards +SMIME +sntp +socketfilterfw +softwareupdate +spctl +spoofable +SSDP +standbydelayhigh +standbydelaylow +startupdisk +stig +stylesdir +subscribedcalendar +sysadminctl +syscall +SYSCALL +syspolicy +systemmigration +systempolicy +systempreferences +systemsettings +systemsetup +Systemsetup +systemuiserver +textutil +tftpd +themesdir +timemachine +toclevels +touchid +touristd +tvremote +UAMDM +uiagent +ulify +universalaccess +unusedconnectiontimeout +uucp +UUCP +uwtmp +venv +visionos +vulndiscussion +waivable +webcontent +womp +wvous +xattrname +xccdf +XCCDF +xlwt +xprotect +Xprotect +xrefstyle +xsan +YARA diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml new file mode 100644 index 00000000..29b78264 --- /dev/null +++ b/.github/workflows/spellcheck.yml @@ -0,0 +1,38 @@ +name: Spell Check + +on: + push: + branches-ignore: + - main + pull_request: + branches-ignore: + - main + +jobs: + spellcheck: + runs-on: ubuntu-latest + + steps: + # Checkout the branch that triggered the workflow + - name: Checkout branch + uses: actions/checkout@v3 + + # Pull latest cspell files from main to keep them in sync + - name: Pull cspell config and dictionary from main + run: | + git fetch origin main + git checkout origin/main -- .github/cspell/ + + # Setup Node 20+ for cspell + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: '20' + + # Install cspell globally + - name: Install cspell + run: npm install -g cspell@latest + + # Run spell check + - name: Run cspell + run: npx cspell --no-progress --no-summary --config .github/cspell/cspell.json "**"