feat: add execution environment project endpoint to ADT server#675
Merged
ssbarnea merged 1 commit intoansible:mainfrom Feb 13, 2026
Merged
feat: add execution environment project endpoint to ADT server#675ssbarnea merged 1 commit intoansible:mainfrom
ssbarnea merged 1 commit intoansible:mainfrom
Conversation
Add POST /v2/creator/ee_project endpoint that scaffolds an execution environment project via ansible-creator's Init subcommand and returns it as a tar archive. Follows the same pattern as the existing devfile endpoint (empty JSON body, tar response). Co-authored-by: Cursor <[email protected]>
There was a problem hiding this comment.
Pull request overview
This PR adds a new API endpoint for creating execution environment projects via the ADT server. The implementation follows the established pattern from the devfile endpoint, accepting an empty JSON body and returning a tar archive containing the scaffolded project files. The feature integrates with ansible-creator's Init subcommand to generate execution environment projects programmatically.
Changes:
- Added new
POST /v2/creator/ee_projectendpoint that scaffolds execution environment projects and returns them as tar archives - Implemented both frontend and backend handlers following existing devfile endpoint patterns
- Added comprehensive integration tests covering both error and success scenarios
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
src/ansible_dev_tools/resources/server/data/openapi.yaml |
Added OpenAPI specification for the new /v2/creator/ee_project endpoint with POST method, 201 success response, and 400 error response |
src/ansible_dev_tools/resources/server/creator_v2.py |
Implemented ee_project() methods in both CreatorFrontendV2 and CreatorBackend classes to handle the request/response cycle and scaffold execution environment projects |
src/ansible_dev_tools/subcommands/server.py |
Added URL routing for the new endpoint to make it accessible via the server |
src/ansible_dev_tools/tests/integration/test_server_creator_v2.py |
Added two integration tests: one for error handling (wrong HTTP method) and one for successful execution environment project creation |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ssbarnea
approved these changes
Feb 13, 2026
ssbarnea
approved these changes
Feb 13, 2026
renovate bot
added a commit
to sdwilsh/ansible-playbooks
that referenced
this pull request
Mar 12, 2026
##### [\`26.2.0\`](https://github.com/ansible/ansible-dev-tools/releases/tag/v26.2.0) #### Features - feat: add dynamic creator API endpoints for schema-driven scaffolding ([#676](ansible/ansible-dev-tools#676)) [@cidrblock](https://github.com/cidrblock) - feat: bump minimal direct dependencies ([#688](ansible/ansible-dev-tools#688)) [@ssbarnea](https://github.com/ssbarnea) - feat: add execution environment project endpoint to ADT server ([#675](ansible/ansible-dev-tools#675)) [@cidrblock](https://github.com/cidrblock) #### Fixes - fix: disable gunicorn control socket to prevent post-fork deadlock ([#693](ansible/ansible-dev-tools#693)) [@cidrblock](https://github.com/cidrblock) - fix: update base image to Fedora 42 as Fedora 41 is EOL ([#672](ansible/ansible-dev-tools#672)) [@dmzoneill](https://github.com/dmzoneill) #### Maintenance - chore: improve adt server execution during testing ([#691](ansible/ansible-dev-tools#691)) [@ssbarnea](https://github.com/ssbarnea) - chore(deps): update pep621 ([#690](ansible/ansible-dev-tools#690)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore: update test deps ([#689](ansible/ansible-dev-tools#689)) [@ssbarnea](https://github.com/ssbarnea) - chore: update pytest config ([#685](ansible/ansible-dev-tools#685)) [@ssbarnea](https://github.com/ssbarnea) - chore: fix devel pipeline loop (chardet regression) ([#687](ansible/ansible-dev-tools#687)) [@ssbarnea](https://github.com/ssbarnea) - chore: fix devspaces pipeline getting stuck (tox nested call) ([#681](ansible/ansible-dev-tools#681)) [@ssbarnea](https://github.com/ssbarnea) - chore: migrate hooks from pre-commit to prek ([#678](ansible/ansible-dev-tools#678)) [@ssbarnea](https://github.com/ssbarnea) - chore: add selenium-adt container for testing extension ([#677](ansible/ansible-dev-tools#677)) [@ssbarnea](https://github.com/ssbarnea) - chore(deps): bump pillow from 12.1.0 to 12.1.1 in the uv group across 1 directory ([#674](ansible/ansible-dev-tools#674)) @[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump cryptography from 46.0.4 to 46.0.5 in the uv group across 1 directory ([#673](ansible/ansible-dev-tools#673)) @[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): update dependencies \[security] ([#669](ansible/ansible-dev-tools#669)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update all dependencies ([#668](ansible/ansible-dev-tools#668)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update all dependencies ([#667](ansible/ansible-dev-tools#667)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update all dependencies ([#666](ansible/ansible-dev-tools#666)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update all dependencies ([#664](ansible/ansible-dev-tools#664)) @[renovate\[bot\]](https://github.com/apps/renovate)
sdwilsh
pushed a commit
to sdwilsh/ansible-playbooks
that referenced
this pull request
Mar 12, 2026
##### [\`26.2.0\`](https://github.com/ansible/ansible-dev-tools/releases/tag/v26.2.0) #### Features - feat: add dynamic creator API endpoints for schema-driven scaffolding ([#676](ansible/ansible-dev-tools#676)) [@cidrblock](https://github.com/cidrblock) - feat: bump minimal direct dependencies ([#688](ansible/ansible-dev-tools#688)) [@ssbarnea](https://github.com/ssbarnea) - feat: add execution environment project endpoint to ADT server ([#675](ansible/ansible-dev-tools#675)) [@cidrblock](https://github.com/cidrblock) #### Fixes - fix: disable gunicorn control socket to prevent post-fork deadlock ([#693](ansible/ansible-dev-tools#693)) [@cidrblock](https://github.com/cidrblock) - fix: update base image to Fedora 42 as Fedora 41 is EOL ([#672](ansible/ansible-dev-tools#672)) [@dmzoneill](https://github.com/dmzoneill) #### Maintenance - chore: improve adt server execution during testing ([#691](ansible/ansible-dev-tools#691)) [@ssbarnea](https://github.com/ssbarnea) - chore(deps): update pep621 ([#690](ansible/ansible-dev-tools#690)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore: update test deps ([#689](ansible/ansible-dev-tools#689)) [@ssbarnea](https://github.com/ssbarnea) - chore: update pytest config ([#685](ansible/ansible-dev-tools#685)) [@ssbarnea](https://github.com/ssbarnea) - chore: fix devel pipeline loop (chardet regression) ([#687](ansible/ansible-dev-tools#687)) [@ssbarnea](https://github.com/ssbarnea) - chore: fix devspaces pipeline getting stuck (tox nested call) ([#681](ansible/ansible-dev-tools#681)) [@ssbarnea](https://github.com/ssbarnea) - chore: migrate hooks from pre-commit to prek ([#678](ansible/ansible-dev-tools#678)) [@ssbarnea](https://github.com/ssbarnea) - chore: add selenium-adt container for testing extension ([#677](ansible/ansible-dev-tools#677)) [@ssbarnea](https://github.com/ssbarnea) - chore(deps): bump pillow from 12.1.0 to 12.1.1 in the uv group across 1 directory ([#674](ansible/ansible-dev-tools#674)) @[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): bump cryptography from 46.0.4 to 46.0.5 in the uv group across 1 directory ([#673](ansible/ansible-dev-tools#673)) @[dependabot\[bot\]](https://github.com/apps/dependabot) - chore(deps): update dependencies \[security] ([#669](ansible/ansible-dev-tools#669)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update all dependencies ([#668](ansible/ansible-dev-tools#668)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update all dependencies ([#667](ansible/ansible-dev-tools#667)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update all dependencies ([#666](ansible/ansible-dev-tools#666)) @[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update all dependencies ([#664](ansible/ansible-dev-tools#664)) @[renovate\[bot\]](https://github.com/apps/renovate)
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
POST /v2/creator/ee_projectAPI endpoint that scaffolds an execution environment project via ansible-creator'sInitsubcommand and returns it as a tar archiveRef: https://issues.redhat.com/browse/AAP-62949
Changes
src/ansible_dev_tools/resources/server/data/openapi.yaml-- Added/v2/creator/ee_projectpath definitionsrc/ansible_dev_tools/resources/server/creator_v2.py-- Addedee_project()to bothCreatorFrontendV2andCreatorBackendsrc/ansible_dev_tools/subcommands/server.py-- Added URL route for the new endpointsrc/ansible_dev_tools/tests/integration/test_server_creator_v2.py-- Added error and success integration testsTest plan
test_server_creator_v2.pypass (6 existing + 2 new)Made with Cursor