Matiash Kodintsev il y a 3 semaines
Parent
commit
8b602f07d5
42 fichiers modifiés avec 0 ajouts et 3210 suppressions
  1. 0 12
      .devcontainer/Dockerfile
  2. 0 13
      .devcontainer/README.md
  3. 0 32
      .devcontainer/devcontainer.json
  4. 0 26
      .devcontainer/docker-compose.yaml
  5. 0 9
      .devcontainer/poststart.sh
  6. 0 3
      .github/FUNDING.yml
  7. 0 60
      .github/ISSUE_TEMPLATE/bug_report.yaml
  8. 0 5
      .github/ISSUE_TEMPLATE/config.yml
  9. 0 39
      .github/ISSUE_TEMPLATE/feature_request.yaml
  10. 0 12
      .github/PULL_REQUEST_TEMPLATE.md
  11. 0 17
      .github/actions/spelling/README.md
  12. 0 28
      .github/actions/spelling/advice.md
  13. 0 28
      .github/actions/spelling/allow.txt
  14. 0 779
      .github/actions/spelling/candidate.patterns
  15. 0 100
      .github/actions/spelling/excludes.txt
  16. 0 421
      .github/actions/spelling/expect.txt
  17. 0 463
      .github/actions/spelling/line_forbidden.patterns
  18. 0 138
      .github/actions/spelling/patterns.txt
  19. 0 23
      .github/actions/spelling/reject.txt
  20. 0 34
      .github/dependabot.yml
  21. 0 72
      .github/workflows/asset-verification.yml
  22. 0 9
      .github/workflows/dco-check.yaml
  23. 0 58
      .github/workflows/docker-pr.yml
  24. 0 75
      .github/workflows/docker.yml
  25. 0 67
      .github/workflows/docs-deploy.yml
  26. 0 42
      .github/workflows/docs-test.yml
  27. 0 76
      .github/workflows/go-mod-tidy-check.yml
  28. 0 64
      .github/workflows/go.yml
  29. 0 19
      .github/workflows/lint-pr-title.yaml
  30. 0 53
      .github/workflows/package-builds-stable.yml
  31. 0 47
      .github/workflows/package-builds-unstable.yml
  32. 0 64
      .github/workflows/smoke-tests.yml
  33. 0 118
      .github/workflows/spelling.yml
  34. 0 37
      .github/workflows/ssh-ci-runner-cron.yml
  35. 0 45
      .github/workflows/ssh-ci.yml
  36. 0 35
      .github/workflows/zizmor.yml
  37. 0 5
      .github/zizmor.yml
  38. 0 8
      .husky/commit-msg
  39. 0 2
      .husky/pre-commit
  40. 0 11
      .vscode/extensions.json
  41. 0 27
      .vscode/launch.json
  42. 0 34
      .vscode/settings.json

+ 0 - 12
.devcontainer/Dockerfile

@@ -1,12 +0,0 @@
-FROM ghcr.io/xe/devcontainer-base/pre/go
-
-WORKDIR /app
-
-COPY go.mod go.sum package.json package-lock.json ./
-RUN apt-get update \
-  && apt-get -y install zstd brotli redis \
-  && mkdir -p /home/vscode/.local/share/fish \
-  && chown -R vscode:vscode /home/vscode/.local/share/fish \
-  && chown -R vscode:vscode /go
-
-CMD ["/usr/bin/sleep", "infinity"]

+ 0 - 13
.devcontainer/README.md

@@ -1,13 +0,0 @@
-# Anubis Dev Container
-
-Anubis offers a [development container](https://containers.dev/) image in order to make it easier to contribute to the project. This image is based on [Xe/devcontainer-base/go](https://github.com/Xe/devcontainer-base/tree/main/src/go), which is based on Debian Bookworm with the following customizations:
-
-- [Fish](https://fishshell.com/) as the shell complete with a custom theme
-- [Go](https://go.dev) at the most recent stable version
-- [Node.js](https://nodejs.org/en) at the most recent stable version
-- [Atuin](https://atuin.sh/) to sync shell history between your host OS and the development container
-- [Docker](https://docker.com) to manage and build Anubis container images from inside the development container
-- [Ko](https://ko.build/) to build production-ready Anubis container images
-- [Neovim](https://neovim.io/) for use with Git
-
-This development container is tested and known to work with [Visual Studio Code](https://code.visualstudio.com/). If you run into problems with it outside of VS Code, please file an issue and let us know what editor you are using.

+ 0 - 32
.devcontainer/devcontainer.json

@@ -1,32 +0,0 @@
-// For format details, see https://aka.ms/devcontainer.json. For config options, see the
-// README at: https://github.com/devcontainers/templates/tree/main/src/debian
-{
-  "name": "Dev",
-  "dockerComposeFile": ["./docker-compose.yaml"],
-  "service": "workspace",
-  "workspaceFolder": "/workspace/anubis",
-  "postStartCommand": "bash ./.devcontainer/poststart.sh",
-  "features": {
-    "ghcr.io/xe/devcontainer-features/ko:1.1.0": {},
-    "ghcr.io/devcontainers/features/github-cli:1": {}
-  },
-  "initializeCommand": "mkdir -p ${localEnv:HOME}${localEnv:USERPROFILE}/.local/share/atuin",
-  "customizations": {
-    "vscode": {
-      "extensions": [
-        "esbenp.prettier-vscode",
-        "ms-azuretools.vscode-containers",
-        "golang.go",
-        "unifiedjs.vscode-mdx",
-        "a-h.templ",
-        "redhat.vscode-yaml",
-        "streetsidesoftware.code-spell-checker"
-      ],
-      "settings": {
-        "chat.instructionsFilesLocations": {
-          ".github/copilot-instructions.md": true
-        }
-      }
-    }
-  }
-}

+ 0 - 26
.devcontainer/docker-compose.yaml

@@ -1,26 +0,0 @@
-services:
-  playwright:
-    image: mcr.microsoft.com/playwright:v1.52.0-noble
-    init: true
-    network_mode: service:workspace
-    command:
-      - /bin/sh
-      - -c
-      - npx -y playwright@1.52.0 run-server --port 9001 --host 0.0.0.0
-
-  valkey:
-    image: valkey/valkey:8
-    pull_policy: always
-
-  # VS Code workspace service
-  workspace:
-    image: ghcr.io/techarohq/anubis/devcontainer
-    build:
-      context: ..
-      dockerfile: .devcontainer/Dockerfile
-    volumes:
-      - ../:/workspace/anubis:cached
-    environment:
-      VALKEY_URL: redis://valkey:6379/0
-    #entrypoint: ["/usr/bin/sleep", "infinity"]
-    user: vscode

+ 0 - 9
.devcontainer/poststart.sh

@@ -1,9 +0,0 @@
-#!/usr/bin/env bash
-
-pwd
-
-npm ci &
-go mod download &
-go install ./utils/cmd/... &
-
-wait

+ 0 - 3
.github/FUNDING.yml

@@ -1,3 +0,0 @@
-patreon: cadey
-github: xe
-liberapay: Xe

+ 0 - 60
.github/ISSUE_TEMPLATE/bug_report.yaml

@@ -1,60 +0,0 @@
-name: Bug report
-description: Create a report to help us improve
-
-body:
-  - type: textarea
-    id: description-of-bug
-    attributes:
-      label: Describe the bug
-      description: A clear and concise description of what the bug is.
-      placeholder: I can reliably get an error when...
-    validations:
-      required: true
-
-  - type: textarea
-    id: steps-to-reproduce
-    attributes:
-      label: Steps to reproduce
-      description: |
-        Steps to reproduce the behavior.
-      placeholder: |
-        1. Go to the following url...
-        2. Click on...
-        3. You get the following error: ...
-    validations:
-      required: true
-
-  - type: textarea
-    id: expected-behavior
-    attributes:
-      label: Expected behavior
-      description: |
-        A clear and concise description of what you expected to happen.
-        Ideally also describe *why* you expect it to happen.
-      placeholder: Instead of displaying an error, it would...
-    validations:
-      required: true
-
-  - type: input
-    id: version-os
-    attributes:
-      label: Your operating system and its version.
-      description: Unsure? Visit https://whatsmyos.com/
-      placeholder: Android 13
-    validations:
-      required: true
-
-  - type: input
-    id: version-browser
-    attributes:
-      label: Your browser and its version.
-      description: Unsure? Visit https://www.whatsmybrowser.org/
-      placeholder: Firefox 142
-    validations:
-      required: true
-
-  - type: textarea
-    id: additional-context
-    attributes:
-      label: Additional context
-      description: Add any other context about the problem here.

+ 0 - 5
.github/ISSUE_TEMPLATE/config.yml

@@ -1,5 +0,0 @@
-blank_issues_enabled: false
-contact_links:
-  - name: Security
-    url: https://techaro.lol/contact
-    about: Do not file security reports here. Email security@techaro.lol.

+ 0 - 39
.github/ISSUE_TEMPLATE/feature_request.yaml

@@ -1,39 +0,0 @@
-name: Feature request
-description: Suggest an idea for this project
-title: "[Feature request] "
-
-body:
-  - type: textarea
-    id: description-of-bug
-    attributes:
-      label: Is your feature request related to a problem? Please describe.
-      description: A clear and concise description of what the problem is that made you submit this report.
-      placeholder: I am always frustrated, when...
-    validations:
-      required: true
-
-  - type: textarea
-    id: description-of-solution
-    attributes:
-      label: Solution you would like.
-      description: A clear and concise description of what you want to happen.
-      placeholder: Instead of behaving like this, there should be...
-    validations:
-      required: true
-
-  - type: textarea
-    id: alternatives
-    attributes:
-      label: Describe alternatives you have considered.
-      description: A clear and concise description of any alternative solutions or features you have considered.
-      placeholder: Another workaround that would work, is...
-    validations:
-      required: false
-
-  - type: textarea
-    id: additional-context
-    attributes:
-      label: Additional context
-      description: Add any other context (such as mock-ups, proof of concepts or screenshots) about the feature request here.
-    validations:
-      required: false

+ 0 - 12
.github/PULL_REQUEST_TEMPLATE.md

@@ -1,12 +0,0 @@
-<!--
-delete me and describe your change here, give enough context for a maintainer to understand what and why
-
-See https://anubis.techaro.lol/docs/developer/code-quality for more information
--->
-
-Checklist:
-
-- [ ] Added a description of the changes to the `[Unreleased]` section of docs/docs/CHANGELOG.md
-- [ ] Added test cases to [the relevant parts of the codebase](https://anubis.techaro.lol/docs/developer/code-quality)
-- [ ] Ran integration tests `npm run test:integration` (unsupported on Windows, please use WSL)
-- [ ] All of my commits have [verified signatures](https://anubis.techaro.lol/docs/developer/signed-commits)

+ 0 - 17
.github/actions/spelling/README.md

@@ -1,17 +0,0 @@
-# check-spelling/check-spelling configuration
-
-| File                                               | Purpose                                                                          | Format                                                                                            | Info                                                                                                 |
-| -------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
-| [dictionary.txt](dictionary.txt)                   | Replacement dictionary (creating this file will override the default dictionary) | one word per line                                                                                 | [dictionary](https://github.com/check-spelling/check-spelling/wiki/Configuration#dictionary)         |
-| [allow.txt](allow.txt)                             | Add words to the dictionary                                                      | one word per line (only letters and `'`s allowed)                                                 | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow)                   |
-| [reject.txt](reject.txt)                           | Remove words from the dictionary (after allow)                                   | grep pattern matching whole dictionary words                                                      | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject)     |
-| [excludes.txt](excludes.txt)                       | Files to ignore entirely                                                         | perl regular expression                                                                           | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes) |
-| [only.txt](only.txt)                               | Only check matching files (applied after excludes)                               | perl regular expression                                                                           | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only)         |
-| [patterns.txt](patterns.txt)                       | Patterns to ignore from checked lines                                            | perl regular expression (order matters, first match wins)                                         | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) |
-| [candidate.patterns](candidate.patterns)           | Patterns that might be worth adding to [patterns.txt](patterns.txt)              | perl regular expression with optional comment block introductions (all matches will be suggested) | [candidates](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns)        |
-| [line_forbidden.patterns](line_forbidden.patterns) | Patterns to flag in checked lines                                                | perl regular expression (order matters, first match wins)                                         | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns) |
-| [expect.txt](expect.txt)                           | Expected words that aren't in the dictionary                                     | one word per line (sorted, alphabetically)                                                        | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect)                 |
-| [advice.md](advice.md)                             | Supplement for GitHub comment when unrecognized words are found                  | GitHub Markdown                                                                                   | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice)     |
-
-Note: you can replace any of these files with a directory by the same name (minus the suffix)
-and then include multiple files inside that directory (with that suffix) to merge multiple files together.

+ 0 - 28
.github/actions/spelling/advice.md

@@ -1,28 +0,0 @@
-<!-- See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice --> <!-- markdownlint-disable MD033 MD041 -->
-<details><summary>If the flagged items are :exploding_head: false positives</summary>
-
-If items relate to a ...
-
-- binary file (or some other file you wouldn't want to check at all).
-
-  Please add a file path to the `excludes.txt` file matching the containing file.
-
-  File paths are Perl 5 Regular Expressions - you can [test](https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
-
-  `^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](../tree/HEAD/README.md) (on whichever branch you're using).
-
-- well-formed pattern.
-
-  If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it,
-  try adding it to the `patterns.txt` file.
-
-  Patterns are Perl 5 Regular Expressions - you can [test](https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
-
-  Note that patterns can't match multiline strings.
-
-</details>
-
-<!-- adoption information-->
-
-:steam_locomotive: If you're seeing this message and your PR is from a branch that doesn't have check-spelling,
-please merge to your PR's base branch to get the version configured for your repository.

+ 0 - 28
.github/actions/spelling/allow.txt

@@ -1,28 +0,0 @@
-github
-https
-ssh
-ubuntu
-workarounds
-rjack
-msgbox
-xeact
-ABee
-tencent
-maintnotifications
-azurediamond
-cooldown
-verifyfcrdns
-Spintax
-spintax
-clampip
-pseudoprofound
-reimagining
-iocaine
-admins
-fout
-iplist
-NArg
-blocklists
-rififi
-prolocation
-Prolocation

+ 0 - 779
.github/actions/spelling/candidate.patterns

@@ -1,779 +0,0 @@
-# Repeated letters
-#\b([a-z])\g{-1}{2,}\b
-
-# marker to ignore all code on line
-^.*/\* #no-spell-check-line \*/.*$
-# marker to ignore all code on line
-^.*\bno-spell-check(?:-line|)(?:\s.*|)$
-
-# https://cspell.org/configuration/document-settings/
-# cspell inline
-^.*\b[Cc][Ss][Pp][Ee][Ll]{2}:\s*[Dd][Ii][Ss][Aa][Bb][Ll][Ee]-[Ll][Ii][Nn][Ee]\b
-
-# copyright
-Copyright (?:\([Cc]\)|)(?:[-\d, ]|and)+(?: [A-Z][a-z]+ [A-Z][a-z]+,?)+
-
-# patch hunk comments
-^@@ -\d+(?:,\d+|) \+\d+(?:,\d+|) @@ .*
-# git index header
-index (?:[0-9a-z]{7,40},|)[0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
-
-# file permissions
-['"`\s][-bcdLlpsw](?:[-r][-w][-Ssx]){2}[-r][-w][-SsTtx]\+?['"`\s]
-
-# css fonts
-\bfont(?:-family|):[^;}]+
-
-# css url wrappings
-\burl\([^)]+\)
-
-# cid urls
-(['"])cid:.*?\g{-1}
-
-# data url in parens
-\(data:(?:[^) ][^)]*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})[^)]*\)
-# data url in quotes
-([`'"])data:(?:[^ `'"].*?|)(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1}
-# data url
-\bdata:[-a-zA-Z=;:/0-9+]*,\S*
-
-# https/http/file urls
-(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/*%?=~_|!:,.;]+[-A-Za-z0-9+&@#/*%=~_|]
-
-# mailto urls
-mailto:[-a-zA-Z=;:/?%&0-9+@._]{3,}
-
-# magnet urls
-magnet:[?=:\w]+
-
-# magnet urls
-"magnet:[^"]+"
-
-# obs:
-"obs:[^"]*"
-
-# The `\b` here means a break, it's the fancy way to handle urls, but it makes things harder to read
-# In this examples content, I'm using a number of different ways to match things to show various approaches
-# asciinema
-\basciinema\.org/a/[0-9a-zA-Z]+
-
-# asciinema v2
-^\[\d+\.\d+, "[io]", ".*"\]$
-
-# apple
-\bdeveloper\.apple\.com/[-\w?=/]+
-# Apple music
-\bembed\.music\.apple\.com/fr/playlist/usr-share/[-\w.]+
-
-# appveyor api
-\bci\.appveyor\.com/api/projects/status/[0-9a-z]+
-# appveyor project
-\bci\.appveyor\.com/project/(?:[^/\s"]*/){2}builds?/\d+/job/[0-9a-z]+
-
-# Amazon
-
-# Amazon
-\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)
-# AWS ARN
-arn:aws:[-/:\w]+
-# AWS S3
-\b\w*\.s3[^.]*\.amazonaws\.com/[-\w/&#%_?:=]*
-# AWS execute-api
-\b[0-9a-z]{10}\.execute-api\.[-0-9a-z]+\.amazonaws\.com\b
-# AWS ELB
-\b\w+\.[-0-9a-z]+\.elb\.amazonaws\.com\b
-# AWS SNS
-\bsns\.[-0-9a-z]+.amazonaws\.com/[-\w/&#%_?:=]*
-# AWS VPC
-vpc-\w+
-
-# While you could try to match `http://` and `https://` by using `s?` in `https?://`, sometimes there
-# YouTube url
-\b(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|user/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_%]*
-# YouTube music
-\bmusic\.youtube\.com/youtubei/v1/browse(?:[?&]\w+=[-a-zA-Z0-9?&=_]*)
-# YouTube tag
-<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"]
-# YouTube image
-\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]*
-# Google Accounts
-\baccounts.google.com/[-_/?=.:;+%&0-9a-zA-Z]*
-# Google Analytics
-\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]*
-# Google APIs
-\bgoogleapis\.(?:com|dev)/[a-z]+/(?:v\d+/|)[a-z]+/[-@:./?=\w+|&]+
-# Google Artifact Registry
-\.pkg\.dev(?:/[-\w]+)+(?::[-\w]+|)
-# Google Storage
-\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|)
-# Google Calendar
-\bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+
-\w+\@group\.calendar\.google\.com\b
-# Google DataStudio
-\bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|)
-# The leading `/` here is as opposed to the `\b` above
-# ... a short way to match `https://` or `http://` since most urls have one of those prefixes
-# Google Docs
-/docs\.google\.com/[a-z]+/(?:ccc\?key=\w+|(?:u/\d+|d/(?:e/|)[0-9a-zA-Z_-]+/)?(?:edit\?[-\w=#.]*|/\?[\w=&]*|))
-# Google Drive
-\bdrive\.google\.com/(?:file/d/|open)[-0-9a-zA-Z_?=]*
-# Google Groups
-\bgroups\.google\.com(?:/[a-z]+/(?:#!|)[^/\s"]+)*
-# Google Maps
-\bmaps\.google\.com/maps\?[\w&;=]*
-# Google themes
-themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+.
-# Google CDN
-\bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]*
-# Goo.gl
-/goo\.gl/[a-zA-Z0-9]+
-# Google Chrome Store
-\bchrome\.google\.com/webstore/detail/[-\w]*(?:/\w*|)
-# Google Books
-\bgoogle\.(?:\w{2,4})/books(?:/\w+)*\?[-\w\d=&#.]*
-# Google Fonts
-\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]*
-# Google Forms
-\bforms\.gle/\w+
-# Google Scholar
-\bscholar\.google\.com/citations\?user=[A-Za-z0-9_]+
-# Google Colab Research Drive
-\bcolab\.research\.google\.com/drive/[-0-9a-zA-Z_?=]*
-# Google Cloud regions
-(?:us|(?:north|south)america|europe|asia|australia|me|africa)-(?:north|south|east|west|central){1,2}\d+
-
-# GitHub SHAs (api)
-\bapi.github\.com/repos(?:/[^/\s"]+){3}/[0-9a-f]+\b
-# GitHub SHAs (markdown)
-(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)
-# GitHub SHAs
-\bgithub\.com(?:/[^/\s"]+){2}[@#][0-9a-f]+\b
-# GitHub SHA refs
-\[([0-9a-f]+)\]\(https://(?:www\.|)github.com/[-\w]+/[-\w]+/commit/\g{-1}[0-9a-f]*
-# GitHub wiki
-\bgithub\.com/(?:[^/]+/){2}wiki/(?:(?:[^/]+/|)_history|[^/]+(?:/_compare|)/[0-9a-f.]{40,})\b
-# githubusercontent
-/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
-# githubassets
-\bgithubassets.com/[0-9a-f]+(?:[-/\w.]+)
-# gist github
-\bgist\.github\.com/[^/\s"]+/[0-9a-f]+
-# git.io
-\bgit\.io/[0-9a-zA-Z]+
-# GitHub JSON
-"node_id": "[-a-zA-Z=;:/0-9+_]*"
-# Contributor
-\[[^\]]+\]\(https://github\.com/[^/\s"]+/?\)
-# GHSA
-GHSA(?:-[0-9a-z]{4}){3}
-
-# GitHub actions
-\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+
-
-# GitLab commit
-\bgitlab\.[^/\s"]*/\S+/\S+/commit/[0-9a-f]{7,16}#[0-9a-f]{40}\b
-# GitLab merge requests
-\bgitlab\.[^/\s"]*/\S+/\S+/-/merge_requests/\d+/diffs#[0-9a-f]{40}\b
-# GitLab uploads
-\bgitlab\.[^/\s"]*/uploads/[-a-zA-Z=;:/0-9+]*
-# GitLab commits
-\bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b
-
-# #includes
-^\s*#include\s*(?:<.*?>|".*?")
-
-# #pragma lib
-^\s*#pragma comment\(lib, ".*?"\)
-
-# binance
-accounts\.binance\.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]*
-
-# bitbucket diff
-\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}diff(?:stat|)(?:/[^/\s"]+){2}:[0-9a-f]+
-# bitbucket repositories commits
-\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}commits?/[0-9a-f]+
-# bitbucket commits
-\bbitbucket\.org/(?:[^/\s"]+/){2}commits?/[0-9a-f]+
-
-# bit.ly
-\bbit\.ly/\w+
-
-# bitrise
-\bapp\.bitrise\.io/app/[0-9a-f]*/[\w.?=&]*
-
-# bootstrapcdn.com
-\bbootstrapcdn\.com/[-./\w]+
-
-# cdn.cloudflare.com
-\bcdnjs\.cloudflare\.com/[./\w]+
-
-# circleci
-\bcircleci\.com/gh(?:/[^/\s"]+){1,5}.[a-z]+\?[-0-9a-zA-Z=&]+
-
-# gitter
-\bgitter\.im(?:/[^/\s"]+){2}\?at=[0-9a-f]+
-
-# gravatar
-\bgravatar\.com/avatar/[0-9a-f]+
-
-# ibm
-[a-z.]*ibm\.com/[-_#=:%!?~.\\/\d\w]*
-
-# imgur
-\bimgur\.com/[^.]+
-
-# Internet Archive
-\barchive\.org/web/\d+/(?:[-\w.?,'/\\+&%$#_:]*)
-
-# discord
-/discord(?:app\.com|\.gg)/(?:invite/)?[a-zA-Z0-9]{7,}
-
-# Disqus
-\bdisqus\.com/[-\w/%.()!?&=_]*
-
-# medium link
-\blink\.medium\.com/[a-zA-Z0-9]+
-# medium
-\bmedium\.com/@?[^/\s"]+/[-\w]+
-
-# microsoft
-\b(?:https?://|)(?:(?:(?:blogs|download\.visualstudio|docs|msdn2?|research)\.|)microsoft|blogs\.msdn)\.co(?:m|\.\w\w)/[-_a-zA-Z0-9()=./%]*
-# powerbi
-\bapp\.powerbi\.com/reportEmbed/[^"' ]*
-# vs devops
-\bvisualstudio.com(?::443|)/[-\w/?=%&.]*
-# microsoft store
-\bmicrosoft\.com/store/apps/\w+
-
-# mvnrepository.com
-\bmvnrepository\.com/[-0-9a-z./]+
-
-# now.sh
-/[0-9a-z-.]+\.now\.sh\b
-
-# oracle
-\bdocs\.oracle\.com/[-0-9a-zA-Z./_?#&=]*
-
-# chromatic.com
-/\S+.chromatic.com\S*[")]
-
-# codacy
-\bapi\.codacy\.com/project/badge/Grade/[0-9a-f]+
-
-# compai
-\bcompai\.pub/v1/png/[0-9a-f]+
-
-# mailgun api
-\.api\.mailgun\.net/v3/domains/[0-9a-z]+\.mailgun.org/messages/[0-9a-zA-Z=@]*
-# mailgun
-\b[0-9a-z]+.mailgun.org
-
-# /message-id/
-/message-id/[-\w@./%]+
-
-# Reddit
-\breddit\.com/r/[/\w_]*
-
-# requestb.in
-\brequestb\.in/[0-9a-z]+
-
-# sched
-\b[a-z0-9]+\.sched\.com\b
-
-# Slack url
-slack://[a-zA-Z0-9?&=]+
-# Slack
-\bslack\.com/[-0-9a-zA-Z/_~?&=.]*
-# Slack edge
-\bslack-edge\.com/[-a-zA-Z0-9?&=%./]+
-# Slack images
-\bslack-imgs\.com/[-a-zA-Z0-9?&=%.]+
-
-# shields.io
-\bshields\.io/[-\w/%?=&.:+;,]*
-
-# stackexchange -- https://stackexchange.com/feeds/sites
-\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/)
-
-# Sentry
-[0-9a-f]{32}\@o\d+\.ingest\.sentry\.io\b
-
-# Twitter markdown
-\[@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\)
-# Twitter hashtag
-\btwitter\.com/hashtag/[\w?_=&]*
-# Twitter status
-\btwitter\.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)
-# Twitter profile images
-\btwimg\.com/profile_images/[_\w./]*
-# Twitter media
-\btwimg\.com/media/[-_\w./?=]*
-# Twitter link shortened
-\bt\.co/\w+
-
-# facebook
-\bfburl\.com/[0-9a-z_]+
-# facebook CDN
-\bfbcdn\.net/[\w/.,]*
-# facebook watch
-\bfb\.watch/[0-9A-Za-z]+
-
-# dropbox
-\bdropbox\.com/sh?/[^/\s"]+/[-0-9A-Za-z_.%?=&;]+
-
-# ipfs protocol
-ipfs://[0-9a-zA-Z]{3,}
-# ipfs url
-/ipfs/[0-9a-zA-Z]{3,}
-
-# w3
-\bw3\.org/[-0-9a-zA-Z/#.]+
-
-# loom
-\bloom\.com/embed/[0-9a-f]+
-
-# regex101
-\bregex101\.com/r/[^/\s"]+/\d+
-
-# figma
-\bfigma\.com/file(?:/[0-9a-zA-Z]+/)+
-
-# freecodecamp.org
-\bfreecodecamp\.org/[-\w/.]+
-
-# image.tmdb.org
-\bimage\.tmdb\.org/[/\w.]+
-
-# mermaid
-\bmermaid\.ink/img/[-\w]+|\bmermaid-js\.github\.io/mermaid-live-editor/#/edit/[-\w]+
-
-# Wikipedia
-\ben\.wikipedia\.org/wiki/[-\w%.#]+
-
-# gitweb
-[^"\s]+/gitweb/\S+;h=[0-9a-f]+
-
-# HyperKitty lists
-/archives/list/[^@/]+@[^/\s"]*/message/[^/\s"]*/
-
-# lists
-/thread\.html/[^"\s]+
-
-# list-management
-\blist-manage\.com/subscribe(?:[?&](?:u|id)=[0-9a-f]+)+
-
-# kubectl.kubernetes.io/last-applied-configuration
-"kubectl.kubernetes.io/last-applied-configuration": ".*"
-
-# pgp
-\bgnupg\.net/pks/lookup[?&=0-9a-zA-Z]*
-
-# Spotify
-\bopen\.spotify\.com/embed/playlist/\w+
-
-# Mastodon
-\bmastodon\.[-a-z.]*/(?:media/|@)[?&=0-9a-zA-Z_]*
-
-# scastie
-\bscastie\.scala-lang\.org/[^/]+/\w+
-
-# images.unsplash.com
-\bimages\.unsplash\.com/(?:(?:flagged|reserve)/|)[-\w./%?=%&.;]+
-
-# pastebin
-\bpastebin\.com/[\w/]+
-
-# heroku
-\b\w+\.heroku\.com/source/archive/\w+
-
-# quip
-\b\w+\.quip\.com/\w+(?:(?:#|/issues/)\w+)?
-
-# badgen.net
-\bbadgen\.net/badge/[^")\]'\s]+
-
-# statuspage.io
-\w+\.statuspage\.io\b
-
-# media.giphy.com
-\bmedia\.giphy\.com/media/[^/]+/[\w.?&=]+
-
-# tinyurl
-\btinyurl\.com/\w+
-
-# codepen
-\bcodepen\.io/[\w/]+
-
-# registry.npmjs.org
-\bregistry\.npmjs\.org/(?:@[^/"']+/|)[^/"']+/-/[-\w@.]+
-
-# getopts
-\bgetopts\s+(?:"[^"]+"|'[^']+')
-
-# ANSI color codes
-(?:\\(?:u00|x)1[Bb]|\\03[1-7]|\x1b|\\u\{1[Bb]\})\[\d+(?:;\d+)*m
-
-# URL escaped characters
-%[0-9A-F][A-F](?=[A-Za-z])
-# lower URL escaped characters
-%[0-9a-f][a-f](?=[a-z]{2,})
-# IPv6
-\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b
-# c99 hex digits (not the full format, just one I've seen)
-0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP]
-# Punycode
-\bxn--[-0-9a-z]+
-# sha
-sha\d+:[0-9a-f]*?[a-f]{3,}[0-9a-f]*
-# sha-... -- uses a fancy capture
-(\\?['"]|&quot;)[0-9a-f]{40,}\g{-1}
-# hex runs
-\b[0-9a-fA-F]{16,}\b
-# hex in url queries
-=[0-9a-fA-F]*?(?:[A-F]{3,}|[a-f]{3,})[0-9a-fA-F]*?&
-# ssh
-(?:ssh-\S+|-nistp256) [-a-zA-Z=;:/0-9+]{12,}
-
-# PGP
-\b(?:[0-9A-F]{4} ){9}[0-9A-F]{4}\b
-# GPG keys
-\b(?:[0-9A-F]{4} ){5}(?: [0-9A-F]{4}){5}\b
-# Well known gpg keys
-.well-known/openpgpkey/[\w./]+
-
-# pki
------BEGIN.*-----END
-
-# pki (base64)
-LS0tLS1CRUdJT.*
-
-# C# includes
-^\s*using [^;]+;
-
-# uuid:
-\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
-# hex digits including css/html color classes:
-(?:[\\0][xX]|\\u|[uU]\+|#x?|%23|&H)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b
-
-# integrity
-integrity=(['"])(?:\s*sha\d+-[-a-zA-Z=;:/0-9+]{40,})+\g{-1}
-
-# https://www.gnu.org/software/groff/manual/groff.html
-# man troff content
-\\f[BCIPR]
-# '/"
-\\\([ad]q
-
-# .desktop mime types
-^MimeTypes?=.*$
-# .desktop localized entries
-^[A-Z][a-z]+\[[a-z]+\]=.*$
-# Localized .desktop content
-Name\[[^\]]+\]=.*
-
-# IServiceProvider / isAThing
-(?:(?:\b|_|(?<=[a-z]))I|(?:\b|_)(?:nsI|isA))(?=(?:[A-Z][a-z]{2,})+(?:[A-Z\d]|\b))
-
-# crypt
-(['"])\$2[ayb]\$.{56}\g{-1}
-
-# apache/old crypt
-(['"]|)\$+(?:apr|)1\$+.{8}\$+.{22}\g{-1}
-
-# sha1 hash
-\{SHA\}[-a-zA-Z=;:/0-9+]{3,}
-
-# machine learning (?)
-\b(?i)ml(?=[a-z]{2,})
-
-# python
-#\b(?i)py(?!gments|gmy|lon|ramid|ro|th)(?=[a-z]{2,})
-
-# scrypt / argon
-\$(?:scrypt|argon\d+[di]*)\$\S+
-
-# go.sum
-\bh1:\S+
-
-# imports
-^import\s+(?:(?:static|type)\s+|)(?:[\w.]|\{\s*\w*?(?:,\s*(?:\w*|\*))+\s*\})+
-
-# scala modules
-("[^"]+"\s*%%?\s*){2,3}"[^"]+"
-
-# container images
-image: [-\w./:@]+
-
-# Docker images
-^\s*(?i)FROM\s+\S+:\S+(?:\s+AS\s+\S+|)
-
-# `docker images` REPOSITORY TAG IMAGE ID CREATED SIZE
-\s*\S+/\S+\s+\S+\s+[0-9a-f]{8,}\s+\d+\s+(?:hour|day|week)s ago\s+[\d.]+[KMGT]B
-
-# Intel intrinsics
-_mm_(?!dd)\w+
-
-# Input to GitHub JSON
-content: (['"])[-a-zA-Z=;:/0-9+]*=\g{-1}
-
-# This does not cover multiline strings, if your repository has them,
-# you'll want to remove the `(?=.*?")` suffix.
-# The `(?=.*?")` suffix should limit the false positives rate
-# printf
-%(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA])(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"])
-
-# Alternative printf
-# %s
-%(?:s(?=[a-z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%[^s])\b)(?=.*?['"])
-
-# Python string prefix / binary prefix
-# Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings
-(?<!['"])\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)['"](?=[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})
-
-# Regular expressions for (P|p)assword
-\([A-Z]\|[a-z]\)[a-z]+
-
-# JavaScript regular expressions
-# javascript test regex
-/.{3,}/[gim]*\.test\(
-# javascript match regex
-\.match\(/[^/\s"]{3,}/[gim]*\s*
-# javascript match regex
-\.match\(/\\[b].{3,}?/[gim]*\s*\)(?:;|$)
-# javascript regex
-^\s*/\\[b].{3,}?/[gim]*\s*(?:\)(?:;|$)|,$)
-# javascript replace regex
-\.replace\(/[^/\s"]{3,}/[gim]*\s*,
-# assign regex
-= /[^*].*?(?:[a-z]{3,}|[A-Z]{3,}|[A-Z][a-z]{2,}).*/[gim]*(?=\W|$)
-# perl regex test
-[!=]~ (?:/.*/|m\{.*?\}|m<.*?>|m([|!/@#,;']).*?\g{-1})
-
-# perl qr regex
-(?<!\$)\bqr(?:\{.*?\}|<.*?>|\(.*?\)|([|!/@#,;']).*?\g{-1})
-
-# perl run
-perl(?:\s+-[a-zA-Z]\w*)+
-
-# C network byte conversions
-(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\()
-
-# Go regular expressions
-regexp?\.MustCompile\((?:`[^`]*`|".*"|'.*')\)
-
-# regex choice
-\(\?:[^)]+\|[^)]+\)
-
-# proto
-^\s*(\w+)\s\g{-1} =
-
-# sed regular expressions
-sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2}
-
-# node packages
-(["'])@[^/'" ]+/[^/'" ]+\g{-1}
-
-# go install
-go install(?:\s+[a-z]+\.[-@\w/.]+)+
-
-# pom.xml
-<(?:group|artifact)Id>.*?<
-
-# jetbrains schema https://youtrack.jetbrains.com/issue/RSRP-489571
-urn:shemas-jetbrains-com
-
-# Debian changelog severity
-[-\w]+ \(.*\) (?:\w+|baseline|unstable|experimental); urgency=(?:low|medium|high|emergency|critical)\b
-
-# kubernetes pod status lists
-# https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
-\w+(?:-\w+)+\s+\d+/\d+\s+(?:Running|Pending|Succeeded|Failed|Unknown)\s+
-
-# kubectl - pods in CrashLoopBackOff
-\w+-[0-9a-f]+-\w+\s+\d+/\d+\s+CrashLoopBackOff\s+
-
-# kubernetes applications
-\.apps/[-\w]+
-
-# kubernetes object suffix
--[0-9a-f]{10}-\w{5}\s
-
-# kubernetes crd patterns
-^\s*pattern: .*$
-
-# posthog secrets
-([`'"])phc_[^"',]+\g{-1}
-
-# xcode
-
-# xcodeproject scenes
-(?:Controller|destination|(?:first|second)Item|ID|id)="\w{3}-\w{2}-\w{3}"
-
-# xcode api botches
-customObjectInstantitationMethod
-
-# msvc api botches
-PrependWithABINamepsace
-
-# configure flags
-.* \| --\w{2,}.*?(?=\w+\s\w+)
-
-# font awesome classes
-\.fa-[-a-z0-9]+
-
-# bearer auth
-(['"])[Bb]ear[e][r] .{3,}?\g{-1}
-
-# bearer auth
-\b[Bb]ear[e][r]:? [-a-zA-Z=;:/0-9+.]{3,}
-
-# basic auth
-(['"])[Bb]asic [-a-zA-Z=;:/0-9+]{3,}\g{-1}
-
-# basic auth
-: [Bb]asic [-a-zA-Z=;:/0-9+.]{3,}
-
-# base64 encoded content
-([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1}
-# base64 encoded content in xml/sgml
->[-a-zA-Z=;:/0-9+]{3,}=</
-# base64 encoded content, possibly wrapped in mime
-#(?:^|[\s=;:?])[-a-zA-Z=;:/0-9+]{50,}(?:[\s=;:?]|$)
-# base64 encoded json
-\beyJ[-a-zA-Z=;:/0-9+]+
-# base64 encoded pkcs
-\bMII[-a-zA-Z=;:/0-9+]+
-
-# uuencoded
-#[!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_]{40,}
-
-# DNS rr data
-(?:\d+\s+){3}(?:[-+/=.\w]{2,}\s*){1,2}
-
-# encoded-word
-=\?[-a-zA-Z0-9"*%]+\?[BQ]\?[^?]{0,75}\?=
-
-# numerator
-\bnumer\b(?=.*denom)
-
-# Time Zones
-\b(?:Africa|Atlantic|America|Antarctica|Arctic|Asia|Australia|Europe|Indian|Pacific)(?:/[-\w]+)+
-
-# linux kernel info
-^(?:bugs|flags|Features)\s+:.*
-
-# systemd mode
-systemd.*?running in system mode \([-+].*\)$
-
-# Lorem
-# Update Lorem based on your content (requires `ge` and `w` from https://github.com/jsoref/spelling; and `review` from https://github.com/check-spelling/check-spelling/wiki/Looking-for-items-locally )
-# grep '^[^#].*lorem' .github/actions/spelling/patterns.txt|perl -pne 's/.*i..\?://;s/\).*//' |tr '|' "\n"|sort -f |xargs -n1 ge|perl -pne 's/^[^:]*://'|sort -u|w|sed -e 's/ .*//'|w|review -
-# Warning, while `(?i)` is very neat and fancy, if you have some binary files that aren't proper unicode, you might run into:
-# ... Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary).
-# ... You could manually change `(?i)X...` to use `[Xx]...`
-# ... or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path)
-(?:(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*)
-
-# Non-English
-# Even repositories expecting pure English content can unintentionally have Non-English content... People will occasionally mistakenly enter [homoglyphs](https://en.wikipedia.org/wiki/Homoglyph) which are essentially typos, and using this pattern will mean check-spelling will not complain about them.
-#
-# If the content to be checked should be written in English and the only Non-English items will be people's names, then you can consider adding this.
-#
-# Alternatively, if you're using check-spelling v0.0.25+, and you would like to _check_ the Non-English content for spelling errors, you can. For information on how to do so, see:
-# https://docs.check-spelling.dev/Feature:-Configurable-word-characters.html#unicode
-[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}
-
-# highlighted letters
-\[[A-Z]\][a-z]+
-
-# French
-# This corpus only had capital letters, but you probably want lowercase ones as well.
-\b[LN]'+[a-z]{2,}\b
-
-# latex (check-spelling >= 0.0.22)
-\\\w{2,}\{
-
-# American Mathematical Society (AMS) / Doxygen
-TeX/AMS
-
-# File extensions
-\*\.[+\w]+,
-
-# eslint
-"varsIgnorePattern": ".+"
-
-# nolint
-nolint:\s*[\w,]+
-
-# Windows short paths
-[/\\][^/\\]{5,6}~\d{1,2}(?=[/\\])
-
-# Windows Resources with accelerators
-\b[A-Z]&[a-z]+\b(?!;)
-
-# signed off by
-(?i)Signed-off-by: .*
-
-# cygwin paths
-/cygdrive/[a-zA-Z]/(?:Program Files(?: \(.*?\)| ?)(?:/[-+.~\\/()\w ]+)*|[-+.~\\/()\w])+
-
-# in check-spelling@v0.0.22+, printf markers aren't automatically consumed
-# printf markers
-(?<!\\)\\[nrt](?=[a-z]{2,})
-# alternate printf markers if you run into latex and friends
-(?<!\\)\\[nrt](?=[a-z]{2,})(?=.*['"`])
-
-# Markdown anchor links
-\(#\S*?[a-zA-Z]\S*?\)
-
-# apache
-a2(?:en|dis)
-
-# weak e-tag
-W/"[^"]+"
-
-# authors/credits
-^\*(?: [A-Z](?:\w+|\.)){2,} (?=\[|$)
-
-# the negative lookahead here is to allow catching 'templatesz' as a misspelling
-# but to otherwise recognize a Windows path with \templates\foo.template or similar:
-\\(?:necessary|r(?:elease|eport|esolve[dr]?|esult)|t(?:arget|emplates?))(?![a-z])
-# ignore long runs of a single character:
-\b([A-Za-z])\g{-1}{3,}\b
-
-# version suffix <word>v#
-(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
-
-# Compiler flags (Unix, Java/Scala)
-# Use if you have things like `-Pdocker` and want to treat them as `docker`
-#(?:^|[\t ,>"'`=(#])-(?:(?:J-|)[DPWXY]|[Llf])(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
-
-# Compiler flags (Windows / PowerShell)
-# This is a subset of the more general compiler flags pattern.
-# It avoids matching `-Path` to prevent it from being treated as `ath`
-#(?:^|[\t ,"'`=(#])-(?:[DPL](?=[A-Z]{2,})|[WXYlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}))
-
-# Compiler flags (linker)
-,-B
-
-# libraries
-(?:\b|_)[Ll]ib(?:re(?=office)|)(?!era[lt]|ero|erty|rar(?:i(?:an|es)|y))(?=[a-z])
-
-# WWNN/WWPN (NAA identifiers)
-\b(?:0x)?10[0-9a-f]{14}\b|\b(?:0x|3)?[25][0-9a-f]{15}\b|\b(?:0x|3)?6[0-9a-f]{31}\b
-
-# iSCSI iqn (approximate regex)
-\biqn\.[0-9]{4}-[0-9]{2}(?:[\.-][a-z][a-z0-9]*)*\b
-
-# curl arguments
-\b(?:\\n|)curl(?:\.exe|)(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
-# set arguments
-\b(?:bash|sh|set)(?:\s+[-+][abefimouxE]{1,2})*\s+[-+][abefimouxE]{3,}(?:\s+[-+][abefimouxE]+)*
-# tar arguments
-\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+
-# tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long...
-\btput\s+(?:(?:-[SV]|-T\s*\w+)\s+)*\w{3,5}\b
-# macOS temp folders
-/var/folders/\w\w/[+\w]+/(?:T|-Caches-)/
-# github runner temp folders
-/home/runner/work/_temp/[-_/a-z0-9]+

+ 0 - 100
.github/actions/spelling/excludes.txt

@@ -1,100 +0,0 @@
-# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
-(?:^|/)(?i)COPYRIGHT
-(?:^|/)(?i)LICEN[CS]E
-(?:^|/)(?i)third[-_]?party/
-(?:^|/)3rdparty/
-(?:^|/)generated/
-(?:^|/)go\.sum$
-(?:^|/)package(?:-lock|)\.json$
-(?:^|/)Pipfile$
-(?:^|/)pyproject.toml
-(?:^|/)vendor/
-(?:^|/|\b)requirements(?:-dev|-doc|-test|)\.txt$
-\.a$
-\.ai$
-\.all-contributorsrc$
-\.avi$
-\.bmp$
-\.bz2$
-\.cert?$|\.crt$
-\.class$
-\.coveragerc$
-\.crl$
-\.csr$
-\.dll$
-\.docx?$
-\.drawio$
-\.DS_Store$
-\.eot$
-\.eps$
-\.exe$
-\.gif$
-\.git-blame-ignore-revs$
-\.gitattributes$
-\.gitkeep$
-\.graffle$
-\.gz$
-\.icns$
-\.ico$
-\.ipynb$
-\.jar$
-\.jks$
-\.jpe?g$
-\.key$
-\.lib$
-\.lock$
-\.map$
-\.min\..
-\.mo$
-\.mod$
-\.mp[34]$
-\.o$
-\.ocf$
-\.otf$
-\.p12$
-\.parquet$
-\.pdf$
-\.pem$
-\.pfx$
-\.png$
-\.psd$
-\.pyc$
-\.pylintrc$
-\.qm$
-\.s$
-\.sig$
-\.so$
-\.svgz?$
-\.sys$
-\.tar$
-\.tgz$
-\.tiff?$
-\.ttf$
-\.wav$
-\.webm$
-\.webp$
-\.woff2?$
-\.xcf$
-\.xlsx?$
-\.xpm$
-\.xz$
-\.zip$
-^\.github/actions/spelling/
-^\Q.github/FUNDING.yml\E$
-^\Q.github/workflows/spelling.yml\E$
-^data/crawlers/
-^docs/blog/tags\.yml$
-^docs/docs/user/known-instances.md$
-^docs/manifest/.*$
-^docs/static/\.nojekyll$
-^internal/glob/glob_test.go$
-^internal/honeypot/naive/affirmations\.txt$
-^internal/honeypot/naive/spintext\.txt$
-^internal/honeypot/naive/titles\.txt$
-^lib/config/testdata/bad/unparseable\.json$
-^lib/localization/.*_test.go$
-^lib/localization/locales/.*\.json$
-^lib/policy/config/testdata/bad/unparseable\.json$
-^test/.*$
-ignore$
-robots.txt

+ 0 - 421
.github/actions/spelling/expect.txt

@@ -1,421 +0,0 @@
-acs
-Actorified
-actorifiedstore
-actorify
-agentic
-Aibrew
-alibaba
-alrest
-amazonbot
-anexia
-anthro
-anubis
-anubistest
-apnic
-APNICRANDNETAU
-Applebot
-archlinux
-arpa
-asnc
-asnchecker
-asns
-aspirational
-atuin
-azuretools
-badregexes
-bbolt
-bdba
-berr
-bezier
-bingbot
-Bitcoin
-bitrate
-Bluesky
-blueskybot
-boi
-Bokm
-botnet
-botstopper
-BPort
-Brightbot
-broked
-buildah
-byteslice
-Bytespider
-cachebuster
-cachediptoasn
-Caddyfile
-caninetools
-Cardyb
-celchecker
-celphase
-cerr
-certresolver
-cespare
-CGNAT
-cgr
-chainguard
-chall
-challengemozilla
-challengetest
-checkpath
-checkresult
-chibi
-cidranger
-ckie
-CLAUDE
-cloudflare
-cloudsolutions
-Codespaces
-confd
-containerbuild
-containerregistry
-coreutils
-Cotoyogi
-Cromite
-crt
-Cscript
-daemonizing
-databento
-dayjob
-dco
-DDOS
-Debian
-debrpm
-decaymap
-devcontainers
-Diffbot
-discordapp
-discordbot
-distros
-dnf
-dnsbl
-dnserr
-DNSTTL
-domainhere
-dracula
-dronebl
-droneblresponse
-dropin
-dsilence
-duckduckbot
-eerror
-ellenjoe
-emacs
-enbyware
-etld
-everyones
-evilbot
-evilsite
-expressionorlist
-externalagent
-externalfetcher
-extldflags
-facebookgo
-Factset
-fahedouch
-fastcgi
-FCr
-fcrdns
-fediverse
-ffprobe
-fhdr
-financials
-finfos
-Firecrawl
-flagenv
-Fordola
-forgejo
-forwardauth
-fsys
-fullchain
-gaissmai
-Galvus
-geoip
-geoipchecker
-gha
-GHSA
-Ghz
-gipc
-gitea
-GLM
-godotenv
-goimports
-goland
-gomod
-goodbot
-googlebot
-gopsutil
-govulncheck
-goyaml
-GPG
-GPT
-gptbot
-Graphene
-grpcprom
-grw
-gzw
-Hashcash
-hashrate
-hdr
-headermap
-healthcheck
-healthz
-hec
-helpdesk
-Hetzner
-hmc
-homelab
-hostable
-HSTS
-htmlc
-htmx
-httpdebug
-huawei
-hypertext
-iaskspider
-iaso
-iat
-ifm
-Imagesift
-imgproxy
-impressum
-inbox
-ingressed
-inp
-internets
-IPTo
-iptoasn
-isp
-iss
-isset
-ivh
-Jenomis
-JGit
-jhjj
-joho
-journalctl
-jshelter
-JWTs
-kagi
-kagibot
-Keyfunc
-keypair
-KHTML
-kinda
-KUBECONFIG
-lcj
-ldflags
-letsencrypt
-Lexentale
-lfc
-lgbt
-licend
-licstart
-lightpanda
-limsa
-Linting
-listor
-LLU
-loadbalancer
-lol
-lominsa
-maintainership
-malware
-mcr
-memes
-metarefresh
-metrix
-mimi
-Minfilia
-mistralai
-mnt
-Mojeek
-mojeekbot
-mozilla
-myclient
-mymaster
-mypass
-myuser
-nbf
-nepeat
-netsurf
-nginx
-nicksnyder
-nikandfor
-nobots
-NONINFRINGEMENT
-nosleep
-nullglob
-oci
-OCOB
-ogtag
-oklch
-omgili
-omgilibot
-openai
-opendns
-opengraph
-openrc
-oswald
-pag
-pagegen
-palemoon
-Pangu
-parseable
-passthrough
-Patreon
-perplexitybot
-pgrep
-phrik
-pidfile
-pids
-pipefail
-pki
-podkova
-podman
-Postgre
-poststart
-prebaked
-privkey
-promauto
-promhttp
-proofofwork
-publicsuffix
-purejs
-pwcmd
-pwuser
-qualys
-qwant
-qwantbot
-rac
-rawler
-rcvar
-redhat
-redir
-redirectscheme
-refactors
-remoteip
-reputational
-Rhul
-risc
-ruleset
-runlevels
-RUnlock
-runtimedir
-runtimedirectory
-Ryzen
-sas
-sasl
-screenshots
-searchbot
-searx
-sebest
-secretplans
-Semrush
-Seo
-setsebool
-shellcheck
-shirou
-shoneypot
-shopt
-Sidetrade
-simprint
-sitemap
-sls
-sni
-snipster
-Spambot
-spammer
-sparkline
-spyderbot
-srv
-stackoverflow
-startprecmd
-stoppostcmd
-storetest
-srcip
-strcmp
-subgrid
-subr
-subrequest
-SVCNAME
-tagline
-tarballs
-tarrif
-taviso
-tbn
-tbr
-techaro
-techarohq
-telegrambot
-templ
-templruntime
-testarea
-Thancred
-thoth
-thothmock
-Tik
-Timpibot
-TLog
-traefik
-trunc
-txn
-uberspace
-Unbreak
-unbreakdocker
-unifiedjs
-unmarshal
-unparseable
-updown
-uvx
-UXP
-valkey
-Varis
-Velen
-vendored
-vhosts
-vkbot
-VKE
-vnd
-VPS
-Vultr
-WAIFU
-weblate
-webmaster
-webpage
-websecure
-websites
-Webzio
-whois
-wildbase
-withthothmock
-wolfbeast
-wordpress
-workaround
-workdir
-wpbot
-XCircle
-xeiaso
-xeserv
-xesite
-xess
-xff
-XForwarded
-XNG
-XOB
-XOriginal
-XReal
-Y'shtola
-yae
-YAMLTo
-Yda
-yeet
-yeetfile
-yourdomain
-yyz
-Zenos
-zizmor
-zombocom
-zos
-zst

+ 0 - 463
.github/actions/spelling/line_forbidden.patterns

@@ -1,463 +0,0 @@
-# reject `m_data` as VxWorks defined it and that breaks things if it's used elsewhere
-# see [fprime](https://github.com/nasa/fprime/commit/d589f0a25c59ea9a800d851ea84c2f5df02fb529)
-# and [Qt](https://github.com/qtproject/qt-solutions/blame/fb7bc42bfcc578ff3fa3b9ca21a41e96eb37c1c7/qtscriptclassic/src/qscriptbuffer_p.h#L46)
-#\bm_data\b
-
-# Were you debugging using a framework with `fit()`?
-# If you have a framework that uses `it()` for testing and `fit()` for debugging a specific test,
-# you might not want to check in code where you skip all the other tests.
-#\bfit\(
-
-# English does not use a hyphen between adverbs and nouns
-# https://twitter.com/nyttypos/status/1894815686192685239
-(?:^|\s)[A-Z]?[a-z]+ly-(?=[a-z]{3,})(?:[.,?!]?\s|$)
-
-# Don't use `requires that` + `to be`
-# https://twitter.com/nyttypos/status/1894816551435641027
-\brequires that \w+\b[^.]+to be\b
-
-# A fully parenthetical sentence’s period goes inside the parentheses, not outside.
-# https://twitter.com/nyttypos/status/1898844061873639490
-#\([A-Z][a-z]{2,}(?: [a-z]+){3,}\)\.\s
-
-# Complete sentences in parentheticals should not have a space before the period.
-\s\.\)(?!.*\}\})
-
-# Should be `HH:MM:SS`
-\bHH:SS:MM\b
-
-# Should be `86400` (seconds in a standard day)
-\b84600\b(?:.*\bday\b)
-
-# Should probably be `2006-01-02` (yyyy-mm-dd)
-# Assuming that the time is being passed to https://go.dev/src/time/format.go
-\b2006-02-01\b
-
-# Should probably be `YYYYMMDD`
-\b[Yy]{4}[Dd]{2}[Mm]{2}(?!.*[Yy]{4}[Dd]{2}[Mm]{2}).*$
-
-# Should be `a priori` or `and prior`
-(?i)(?<!posteriori)\sand priori\s
-
-# Should be `a`
-\san (?=(?:[b-df-gj-np-rtv-xz]|h(?!our|tml|ttp)|s(?!sh|vg))[a-z])
-
-# Should only be one of `a`, `an`, or `the`
-\b(?:(?:an?|the)\s+){2,}\b
-
-# Should only be `are` or `can`, not both
-\b(?:(?:are|can)\s+){2,}\b
-
-# Should probably be `ABCDEFGHIJKLMNOPQRSTUVWXYZ`
-(?i)(?!ABCDEFGHIJKLMNOPQRSTUVWXYZ)ABC[A-Z]{21}YZ
-
-# Should be `anymore`
-\bany more[,.]
-
-# Should be `Ask`
-(?:^|[.?]\s+)As\s+[A-Z][a-z]{2,}\s[^.?]*?(?:how|if|wh\w+)\b
-
-# Should be `at one fell swoop`
-# and only when talking about killing, not some other completion
-# Act 4 Scene 3, Macbeth
-# https://www.opensourceshakespeare.org/views/plays/play_view.php?WorkID=macbeth&Act=4&Scene=3&Scope=scene
-\bin one fell s[lw]?oop\b
-
-# Should be `'`
-(?i)\b(?:(?:i|s?he|they|what|who|you)[`"]ll|(?:are|ca|did|do|does|ha[ds]|have|is|should|were|wo|would)n[`"]t|(?:s?he|let|that|there|what|where|who)[`"]s|(?:i|they|we|what|who|you)[`"]ve)\b
-
-# Should be `background` / `intro text` / `introduction` / `prologue` unless it's a brand or relates to _subterfuge_
-(?i)\bpretext\b
-
-# Should be `branches`
-# ... unless it's really about the meal that replaces breakfast and lunch.
-\b[Bb]runches\b
-
-# Should be `briefcase`
-\bbrief-case\b
-
-# Should be `by far` or `far and away`
-\bby far and away\b
-
-# Should be `can, not only ..., ... also...`
-\bcan not only.*can also\b
-
-# Should be `cannot` (or `can't`)
-# See https://www.grammarly.com/blog/cannot-or-can-not/
-# > Don't use `can not` when you mean `cannot`. The only time you're likely to see `can not` written as separate words is when the word `can` happens to precede some other phrase that happens to start with `not`.
-# > `Can't` is a contraction of `cannot`, and it's best suited for informal writing.
-# > In formal writing and where contractions are frowned upon, use `cannot`.
-# > It is possible to write `can not`, but you generally find it only as part of some other construction, such as `not only . . . but also.`
-# - if you encounter such a case, add a pattern for that case to patterns.txt.
-\b[Cc]an not\b(?! only\b)
-
-# Should be `chart`
-(?i)\bhelm\b.*\bchard\b
-
-# Do not use `(click) here` links
-# For more information, see:
-# * https://www.w3.org/QA/Tips/noClickHere
-# * https://webaim.org/techniques/hypertext/link_text
-# * https://granicus.com/blog/why-click-here-links-are-bad/
-# * https://heyoka.medium.com/dont-use-click-here-f32f445d1021
-(?i)(?:>|\[)(?:(?:click |)here|link|(?:read |)more)(?:</|\]\()
-
-# Including "image of" or "picture of" in alt text is unnecessary.
-\balt=['"](?:an? |)(?:image|picture) of
-
-# Alt text should be short
-\balt=(?:'[^']{126,}'|"[^"]{126,}")
-
-# Should be `equals` to `is equal to`
-\bequals to\b
-
-# Should be `ECMA` 262 (JavaScript)
-(?i)\bTS\/EMCA\b|\bEMCA(?: \d|\s*Script)|\bEMCA\b(?=.*\bTS\b)
-
-# Should be `ECMA` 340 (Near Field Communications)
-(?i)EMCA[- ]340
-
-# Should be `fall back`
-\bfallback(?= to)\b
-
-# Should be `GitHub`
-(?<![&*.]|// |\b(?:from|import|type) )\bGithub\b(?![{()])
-
-# Should be `GitLab`
-(?<![&*.]|// |\b(?:from|import|type) )\bGitlab\b(?![{()])
-
-# Should probably be `https://`...
-# Markdown generally doesn't assume that links are to urls
-\]\(www\.\w
-
-# Should be `JavaScript`
-\bJavascript\b
-
-# Should be `macOS` or `Mac OS X` or ...
-\bMacOS\b
-
-# Should be `Microsoft`
-\bMicroSoft\b
-
-# Should be `OAuth`
-(?:^|[^-/*$])[ '"]oAuth(?: [a-z]|\d+ |[^ a-zA-Z0-9:;_.()])
-
-# Should be `RabbitMQ`
-\bRabbitmq\b
-
-# Should be `TensorFlow`
-\bTensorflow\b
-
-# Should be `TypeScript`
-\bTypescript\b
-
-# Should be `another`
-\ban[- ]other(?!-)\b
-
-# Should be `case-(in)sensitive`
-\bcase (?:in|)sensitive\b
-
-# Should be `coinciding`
-\bco-inciding\b
-
-# Should be `deprecation warning(s)`
-\b[Dd]epreciation [Ww]arnings?\b
-
-# Should be `greater than`
-\bgreater then\b
-
-# Should be `has`
-\b[Ii]t only have\b
-
-# Should be `here-in`, `the`, `them`, `this`, `these` or reworded in some other way
-\bthe here(?:\.|,| (?!and|defined))
-
-# Should be `greater than`
-\bhigher than\b
-
-# Should be `ID` (unless it's a flag/property)
-(?<![-\.])\bId\b(?![(])
-
-# Should be `in front of`
-\bin from of\b
-
-# Should be `into`
-# when not phrasal and when `in order to` would be wrong:
-# https://thewritepractice.com/into-vs-in-to/
-\sin to\s(?!if\b)
-
-# Should be `use`
-\sin used by\b
-
-# Should be `in-depth` if used as an adjective (but `in depth` when used as an adverb)
-\bin depth\s(?!rather\b)\w{6,}
-
-# Should be `in-flight` or `on the fly` (unless actually talking about airline flights)
-\bon[- ]flight\b(?!=\s+(?:(?:\w{2}|)\d+|availability|booking|computer|data|delay|departure|management|performance|radar|reservation|scheduling|software|status|ticket|time|type|.*(?:hotel|taxi)))
-
-# Should be `is obsolete`
-\bis obsolescent\b
-
-# Should be `it's` or `its`
-\bits['’]
-
-# Should be `its`
-\bit's(?= own\b)
-
-# Should be `its`
-\bit's(?= only purpose\b)
-
-# Should be `for its` (possessive) or `because it is`
-\bfor it(?:'s| is)\b
-
-# Should be `log in`
-\blogin to the
-
-# Should be `long-standing`
-\blong standing\b
-
-# `apt-key` is deprecated
-# ... instead you should be writing a pair of files:
-# ... * the gpg key added to a distinct key ring file based on your project/distro/key...
-# ... * the sources.list in a district file -- not simply appended to `/etc/apt/sources.list` -- (there is a newer format [DEB822](https://manpages.debian.org/bookworm/dpkg-dev/deb822.5.en.html)) that references the gpg key.
-# Consider:
-# ````sh
-# curl http://download.something.example.com/$DISTRO/Release.key | \
-#     gpg --dearmor --yes --output /usr/share/keyrings/something-distro.gpg
-# echo "deb [signed-by=/usr/share/keyrings/something-distro.gpg] http://download.something.example.com/repositories/home:/$DISTRO ./" \
-#     >> /etc/apt/sources.list.d/something-distro.list
-# ````
-\bapt-key add\b
-
-# Should be `nearby`
-\bnear by\b
-
-# Should probably be a person named `Nick` or the abbreviation `NIC`
-\bNic\b
-
-# Should be `not supposed`
-\bsupposed not\b
-
-# Should probably be `much more`
-\bmore much\b
-
-# Should be `perform its`
-\bperform it's\b
-
-# Should be `opt-in`
-(?<!\scan|for)(?<!\smust)(?<!\sif)\sopt in\s
-
-# Should be `less than`
-\bless then\b
-
-# Should be `load balancer`
-\b[Ll]oud balancer
-
-# Should be `moot`
-\bmute point\b
-
-# Should be `one of`
-(?<!-)\bon of\b
-
-# Should be `on the other hand`
-\b(?i)on another hand\b
-
-# Reword to `on at runtime` or `enabled at launch`
-# The former if you mean it can be changed dynamically.
-# The latter if you mean that it can be changed without recompiling but not after the program starts.
-\bswitched on runtime\b
-
-# Should be `Of course,`
-[?.!]\s+Of course\s(?=[-\w\s]+[.?;!,])
-
-# Most people only have two hands. Reword.
-\b(?i)on the third hand\b
-
-# Should be `OpenShift`
-\bOpenshift\b
-
-# Should be `otherwise`
-\bother[- ]wise\b
-
-# Should be `; otherwise` or `. Otherwise`
-# https://study.com/learn/lesson/otherwise-in-a-sentence.html
-, [Oo]therwise\b
-
-# Should probably be `Otherwise,`
-(?<=\. )Otherwise\s
-
-# Should be `or (more|less)`
-\bore (?:more|less)\b
-
-# Should be `rather than`
-\brather then\b
-
-# Should be `Red Hat`
-\bRed[Hh]at\b
-
-# Should be `regardless, ...` or `regardless of (whether)`
-\b[Rr]egardless if you\b
-
-# Should be `self-signed`
-\bself signed\b
-
-# Should be `SendGrid`
-\bSendgrid\b
-
-# Should be `set up` (`setup` is a noun / `set up` is a verb)
-\b[Ss]etup(?= (?:an?|the)\b)
-
-# Should be `state`
-\bsate(?=\b|[A-Z])|(?<=[a-z])Sate(?=\b|[A-Z])|(?<=[A-Z]{2})Sate(?=\b|[A-Z])
-
-# Should be `no longer needed`
-\bno more needed\b(?! than\b)
-
-# Should be `<see|look> below for the`
-(?i)\bfind below the\b
-
-# Should be `then any` unless there's a comparison before the `,`
-, than any\b
-
-# Should be `did not exist`
-\bwere not existent\b
-
-# Should be `nonexistent`
-\bnon existing\b
-
-# Should be `nonexistent`
-\b[Nn]o[nt][- ]existent\b
-
-# Should be `our`
-\bspending out time\b
-
-# Should be `@brief` / `@details` / `@param` / `@return` / `@retval`
-(?:^\s*|(?:\*|//|/*)\s+`)[\\@](?:breif|(?:detail|detials)|(?:params(?!\.)|prama?)|ret(?:uns?)|retvl)\b
-
-# Should be `more than` or `more, then`
-\bmore then\b
-
-# Should be `Pipeline`/`pipeline`
-(?:(?<=\b|[A-Z])p|P)ipeLine(?:\b|(?=[A-Z]))
-
-# Should be `preexisting`
-[Pp]re[- ]existing
-
-# Should be `preempt`
-[Pp]re[- ]empt\b
-
-# Should be `preemptively`
-[Pp]re[- ]emptively
-
-# Should be `prepopulate`
-[Pp]re[- ]populate
-
-# Should be `prerequisite`
-[Pp]re[- ]requisite
-
-# Should be `recently changed` or `recent changes`
-[Rr]ecent changed
-
-# Should be `reentrancy`
-[Rr]e[- ]entrancy
-
-# Should be `reentrant`
-[Rr]e[- ]entrant
-
-# Should be `room for`
-\brooms for (?!lease|rent|sale)
-
-# Should be `socioeconomic`
-# https://dictionary.cambridge.org/us/dictionary/english/socioeconomic
-socio-economic
-
-# Should be `strong suit`
-\b(?:my|his|her|their) strong suite\b
-
-# Should probably be `temperatures` unless actually talking about thermal drafts (things birds may fly on)
-\bthermals\b
-
-# Should be `there are` or `they are` (or `they're`)
-(?i)\btheir are\b
-
-# Should be `understand`
-\bunder stand\b
-
-# Should be `URI` or `uri` unless it refers to a person named `Uri` (or a flag)
-(?<![-\.])\bUri\b(?![(])
-
-# Should be `it uses is`
-/\bis uses is\b/
-
-# Should be `uses it as`
-(?:^|\. |and )uses is as (?!an?\b|follows|livestock|[^.]+\s+as\b)
-
-# Should be `was`
-\bhas been(?= removed in v?\d)
-
-# Should be `where`
-\bwere they are\b
-
-# Should be `why`
-, way(?= is [^.]*\?)
-
-# should be `vCenter`
-\bV[Cc]enter\b
-
-# Should be `VM`
-\bVm\b
-
-# Should be `walkthrough(s)`
-\bwalk-throughs?\b
-
-# Should be `we'll`
-\bwe 'll\b
-
-# Should be `whereas`
-\bwhere as\b
-
-# Should be `WinGet`
-\bWinget\b
-
-# Should be `without` (unless `out` is a modifier of the next word)
-\bwith out\b(?!-)
-
-# Should be `work around`
-\b[Ww]orkaround(?= an?\b)
-
-# Should be `workarounds`
-\bwork[- ]arounds\b
-
-# Should be `workaround`
-(?:(?:[Aa]|[Tt]he|ugly)\swork[- ]around\b|\swork[- ]around\s+for)
-
-# Should be `worst`
-(?i)worse-case
-
-# Should be `you are not` or reworded
-\byour not\b
-
-# Should be `(coarse|fine)-grained`
-\b(?:coarse|fine) grained\b
-
-# Homoglyph (Cyrillic) should be `A`/`B`/`C`/`E`/`H`/`I`/`I`/`J`/`K`/`M`/`O`/`P`/`S`/`T`/`Y`
-# It's possible that your content is intentionally mixing Cyrillic and Latin scripts, but if it isn't, you definitely want to correct this.
-(?<=[A-Z]{2})[АВСЕНІӀЈКМОРЅТУ]|[АВСЕНІӀЈКМОРЅТУ](?=[A-Z]+(?:\b|[a-z]+)|[a-z]+(?:[^a-z]|$))
-
-# Homoglyph (Cyrillic) should be `a`/`b`/`c`/`e`/`o`/`p`/`x`/`y`
-# It's possible that your content is intentionally mixing Cyrillic and Latin scripts, but if it isn't, you definitely want to correct this.
-[авсеорху](?=[A-Za-z]{2,})|(?<=[A-Za-z]{2})[авсеорху]|(?<=[A-Za-z])[авсеорху](?=[A-Za-z])
-
-# Should be `neither/nor` -- or reword
-(?!<do )\bnot\b([^.?!"/(](?!neither|,.*?,))+\bnor\b
-
-# Should be `neither/nor` (plus rewording the beginning)
-# This is probably a double negative...
-\bnot\b[^.?!"/(]*\bneither\b[^.?!"/(]*\bnor\b
-
-# In English, duplicated words are generally mistakes
-# There are a few exceptions (e.g. "that that").
-# If the highlighted doubled word pair is in:
-# * code, write a pattern to mask it.
-# * prose, have someone read the English before you dismiss this error.
-\s([A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})\s\g{-1}\s

+ 0 - 138
.github/actions/spelling/patterns.txt

@@ -1,138 +0,0 @@
-# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
-
-# Automatically suggested patterns
-
-# hit-count: 198 file-count: 52
-# https/http/file urls
-(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/*%?=~_|!:,.;]+[-A-Za-z0-9+&@#/*%=~_|]
-
-# hit-count: 22 file-count: 8
-# GitHub actions
-\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+
-
-# hit-count: 19 file-count: 5
-# libraries
-(?:\b|_)[Ll]ib(?:re(?=office)|era(?![lt])|)(?!ero|erty|rar(?:i(?:an|es)|y))(?=[a-z])
-
-# hit-count: 17 file-count: 8
-# version suffix <word>v#
-(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
-
-# hit-count: 15 file-count: 7
-# container images
-image: [-\w./:@]+
-
-# hit-count: 14 file-count: 9
-# imports
-^import\s+(?:(?:static|type)\s+|)(?:[\w.]|\{\s*\w*?(?:,\s*(?:\w*|\*))+\s*\})+
-
-# hit-count: 11 file-count: 2
-# hex digits including css/html color classes:
-(?:[\\0][xX]|\\u|[uU]\+|#x?|%23|&H)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b
-
-# hit-count: 8 file-count: 5
-# node packages
-(["'])@[^/'" ]+/[^/'" ]+\g{-1}
-
-# hit-count: 5 file-count: 2
-# css fonts
-\bfont(?:-family|):[^;}]+
-
-# hit-count: 4 file-count: 4
-# set arguments
-\b(?:bash|sh|set)(?:\s+[-+][abefimouxE]{1,2})*\s+[-+][abefimouxE]{3,}(?:\s+[-+][abefimouxE]+)*
-
-# hit-count: 4 file-count: 2
-# css url wrappings
-\burl\([^)]+\)
-
-# hit-count: 2 file-count: 2
-# C network byte conversions
-(?:\d|\bh)to(?!ken)(?=[a-z])|to(?=[adhiklpun]\()
-
-# hit-count: 2 file-count: 1
-# GitHub SHA refs
-\[([0-9a-f]+)\]\(https://(?:www\.|)github.com/[-\w]+/[-\w]+/commit/\g{-1}[0-9a-f]*
-
-# hit-count: 1 file-count: 1
-# copyright
-Copyright (?:\([Cc]\)|)(?:[-\d, ]|and)+(?: [A-Z][a-z]+ [A-Z][a-z]+,?)+
-
-# hit-count: 1 file-count: 1
-# IPv6
-\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b
-
-# hit-count: 1 file-count: 1
-# Docker images
-^\s*(?i)FROM\s+\S+:\S+(?:\s+AS\s+\S+|)
-
-# hit-count: 1 file-count: 1
-# perl run
-perl(?:\s+-[a-zA-Z]\w*)+
-
-# hit-count: 1 file-count: 1
-# go install
-go install(?:\s+[a-z]+\.[-@\w/.]+)+
-
-# hit-count: 1 file-count: 1
-# in check-spelling@v0.0.22+, printf markers aren't automatically consumed
-# printf markers
-(?<!\\)\\[nrt](?=[a-z]{2,})
-
-# hit-count: 1 file-count: 1
-# tar arguments
-\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+
-
-# Questionably acceptable forms of `in to`
-# Personally, I prefer `log into`, but people object
-# https://www.tprteaching.com/log-into-log-in-to-login/
-\b(?:(?:[Ll]og(?:g(?=[a-z])|)|[Ss]ign)(?:ed|ing)?) in to\b
-
-# to opt in
-\bto opt in\b
-
-# pass(ed|ing) in
-\bpass(?:ed|ing) in\b
-
-# acceptable duplicates
-# ls directory listings
-[-bcdlpsw](?:[-r][-w][-SsTtx]){3}[\.+*]?\s+\d+\s+\S+\s+\S+\s+[.\d]+(?:[KMGT]|)\s+
-# mount
-\bmount\s+-t\s+(\w+)\s+\g{-1}\b
-# C types and repeated CSS values
-\s(auto|buffalo|center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s
-# C enum and struct
-\b(?:enum|struct)\s+(\w+)\s+\g{-1}\b
-# go templates
-\s(\w+)\s+\g{-1}\s+\`(?:graphql|inject|json|yaml):
-# doxygen / javadoc / .net
-(?:[\\@](?:brief|defgroup|groupname|link|t?param|return|retval)|(?:public|private|\[Parameter(?:\(.+\)|)\])(?:\s+(?:static|override|readonly|required|virtual))*)(?:\s+\{\w+\}|)\s+(\w+)\s+\g{-1}\s
-
-# macOS file path
-(?:Contents\W+|(?!iOS)/)MacOS\b
-
-# Python package registry has incorrect spelling for macOS / Mac OS X
-"Operating System :: MacOS :: MacOS X"
-
-# "company" in Germany
-\bGmbH\b
-
-# IntelliJ
-\bIntelliJ\b
-
-# Commit message -- Signed-off-by and friends
-^\s*(?:(?:Based-on-patch|Co-authored|Helped|Mentored|Reported|Reviewed|Signed-off)-by|Thanks-to): (?:[^<]*<[^>]*>|[^<]*)\s*$
-
-# Autogenerated revert commit message
-^This reverts commit [0-9a-f]{40}\.$
-
-# ignore long runs of a single character:
-\b([A-Za-z])\g{-1}{3,}\b
-
-# hit-count: 1 file-count: 1
-# microsoft
-\b(?:https?://|)(?:(?:(?:blogs|download\.visualstudio|docs|msdn2?|research)\.|)microsoft|blogs\.msdn)\.co(?:m|\.\w\w)/[-_a-zA-Z0-9()=./%]*
-
-# hit-count: 1 file-count: 1
-# data url
-\bdata:[-a-zA-Z=;:/0-9+]*,\S*

+ 0 - 23
.github/actions/spelling/reject.txt

@@ -1,23 +0,0 @@
-^attache$
-^bellows?$
-benefitting
-occurences?
-^dependan.*
-^develope$
-^developement$
-^developpe
-^Devers?$
-^devex
-^devide
-^Devinn?[ae]
-^devisal
-^devisor
-^diables?$
-^oer$
-Sorce
-^[Ss]pae.*
-^Teh$
-^untill$
-^untilling$
-^venders?$
-^wether.*

+ 0 - 34
.github/dependabot.yml

@@ -1,34 +0,0 @@
-version: 2
-updates:
-  - package-ecosystem: github-actions
-    directory: /
-    schedule:
-      interval: weekly
-    groups:
-      github-actions:
-        patterns:
-          - "*"
-    cooldown:
-      default-days: 7
-
-  - package-ecosystem: gomod
-    directory: /
-    schedule:
-      interval: weekly
-    groups:
-      gomod:
-        patterns:
-          - "*"
-    cooldown:
-      default-days: 7
-
-  - package-ecosystem: npm
-    directory: /
-    schedule:
-      interval: weekly
-    groups:
-      npm:
-        patterns:
-          - "*"
-    cooldown:
-      default-days: 7

+ 0 - 72
.github/workflows/asset-verification.yml

@@ -1,72 +0,0 @@
-name: Asset Build Verification
-
-on:
-  push:
-    branches: ["main"]
-  pull_request:
-    branches: ["main"]
-
-permissions:
-  contents: read
-
-jobs:
-  asset_verification:
-    runs-on: ubuntu-24.04
-    steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-
-      - name: build essential
-        run: |
-          sudo apt-get update
-          sudo apt-get install -y build-essential
-
-      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
-        with:
-          node-version: "24.11.0"
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - name: install node deps
-        run: |
-          npm ci
-
-      - name: Check for uncommitted changes before asset build
-        id: check-changes-before
-        run: |
-          if [[ -n $(git status --porcelain) ]]; then
-            echo "has_changes=true" >> $GITHUB_OUTPUT
-          else
-            echo "has_changes=false" >> $GITHUB_OUTPUT
-          fi
-
-      - name: Fail if there are uncommitted changes before build
-        if: steps.check-changes-before.outputs.has_changes == 'true'
-        run: |
-          echo "There are uncommitted changes before running npm run assets"
-          git status
-          exit 1
-
-      - name: Run asset build
-        run: |
-          npm run assets
-
-      - name: Check for uncommitted changes after asset build
-        id: check-changes-after
-        run: |
-          if [[ -n $(git status --porcelain) ]]; then
-            echo "has_changes=true" >> $GITHUB_OUTPUT
-          else
-            echo "has_changes=false" >> $GITHUB_OUTPUT
-          fi
-
-      - name: Fail if assets generated changes
-        if: steps.check-changes-after.outputs.has_changes == 'true'
-        run: |
-          echo "npm run assets generated uncommitted changes. This indicates the repository has outdated generated files."
-          echo "Please run 'npm run assets' locally and commit the changes."
-          git status
-          git diff
-          exit 1

+ 0 - 9
.github/workflows/dco-check.yaml

@@ -1,9 +0,0 @@
-name: DCO Check
-
-on: [pull_request]
-
-jobs:
-  dco_check:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: tisonkun/actions-dco@f1024cd563550b5632e754df11b7d30b73be54a5 # v1.1

+ 0 - 58
.github/workflows/docker-pr.yml

@@ -1,58 +0,0 @@
-name: Docker image builds (pull requests)
-
-on:
-  pull_request:
-    branches: ["main"]
-
-env:
-  DOCKER_METADATA_SET_OUTPUT_ENV: "true"
-
-permissions:
-  contents: read
-
-jobs:
-  build:
-    runs-on: ubuntu-24.04
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          fetch-tags: true
-          fetch-depth: 0
-          persist-credentials: false
-
-      - name: build essential
-        run: |
-          sudo apt-get update
-          sudo apt-get install -y build-essential
-
-      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
-        with:
-          node-version: "24.11.0"
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
-
-      - name: Docker meta
-        id: meta
-        uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
-        with:
-          images: ghcr.io/${{ github.repository }}
-
-      - name: Build and push
-        id: build
-        run: |
-          npm ci
-          npm run container
-        env:
-          PULL_REQUEST_ID: ${{ github.event.number }}
-          DOCKER_REPO: ghcr.io/${{ github.repository }}
-          SLOG_LEVEL: debug
-
-      - run: |
-          echo "Test this with:"
-          echo "docker pull ${DOCKER_IMAGE}"
-        env:
-          DOCKER_IMAGE: ${{ steps.build.outputs.docker_image }}

+ 0 - 75
.github/workflows/docker.yml

@@ -1,75 +0,0 @@
-name: Docker image builds
-
-on:
-  workflow_dispatch:
-  push:
-    branches: ["main"]
-    tags: ["v*"]
-
-env:
-  DOCKER_METADATA_SET_OUTPUT_ENV: "true"
-
-permissions:
-  contents: read
-  packages: write
-  attestations: write
-  id-token: write
-  pull-requests: write
-
-jobs:
-  build:
-    runs-on: ubuntu-24.04
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          fetch-tags: true
-          fetch-depth: 0
-          persist-credentials: false
-
-      - name: build essential
-        run: |
-          sudo apt-get update
-          sudo apt-get install -y build-essential
-
-      - name: Set lowercase image name
-        run: |
-          echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
-
-      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
-        with:
-          node-version: "24.11.0"
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
-
-      - name: Log into registry
-        uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
-        with:
-          registry: ghcr.io
-          username: ${{ github.repository_owner }}
-          password: ${{ secrets.GITHUB_TOKEN }}
-
-      - name: Docker meta
-        id: meta
-        uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
-        with:
-          images: ${{ env.IMAGE }}
-
-      - name: Build and push
-        id: build
-        run: |
-          npm ci
-          npm run container
-        env:
-          DOCKER_REPO: ${{ env.IMAGE }}
-          SLOG_LEVEL: debug
-
-      - name: Generate artifact attestation
-        uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0
-        with:
-          subject-name: ${{ env.IMAGE }}
-          subject-digest: ${{ steps.build.outputs.digest }}
-          push-to-registry: true

+ 0 - 67
.github/workflows/docs-deploy.yml

@@ -1,67 +0,0 @@
-name: Docs deploy
-
-on:
-  workflow_dispatch:
-  push:
-    branches: ["main"]
-
-permissions:
-  contents: read
-  packages: write
-  attestations: write
-  id-token: write
-
-jobs:
-  build:
-    if: github.repository == 'TecharoHQ/anubis'
-    runs-on: ubuntu-24.04
-
-    steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
-
-      - name: Log into registry
-        uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
-        with:
-          registry: ghcr.io
-          username: techarohq
-          password: ${{ secrets.GITHUB_TOKEN }}
-
-      - name: Docker meta
-        id: meta
-        uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
-        with:
-          images: ghcr.io/techarohq/anubis/docs
-          tags: |
-            type=sha,enable=true,priority=100,prefix=,suffix=,format=long
-            main
-
-      - name: Build and push
-        id: build
-        uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
-        with:
-          context: ./docs
-          cache-to: type=gha
-          cache-from: type=gha
-          tags: ${{ steps.meta.outputs.tags }}
-          labels: ${{ steps.meta.outputs.labels }}
-          platforms: linux/amd64
-          push: true
-
-      - name: Apply k8s manifests to limsa lominsa
-        uses: actions-hub/kubectl@3ece3793e7a9fe94effe257d03ac834c815ea87d # v1.35.1
-        env:
-          KUBE_CONFIG: ${{ secrets.LIMSA_LOMINSA_KUBECONFIG }}
-        with:
-          args: apply -k docs/manifest
-
-      - name: Apply k8s manifests to limsa lominsa
-        uses: actions-hub/kubectl@3ece3793e7a9fe94effe257d03ac834c815ea87d # v1.35.1
-        env:
-          KUBE_CONFIG: ${{ secrets.LIMSA_LOMINSA_KUBECONFIG }}
-        with:
-          args: rollout restart -n default deploy/anubis-docs

+ 0 - 42
.github/workflows/docs-test.yml

@@ -1,42 +0,0 @@
-name: Docs test build
-
-on:
-  pull_request:
-    branches: ["main"]
-
-permissions:
-  contents: read
-  actions: write
-
-jobs:
-  build:
-    runs-on: ubuntu-24.04
-
-    steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
-
-      - name: Docker meta
-        id: meta
-        uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
-        with:
-          images: ghcr.io/techarohq/anubis/docs
-          tags: |
-            type=sha,enable=true,priority=100,prefix=,suffix=,format=long
-            main
-
-      - name: Build and push
-        id: build
-        uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
-        with:
-          context: ./docs
-          cache-to: type=gha
-          cache-from: type=gha
-          tags: ${{ steps.meta.outputs.tags }}
-          labels: ${{ steps.meta.outputs.labels }}
-          platforms: linux/amd64
-          push: false

+ 0 - 76
.github/workflows/go-mod-tidy-check.yml

@@ -1,76 +0,0 @@
-name: Go Mod Tidy Check
-
-on:
-  push:
-    branches: ["main"]
-  pull_request:
-    branches: ["main"]
-
-permissions:
-  contents: read
-
-jobs:
-  go_mod_tidy_check:
-    runs-on: ubuntu-24.04
-    steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - name: Check go.mod and go.sum in main directory
-        run: |
-          # Store original file state
-          cp go.mod go.mod.orig
-          cp go.sum go.sum.orig
-
-          # Run go mod tidy
-          go mod tidy
-
-          # Check if files changed
-          if ! diff -q go.mod.orig go.mod > /dev/null 2>&1; then
-            echo "ERROR: go.mod in main directory has changed after running 'go mod tidy'"
-            echo "Please run 'go mod tidy' locally and commit the changes"
-            diff go.mod.orig go.mod
-            exit 1
-          fi
-
-          if ! diff -q go.sum.orig go.sum > /dev/null 2>&1; then
-            echo "ERROR: go.sum in main directory has changed after running 'go mod tidy'"
-            echo "Please run 'go mod tidy' locally and commit the changes"
-            diff go.sum.orig go.sum
-            exit 1
-          fi
-
-          echo "SUCCESS: go.mod and go.sum in main directory are tidy"
-
-      - name: Check go.mod and go.sum in test directory
-        run: |
-          cd test
-
-          # Store original file state
-          cp go.mod go.mod.orig
-          cp go.sum go.sum.orig
-
-          # Run go mod tidy
-          go mod tidy
-
-          # Check if files changed
-          if ! diff -q go.mod.orig go.mod > /dev/null 2>&1; then
-            echo "ERROR: go.mod in test directory has changed after running 'go mod tidy'"
-            echo "Please run 'go mod tidy' locally and commit the changes"
-            diff go.mod.orig go.mod
-            exit 1
-          fi
-
-          if ! diff -q go.sum.orig go.sum > /dev/null 2>&1; then
-            echo "ERROR: go.sum in test directory has changed after running 'go mod tidy'"
-            echo "Please run 'go mod tidy' locally and commit the changes"
-            diff go.sum.orig go.sum
-            exit 1
-          fi
-
-          echo "SUCCESS: go.mod and go.sum in test directory are tidy"

+ 0 - 64
.github/workflows/go.yml

@@ -1,64 +0,0 @@
-name: Go
-
-on:
-  push:
-    branches: ["main"]
-  pull_request:
-    branches: ["main"]
-
-permissions:
-  contents: read
-  actions: write
-
-jobs:
-  go_tests:
-    #runs-on: alrest-techarohq
-    runs-on: ubuntu-24.04
-    steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-
-      - name: build essential
-        run: |
-          sudo apt-get update
-          sudo apt-get install -y build-essential
-
-      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
-        with:
-          node-version: "24.11.0"
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - name: Cache playwright binaries
-        uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
-        id: playwright-cache
-        with:
-          path: |
-            ~/.cache/ms-playwright
-          key: ${{ runner.os }}-playwright-${{ hashFiles('**/go.sum') }}
-
-      - name: install node deps
-        run: |
-          npm ci
-
-      - name: install playwright browsers
-        run: |
-          npx --no-install playwright@1.52.0 install --with-deps
-          npx --no-install playwright@1.52.0 run-server --port 9001 &
-
-      - name: Build
-        run: npm run build
-
-      - name: Test
-        run: npm run test
-
-      - name: Lint with staticcheck
-        uses: dominikh/staticcheck-action@024238d2898c874f26d723e7d0ff4308c35589a2 # v1.4.0
-        with:
-          version: "latest"
-
-      - name: Govulncheck
-        run: |
-          go tool govulncheck ./...

+ 0 - 19
.github/workflows/lint-pr-title.yaml

@@ -1,19 +0,0 @@
-name: "Lint PR"
-
-on:
-  pull_request_target:
-    types:
-      - opened
-      - edited
-      - synchronize
-
-jobs:
-  lint_pr_title:
-    name: Validate PR title
-    runs-on: ubuntu-latest
-    permissions:
-      pull-requests: read
-    steps:
-      - uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

+ 0 - 53
.github/workflows/package-builds-stable.yml

@@ -1,53 +0,0 @@
-name: Package builds (stable)
-
-on:
-  workflow_dispatch:
-  # release:
-  #   types: [published]
-
-permissions:
-  contents: write
-  actions: write
-
-jobs:
-  package_builds:
-    #runs-on: alrest-techarohq
-    runs-on: ubuntu-24.04
-    steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-          fetch-tags: true
-          fetch-depth: 0
-
-      - name: build essential
-        run: |
-          sudo apt-get update
-          sudo apt-get install -y build-essential
-
-      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
-        with:
-          node-version: "24.11.0"
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - name: install node deps
-        run: |
-          npm ci
-
-      - name: Build Packages
-        run: |
-          go tool yeet
-
-      - name: Upload released artifacts
-        env:
-          GITHUB_TOKEN: ${{ github.TOKEN }}
-          RELEASE_VERSION: ${{github.event.release.tag_name}}
-        shell: bash
-        run: |
-          RELEASE="${RELEASE_VERSION}"
-          cd var
-          for file in *; do
-            gh release upload $RELEASE $file
-          done

+ 0 - 47
.github/workflows/package-builds-unstable.yml

@@ -1,47 +0,0 @@
-name: Package builds (unstable)
-
-on:
-  push:
-    branches: ["main"]
-  pull_request:
-    branches: ["main"]
-
-permissions:
-  contents: read
-  actions: write
-
-jobs:
-  package_builds:
-    #runs-on: alrest-techarohq
-    runs-on: ubuntu-24.04
-    steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-          fetch-tags: true
-          fetch-depth: 0
-
-      - name: build essential
-        run: |
-          sudo apt-get update
-          sudo apt-get install -y build-essential
-
-      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
-        with:
-          node-version: "24.11.0"
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - name: install node deps
-        run: |
-          npm ci
-
-      - name: Build Packages
-        run: |
-          go tool yeet
-
-      - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
-        with:
-          name: packages
-          path: var/*

+ 0 - 64
.github/workflows/smoke-tests.yml

@@ -1,64 +0,0 @@
-name: Smoke tests
-
-on:
-  push:
-    branches: ["main"]
-  pull_request:
-    branches: ["main"]
-
-permissions:
-  contents: read
-
-jobs:
-  smoke-test:
-    strategy:
-      matrix:
-        test:
-          - default-config-macro
-          - docker-registry
-          - double_slash
-          - forced-language
-          - git-clone
-          - git-push
-          - healthcheck
-          - i18n
-          - log-file
-          - nginx
-          - palemoon/amd64
-          #- palemoon/i386
-          - robots_txt
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-
-      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
-        with:
-          node-version: "24.11.0"
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9
-
-      - name: Install utils
-        run: |
-          go install ./utils/cmd/...
-
-      - name: Run test
-        run: |
-          cd test/${{ matrix.test }}
-          backoff-retry --try-count 10 ./test.sh
-
-      - name: Sanitize artifact name
-        if: always()
-        run: echo "ARTIFACT_NAME=${{ matrix.test }}" | sed 's|/|-|g' >> $GITHUB_ENV
-
-      - name: Upload artifact
-        uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
-        if: always()
-        with:
-          name: ${{ env.ARTIFACT_NAME }}
-          path: test/${{ matrix.test }}/var

+ 0 - 118
.github/workflows/spelling.yml

@@ -1,118 +0,0 @@
-name: Check Spelling
-
-# Comment management is handled through a secondary job, for details see:
-# https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Restricted-Permissions
-#
-# `jobs.comment-push` runs when a push is made to a repository and the `jobs.spelling` job needs to make a comment
-#   (in odd cases, it might actually run just to collapse a comment, but that's fairly rare)
-#   it needs `contents: write` in order to add a comment.
-#
-# `jobs.comment-pr` runs when a pull_request is made to a repository and the `jobs.spelling` job needs to make a comment
-#   or collapse a comment (in the case where it had previously made a comment and now no longer needs to show a comment)
-#   it needs `pull-requests: write` in order to manipulate those comments.
-
-# Updating pull request branches is managed via comment handling.
-# For details, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-expect-list
-#
-# These elements work together to make it happen:
-#
-# `on.issue_comment`
-#   This event listens to comments by users asking to update the metadata.
-#
-# `jobs.update`
-#   This job runs in response to an issue_comment and will push a new commit
-#   to update the spelling metadata.
-#
-# `with.experimental_apply_changes_via_bot`
-#   Tells the action to support and generate messages that enable it
-#   to make a commit to update the spelling metadata.
-#
-# `with.ssh_key`
-#   In order to trigger workflows when the commit is made, you can provide a
-#   secret (typically, a write-enabled github deploy key).
-#
-#   For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key
-
-# SARIF reporting
-#
-# Access to SARIF reports is generally restricted (by GitHub) to members of the repository.
-#
-# Requires enabling `security-events: write`
-# and configuring the action with `use_sarif: 1`
-#
-#   For information on the feature, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-SARIF-output
-
-# Minimal workflow structure:
-#
-# on:
-#   push:
-#     ...
-#   pull_request_target:
-#     ...
-# jobs:
-#   # you only want the spelling job, all others should be omitted
-#   spelling:
-#     # remove `security-events: write` and `use_sarif: 1`
-#     # remove `experimental_apply_changes_via_bot: 1`
-#     ... otherwise adjust the `with:` as you wish
-
-on:
-  push:
-    branches:
-      - "**"
-    tags-ignore:
-      - "**"
-  pull_request:
-    branches:
-      - "**"
-    types:
-      - "opened"
-      - "reopened"
-      - "synchronize"
-
-jobs:
-  spelling:
-    name: Check Spelling
-    permissions:
-      contents: read
-      pull-requests: read
-      actions: read
-      security-events: write
-    outputs:
-      followup: ${{ steps.spelling.outputs.followup }}
-    runs-on: ubuntu-latest
-    if: ${{ contains(github.event_name, 'pull_request') || github.event_name == 'push' }}
-    concurrency:
-      group: spelling-${{ github.event.pull_request.number || github.ref }}
-      # note: If you use only_check_changed_files, you do not want cancel-in-progress
-      cancel-in-progress: true
-    steps:
-      - name: check-spelling
-        id: spelling
-        uses: check-spelling/check-spelling@c635c2f3f714eec2fcf27b643a1919b9a811ef2e # v0.0.25
-        with:
-          suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }}
-          checkout: true
-          check_file_names: 1
-          post_comment: 0
-          use_magic_file: 1
-          warnings: bad-regex,binary-file,deprecated-feature,ignored-expect-variant,large-file,limited-references,no-newline-at-eof,noisy-file,non-alpha-in-dictionary,token-is-substring,unexpected-line-ending,whitespace-in-dictionary,minified-file,unsupported-configuration,no-files-to-check,unclosed-block-ignore-begin,unclosed-block-ignore-end
-          use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }}
-          check_extra_dictionaries: ""
-          dictionary_source_prefixes: >
-            {
-            "cspell": "https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20241114/dictionaries/"
-            }
-          extra_dictionaries: |
-            cspell:software-terms/softwareTerms.txt
-            cspell:golang/go.txt
-            cspell:npm/npm.txt
-            cspell:k8s/k8s.txt
-            cspell:python/python/python-lib.txt
-            cspell:aws/aws.txt
-            cspell:node/node.txt
-            cspell:html/html.txt
-            cspell:filetypes/filetypes.txt
-            cspell:python/common/extra.txt
-            cspell:docker/docker-words.txt
-            cspell:fullstack/fullstack.txt

+ 0 - 37
.github/workflows/ssh-ci-runner-cron.yml

@@ -1,37 +0,0 @@
-name: Regenerate ssh ci runner image
-
-on:
-  # pull_request:
-  #   branches: ["main"]
-  schedule:
-    - cron: "0 0 1,8,15,22 * *"
-  workflow_dispatch:
-
-permissions:
-  pull-requests: write
-  contents: write
-  packages: write
-
-jobs:
-  ssh-ci-rebuild:
-    if: github.repository == 'TecharoHQ/anubis'
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          fetch-tags: true
-          fetch-depth: 0
-          persist-credentials: false
-      - name: Log into registry
-        uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
-        with:
-          registry: ghcr.io
-          username: ${{ github.repository_owner }}
-          password: ${{ secrets.GITHUB_TOKEN }}
-      - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
-      - name: Build and push
-        run: |
-          cd ./test/ssh-ci
-          docker buildx bake --push

+ 0 - 45
.github/workflows/ssh-ci.yml

@@ -1,45 +0,0 @@
-name: SSH CI
-
-on:
-  push:
-    branches: ["main"]
-  # pull_request:
-  #   branches: ["main"]
-
-permissions:
-  contents: read
-
-jobs:
-  ssh:
-    if: github.repository == 'TecharoHQ/anubis'
-    runs-on: alrest-techarohq
-    strategy:
-      matrix:
-        host:
-          - riscv64
-          - ppc64le
-          - aarch64-4k
-          - aarch64-16k
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          fetch-tags: true
-          fetch-depth: 0
-          persist-credentials: false
-
-      - name: Install CI target SSH key
-        uses: shimataro/ssh-key-action@d4fffb50872869abe2d9a9098a6d9c5aa7d16be4 # v2.7.0
-        with:
-          key: ${{ secrets.CI_SSH_KEY }}
-          name: id_rsa
-          known_hosts: ${{ secrets.CI_SSH_KNOWN_HOSTS }}
-
-      - uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
-        with:
-          go-version: "1.25.4"
-
-      - name: Run CI
-        run: go run ./utils/cmd/backoff-retry bash test/ssh-ci/rigging.sh ${{ matrix.host }}
-        env:
-          GITHUB_RUN_ID: ${{ github.run_id }}

+ 0 - 35
.github/workflows/zizmor.yml

@@ -1,35 +0,0 @@
-name: zizmor
-
-on:
-  push:
-    paths:
-      - ".github/workflows/*.ya?ml"
-  pull_request:
-    paths:
-      - ".github/workflows/*.ya?ml"
-
-jobs:
-  zizmor:
-    name: zizmor latest via PyPI
-    runs-on: ubuntu-24.04
-    permissions:
-      security-events: write
-    steps:
-      - name: Checkout repository
-        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-        with:
-          persist-credentials: false
-
-      - name: Install the latest version of uv
-        uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
-
-      - name: Run zizmor 🌈
-        run: uvx zizmor --format sarif . > results.sarif
-        env:
-          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
-      - name: Upload SARIF file
-        uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
-        with:
-          sarif_file: results.sarif
-          category: zizmor

+ 0 - 5
.github/zizmor.yml

@@ -1,5 +0,0 @@
-rules:
-  unpinned-uses:
-    config:
-      policies:
-        Homebrew/actions/*: any

+ 0 - 8
.husky/commit-msg

@@ -1,8 +0,0 @@
-npx --no-install commitlint --edit "$1"
-
-# Check if commit message contains Signed-off-by line
-if ! grep -q "^Signed-off-by:" "$1"; then
-	echo "Commit message must contain a 'Signed-off-by:' line."
-	echo "Please use 'git commit --signoff' or add a Signed-off-by line to your commit message."
-	exit 1
-fi

+ 0 - 2
.husky/pre-commit

@@ -1,2 +0,0 @@
-npm run lint
-npm run test

+ 0 - 11
.vscode/extensions.json

@@ -1,11 +0,0 @@
-{
-  "recommendations": [
-    "esbenp.prettier-vscode",
-    "ms-azuretools.vscode-containers",
-    "golang.go",
-    "unifiedjs.vscode-mdx",
-    "a-h.templ",
-    "redhat.vscode-yaml",
-    "streetsidesoftware.code-spell-checker"
-  ]
-}

+ 0 - 27
.vscode/launch.json

@@ -1,27 +0,0 @@
-{
-  // Use IntelliSense to learn about possible attributes.
-  // Hover to view descriptions of existing attributes.
-  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
-  "version": "0.2.0",
-  "configurations": [
-    {
-      "name": "Launch Package",
-      "type": "go",
-      "request": "launch",
-      "mode": "auto",
-      "program": "${fileDirname}"
-    },
-    {
-      "name": "Anubis [dev]",
-      "command": "npm run dev",
-      "request": "launch",
-      "type": "node-terminal"
-    },
-    {
-      "name": "Start Docs",
-      "command": "cd docs && npm ci && npm run start",
-      "request": "launch",
-      "type": "node-terminal"
-    }
-  ]
-}

+ 0 - 34
.vscode/settings.json

@@ -1,34 +0,0 @@
-{
-  "github.copilot.enable": {
-    "*": false,
-    "plaintext": false,
-    "markdown": false,
-    "mdx": false,
-    "json": false,
-    "scminput": false,
-    "yaml": false,
-    "go": false,
-    "zig": false,
-    "javascript": false,
-    "properties": false
-  },
-  "[markdown]": {
-    "editor.wordWrap": "wordWrapColumn",
-    "editor.wordWrapColumn": 80,
-    "editor.wordBasedSuggestions": "off"
-  },
-  "[mdx]": {
-    "editor.wordWrap": "wordWrapColumn",
-    "editor.wordWrapColumn": 80,
-    "editor.wordBasedSuggestions": "off"
-  },
-  "[nunjucks]": {
-    "editor.wordWrap": "wordWrapColumn",
-    "editor.wordWrapColumn": 80,
-    "editor.wordBasedSuggestions": "off"
-  },
-  "cSpell.enabledFileTypes": {
-    "mdx": true,
-    "md": true
-  }
-}