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<> "$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: ${{ steps.changes.outputs.files }} Requirements: 1. Update all relevant locale docs under packages/web/src/content/docs// 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"