diff --git a/.github/pages-bootstrap/index.html b/.github/pages-bootstrap/index.html
new file mode 100644
index 0000000..f34cd8c
--- /dev/null
+++ b/.github/pages-bootstrap/index.html
@@ -0,0 +1,9 @@
+
+
+
+
+
+ MAVULA Developer Docs
+
+
+
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
new file mode 100644
index 0000000..3d3174a
--- /dev/null
+++ b/.github/workflows/pages.yml
@@ -0,0 +1,30 @@
+name: Publish API Reference
+on:
+ workflow_dispatch: {}
+permissions:
+ contents: read
+concurrency:
+ group: pages
+ cancel-in-progress: true
+jobs:
+ build:
+ if: github.ref == 'refs/heads/main'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: actions/upload-pages-artifact@v4
+ with: { path: .github/pages-bootstrap }
+ deploy:
+ if: github.ref == 'refs/heads/main'
+ permissions:
+ pages: write
+ id-token: write
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.github/workflows/required-ci.yml b/.github/workflows/required-ci.yml
new file mode 100644
index 0000000..d54efaa
--- /dev/null
+++ b/.github/workflows/required-ci.yml
@@ -0,0 +1,13 @@
+name: Required CI
+on:
+ pull_request: {}
+ push: { branches: [main] }
+permissions: { contents: read }
+jobs:
+ required:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ - uses: actions/setup-node@v6
+ with: { node-version: 22.22.3 }
+ - run: node scripts/guardian.mjs