Skip to content

feat: expose operations in public Pipeline API - #667

Merged
disrupted merged 10 commits into
mainfrom
pipeline-api
Aug 13, 2026
Merged

feat: expose operations in public Pipeline API#667
disrupted merged 10 commits into
mainfrom
pipeline-api

Conversation

@disrupted

@disrupted disrupted commented Aug 13, 2026

Copy link
Copy Markdown
Member

programmatic access to run KPOps operations on Pipeline instances

@disrupted
disrupted marked this pull request as ready for review August 13, 2026 09:58
@disrupted
disrupted requested a review from tobbber as a code owner August 13, 2026 09:58

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Exposes deployment, cleanup, reset, destruction, and manifest operations directly through Pipeline.

Changes:

  • Adds asynchronous operation methods and manifest generation to Pipeline.
  • Delegates existing API functions to the new methods.
  • Refactors tests and shared fixtures around programmatic pipeline execution.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
kpops/pipeline/__init__.py Adds public pipeline operations.
kpops/api/__init__.py Delegates API operations to Pipeline.
tests/conftest.py Centralizes configuration and handler fixtures.
tests/pipeline/conftest.py Adds a reusable pipeline fixture.
tests/components/conftest.py Uses centralized fixtures.
tests/pipeline/test_deploy.py Tests programmatic deployment.
tests/pipeline/test_destroy.py Tests programmatic destruction.
tests/pipeline/test_reset.py Tests programmatic reset.
tests/pipeline/test_clean.py Tests programmatic cleanup.
tests/pipeline/test_run_component.py Updates helper import location.
tests/pipeline/test_generate.py Renames configuration fixture usage.
tests/pipeline/test_example.py Renames configuration fixture usage.
tests/pipeline/resources/simple-pipeline/pipeline.yaml Removes obsolete test pipeline data.
tests/components/test_kubernetes_app.py Uses concrete dummy test classes.
tests/api/test_handlers.py Clears handlers before singleton testing.
tests/cli/test_init.py Renames configuration fixture usage.
tests/test_kpops_config.py Renames configuration fixture usage.
Suppressed comments (3)

kpops/api/init.py:118

  • This changes the existing iterator API from lazy to eager: generate() now runs when manifest_destroy() is called, rather than when the returned iterator is first consumed. That makes configuration side effects, logging, and parse/path errors occur earlier for existing callers. Preserve the previous generator semantics by delegating with yield from.
    return pipeline.manifest_destroy()

kpops/api/init.py:164

  • This changes the existing iterator API from lazy to eager: generate() now runs when manifest_clean() is called, rather than when the returned iterator is first consumed. That makes configuration side effects, logging, and parse/path errors occur earlier for existing callers. Preserve the previous generator semantics by delegating with yield from.
    return pipeline.manifest_clean()

kpops/api/init.py:141

  • This changes the existing iterator API from lazy to eager: generate() now runs when manifest_reset() is called, rather than when the returned iterator is first consumed. That makes configuration side effects, logging, and parse/path errors occur earlier for existing callers. Preserve the previous generator semantics by delegating with yield from.
    return pipeline.manifest_reset()

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread kpops/api/__init__.py Outdated
@disrupted
disrupted merged commit 3c44a4e into main Aug 13, 2026
14 checks passed
@disrupted
disrupted deleted the pipeline-api branch August 13, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants