Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
75b5aee
Merge branch 'main' of https://github.com/codethesaurus/codethesaur.us
geekygirlsarah Dec 28, 2025
69d4bd0
Merge branch 'main' of https://github.com/codethesaurus/codethesaur.us
geekygirlsarah Jan 22, 2026
107a4a1
Rename thesaurus languages to entries
geekygirlsarah Jan 22, 2026
393f014
(wip) Move language files to a langs/ directory
geekygirlsarah Jan 22, 2026
a9b8bc9
Add initial alterations to make a SQL/NoSQL section happen, some samp…
geekygirlsarah Jan 22, 2026
3f90def
Add CodeQL and security checkers, optimize other CI/CD
Jul 1, 2026
fa2f6d0
Add comprehensive test coverage for commands, generators, middleware,…
Sep 13, 2026
a5f7501
Refactor template generation, update error handling, and clean up met…
Sep 13, 2026
c8863dc
Add `AGENTS.md` for anyone that wants to use AI on this project
Sep 13, 2026
af35009
Add guidelines for AI tool usage in contributions
Sep 13, 2026
ee54154
Enhance CI/CD workflows: add Dependabot configuration, improve job co…
Sep 16, 2026
f6d381d
Merge remote-tracking branch 'ct/main'
Sep 17, 2026
1ee6a86
Fix borked merge between CT main and my fork:
Sep 17, 2026
3a5b966
Replace management command external calls with internal calls
Sep 18, 2026
c870288
Add OS path safety check in ThesurausEntry loading
Sep 18, 2026
98c7c81
Add OS path safety check (now OS agnostic) in ThesurausEntry loading
Sep 18, 2026
92a1819
Add path traversal safeguards in MetaStructure and ThesaurusEntry met…
Sep 18, 2026
ecafb61
Improve path traversal protections in MetaStructure and ThesaurusEntr…
Sep 18, 2026
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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/language_issues.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Language Issue
name: ThesaurusEntry Issue
about: Use this template to report issues with a language
---

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/language_request.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Language Request
name: ThesaurusEntry Request
about: Use this template to request a new language
---

Expand Down
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: 2
updates:
# Keep GitHub Actions (including SHA pins) up to date.
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
16 changes: 15 additions & 1 deletion .github/workflows/check-docker-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,26 @@ name: Check Docker Build

on:
pull_request:
paths:
- 'Dockerfile'
- 'docker-compose.yml'
- 'docker-entrypoint.sh'
- 'requirements.txt'
- 'Procfile'
- '.github/workflows/check-docker-build.yml'

permissions:
contents: read

concurrency:
group: docker-build-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
check:
name: Check Docker Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Docker Compose Build
run: docker compose build
55 changes: 55 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: "CodeQL"

on:
push:
branches: [ "main" ]
paths:
- '**.py'
- 'requirements.txt'
- '.github/workflows/codeql.yml'
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
paths:
- '**.py'
- 'requirements.txt'
- '.github/workflows/codeql.yml'
schedule:
- cron: '45 4 * * *' # Daily at 04:45 UTC

concurrency:
group: codeql-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [ 'python' ]

steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
with:
languages: ${{ matrix.language }}
queries: security-extended

- name: Autobuild
uses: github/codeql-action/autobuild@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
with:
category: "/language:${{matrix.language}}"
7 changes: 6 additions & 1 deletion .github/workflows/issue-auto-unassign.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
name: Auto-Unassign Inactive Issues

on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 0/12 * * *'
workflow_dispatch: # Enable manual runs of the bot

permissions:
issues: write

jobs:
unassign_issues:
runs-on: ubuntu-latest
name: Unassign issues
steps:
- name: Unassign issues
uses: codethesaurus/unassign-issues@1.3
uses: codethesaurus/unassign-issues@fec46824b2acd69b012edb5db2101399019be0b6 # 1.3
id: unassign_issues
with:
token: ${{secrets.GITHUB_TOKEN}}
Expand Down
26 changes: 22 additions & 4 deletions .github/workflows/json-validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,32 @@ on:
paths:
- '**.json'
pull_request:
paths:
- '**.json'

permissions:
contents: read

concurrency:
group: json-syntax-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
check:
name: Check JSON Files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: JSON Syntax Check
uses: limitusus/json-syntax-check@v1
with:
pattern: "\\.json$"
run: |
failed=0
while IFS= read -r -d '' file; do
if python3 -m json.tool "$file" > /dev/null 2>&1; then
echo "OK: $file"
else
echo "Invalid JSON: $file"
failed=1
fi
done < <(find . -type f -name '*.json' -not -path './.git/*' -not -path './venv/*' -print0)
exit "$failed"
25 changes: 22 additions & 3 deletions .github/workflows/run-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,41 @@ on:
push:
branches:
- main
paths:
- 'web/**'
- 'codethesaurus/**'
- 'requirements.txt'
- 'manage.py'
- '.github/workflows/run-unit-tests.yml'
pull_request:
branches:
- main
paths:
- 'web/**'
- 'codethesaurus/**'
- 'requirements.txt'
- 'manage.py'
- '.github/workflows/run-unit-tests.yml'

permissions:
contents: read

concurrency:
group: unit-tests-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
run:
name: Run Django Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout the branch
uses: actions/checkout@v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: 3.14
python-version: '3.14'
cache: 'pip'

- name: Install dependencies
Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Security Scans

on:
push:
branches: [ "main" ]
paths:
- '**.py'
- 'requirements.txt'
- '.github/workflows/security.yml'
pull_request:
branches: [ "main" ]
paths:
- '**.py'
- 'requirements.txt'
- '.github/workflows/security.yml'
schedule:
- cron: '30 4 * * *' # Daily at 04:30 UTC

concurrency:
group: security-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
bandit:
name: Bandit (SAST)
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.14'
cache: 'pip'

- name: Install Bandit
run: pip install bandit==1.9.4

- name: Run Bandit
# -r: recursive, -ll: medium severity or higher, -x: exclude directories
run: bandit -r . -ll -x ./venv,./web/tests,./staticfiles

dependency-check:
name: Dependency Scan (pip-audit)
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.14'
cache: 'pip'

- name: Install pip-audit
run: pip install pip-audit==2.10.1

- name: Run pip-audit
run: pip-audit -r requirements.txt

osv-scanner:
name: Dependency Scan (OSV)
permissions:
contents: read
actions: read
security-events: write
uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@a345acffa64b0eaede81a3d9aae6141214d9c8fc # v2.6.0
6 changes: 3 additions & 3 deletions .github/workflows/validate-language-info-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ jobs:
steps:

- name: Checkout the branch
uses: actions/checkout@v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: 3.14
python-version: '3.14'
cache: 'pip'

- name: Install dependencies
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/validate-meta-info-file.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ jobs:
steps:

- name: Checkout the branch
uses: actions/checkout@v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: 3.14
python-version: '3.14'
cache: 'pip'

- name: Install dependencies
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ __pycache__
public_html/
staticfiles/
*.sqlite3
/.junie
Loading
Loading