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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions .alexrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
{
"allow": [
"just",
"simple",
"easy",
"whitespace",
"whitespaces",
"special",
"invalid",
"host-hostess",
"hostesses-hosts",
"color",
"colored",
"colors",
"master",
"execute",
"executed",
"executes",
"execution",
"executions",
"hook",
"hooks",
"fire",
"fires",
"firing",
"period",
"periods",
"reject",
"rejects",
"failed",
"failure",
"failures",
"attack",
"attacks",
"destroy",
"destroys",
"kill",
"killed",
"killing",
"kills",
"obviously",
"obvious",
"of-course",
"clearly",
"basically",
"everyone-knows",
"straightforward",
"blow",
"bomb",
"bombs",
"boom",
"crash",
"crashes",
"dead",
"desire",
"dirty",
"hang",
"hijacking",
"remain",
"remains",
"bigger",
"white",
"black",
"savage",
"american",
"canadian",
"chinese",
"european",
"japanese",
"asian",
"asian-american",
"christian",
"latin",
"gal-guy",
"gals-man",
"her-him",
"prince-princess",
"mrs-",
"conservative",
"corruption",
"crappy",
"dive",
"faith",
"hard",
"harder",
"hole",
"holes",
"husky",
"ky",
"lies",
"mad",
"nuts",
"reject-jection",
"sane",
"spits",
"stupid",
"wacko",
"wtf",
"xxx"
]
}
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @dsdeboer
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: CI Quality

on:
pull_request:
branches:
- main

permissions:
contents: read

jobs:
lint-markdown:
name: Lint Markdown
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm

- name: Install dependencies
run: npm ci

- name: Lint Markdown files
run: npm run lint:markdown

lint-yaml:
name: Lint YAML
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Lint YAML files
uses: ibiqlik/action-yamllint@v3
with:
config_file: ".yamllint.yml"
file_or_dir: "."
strict: false
44 changes: 44 additions & 0 deletions .github/workflows/monitor-tech-changes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Monitor Technology Best Practice Changes

on:
schedule:
- cron: "0 9 * * 0" # Every Sunday at 09:00 UTC
workflow_dispatch:

permissions:
contents: read
issues: write

jobs:
check-tech-changes:
name: Check Technology Version Changes
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm

- name: Install dependencies
run: npm ci

- name: Check for npm outdated
id: outdated
run: |
outdated_json=$(npm outdated --json || echo '{}')
echo "outdated=${outdated_json}" >> "$GITHUB_OUTPUT"

- name: Check Node.js LTS status
id: node-status
run: |
current=$(node --version | cut -dv -f2 | cut -d. -f1)
echo "current_node=${current}" >> "$GITHUB_OUTPUT"

- name: Create issue for technology updates
if: steps.outdated.outputs.outdated != '{}'
run: |
outdated="${{ steps.outdated.outputs.outdated }}"
./.github/workflows/scripts/create-tech-update-issue.sh "$outdated"
51 changes: 51 additions & 0 deletions .github/workflows/scripts/create-tech-update-issue.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/bash
# Create a GitHub issue for technology best practices updates
# Usage: ./create-tech-update-issue.sh <outdated_json>

set -euo pipefail

# Get outdated JSON from argument or stdin
outdated_json="${1:-$(cat)}"

# Parse JSON and build the findings
entries=$(echo "$outdated_json" | jq -r 'to_entries[] | "\(.key)|\(.value.current)|\(.value.latest)|\(.value.wanted)"')

# Build the body with dependency information
findings="### Outdated Dependencies"$'\n'$'\n'
while IFS='|' read -r pkg current latest wanted; do
findings+="- **${pkg}**: ${current} → ${latest}"$'\n'
findings+=" - Current: ${current}"$'\n'
findings+=" - Latest: ${latest}"$'\n'
findings+=" - Wanted: ${wanted}"$'\n'
done <<< "$entries"

# Create the full issue body
body="## Technology Best Practices Update

Several dependencies have newer versions available. This may indicate:
- Security updates
- New features that improve best practices
- Breaking changes requiring code updates

$findings

### Recommended Actions

1. Review each package's changelog for breaking changes
2. Test compatibility in development
3. Update package versions carefully
4. Verify all tests pass after updates

---
⚠️ **Note**: Technology evolves. When major versions bump, best practices often change. Review release notes to see if documentation or approaches need updating.

Generated by Technology Best Practices Monitor"

# Create the issue using GitHub CLI
gh issue create \
--title "chore: technology best practices update available" \
--body "$body" \
--assignee dsdeboer \
--label maintenance \
--label dependencies \
--label best-practices
68 changes: 68 additions & 0 deletions .github/workflows/validate-best-practices.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Validate Markdown Content Best Practices

on:
pull_request:
branches:
- main

permissions:
contents: read
pull-requests: write

jobs:
validate-inclusive-language:
name: Check Inclusive Language
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm

- name: Install dependencies
run: npm ci

- name: Validate inclusive language
run: npm run validate:inclusive

validate-links:
name: Validate Markdown Links
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm

- name: Install dependencies
run: npm ci

- name: Check for broken links
run: npm run validate:links

validate-readability:
name: Validate Content Readability
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm

- name: Install dependencies
run: npm ci

- name: Check readability
run: npm run validate:readability
31 changes: 31 additions & 0 deletions .github/workflows/validate-content.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Validate Content Structure

on:
pull_request:
branches:
- main

permissions:
contents: read
pull-requests: read

jobs:
validate-commits:
name: Validate Conventional Commits
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm

- name: Install dependencies
run: npm ci

- name: Validate commits with commitlint
run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
44 changes: 44 additions & 0 deletions .github/workflows/weekly-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Weekly Update Check

on:
schedule:
- cron: "0 9 * * 1" # Every Monday at 09:00 UTC
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
update-check:
name: Apply Lint Fixes and Open PR
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: package.json
cache: npm

- name: Install dependencies
run: npm ci

- name: Auto-fix Markdown issues
run: npm run lint:markdown:fix || true

- name: Open PR if changes were made
uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "chore: auto-fix markdown lint issues"
branch: automated/weekly-lint-fixes
delete-branch: true
title: "chore: weekly markdown lint fixes"
body: |
Automated weekly update check.

This PR contains automatic fixes applied by markdownlint-cli2.
Review and merge if the changes look correct.
reviewers: dsdeboer
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
.idea
Loading