awx/requirements/requirements.txt
Rodrigo Toshiaki Horie 335a4bbbc6
AAP-45927 Add drf-spectacular (#16154)
* AAP-45927 Add drf-spectacular

- Remove drf-yasg
- Add drf-spectacular

* move SPECTACULAR_SETTINGS from development_defaults.py to defaults.py

* move SPECTACULAR_SETTINGS from development_defaults.py to defaults.py

* Fix swagger tests: enable schema endpoints in all modes

Schema endpoints were restricted to development mode, causing
test_swagger_generation.py to fail. Made schema URLs available in
all modes and fixed deprecated Django warning filters in pytest.ini.

* remove swagger from Makefile

* remove swagger from Makefile

* change docker-compose-build-swagger to docker-compose-build-schema

* remove MODE

* remove unused import

* Update genschema to use drf-spectacular with awx-link dependency

- Add awx-link as dependency for genschema targets to ensure package metadata exists
- Remove --validate --fail-on-warn flags (schema needs improvements first)
- Add genschema-yaml target for YAML output
- Add schema.yaml to .gitignore

* Fix detect-schema-change to not fail on schema differences

Add '-' prefix to diff command so Make ignores its exit status.
diff returns exit code 1 when files differ, which is expected behavior
for schema change detection, not an error.

* Truncate schema diff summary to stay under GitHub's 1MB limit

Limit schema diff output in job summary to first 1000 lines to avoid
exceeding GitHub's 1MB step summary size limit. Add message indicating
when diff is truncated and direct users to job logs or artifacts for
full output.

* readd MODE

* add drf-spectacular to requirements.in and the requirements.txt generated from the script

* Add drf-spectacular BSD license file

Required for test_python_licenses test to pass now that drf-spectacular
is in requirements.txt.

* add licenses

* Add comprehensive unit tests for CustomAutoSchema

Adds 15 unit tests for awx/api/schema.py to improve SonarCloud test
coverage. Tests cover all code paths in CustomAutoSchema including:
- get_tags() method with various scenarios (swagger_topic, serializer
  Meta.model, view.model, exception handling, fallbacks, warnings)
- is_deprecated() method with different view configurations
- Edge cases and priority ordering

All tests passing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* remove unused imports

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-10 12:35:22 -03:00

570 lines
14 KiB
Plaintext

adal==1.2.7
# via msrestazure
aiodns==3.5.0
# via aiohttp
aiofiles==24.1.0
# via opa-python-client
aiohappyeyeballs==2.6.1
# via aiohttp
aiohttp[speedups]==3.13.0
# via
# -r /awx_devel/requirements/requirements.in
# aiohttp-retry
# opa-python-client
# twilio
aiohttp-retry==2.9.1
# via twilio
aiosignal==1.4.0
# via aiohttp
ansi2html==1.9.2
# via -r /awx_devel/requirements/requirements.in
# git+https://github.com/ansible/ansible-runner.git@devel # git requirements installed separately
# via -r /awx_devel/requirements/requirements_git.txt
asciichartpy==1.5.25
# via -r /awx_devel/requirements/requirements.in
asgiref==3.10.0
# via
# channels
# channels-redis
# daphne
# django
# django-ansible-base
# django-cors-headers
asn1==3.1.0
# via -r /awx_devel/requirements/requirements.in
attrs==25.4.0
# via
# aiohttp
# jsonschema
# referencing
# service-identity
# twisted
autobahn==24.4.2
# via daphne
autocommand==2.2.2
# via jaraco-text
automat==25.4.16
# via twisted
# awx-plugins-core @ git+https://github.com/ansible/awx-plugins.git@devel # git requirements installed separately
# via -r /awx_devel/requirements/requirements_git.txt
awx-plugins.interfaces @ git+https://github.com/ansible/awx_plugins.interfaces.git
# via
# -r /awx_devel/requirements/requirements_git.txt
# awx-plugins-core
azure-core==1.35.1
# via
# azure-identity
# azure-keyvault-certificates
# azure-keyvault-keys
# azure-keyvault-secrets
# msrest
azure-identity==1.25.1
# via -r /awx_devel/requirements/requirements.in
azure-keyvault==4.2.0
# via -r /awx_devel/requirements/requirements.in
azure-keyvault-certificates==4.10.0
# via azure-keyvault
azure-keyvault-keys==4.11.0
# via azure-keyvault
azure-keyvault-secrets==4.10.0
# via azure-keyvault
backports-tarfile==1.2.0
# via jaraco-context
boto3==1.40.46
# via -r /awx_devel/requirements/requirements.in
botocore==1.40.46
# via
# -r /awx_devel/requirements/requirements.in
# boto3
# s3transfer
brotli==1.1.0
# via aiohttp
cachetools==6.2.0
# via google-auth
# git+https://github.com/ansible/system-certifi.git@devel # git requirements installed separately
# via
# -r /awx_devel/requirements/requirements_git.txt
# kubernetes
# msrest
# requests
cffi==2.0.0
# via
# cryptography
# pycares
# pynacl
channels==4.3.1
# via
# -r /awx_devel/requirements/requirements.in
# channels-redis
channels-redis==4.3.0
# via -r /awx_devel/requirements/requirements.in
charset-normalizer==3.4.3
# via requests
click==8.1.8
# via receptorctl
constantly==23.10.4
# via twisted
cryptography==46.0.2
# via
# -r /awx_devel/requirements/requirements.in
# adal
# autobahn
# azure-identity
# azure-keyvault-keys
# django-ansible-base
# msal
# pyjwt
# pyopenssl
# service-identity
cython==3.1.3
# via -r /awx_devel/requirements/requirements.in
daphne==4.2.1
# via -r /awx_devel/requirements/requirements.in
dispatcherd==2025.5.21
# via -r /awx_devel/requirements/requirements.in
distro==1.9.0
# via -r /awx_devel/requirements/requirements.in
django==4.2.21
# via
# -r /awx_devel/requirements/requirements.in
# channels
# django-ansible-base
# django-cors-headers
# django-crum
# django-extensions
# django-flags
# django-guid
# django-polymorphic
# django-solo
# djangorestframework
# drf-spectacular
# django-ansible-base @ git+https://github.com/ansible/django-ansible-base@devel # git requirements installed separately
# via -r /awx_devel/requirements/requirements_git.txt
django-cors-headers==4.9.0
# via -r /awx_devel/requirements/requirements.in
django-crum==0.7.9
# via
# -r /awx_devel/requirements/requirements.in
# django-ansible-base
django-extensions==4.1
# via -r /awx_devel/requirements/requirements.in
django-flags==5.0.14
# via
# -r /awx_devel/requirements/requirements.in
# django-ansible-base
django-guid==3.5.2
# via -r /awx_devel/requirements/requirements.in
django-polymorphic==4.1.0
# via -r /awx_devel/requirements/requirements.in
django-solo==2.4.0
# via -r /awx_devel/requirements/requirements.in
djangorestframework==3.15.2
# via
# -r /awx_devel/requirements/requirements.in
# django-ansible-base
# drf-spectacular
djangorestframework-yaml==2.0.0
# via -r /awx_devel/requirements/requirements.in
drf-spectacular==0.29.0
# via -r /awx_devel/requirements/requirements.in
durationpy==0.10
# via kubernetes
dynaconf==3.2.11
# via
# -r /awx_devel/requirements/requirements.in
# django-ansible-base
enum-compat==0.0.3
# via asn1
filelock==3.19.1
# via -r /awx_devel/requirements/requirements.in
frozenlist==1.8.0
# via
# aiohttp
# aiosignal
gitdb==4.0.12
# via gitpython
gitpython==3.1.45
# via -r /awx_devel/requirements/requirements.in
google-auth==2.41.1
# via kubernetes
googleapis-common-protos==1.70.0
# via
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
grpcio==1.75.1
# via
# -r /awx_devel/requirements/requirements.in
# opentelemetry-exporter-otlp-proto-grpc
hiredis==3.2.1
# via redis
hyperlink==21.0.0
# via
# autobahn
# twisted
idna==3.10
# via
# -r /awx_devel/requirements/requirements.in
# hyperlink
# requests
# twisted
# yarl
importlib-metadata==8.7.0
# via opentelemetry-api
importlib-resources==6.5.2
# via irc
incremental==24.7.2
# via twisted
inflection==0.5.1
# via
# django-ansible-base
# drf-spectacular
irc==20.5.0
# via -r /awx_devel/requirements/requirements.in
isodate==0.7.2
# via
# azure-keyvault-certificates
# azure-keyvault-keys
# azure-keyvault-secrets
# msrest
jaraco-collections==5.2.1
# via irc
jaraco-context==6.0.1
# via jaraco-text
jaraco-functools==4.3.0
# via
# irc
# jaraco-text
# tempora
jaraco-logging==3.4.0
# via irc
jaraco-stream==3.0.4
# via irc
jaraco-text==4.0.0
# via
# irc
# jaraco-collections
jinja2==3.1.6
# via -r /awx_devel/requirements/requirements.in
jmespath==1.0.1
# via
# boto3
# botocore
jq==1.10.0
# via -r /awx_devel/requirements/requirements.in
json-log-formatter==1.1.1
# via -r /awx_devel/requirements/requirements.in
jsonschema==4.25.1
# via
# -r /awx_devel/requirements/requirements.in
# drf-spectacular
jsonschema-specifications==2025.9.1
# via jsonschema
kubernetes==34.1.0
# via openshift
lockfile==0.12.2
# via python-daemon
markdown==3.9
# via -r /awx_devel/requirements/requirements.in
markupsafe==3.0.3
# via jinja2
maturin==1.9.6
# via -r /awx_devel/requirements/requirements.in
more-itertools==10.8.0
# via
# irc
# jaraco-functools
# jaraco-stream
# jaraco-text
msal==1.34.0
# via
# azure-identity
# msal-extensions
msal-extensions==1.3.1
# via azure-identity
msgpack==1.1.1
# via
# -r /awx_devel/requirements/requirements.in
# channels-redis
msrest==0.7.1
# via msrestazure
msrestazure==0.6.4.post1
# via -r /awx_devel/requirements/requirements.in
multidict==6.7.0
# via
# aiohttp
# yarl
oauthlib==3.3.1
# via requests-oauthlib
opa-python-client==2.0.2
# via -r /awx_devel/requirements/requirements.in
openshift==0.13.2
# via -r /awx_devel/requirements/requirements.in
opentelemetry-api==1.37.0
# via
# -r /awx_devel/requirements/requirements.in
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
# opentelemetry-instrumentation
# opentelemetry-instrumentation-logging
# opentelemetry-sdk
# opentelemetry-semantic-conventions
opentelemetry-exporter-otlp==1.37.0
# via -r /awx_devel/requirements/requirements.in
opentelemetry-exporter-otlp-proto-common==1.37.0
# via
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
opentelemetry-exporter-otlp-proto-grpc==1.37.0
# via opentelemetry-exporter-otlp
opentelemetry-exporter-otlp-proto-http==1.37.0
# via opentelemetry-exporter-otlp
opentelemetry-instrumentation==0.58b0
# via opentelemetry-instrumentation-logging
opentelemetry-instrumentation-logging==0.58b0
# via -r /awx_devel/requirements/requirements.in
opentelemetry-proto==1.37.0
# via
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
opentelemetry-sdk==1.37.0
# via
# -r /awx_devel/requirements/requirements.in
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
opentelemetry-semantic-conventions==0.58b0
# via
# opentelemetry-instrumentation
# opentelemetry-sdk
packaging==25.0
# via
# ansible-runner
# django-guid
# opentelemetry-instrumentation
# setuptools-scm
pbr==7.0.1
# via -r /awx_devel/requirements/requirements.in
pexpect==4.9.0
# via
# -r /awx_devel/requirements/requirements.in
# ansible-runner
pkgconfig==1.5.5
# via -r /awx_devel/requirements/requirements.in
prometheus-client==0.23.1
# via -r /awx_devel/requirements/requirements.in
propcache==0.4.0
# via
# aiohttp
# yarl
protobuf==6.32.1
# via
# -r /awx_devel/requirements/requirements.in
# googleapis-common-protos
# opentelemetry-proto
psutil==7.1.0
# via -r /awx_devel/requirements/requirements.in
psycopg==3.2.10
# via -r /awx_devel/requirements/requirements.in
ptyprocess==0.7.0
# via pexpect
pyasn1==0.6.1
# via
# pyasn1-modules
# rsa
# service-identity
pyasn1-modules==0.4.2
# via
# google-auth
# service-identity
pycares==4.11.0
# via aiodns
pycparser==2.23
# via cffi
pygerduty==0.38.3
# via -r /awx_devel/requirements/requirements.in
pygithub==2.8.1
# via
# -r /awx_devel/requirements/requirements.in
# awx-plugins-core
pyjwt[crypto]==2.10.1
# via
# adal
# django-ansible-base
# msal
# pygithub
# twilio
pynacl==1.6.0
# via pygithub
pyopenssl==25.3.0
# via
# -r /awx_devel/requirements/requirements.in
# twisted
pyparsing==2.4.7
# via -r /awx_devel/requirements/requirements.in
python-daemon==3.1.2
# via
# -r /awx_devel/requirements/requirements.in
# ansible-runner
python-dateutil==2.9.0.post0
# via
# adal
# botocore
# kubernetes
# receptorctl
# tempora
python-dsv-sdk==1.0.4
# via -r /awx_devel/requirements/requirements.in
python-string-utils==1.0.0
# via openshift
python-tss-sdk==2.0.0
# via -r /awx_devel/requirements/requirements.in
pytz==2025.2
# via irc
pyyaml==6.0.3
# via
# -r /awx_devel/requirements/requirements.in
# ansible-runner
# dispatcherd
# djangorestframework-yaml
# drf-spectacular
# kubernetes
# receptorctl
pyzstd==0.18.0
# via -r /awx_devel/requirements/requirements.in
receptorctl==1.6.0
# via -r /awx_devel/requirements/requirements.in
redis[hiredis]==6.4.0
# via
# -r /awx_devel/requirements/requirements.in
# channels-redis
referencing==0.36.2
# via
# jsonschema
# jsonschema-specifications
requests==2.32.5
# via
# -r /awx_devel/requirements/requirements.in
# adal
# azure-core
# django-ansible-base
# kubernetes
# msal
# msrest
# opa-python-client
# opentelemetry-exporter-otlp-proto-http
# pygithub
# python-dsv-sdk
# python-tss-sdk
# requests-oauthlib
# twilio
requests-oauthlib==2.0.0
# via
# kubernetes
# msrest
rpds-py==0.27.1
# via
# jsonschema
# referencing
rsa==4.9.1
# via google-auth
s3transfer==0.14.0
# via boto3
semantic-version==2.10.0
# via setuptools-rust
service-identity==24.2.0
# via twisted
setuptools-rust==1.10.2
# via -r /awx_devel/requirements/requirements.in
setuptools-scm[toml]==8.1.0
# via -r /awx_devel/requirements/requirements.in
six==1.17.0
# via
# azure-core
# kubernetes
# msrestazure
# openshift
# pygerduty
# python-dateutil
slack-sdk==3.37.0
# via -r /awx_devel/requirements/requirements.in
smmap==5.0.2
# via gitdb
sqlparse==0.5.3
# via
# -r /awx_devel/requirements/requirements.in
# django
# django-ansible-base
tempora==5.8.1
# via
# irc
# jaraco-logging
twilio==9.8.3
# via -r /awx_devel/requirements/requirements.in
twisted[tls]==25.5.0
# via
# -r /awx_devel/requirements/requirements.in
# daphne
txaio==25.9.2
# via autobahn
typing-extensions==4.15.0
# via
# aiosignal
# azure-core
# azure-identity
# azure-keyvault-certificates
# azure-keyvault-keys
# azure-keyvault-secrets
# grpcio
# opentelemetry-api
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
# opentelemetry-sdk
# opentelemetry-semantic-conventions
# psycopg
# pygithub
# pyopenssl
# pyzstd
# referencing
# twisted
uritemplate==4.2.0
# via drf-spectacular
urllib3==2.3.0
# via
# -r /awx_devel/requirements/requirements.in
# botocore
# django-ansible-base
# kubernetes
# pygithub
# requests
uwsgi==2.0.30
# via -r /awx_devel/requirements/requirements.in
uwsgitop==0.12
# via -r /awx_devel/requirements/requirements.in
websocket-client==1.8.0
# via kubernetes
wheel==0.42.0
# via -r /awx_devel/requirements/requirements.in
wrapt==1.17.3
# via opentelemetry-instrumentation
yarl==1.22.0
# via aiohttp
zipp==3.23.0
# via importlib-metadata
zope-interface==8.0.1
# via twisted
zstandard==0.25.0
# via aiohttp
# The following packages are considered to be unsafe in a requirements file:
pip==21.2.4
# via -r /awx_devel/requirements/requirements.in
setuptools==80.9.0
# via
# -r /awx_devel/requirements/requirements.in
# asciichartpy
# autobahn
# incremental
# pbr
# setuptools-rust
# setuptools-scm