Update A2A Schema from Specification #17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Update A2A Schema from Specification | |
| on: | |
| repository_dispatch: | |
| types: [a2a_json_update] | |
| workflow_dispatch: | |
| jobs: | |
| generate_and_pr: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| - name: Install uv | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Configure uv shell | |
| run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - name: Install dependencies (datamodel-code-generator) | |
| run: uv sync | |
| - name: Define output file variable | |
| id: vars | |
| run: | | |
| GENERATED_FILE="./src/a2a/types.py" | |
| echo "GENERATED_FILE=$GENERATED_FILE" >> "$GITHUB_OUTPUT" | |
| - name: Run datamodel-codegen | |
| run: | | |
| set -euo pipefail # Exit immediately if a command exits with a non-zero status | |
| REMOTE_URL="https://raw.githubusercontent.com/google-a2a/A2A/refs/heads/main/specification/json/a2a.json" | |
| GENERATED_FILE="${{ steps.vars.outputs.GENERATED_FILE }}" | |
| echo "Running datamodel-codegen..." | |
| uv run datamodel-codegen \ | |
| --url "$REMOTE_URL" \ | |
| --input-file-type jsonschema \ | |
| --output "$GENERATED_FILE" \ | |
| --target-python-version 3.10 \ | |
| --output-model-type pydantic_v2.BaseModel \ | |
| --disable-timestamp \ | |
| --use-schema-description \ | |
| --use-union-operator \ | |
| --use-field-description \ | |
| --use-default \ | |
| --use-default-kwarg \ | |
| --use-one-literal-as-default \ | |
| --class-name A2A \ | |
| --use-standard-collections \ | |
| --use-subclass-enum | |
| echo "Codegen finished." | |
| - name: Create Pull Request with Updates | |
| uses: peter-evans/create-pull-request@v6 | |
| with: | |
| token: ${{ secrets.A2A_BOT_PAT }} | |
| committer: "a2a-bot <[email protected]>" | |
| author: "a2a-bot <[email protected]>" | |
| commit-message: "${{github.event.client_payload.message}} 🤖" | |
| title: "${{github.event.client_payload.message}} 🤖" | |
| body: | | |
| This PR updates `src/a2a/types.py` based on the latest `specification/json/a2a.json` from [google-a2a/A2A](https://github.com/google-a2a/A2A/commit/${{ github.event.client_payload.sha }}). | |
| branch: "auto-update-a2a-types-${{ github.event.client_payload.sha }}" | |
| base: main | |
| labels: | | |
| automated | |
| dependencies | |
| add-paths: ${{ steps.vars.outputs.GENERATED_FILE }} |