forked from a2aproject/a2a-python
-
Notifications
You must be signed in to change notification settings - Fork 0
80 lines (68 loc) · 2.68 KB
/
update-a2a-types.yml
File metadata and controls
80 lines (68 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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 <a2a-bot@google.com>"
author: "a2a-bot <a2a-bot@google.com>"
commit-message: "chore: Update A2A types from specification 🤖"
title: "chore: Update A2A types from specification 🤖"
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 }}