amigo_sdk 0.2.0__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of amigo_sdk might be problematic. Click here for more details.
- amigo_sdk-0.4.0/.github/workflows/auto-release.yml +69 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/.github/workflows/release.yml +24 -1
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/PKG-INFO +1 -1
- amigo_sdk-0.4.0/openapi-new.json +1 -0
- amigo_sdk-0.4.0/specs/openapi-baseline.json +1 -0
- amigo_sdk-0.4.0/src/amigo_sdk/__init__.py +1 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/generated/model.py +2 -2
- amigo_sdk-0.2.0/.github/workflows/auto-release.yml +0 -18
- amigo_sdk-0.2.0/src/amigo_sdk/__init__.py +0 -1
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/.github/workflows/test.yml +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/.gitignore +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/CONTRIBUTING.md +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/LICENSE +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/README.md +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/pyproject.toml +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/scripts/__init__.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/scripts/aliases.json +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/scripts/check.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/scripts/gen_models.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/auth.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/config.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/errors.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/http_client.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/resources/conversation.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/resources/organization.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/resources/service.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/resources/user.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/src/amigo_sdk/sdk_client.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/__init__.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/conftest.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/integration/test_conversation_integration.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/integration/test_organization_integration.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/integration/test_user_integration.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/resources/__init__.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/resources/helpers.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/resources/test_conversation.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/resources/test_organization.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/resources/test_service.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/resources/test_user.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/test_auth.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/test_config.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/test_errors.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/test_http_client.py +0 -0
- {amigo_sdk-0.2.0 → amigo_sdk-0.4.0}/tests/test_sdk_client.py +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
name: Auto Release (Backend API changes)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
repository_dispatch:
|
|
5
|
+
types: [openapi-updated]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: write
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
detect:
|
|
12
|
+
name: Detect OpenAPI change
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
outputs:
|
|
15
|
+
changed: ${{ steps.diff.outputs.changed }}
|
|
16
|
+
spec_url: ${{ steps.spec.outputs.spec_url }}
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Ensure jq
|
|
21
|
+
run: sudo apt-get update && sudo apt-get install -y jq
|
|
22
|
+
|
|
23
|
+
- name: Resolve spec URL
|
|
24
|
+
id: spec
|
|
25
|
+
run: |
|
|
26
|
+
SPEC_URL="${{ github.event.client_payload.spec_url }}"
|
|
27
|
+
if [ -z "$SPEC_URL" ]; then
|
|
28
|
+
SPEC_URL="https://api.amigo.ai/v1/openapi.json"
|
|
29
|
+
fi
|
|
30
|
+
echo "spec_url=$SPEC_URL" >> $GITHUB_OUTPUT
|
|
31
|
+
|
|
32
|
+
- name: Fetch current production spec
|
|
33
|
+
run: curl -fSL -o openapi-new.json "${{ steps.spec.outputs.spec_url }}"
|
|
34
|
+
|
|
35
|
+
- name: Check baseline presence
|
|
36
|
+
id: baseline
|
|
37
|
+
run: |
|
|
38
|
+
mkdir -p specs
|
|
39
|
+
if [ ! -f specs/openapi-baseline.json ]; then
|
|
40
|
+
echo "missing=true" >> $GITHUB_OUTPUT
|
|
41
|
+
else
|
|
42
|
+
echo "missing=false" >> $GITHUB_OUTPUT
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
- name: Compare normalized specs
|
|
46
|
+
id: diff
|
|
47
|
+
run: |
|
|
48
|
+
if [ "${{ steps.baseline.outputs.missing }}" = "true" ]; then
|
|
49
|
+
echo "changed=true" >> $GITHUB_OUTPUT
|
|
50
|
+
exit 0
|
|
51
|
+
fi
|
|
52
|
+
jq -S 'del(.info.version) | del(.servers)' specs/openapi-baseline.json > baseline.norm.json
|
|
53
|
+
jq -S 'del(.info.version) | del(.servers)' openapi-new.json > new.norm.json
|
|
54
|
+
if diff -q baseline.norm.json new.norm.json >/dev/null 2>&1; then
|
|
55
|
+
echo "changed=false" >> $GITHUB_OUTPUT
|
|
56
|
+
else
|
|
57
|
+
echo "changed=true" >> $GITHUB_OUTPUT
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
release-on-dispatch:
|
|
61
|
+
name: Trigger SDK release (minor)
|
|
62
|
+
needs: detect
|
|
63
|
+
if: needs.detect.outputs.changed == 'true'
|
|
64
|
+
uses: ./.github/workflows/release.yml
|
|
65
|
+
with:
|
|
66
|
+
version_type: minor
|
|
67
|
+
dry_run: ${{ github.event.client_payload.dry_run == true }}
|
|
68
|
+
spec_url: ${{ needs.detect.outputs.spec_url }}
|
|
69
|
+
secrets: inherit
|
|
@@ -29,6 +29,11 @@ on:
|
|
|
29
29
|
required: false
|
|
30
30
|
type: boolean
|
|
31
31
|
default: false
|
|
32
|
+
spec_url:
|
|
33
|
+
description: "OpenAPI spec URL to use for generation"
|
|
34
|
+
required: false
|
|
35
|
+
type: string
|
|
36
|
+
default: ""
|
|
32
37
|
|
|
33
38
|
permissions:
|
|
34
39
|
contents: write
|
|
@@ -54,6 +59,24 @@ jobs:
|
|
|
54
59
|
# Use a token that can push tags and create releases
|
|
55
60
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
56
61
|
|
|
62
|
+
- name: Ensure jq
|
|
63
|
+
run: sudo apt-get update && sudo apt-get install -y jq
|
|
64
|
+
|
|
65
|
+
- name: Fetch OpenAPI spec
|
|
66
|
+
id: fetch_spec
|
|
67
|
+
run: |
|
|
68
|
+
SPEC_URL="${{ inputs.spec_url }}"
|
|
69
|
+
if [ -z "$SPEC_URL" ]; then
|
|
70
|
+
SPEC_URL="https://api.amigo.ai/v1/openapi.json"
|
|
71
|
+
fi
|
|
72
|
+
curl -fSL -o openapi-new.json "$SPEC_URL"
|
|
73
|
+
mkdir -p specs
|
|
74
|
+
cp openapi-new.json specs/openapi-baseline.json
|
|
75
|
+
|
|
76
|
+
# Optional: if your generator can take a spec path
|
|
77
|
+
- name: Set spec path for generator
|
|
78
|
+
run: echo "OPENAPI_SPEC_PATH=$GITHUB_WORKSPACE/openapi-new.json" >> $GITHUB_ENV
|
|
79
|
+
|
|
57
80
|
- name: Setup Python
|
|
58
81
|
uses: actions/setup-python@v5
|
|
59
82
|
with:
|
|
@@ -115,7 +138,7 @@ jobs:
|
|
|
115
138
|
- name: Commit version bump
|
|
116
139
|
if: ${{ !inputs.dry_run }}
|
|
117
140
|
run: |
|
|
118
|
-
git add
|
|
141
|
+
git add -A
|
|
119
142
|
git commit -m "Bump version to ${{ steps.new_version.outputs.version }}"
|
|
120
143
|
git push origin HEAD
|
|
121
144
|
|