name: Sync docs with Docusaurus on: workflow_dispatch: push: branches: - main paths: - "pydoc/**" - "haystack/**" - ".github/workflows/docusaurus_sync.yml" env: HATCH_VERSION: "1.14.2" PYTHON_VERSION: "3.11" jobs: sync: runs-on: ubuntu-slim permissions: contents: write steps: - name: Checkout Haystack repo uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: python-version: "${{ env.PYTHON_VERSION }}" - name: Install Hatch run: pip install hatch==${{ env.HATCH_VERSION }} - name: Generate API reference for Docusaurus run: hatch run docs - name: Sync generated API reference to docs folder run: | SOURCE_PATH="pydoc/temp" DEST_PATH="docs-website/reference/haystack-api" echo "Syncing from $SOURCE_PATH to $DEST_PATH" mkdir -p $DEST_PATH # Using rsync to copy files. This will also remove files in dest that are no longer in source. rsync -av --delete --exclude='.git/' "$SOURCE_PATH/" "$DEST_PATH/" - name: Create Pull Request uses: peter-evans/create-pull-request@v8 with: token: ${{ secrets.HAYSTACK_BOT_TOKEN }} commit-message: "Sync Haystack API reference on Docusaurus" branch: sync-docusaurus-api-reference base: main title: "docs: sync Haystack API reference on Docusaurus" add-paths: | docs-website/reference/haystack-api body: | This PR syncs the Haystack API reference on Docusaurus. Just approve and merge it. reviewers: "${{ github.actor }}"