.github/workflows/check_extras_sync.yml YAML 74 lines View on github.com → Search inside
1# See `.github/scripts/check_extras_sync.py` for the rationale.23name: "🔍 Check Extras Sync"45on:6  pull_request:7    paths:8      - "libs/**/pyproject.toml"9      - ".github/scripts/check_extras_sync.py"10      - ".github/workflows/check_extras_sync.yml"11  push:12    branches: [master]13    paths:14      - "libs/**/pyproject.toml"15      - ".github/scripts/check_extras_sync.py"16      - ".github/workflows/check_extras_sync.yml"1718concurrency:19  group: ${{ github.workflow }}-${{ github.ref }}20  cancel-in-progress: true2122permissions:23  contents: read2425jobs:26  check-extras-sync:27    if: github.repository_owner == 'langchain-ai'28    name: "Verify extras match required deps"29    runs-on: ubuntu-latest30    timeout-minutes: 231    steps:32      - name: "📋 Checkout Code"33        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v63435      - name: "🐍 Set up Python and uv"36        uses: "./.github/actions/uv_setup"37        with:38          python-version: "3.13"39          enable-cache: "false"4041      - name: "🔍 Check extras sync"42        # Iterate every package pyproject.toml under libs/. The script43        # no-ops on packages without [project.optional-dependencies], so44        # this is harmless on packages without extras and automatically45        # picks up new partners as they're added. No `-maxdepth` cap so46        # deeper future restructures (e.g. `libs/partners/<group>/<pkg>/`)47        # are picked up automatically.48        run: |49          set -euo pipefail50          mapfile -t files < <(51            find libs -name pyproject.toml \52              -not -path "*/.venv/*" \53              -not -path "*/node_modules/*" \54              -not -path "*/build/*" \55              -not -path "*/dist/*" \56              -not -path "*/.tox/*" \57              | sort58          )59          if [ ${#files[@]} -eq 0 ]; then60            echo "::error::No pyproject.toml files found under libs/"61            exit 162          fi63          failed=()64          for f in "${files[@]}"; do65            if ! python .github/scripts/check_extras_sync.py "$f"; then66              failed+=("$f")67            fi68          done69          if [ ${#failed[@]} -gt 0 ]; then70            echo "::error::Extras-sync check failed for ${#failed[@]} package(s):"71            printf '::error::  %s\n' "${failed[@]}"72            exit 173          fi

Findings

✓ No findings reported for this file.

Get this view in your editor

Same data, no extra tab — call code_get_file + code_get_findings over MCP from Claude/Cursor/Copilot.