Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
bc00eeb
Create CNAME
SuperMarioYL Dec 27, 2025
28eae9d
fix bug
Dec 27, 2025
df9a923
fix bug
Dec 27, 2025
a364f58
fix bug
Dec 27, 2025
9f28a97
fix bug
Dec 27, 2025
a6cd0c9
fix bug
Dec 27, 2025
8a2861e
fix bug
Dec 27, 2025
36ca34a
fix release bug
Dec 28, 2025
3ab9af1
fix helm bug
Dec 28, 2025
0092172
fix document
Dec 28, 2025
094fbe4
fix bug
Dec 28, 2025
5b382c2
fix bug
Dec 28, 2025
61ba812
docs: add version 0.0.6 [skip ci]
github-actions[bot] Dec 28, 2025
151a244
fix bug
Dec 28, 2025
f846117
docs: add version 0.0.7 [skip ci]
github-actions[bot] Dec 28, 2025
db5e3d4
fix bug
Dec 28, 2025
06ba827
docs: add version 0.0.8 [skip ci]
github-actions[bot] Dec 28, 2025
66989a8
fix: use lowercase username for GHCR
Dec 28, 2025
caee2ce
docs: add OCI annotations and improve Helm chart README
Dec 28, 2025
b3c547e
add docs
Dec 29, 2025
370c73d
docs: add version 0.0.11 [skip ci]
github-actions[bot] Dec 29, 2025
3cbb1c5
chore: bump version to 0.0.11 [skip ci]
github-actions[bot] Dec 29, 2025
1f00731
add
Jan 31, 2026
8e94797
add
Feb 7, 2026
98a9b75
release: v0.0.12 — billing concurrency safety, FE perf & website SVG …
SuperMarioYL Jun 19, 2026
5163e50
release: v0.0.13 — scheduler leader election (HA, root-fix duplicate …
SuperMarioYL Jun 19, 2026
cc6fbd6
release: v0.0.14 — persist auth Secret across helm upgrades
SuperMarioYL Jun 19, 2026
8c96ea2
release: v0.0.15 — login rate limiting + constant-time credential com…
SuperMarioYL Jun 19, 2026
a961593
release: v0.0.16 — configurable CORS allowlist
SuperMarioYL Jun 19, 2026
e3d0851
release: v0.0.17 — billing interval correctness + restart-safe last-b…
SuperMarioYL Jun 19, 2026
497eb0e
release: v0.0.18 — fix daily burn-rate underestimate
SuperMarioYL Jun 19, 2026
30e5862
release: v0.0.19 — backend perf: drop discarded team-usage queries, l…
SuperMarioYL Jun 19, 2026
3ba49c2
release: v0.0.20 — OpenCost query TTL + coalescing cache
SuperMarioYL Jun 19, 2026
1893247
release: v0.0.21 — CI test/lint gate before publish + reproducible we…
SuperMarioYL Jun 19, 2026
ea14f69
ci: use npm install (not ci) in release gate for cross-platform optio…
SuperMarioYL Jun 19, 2026
341e692
ci: remove lockfile before npm install in release gate (npm bug #4828)
SuperMarioYL Jun 19, 2026
9e7be14
release: v0.0.22 — refuse insecure auth defaults at startup
SuperMarioYL Jun 19, 2026
3af14a4
release: v0.0.23 — centralize frontend API error extraction
SuperMarioYL Jun 19, 2026
c519c0a
release: v0.0.24 — memoize Auth/Theme context values
SuperMarioYL Jun 19, 2026
cea2a96
release: v0.0.25 — Helm values.schema.json + kubeVersion
SuperMarioYL Jun 19, 2026
45f8907
release: v0.0.26 — opt-in PDB, HPA & NetworkPolicy templates
SuperMarioYL Jun 19, 2026
7fbe03d
docs: record v0.0.12-v0.0.26 shipped roadmap items and remaining backlog
SuperMarioYL Jun 19, 2026
4758d54
release: v0.0.27 — supply-chain hygiene (Dependabot + .dockerignore)
SuperMarioYL Jun 19, 2026
0c2f3bb
ci: bump actions/setup-go from 5 to 6
dependabot[bot] Jun 19, 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
46 changes: 46 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
version: 2
updates:
- package-ecosystem: gomod
directory: /api-server
schedule:
interval: weekly
open-pull-requests-limit: 5
commit-message:
prefix: "deps(go)"

- package-ecosystem: npm
directory: /web-ui
schedule:
interval: weekly
open-pull-requests-limit: 5
commit-message:
prefix: "deps(web-ui)"

- package-ecosystem: npm
directory: /website
schedule:
interval: weekly
open-pull-requests-limit: 5
commit-message:
prefix: "deps(website)"

- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
commit-message:
prefix: "ci"

- package-ecosystem: docker
directory: /api-server
schedule:
interval: weekly
commit-message:
prefix: "deps(docker)"

- package-ecosystem: docker
directory: /web-ui
schedule:
interval: weekly
commit-message:
prefix: "deps(docker)"
4 changes: 2 additions & 2 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version: '1.24'
cache-dependency-path: api-server/go.sum
Expand All @@ -53,7 +53,7 @@ jobs:
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
uses: actions/setup-go@v6
with:
go-version: '1.24'
cache-dependency-path: api-server/go.sum
Expand Down
137 changes: 137 additions & 0 deletions .github/workflows/cleanup-docs-version.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
name: Cleanup Documentation Version

on:
release:
types: [deleted]

permissions:
contents: write

concurrency:
group: docs-versioning
cancel-in-progress: false

jobs:
remove-version:
name: Remove Documentation Version
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main

- name: Extract version from tag
id: version
run: |
# Extract version from tag (v0.0.3 -> 0.0.3)
VERSION=${GITHUB_REF#refs/tags/v}
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Removing documentation version: $VERSION"

- name: Check if version exists
id: check
run: |
VERSION=${{ steps.version.outputs.version }}
if grep -q "\"${VERSION}\"" website/versions.json; then
echo "exists=true" >> $GITHUB_OUTPUT
echo "✅ Version ${VERSION} found in versions.json"
else
echo "exists=false" >> $GITHUB_OUTPUT
echo "⚠️ Version ${VERSION} not found, nothing to remove"
fi

- name: Install jq
if: steps.check.outputs.exists == 'true'
run: |
sudo apt-get update
sudo apt-get install -y jq

- name: Remove version from versions.json
if: steps.check.outputs.exists == 'true'
run: |
VERSION=${{ steps.version.outputs.version }}

echo "Current versions.json:"
cat website/versions.json

# Remove version from array using jq
jq --arg ver "${VERSION}" 'del(.[] | select(. == $ver))' website/versions.json > website/versions.json.tmp
mv website/versions.json.tmp website/versions.json

echo ""
echo "Updated versions.json:"
cat website/versions.json

- name: Remove versioned directories
if: steps.check.outputs.exists == 'true'
run: |
VERSION=${{ steps.version.outputs.version }}

# Remove versioned documentation directory
if [ -d "website/versioned_docs/version-${VERSION}" ]; then
rm -rf "website/versioned_docs/version-${VERSION}"
echo "✅ Removed versioned_docs/version-${VERSION}/"
fi

# Remove versioned sidebars file
if [ -f "website/versioned_sidebars/version-${VERSION}-sidebars.json" ]; then
rm -f "website/versioned_sidebars/version-${VERSION}-sidebars.json"
echo "✅ Removed versioned_sidebars/version-${VERSION}-sidebars.json"
fi

echo ""
echo "Files removed:"
git status --short

- name: Configure Git
if: steps.check.outputs.exists == 'true'
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Commit and push changes
if: steps.check.outputs.exists == 'true'
run: |
VERSION=${{ steps.version.outputs.version }}

git add website/versions.json
git add website/versioned_docs/
git add website/versioned_sidebars/

git commit -m "docs: remove version ${VERSION} [skip ci]

Auto-cleanup documentation version after release deletion ${GITHUB_REF}

- Removed version ${VERSION} from versions.json
- Deleted versioned_docs/version-${VERSION}/
- Deleted versioned_sidebars/version-${VERSION}-sidebars.json"

git push origin HEAD:main

echo "✅ Changes pushed to main branch"
echo "📚 Documentation version ${VERSION} has been removed"

- name: Summary
run: |
VERSION=${{ steps.version.outputs.version }}
EXISTS=${{ steps.check.outputs.exists }}

echo "## Documentation Cleanup Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Version**: ${VERSION}" >> $GITHUB_STEP_SUMMARY
echo "**Release**: ${GITHUB_REF}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

if [ "$EXISTS" == "true" ]; then
echo "✅ **Status**: Documentation version removed successfully" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Removed files**:" >> $GITHUB_STEP_SUMMARY
echo "- \`versions.json\` (updated)" >> $GITHUB_STEP_SUMMARY
echo "- \`versioned_docs/version-${VERSION}/\`" >> $GITHUB_STEP_SUMMARY
echo "- \`versioned_sidebars/version-${VERSION}-sidebars.json\`" >> $GITHUB_STEP_SUMMARY
else
echo "⚠️ **Status**: Version not found, nothing to remove" >> $GITHUB_STEP_SUMMARY
fi
91 changes: 21 additions & 70 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,17 @@ concurrency:
cancel-in-progress: false

jobs:
build-docs:
name: Build Docusaurus
deploy-docs:
name: Build and Deploy Documentation
runs-on: ubuntu-latest

steps:
- name: Checkout code
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Pages
uses: actions/configure-pages@v5

- name: Setup Node.js
uses: actions/setup-node@v4
with:
Expand All @@ -43,75 +47,22 @@ jobs:
cd website
npm run build

- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: docusaurus-build
path: website/build/

deploy-docs:
name: Deploy to GitHub Pages
needs: build-docs
runs-on: ubuntu-latest
steps:
- name: Checkout gh-pages branch (or create it)
uses: actions/checkout@v4
with:
ref: gh-pages
fetch-depth: 0
continue-on-error: true

- name: Initialize gh-pages if checkout failed
run: |
if [ ! -d ".git" ]; then
echo "gh-pages branch doesn't exist, creating it..."
git init
git checkout -b gh-pages
git remote add origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
fi

- name: Download docs build
uses: actions/download-artifact@v4
with:
name: docusaurus-build
path: docs-temp/

- name: Preserve Helm charts and deploy docs
- name: Prepare deployment
run: |
# Backup existing charts/ directory if it exists
if [ -d "charts" ]; then
echo "Backing up existing charts/ directory"
mv charts charts-backup
fi
# Create deployment directory
mkdir -p _site

# Clear everything except charts-backup and .git
find . -maxdepth 1 ! -name charts-backup ! -name .git ! -name . ! -name .. -exec rm -rf {} +
# Copy Docusaurus build output
cp -r website/build/* _site/

# Move Docusaurus build to root
if [ -d "docs-temp" ] && [ "$(ls -A docs-temp)" ]; then
mv docs-temp/* docs-temp/.* . 2>/dev/null || mv docs-temp/* .
rm -rf docs-temp
else
echo "Warning: docs-temp directory is empty or doesn't exist"
fi
# Ensure .nojekyll exists (should already be in build)
touch _site/.nojekyll

# Restore charts/ directory
if [ -d "charts-backup" ]; then
echo "Restoring charts/ directory"
mv charts-backup charts
fi

- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: '_site'

- name: Commit and push
run: |
git add -A
if ! git diff --cached --quiet; then
git commit -m "Deploy documentation from commit ${{ github.sha }}"
git push origin gh-pages --force
else
echo "No changes to commit"
fi
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Loading
Loading