From d0ced56580fee608a9418b0d7ed947b891aa17ce Mon Sep 17 00:00:00 2001 From: Xingyao Wang Date: Fri, 17 Oct 2025 16:16:32 -0400 Subject: [PATCH 1/4] add update-docs --- .github/update-docs.yml | 90 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .github/update-docs.yml diff --git a/.github/update-docs.yml b/.github/update-docs.yml new file mode 100644 index 00000000..aba45940 --- /dev/null +++ b/.github/update-docs.yml @@ -0,0 +1,90 @@ +name: Sync agent-sdk OpenAPI spec + +on: + repository_dispatch: + types: [update-agent-sdk] + workflow_dispatch: + inputs: + target_branch: + description: 'Target branch in docs repo (defaults to main)' + required: false + type: string + default: 'main' + +permissions: + contents: write + +jobs: + generate-openapi: + runs-on: ubuntu-latest + env: + TOKEN: ${{ secrets.ALLHANDS_BOT_GITHUB_PAT || secrets.GITHUB_TOKEN }} + TARGET_BRANCH: ${{ github.event.client_payload.target_branch || inputs.target_branch || 'main' }} + steps: + - name: Checkout docs repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + persist-credentials: true + + - name: Configure Git + run: | + git config user.name "all-hands-bot" + git config user.email "contact@all-hands.dev" + + - name: Setup target branch + run: | + echo "Target branch: $TARGET_BRANCH" + + # Fetch all branches + git fetch origin + + # Check if target branch exists on remote + if git ls-remote --heads origin "$TARGET_BRANCH" | grep -q "$TARGET_BRANCH"; then + echo "Branch $TARGET_BRANCH exists, checking out" + git checkout "$TARGET_BRANCH" + git pull origin "$TARGET_BRANCH" + else + echo "Branch $TARGET_BRANCH does not exist, creating new branch" + git checkout -b "$TARGET_BRANCH" + fi + + - name: Install uv + uses: astral-sh/setup-uv@v7 + + - name: Clone agent-sdk + env: + TOKEN: ${{ env.TOKEN }} + run: | + # Get source branch from payload or default to main + SOURCE_BRANCH="${{ github.event.client_payload.branch || 'main' }}" + + tmpdir="$(mktemp -d)" + echo "Cloning agent-sdk from branch: $SOURCE_BRANCH to $tmpdir" + + auth_url="https://x-access-token:${TOKEN}@github.com/${{ github.repository_owner }}/agent-sdk.git" + git clone --depth=1 --branch="$SOURCE_BRANCH" "$auth_url" "$tmpdir/agent-sdk" + + echo "SDK_DIR=$tmpdir/agent-sdk" >> "$GITHUB_ENV" + echo "SOURCE_BRANCH=$SOURCE_BRANCH" >> "$GITHUB_ENV" + + - name: Generate OpenAPI spec + run: | + cd "$SDK_DIR" + uv sync --frozen + mkdir -p "$GITHUB_WORKSPACE/openapi" + SCHEMA_PATH="$GITHUB_WORKSPACE/openapi/agent-sdk.json" \ + uv run python openhands/agent_server/openapi.py + + - name: Commit and push OpenAPI spec + run: | + git add openapi/agent-sdk.json + + if git diff --cached --quiet; then + echo "No OpenAPI changes to commit." + else + SHA="${{ github.event.client_payload.sha || 'manual' }}" + BRANCH="${SOURCE_BRANCH:-main}" + git commit -m "sync(openapi): agent-sdk/$BRANCH ${SHA:0:7}" + git push origin "$TARGET_BRANCH" + fi From eb53362b5ddcfb8b54d845eca75fdba84d538e07 Mon Sep 17 00:00:00 2001 From: Xingyao Wang Date: Fri, 17 Oct 2025 16:20:36 -0400 Subject: [PATCH 2/4] add workflow to sync sdk changes --- .../{update-docs.yml => sync-sdk-changes.yml} | 26 ++----------------- 1 file changed, 2 insertions(+), 24 deletions(-) rename .github/{update-docs.yml => sync-sdk-changes.yml} (71%) diff --git a/.github/update-docs.yml b/.github/sync-sdk-changes.yml similarity index 71% rename from .github/update-docs.yml rename to .github/sync-sdk-changes.yml index aba45940..ee9ec7ff 100644 --- a/.github/update-docs.yml +++ b/.github/sync-sdk-changes.yml @@ -1,15 +1,10 @@ -name: Sync agent-sdk OpenAPI spec +name: Sync agent-sdk changes on: repository_dispatch: types: [update-agent-sdk] workflow_dispatch: inputs: - target_branch: - description: 'Target branch in docs repo (defaults to main)' - required: false - type: string - default: 'main' permissions: contents: write @@ -32,23 +27,6 @@ jobs: git config user.name "all-hands-bot" git config user.email "contact@all-hands.dev" - - name: Setup target branch - run: | - echo "Target branch: $TARGET_BRANCH" - - # Fetch all branches - git fetch origin - - # Check if target branch exists on remote - if git ls-remote --heads origin "$TARGET_BRANCH" | grep -q "$TARGET_BRANCH"; then - echo "Branch $TARGET_BRANCH exists, checking out" - git checkout "$TARGET_BRANCH" - git pull origin "$TARGET_BRANCH" - else - echo "Branch $TARGET_BRANCH does not exist, creating new branch" - git checkout -b "$TARGET_BRANCH" - fi - - name: Install uv uses: astral-sh/setup-uv@v7 @@ -71,7 +49,7 @@ jobs: - name: Generate OpenAPI spec run: | cd "$SDK_DIR" - uv sync --frozen + make build mkdir -p "$GITHUB_WORKSPACE/openapi" SCHEMA_PATH="$GITHUB_WORKSPACE/openapi/agent-sdk.json" \ uv run python openhands/agent_server/openapi.py From 9e55965b39b60e88a8ace0b2d2120fcc69d94f35 Mon Sep 17 00:00:00 2001 From: Xingyao Wang Date: Fri, 17 Oct 2025 16:33:07 -0400 Subject: [PATCH 3/4] push to same branch --- .github/sync-sdk-changes.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/sync-sdk-changes.yml b/.github/sync-sdk-changes.yml index ee9ec7ff..ddb96c11 100644 --- a/.github/sync-sdk-changes.yml +++ b/.github/sync-sdk-changes.yml @@ -14,7 +14,6 @@ jobs: runs-on: ubuntu-latest env: TOKEN: ${{ secrets.ALLHANDS_BOT_GITHUB_PAT || secrets.GITHUB_TOKEN }} - TARGET_BRANCH: ${{ github.event.client_payload.target_branch || inputs.target_branch || 'main' }} steps: - name: Checkout docs repo uses: actions/checkout@v4 @@ -64,5 +63,5 @@ jobs: SHA="${{ github.event.client_payload.sha || 'manual' }}" BRANCH="${SOURCE_BRANCH:-main}" git commit -m "sync(openapi): agent-sdk/$BRANCH ${SHA:0:7}" - git push origin "$TARGET_BRANCH" + git push origin fi From a7f0af2daa6bd92c0923fef044db1b9e8cf72c01 Mon Sep 17 00:00:00 2001 From: Xingyao Wang Date: Fri, 17 Oct 2025 16:34:02 -0400 Subject: [PATCH 4/4] remove old workflow --- .github/update-docs.yml | 90 ----------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 .github/update-docs.yml diff --git a/.github/update-docs.yml b/.github/update-docs.yml deleted file mode 100644 index aba45940..00000000 --- a/.github/update-docs.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: Sync agent-sdk OpenAPI spec - -on: - repository_dispatch: - types: [update-agent-sdk] - workflow_dispatch: - inputs: - target_branch: - description: 'Target branch in docs repo (defaults to main)' - required: false - type: string - default: 'main' - -permissions: - contents: write - -jobs: - generate-openapi: - runs-on: ubuntu-latest - env: - TOKEN: ${{ secrets.ALLHANDS_BOT_GITHUB_PAT || secrets.GITHUB_TOKEN }} - TARGET_BRANCH: ${{ github.event.client_payload.target_branch || inputs.target_branch || 'main' }} - steps: - - name: Checkout docs repo - uses: actions/checkout@v4 - with: - fetch-depth: 0 - persist-credentials: true - - - name: Configure Git - run: | - git config user.name "all-hands-bot" - git config user.email "contact@all-hands.dev" - - - name: Setup target branch - run: | - echo "Target branch: $TARGET_BRANCH" - - # Fetch all branches - git fetch origin - - # Check if target branch exists on remote - if git ls-remote --heads origin "$TARGET_BRANCH" | grep -q "$TARGET_BRANCH"; then - echo "Branch $TARGET_BRANCH exists, checking out" - git checkout "$TARGET_BRANCH" - git pull origin "$TARGET_BRANCH" - else - echo "Branch $TARGET_BRANCH does not exist, creating new branch" - git checkout -b "$TARGET_BRANCH" - fi - - - name: Install uv - uses: astral-sh/setup-uv@v7 - - - name: Clone agent-sdk - env: - TOKEN: ${{ env.TOKEN }} - run: | - # Get source branch from payload or default to main - SOURCE_BRANCH="${{ github.event.client_payload.branch || 'main' }}" - - tmpdir="$(mktemp -d)" - echo "Cloning agent-sdk from branch: $SOURCE_BRANCH to $tmpdir" - - auth_url="https://x-access-token:${TOKEN}@github.com/${{ github.repository_owner }}/agent-sdk.git" - git clone --depth=1 --branch="$SOURCE_BRANCH" "$auth_url" "$tmpdir/agent-sdk" - - echo "SDK_DIR=$tmpdir/agent-sdk" >> "$GITHUB_ENV" - echo "SOURCE_BRANCH=$SOURCE_BRANCH" >> "$GITHUB_ENV" - - - name: Generate OpenAPI spec - run: | - cd "$SDK_DIR" - uv sync --frozen - mkdir -p "$GITHUB_WORKSPACE/openapi" - SCHEMA_PATH="$GITHUB_WORKSPACE/openapi/agent-sdk.json" \ - uv run python openhands/agent_server/openapi.py - - - name: Commit and push OpenAPI spec - run: | - git add openapi/agent-sdk.json - - if git diff --cached --quiet; then - echo "No OpenAPI changes to commit." - else - SHA="${{ github.event.client_payload.sha || 'manual' }}" - BRANCH="${SOURCE_BRANCH:-main}" - git commit -m "sync(openapi): agent-sdk/$BRANCH ${SHA:0:7}" - git push origin "$TARGET_BRANCH" - fi