Skip to content

feat: add execution environment project endpoint to ADT server#675

Merged
ssbarnea merged 1 commit intoansible:mainfrom
cidrblock:ee_project
Feb 13, 2026
Merged

feat: add execution environment project endpoint to ADT server#675
ssbarnea merged 1 commit intoansible:mainfrom
cidrblock:ee_project

Conversation

@cidrblock
Copy link
Copy Markdown
Contributor

Summary

  • Adds a new POST /v2/creator/ee_project API 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 in, tar file out)
  • Includes OpenAPI spec update, backend/frontend implementation, URL routing, and integration tests

Ref: https://issues.redhat.com/browse/AAP-62949

Changes

  • src/ansible_dev_tools/resources/server/data/openapi.yaml -- Added /v2/creator/ee_project path definition
  • src/ansible_dev_tools/resources/server/creator_v2.py -- Added ee_project() to both CreatorFrontendV2 and CreatorBackend
  • src/ansible_dev_tools/subcommands/server.py -- Added URL route for the new endpoint
  • src/ansible_dev_tools/tests/integration/test_server_creator_v2.py -- Added error and success integration tests

Test plan

  • Pre-commit hooks pass (ruff, mypy, pylint, cspell, pydoclint)
  • All 8 integration tests in test_server_creator_v2.py pass (6 existing + 2 new)
  • CI pipeline passes

Made with Cursor

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]>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_project endpoint 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 ssbarnea merged commit f44cbeb into ansible:main Feb 13, 2026
33 of 34 checks passed
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants