summaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/docs-locale-sync.yml82
1 files changed, 82 insertions, 0 deletions
diff --git a/.github/workflows/docs-locale-sync.yml b/.github/workflows/docs-locale-sync.yml
new file mode 100644
index 000000000..c97f3e191
--- /dev/null
+++ b/.github/workflows/docs-locale-sync.yml
@@ -0,0 +1,82 @@
+name: docs-locale-sync
+
+on:
+ push:
+ branches:
+ - dev
+ paths:
+ - packages/web/src/content/docs/*.mdx
+
+jobs:
+ sync-locales:
+ if: github.actor != 'opencode-agent[bot]'
+ runs-on: blacksmith-4vcpu-ubuntu-2404
+ permissions:
+ id-token: write
+ contents: write
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Setup Bun
+ uses: ./.github/actions/setup-bun
+
+ - name: Setup git committer
+ id: committer
+ uses: ./.github/actions/setup-git-committer
+ with:
+ opencode-app-id: ${{ vars.OPENCODE_APP_ID }}
+ opencode-app-secret: ${{ secrets.OPENCODE_APP_SECRET }}
+
+ - name: Compute changed English docs
+ id: changes
+ run: |
+ FILES=$(git diff --name-only "${{ github.event.before }}" "${{ github.sha }}" -- 'packages/web/src/content/docs/*.mdx' || true)
+ if [ -z "$FILES" ]; then
+ echo "has_changes=false" >> "$GITHUB_OUTPUT"
+ echo "No English docs changed in push range"
+ exit 0
+ fi
+ echo "has_changes=true" >> "$GITHUB_OUTPUT"
+ {
+ echo "files<<EOF"
+ echo "$FILES"
+ echo "EOF"
+ } >> "$GITHUB_OUTPUT"
+
+ - name: Sync locale docs with OpenCode
+ if: steps.changes.outputs.has_changes == 'true'
+ uses: sst/opencode/github@latest
+ env:
+ OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
+ with:
+ model: opencode/gpt-5.2
+ agent: docs
+ prompt: |
+ Update localized docs to match the latest English docs changes.
+
+ Changed English doc files:
+ <changed_english_docs>
+ ${{ steps.changes.outputs.files }}
+ </changed_english_docs>
+
+ Requirements:
+ 1. Update all relevant locale docs under packages/web/src/content/docs/<locale>/ so they reflect these English page changes.
+ 2. Preserve frontmatter keys, internal links, code blocks, and existing locale-specific metadata unless the English change requires an update.
+ 3. Keep locale docs structure aligned with their corresponding English pages.
+ 4. Do not modify English source docs in packages/web/src/content/docs/*.mdx.
+ 5. If no locale updates are needed, make no changes.
+
+ - name: Commit and push locale docs updates
+ if: steps.changes.outputs.has_changes == 'true'
+ run: |
+ if [ -z "$(git status --porcelain)" ]; then
+ echo "No locale docs changes to commit"
+ exit 0
+ fi
+ git add -A
+ git commit -m "docs(i18n): sync locale docs from english changes"
+ git pull --rebase --autostash origin "$GITHUB_REF_NAME"
+ git push origin HEAD:"$GITHUB_REF_NAME"