name: OpenWiki Update on: workflow_dispatch: schedule: - cron: "0 8 * * *" permissions: contents: write pull-requests: write jobs: update: runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 with: # Full history so `openwiki code --update` can diff HEAD against the # commit it last documented; a shallow clone hides that commit and the # update runs against an empty change summary. fetch-depth: 0 - name: Set up Node.js uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: "22" - name: Install OpenWiki # mermaid + jsdom are optional; they add high-fidelity validation of Mermaid diagrams. Remove if your wiki has none. run: npm install --global openwiki mermaid@11.16.0 jsdom@29.1.1 - name: Run OpenWiki run: openwiki code --update --print env: OPENWIKI_PROVIDER: gemini GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} OPENWIKI_MODEL_ID: gemini-3.6-flash - name: Restore protected workflow file # `openwiki code --update` regenerates this file from its internal # template on every run, which silently drops the guard above (see # https://github.com/langchain-ai/openwiki/issues/423). Until that's # fixed upstream, discard whatever the agent just wrote here so the # guard always survives, regardless of whether the run above # succeeded or failed. if: always() run: git checkout -- .github/workflows/openwiki-update.yml - name: Create OpenWiki update pull request uses: infinilabs/gitea-pr@v1 with: add-paths: | openwiki AGENTS.md CLAUDE.md .github/workflows/openwiki-update.yml branch: openwiki/update commit-message: "docs: update OpenWiki" url: ${{ secrets.URL }} token: ${{ secrets.TOKEN }} base_branch: master head_branch: openwiki/update title: "docs: update OpenWiki" body: | Automated OpenWiki documentation update. This PR was generated by the scheduled OpenWiki workflow.