airbyte-internal-ops 0.3.1__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.
- airbyte_internal_ops-0.4.0/.github/workflows/connector-regression-test.yml +407 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/CONTRIBUTING.md +59 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/PKG-INFO +1 -1
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/prerelease.py +48 -11
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +298 -1
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/regression_tests.py +16 -3
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/prod_db_access/queries.py +68 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/prod_db_access/sql.py +108 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/connector_runner.py +8 -4
- airbyte_internal_ops-0.3.1/.github/workflows/connector-regression-test.yml +0 -253
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.env.template +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/copilot-instructions.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/dependabot.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/pr-welcome-message.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/release-drafter.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/autofix-command.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/format-check.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/lint-check.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/lock-command.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/pdoc_preview.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/pdoc_publish.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/poe-command.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/pr-welcome.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/publish.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/pytest-fast.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/pytest-matrix.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/regression-tests-ci.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/release-drafter.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/semantic-pr-check.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/sentry-apply-command.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/sentry-preview.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/slash-command-dispatch.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.github/workflows/tk-todo-check.yml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.gitignore +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/.mcp.json.template +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/bin/test_mcp_tool.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/bin/test_mcp_tool_http.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/conftest.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/docs/.gitignore +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/docs/generate.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/docs/templates/custom.css +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/docs/templates/theme.css +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/infra/sentry/.gitignore +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/infra/sentry/Pulumi.prod.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/infra/sentry/Pulumi.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/infra/sentry/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/infra/sentry/__main__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/infra/sentry/docs/CONTRIBUTING.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/infra/sentry/requirements.txt +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/poe_tasks.toml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/pyproject.toml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/pyrefly.toml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/pytest.ini +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/ruff.toml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_annotations.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/.gitignore +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/base_backend.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/duckdb_backend.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/file_backend.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connection_objects_retrieval.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connector_runner.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/errors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/evaluation_modes.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/hacks.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/json_schema_helper.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/mitm_addons.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/proxy.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/secret_access.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/segment_tracking.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/conftest.py.disabled +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/consts.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/poetry.lock +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/pytest.ini +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_check.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_discover.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_read.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_spec.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/report.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/stash_keys.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/private_details.html.j2 +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/report.html.j2 +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_check.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_discover.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_read.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_spec.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/build_customization.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/java_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/manifest_only_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/python_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/manifest_only_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/templates/test_report.html.j2 +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/templates/up_to_date_pr_body.md.j2 +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/assets.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/documentation.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/helpers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/documentation_headers_check_description.md.j2 +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/metadata.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/packaging.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/security.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/version.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/cli.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/consts.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/qa_checks.md.j2 +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/bundle-schemas.js +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/generate-metadata-models.sh +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ActorDefinitionResourceRequirements.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AirbyteInternal.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AllowedHosts.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBreakingChanges.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBuildOptions.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorIPCOptions.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.json +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetrics.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorPackageInfo.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryDestinationDefinition.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryReleases.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistrySourceDefinition.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryV0.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorReleases.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorTestSuiteOptions.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GeneratedFields.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GitInfo.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/JobType.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/NormalizationDestinationDefinitionConfig.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RegistryOverrides.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ReleaseStage.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RemoteRegistries.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ResourceRequirements.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RolloutConfiguration.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/Secret.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SecretStore.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SourceFileInfo.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SuggestedStreams.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SupportLevel.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/TestConnections.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/airbyte-connector-metadata-schema.json +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ActorDefinitionResourceRequirements.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AirbyteInternal.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AllowedHosts.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBreakingChanges.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBuildOptions.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorIPCOptions.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetadataDefinitionV0.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetrics.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorPackageInfo.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryDestinationDefinition.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryReleases.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistrySourceDefinition.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryV0.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorReleases.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorTestSuiteOptions.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GeneratedFields.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GitInfo.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/JobType.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/NormalizationDestinationDefinitionConfig.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RegistryOverrides.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ReleaseStage.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RemoteRegistries.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ResourceRequirements.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RolloutConfiguration.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/Secret.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SecretStore.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SourceFileInfo.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SuggestedStreams.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SupportLevel.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/TestConnections.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package-lock.json +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package.json +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/transform.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docker_hub.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/file_managers/local_file_manager.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/validators/metadata_validator.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cli/_base.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cli/app.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cli/cloud.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cli/gh.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cli/registry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cli/repo.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cloud_admin/api_client.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cloud_admin/auth.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/cloud_admin/models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/constants.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/gcp_auth.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/gcp_logs/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/gcp_logs/error_lookup.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/github_actions.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/github_api.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/_guidance.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/_http_headers.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/_mcp_utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/gcp_logs.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/github.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/prompts.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/server.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/server_info.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/py.typed +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/registry/models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/registry/publish.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/cdk_secrets.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/ci_output.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/commons/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/config.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/connection_fetcher.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/connection_secret_retriever.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/evaluation_modes.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/http_metrics.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/message_cache/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/message_cache/duckdb_cache.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/obfuscation.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/regression/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/regression/comparators.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/schema_generation.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/validation/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/validation/catalog_validators.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/regression_tests/validation/record_validators.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_live_tests/backends/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_live_tests/backends/test_file_backend.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_live_tests/test_get_connection_objects_retrieval.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_live_tests/test_json_schema_helper.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/test_airbyte_admin_mcp.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/test_bump_version.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/test_cli_registry.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/test_list_connectors.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/tests/test_prerelease.py +0 -0
- {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/uv.lock +0 -0
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
name: Connector Regression Test
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
4
|
+
checks: write
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
connector_name:
|
|
10
|
+
description: "Connector name to build from source (e.g., 'source-pokeapi')."
|
|
11
|
+
required: true
|
|
12
|
+
type: string
|
|
13
|
+
pr:
|
|
14
|
+
description: "PR number to checkout and build from (e.g., 70847). Must be from the repository specified by 'repo'."
|
|
15
|
+
required: true
|
|
16
|
+
type: string
|
|
17
|
+
repo:
|
|
18
|
+
description: "Repository where the connector PR is located."
|
|
19
|
+
required: false
|
|
20
|
+
type: choice
|
|
21
|
+
options:
|
|
22
|
+
- airbyte
|
|
23
|
+
- airbyte-enterprise
|
|
24
|
+
default: "airbyte"
|
|
25
|
+
connection_id:
|
|
26
|
+
description: "Airbyte Cloud connection ID to fetch config/catalog from."
|
|
27
|
+
required: false
|
|
28
|
+
type: string
|
|
29
|
+
skip_compare:
|
|
30
|
+
description: "If true, skip comparison and run single-version tests only. If false (default), run comparison tests (target vs control)."
|
|
31
|
+
required: false
|
|
32
|
+
type: boolean
|
|
33
|
+
default: false
|
|
34
|
+
skip_read_action:
|
|
35
|
+
description: "If true, skip the read action (run only spec, check, discover)."
|
|
36
|
+
required: false
|
|
37
|
+
type: boolean
|
|
38
|
+
default: false
|
|
39
|
+
override_test_image:
|
|
40
|
+
description: "Override test connector image with tag (e.g., airbyte/source-github:1.0.0). Ignored if skip_compare=false."
|
|
41
|
+
required: false
|
|
42
|
+
type: string
|
|
43
|
+
override_control_image:
|
|
44
|
+
description: "Override control connector image (baseline version) with tag. Ignored if skip_compare=true."
|
|
45
|
+
required: false
|
|
46
|
+
type: string
|
|
47
|
+
|
|
48
|
+
workflow_call:
|
|
49
|
+
inputs:
|
|
50
|
+
connector_name:
|
|
51
|
+
description: "Connector name to build from source (e.g., 'source-pokeapi')."
|
|
52
|
+
required: true
|
|
53
|
+
type: string
|
|
54
|
+
pr:
|
|
55
|
+
description: "PR number to checkout and build from. Must be from the repository specified by 'repo'."
|
|
56
|
+
required: true
|
|
57
|
+
type: string
|
|
58
|
+
repo:
|
|
59
|
+
description: "Repository where the connector PR is located. Use 'airbyte' or 'airbyte-enterprise'."
|
|
60
|
+
required: false
|
|
61
|
+
type: string
|
|
62
|
+
default: "airbyte"
|
|
63
|
+
connection_id:
|
|
64
|
+
description: "Airbyte Cloud connection ID to fetch config/catalog from."
|
|
65
|
+
required: false
|
|
66
|
+
type: string
|
|
67
|
+
skip_compare:
|
|
68
|
+
description: "If true, skip comparison and run single-version tests only. If false (default), run comparison tests (target vs control)."
|
|
69
|
+
required: false
|
|
70
|
+
type: boolean
|
|
71
|
+
default: false
|
|
72
|
+
skip_read_action:
|
|
73
|
+
description: "If true, skip the read action (run only spec, check, discover)."
|
|
74
|
+
required: false
|
|
75
|
+
type: boolean
|
|
76
|
+
default: false
|
|
77
|
+
override_test_image:
|
|
78
|
+
description: "Override test connector image with tag. Ignored if skip_compare=false."
|
|
79
|
+
required: false
|
|
80
|
+
type: string
|
|
81
|
+
override_control_image:
|
|
82
|
+
description: "Override control connector image (baseline version) with tag. Ignored if skip_compare=true."
|
|
83
|
+
required: false
|
|
84
|
+
type: string
|
|
85
|
+
outputs:
|
|
86
|
+
success:
|
|
87
|
+
description: "True if regression test passed (no regression detected)"
|
|
88
|
+
value: ${{ jobs.regression-test.outputs.success }}
|
|
89
|
+
summary_url:
|
|
90
|
+
description: "GitHub Actions run summary URL"
|
|
91
|
+
value: ${{ jobs.regression-test.outputs.summary_url }}
|
|
92
|
+
report_url:
|
|
93
|
+
description: "Detailed regression report (GitHub Check URL)"
|
|
94
|
+
value: ${{ jobs.regression-test.outputs.report_url }}
|
|
95
|
+
secrets:
|
|
96
|
+
AIRBYTE_CLOUD_CLIENT_ID:
|
|
97
|
+
required: false
|
|
98
|
+
AIRBYTE_CLOUD_CLIENT_SECRET:
|
|
99
|
+
required: false
|
|
100
|
+
GCP_GSM_CREDENTIALS:
|
|
101
|
+
required: false
|
|
102
|
+
GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL:
|
|
103
|
+
required: false
|
|
104
|
+
|
|
105
|
+
jobs:
|
|
106
|
+
regression-test:
|
|
107
|
+
name: Regression Test: '${{ inputs.connector_name }}'
|
|
108
|
+
runs-on: ubuntu-latest
|
|
109
|
+
steps:
|
|
110
|
+
- name: Checkout code
|
|
111
|
+
uses: actions/checkout@v6
|
|
112
|
+
|
|
113
|
+
- name: Install uv
|
|
114
|
+
uses: astral-sh/setup-uv@v7
|
|
115
|
+
with:
|
|
116
|
+
version: "latest"
|
|
117
|
+
|
|
118
|
+
- name: Set up Python
|
|
119
|
+
uses: actions/setup-python@v6
|
|
120
|
+
with:
|
|
121
|
+
python-version: "3.11"
|
|
122
|
+
|
|
123
|
+
- name: Install dependencies
|
|
124
|
+
run: uv sync --group dev
|
|
125
|
+
|
|
126
|
+
- name: Resolve connector repo ref
|
|
127
|
+
id: resolve-connector-ref
|
|
128
|
+
run: |
|
|
129
|
+
REPO="${{ inputs.repo }}"
|
|
130
|
+
# Default to 'airbyte' if not specified
|
|
131
|
+
if [ -z "$REPO" ]; then
|
|
132
|
+
REPO="airbyte"
|
|
133
|
+
fi
|
|
134
|
+
echo "repo=$REPO" >> "$GITHUB_OUTPUT"
|
|
135
|
+
echo "resolved_ref=refs/pull/${{ inputs.pr }}/head" >> "$GITHUB_OUTPUT"
|
|
136
|
+
echo "Using PR ${{ inputs.pr }} from airbytehq/$REPO -> refs/pull/${{ inputs.pr }}/head"
|
|
137
|
+
|
|
138
|
+
- name: Checkout connector repo
|
|
139
|
+
uses: actions/checkout@v6
|
|
140
|
+
with:
|
|
141
|
+
repository: airbytehq/${{ steps.resolve-connector-ref.outputs.repo }}
|
|
142
|
+
ref: ${{ steps.resolve-connector-ref.outputs.resolved_ref }}
|
|
143
|
+
path: connector-repo
|
|
144
|
+
fetch-depth: 1
|
|
145
|
+
|
|
146
|
+
- name: Install Cloud SQL Proxy
|
|
147
|
+
if: ${{ inputs.connection_id != '' }}
|
|
148
|
+
run: |
|
|
149
|
+
set -euo pipefail
|
|
150
|
+
echo "Installing Cloud SQL Proxy..."
|
|
151
|
+
VERSION="v2.15.0"
|
|
152
|
+
BASE_URL="https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/${VERSION}"
|
|
153
|
+
BINARY_NAME="cloud-sql-proxy.linux.amd64"
|
|
154
|
+
# Checksum from GitHub release: https://github.com/GoogleCloudPlatform/cloud-sql-proxy/releases/tag/v2.15.0
|
|
155
|
+
EXPECTED_SHA256="cf3e9d069ea0d09cdfddce77daa36811bb0b963b1169e9c3f1586433ca7325fa"
|
|
156
|
+
|
|
157
|
+
echo "Downloading Cloud SQL Proxy binary..."
|
|
158
|
+
curl -fsSLO "${BASE_URL}/${BINARY_NAME}"
|
|
159
|
+
|
|
160
|
+
echo "Verifying Cloud SQL Proxy checksum..."
|
|
161
|
+
echo "${EXPECTED_SHA256} ${BINARY_NAME}" | sha256sum -c -
|
|
162
|
+
|
|
163
|
+
chmod +x "${BINARY_NAME}"
|
|
164
|
+
sudo mv "${BINARY_NAME}" /usr/local/bin/cloud-sql-proxy
|
|
165
|
+
cloud-sql-proxy --version
|
|
166
|
+
|
|
167
|
+
- name: Start Cloud SQL Proxy
|
|
168
|
+
if: ${{ inputs.connection_id != '' }}
|
|
169
|
+
env:
|
|
170
|
+
GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
|
|
171
|
+
run: |
|
|
172
|
+
echo "Starting Cloud SQL Proxy for connection secret retrieval..."
|
|
173
|
+
# Start proxy in background on port 15432
|
|
174
|
+
uv run airbyte-ops cloud db start-proxy --port 15432 &
|
|
175
|
+
# Wait for proxy to be ready
|
|
176
|
+
for i in {1..30}; do
|
|
177
|
+
if nc -z localhost 15432 2>/dev/null; then
|
|
178
|
+
echo "Cloud SQL Proxy is ready on port 15432"
|
|
179
|
+
break
|
|
180
|
+
fi
|
|
181
|
+
echo "Waiting for proxy to start... ($i/30)"
|
|
182
|
+
sleep 1
|
|
183
|
+
done
|
|
184
|
+
if ! nc -z localhost 15432 2>/dev/null; then
|
|
185
|
+
echo "ERROR: Cloud SQL Proxy failed to start"
|
|
186
|
+
exit 1
|
|
187
|
+
fi
|
|
188
|
+
|
|
189
|
+
- name: Build common args
|
|
190
|
+
id: build-args
|
|
191
|
+
run: |
|
|
192
|
+
SKIP_COMPARE="${{ inputs.skip_compare }}"
|
|
193
|
+
ARGS=""
|
|
194
|
+
|
|
195
|
+
# Always add connector_name and repo-root (both are required)
|
|
196
|
+
ARGS+=" --connector-name ${{ inputs.connector_name }}"
|
|
197
|
+
ARGS+=" --repo-root ${{ github.workspace }}/connector-repo"
|
|
198
|
+
|
|
199
|
+
# Add connection_id if provided
|
|
200
|
+
if [ -n "${{ inputs.connection_id }}" ]; then
|
|
201
|
+
ARGS+=" --connection-id ${{ inputs.connection_id }}"
|
|
202
|
+
fi
|
|
203
|
+
|
|
204
|
+
if [ "$SKIP_COMPARE" = "true" ]; then
|
|
205
|
+
# Single-version mode: use --skip-compare flag
|
|
206
|
+
ARGS+=" --skip-compare"
|
|
207
|
+
|
|
208
|
+
if [ -n "${{ inputs.override_test_image }}" ]; then
|
|
209
|
+
ARGS+=" --test-image ${{ inputs.override_test_image }}"
|
|
210
|
+
fi
|
|
211
|
+
else
|
|
212
|
+
# Comparison mode (default): run target vs control
|
|
213
|
+
if [ -n "${{ inputs.override_control_image }}" ]; then
|
|
214
|
+
ARGS+=" --control-image ${{ inputs.override_control_image }}"
|
|
215
|
+
fi
|
|
216
|
+
fi
|
|
217
|
+
|
|
218
|
+
echo "common_args=$ARGS" >> "$GITHUB_OUTPUT"
|
|
219
|
+
|
|
220
|
+
- name: Run SPEC
|
|
221
|
+
id: run-spec
|
|
222
|
+
env:
|
|
223
|
+
AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
|
|
224
|
+
AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
|
|
225
|
+
GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
|
|
226
|
+
GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
|
|
227
|
+
USE_CONNECTION_SECRET_RETRIEVER: "true"
|
|
228
|
+
run: |
|
|
229
|
+
echo "Running: uv run airbyte-ops cloud connector regression-test --command spec ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/spec"
|
|
230
|
+
uv run airbyte-ops cloud connector regression-test --command spec ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/spec
|
|
231
|
+
|
|
232
|
+
- name: Upload SPEC Artifacts
|
|
233
|
+
if: always()
|
|
234
|
+
uses: actions/upload-artifact@v5
|
|
235
|
+
with:
|
|
236
|
+
name: regression-test-artifacts-spec-${{ github.run_id }}
|
|
237
|
+
path: /tmp/regression_test_artifacts/spec/
|
|
238
|
+
retention-days: 7
|
|
239
|
+
|
|
240
|
+
- name: Run CHECK
|
|
241
|
+
id: run-check
|
|
242
|
+
env:
|
|
243
|
+
AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
|
|
244
|
+
AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
|
|
245
|
+
GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
|
|
246
|
+
GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
|
|
247
|
+
USE_CONNECTION_SECRET_RETRIEVER: "true"
|
|
248
|
+
run: |
|
|
249
|
+
echo "Running: uv run airbyte-ops cloud connector regression-test --command check ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/check"
|
|
250
|
+
uv run airbyte-ops cloud connector regression-test --command check ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/check
|
|
251
|
+
|
|
252
|
+
- name: Upload CHECK Artifacts
|
|
253
|
+
if: always()
|
|
254
|
+
uses: actions/upload-artifact@v5
|
|
255
|
+
with:
|
|
256
|
+
name: regression-test-artifacts-check-${{ github.run_id }}
|
|
257
|
+
path: /tmp/regression_test_artifacts/check/
|
|
258
|
+
retention-days: 7
|
|
259
|
+
|
|
260
|
+
- name: Run DISCOVER
|
|
261
|
+
id: run-discover
|
|
262
|
+
env:
|
|
263
|
+
AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
|
|
264
|
+
AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
|
|
265
|
+
GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
|
|
266
|
+
GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
|
|
267
|
+
USE_CONNECTION_SECRET_RETRIEVER: "true"
|
|
268
|
+
run: |
|
|
269
|
+
echo "Running: uv run airbyte-ops cloud connector regression-test --command discover ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/discover"
|
|
270
|
+
uv run airbyte-ops cloud connector regression-test --command discover ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/discover
|
|
271
|
+
|
|
272
|
+
- name: Upload DISCOVER Artifacts
|
|
273
|
+
if: always()
|
|
274
|
+
uses: actions/upload-artifact@v5
|
|
275
|
+
with:
|
|
276
|
+
name: regression-test-artifacts-discover-${{ github.run_id }}
|
|
277
|
+
path: /tmp/regression_test_artifacts/discover/
|
|
278
|
+
retention-days: 7
|
|
279
|
+
|
|
280
|
+
- name: Run READ
|
|
281
|
+
id: run-read
|
|
282
|
+
if: inputs.skip_read_action != true
|
|
283
|
+
env:
|
|
284
|
+
AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
|
|
285
|
+
AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
|
|
286
|
+
GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
|
|
287
|
+
GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
|
|
288
|
+
USE_CONNECTION_SECRET_RETRIEVER: "true"
|
|
289
|
+
run: |
|
|
290
|
+
echo "Running: uv run airbyte-ops cloud connector regression-test --command read ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/read"
|
|
291
|
+
uv run airbyte-ops cloud connector regression-test --command read ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/read
|
|
292
|
+
|
|
293
|
+
- name: Upload READ Artifacts
|
|
294
|
+
if: always() && inputs.skip_read_action != true
|
|
295
|
+
uses: actions/upload-artifact@v5
|
|
296
|
+
with:
|
|
297
|
+
name: regression-test-artifacts-read-${{ github.run_id }}
|
|
298
|
+
path: /tmp/regression_test_artifacts/read/
|
|
299
|
+
retention-days: 7
|
|
300
|
+
|
|
301
|
+
- name: Determine Final Status
|
|
302
|
+
id: final-status
|
|
303
|
+
if: always()
|
|
304
|
+
run: |
|
|
305
|
+
SPEC_RESULT="${{ steps.run-spec.outcome }}"
|
|
306
|
+
CHECK_RESULT="${{ steps.run-check.outcome }}"
|
|
307
|
+
DISCOVER_RESULT="${{ steps.run-discover.outcome }}"
|
|
308
|
+
READ_RESULT="${{ steps.run-read.outcome }}"
|
|
309
|
+
SKIP_READ="${{ inputs.skip_read_action }}"
|
|
310
|
+
|
|
311
|
+
echo "SPEC: $SPEC_RESULT"
|
|
312
|
+
echo "CHECK: $CHECK_RESULT"
|
|
313
|
+
echo "DISCOVER: $DISCOVER_RESULT"
|
|
314
|
+
echo "READ: $READ_RESULT (skip_read=$SKIP_READ)"
|
|
315
|
+
|
|
316
|
+
if [ "$SPEC_RESULT" != "success" ] || [ "$CHECK_RESULT" != "success" ] || [ "$DISCOVER_RESULT" != "success" ]; then
|
|
317
|
+
echo "success=false" >> "$GITHUB_OUTPUT"
|
|
318
|
+
exit 0
|
|
319
|
+
fi
|
|
320
|
+
|
|
321
|
+
if [ "$SKIP_READ" != "true" ] && [ "$READ_RESULT" != "success" ]; then
|
|
322
|
+
echo "success=false" >> "$GITHUB_OUTPUT"
|
|
323
|
+
exit 0
|
|
324
|
+
fi
|
|
325
|
+
|
|
326
|
+
echo "success=true" >> "$GITHUB_OUTPUT"
|
|
327
|
+
|
|
328
|
+
- name: Create Regression Test Report Check
|
|
329
|
+
id: create-report-check
|
|
330
|
+
if: always()
|
|
331
|
+
uses: actions/github-script@v7
|
|
332
|
+
with:
|
|
333
|
+
script: |
|
|
334
|
+
const fs = require('fs');
|
|
335
|
+
|
|
336
|
+
// Collect results from each command
|
|
337
|
+
const specResult = '${{ steps.run-spec.outcome }}';
|
|
338
|
+
const checkResult = '${{ steps.run-check.outcome }}';
|
|
339
|
+
const discoverResult = '${{ steps.run-discover.outcome }}';
|
|
340
|
+
const readResult = '${{ steps.run-read.outcome }}';
|
|
341
|
+
const skipRead = '${{ inputs.skip_read_action }}' === 'true';
|
|
342
|
+
|
|
343
|
+
const results = [
|
|
344
|
+
{ command: 'spec', result: specResult },
|
|
345
|
+
{ command: 'check', result: checkResult },
|
|
346
|
+
{ command: 'discover', result: discoverResult },
|
|
347
|
+
];
|
|
348
|
+
if (!skipRead) {
|
|
349
|
+
results.push({ command: 'read', result: readResult });
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
// Build report content
|
|
353
|
+
let reportContent = '# Sequential Regression Test Report\n\n';
|
|
354
|
+
reportContent += '| Command | Result |\n';
|
|
355
|
+
reportContent += '|---------|--------|\n';
|
|
356
|
+
for (const r of results) {
|
|
357
|
+
const status = r.result === 'success' ? 'PASS' : 'FAIL';
|
|
358
|
+
reportContent += `| ${r.command.toUpperCase()} | ${status} |\n`;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
const allPassed = results.every(r => r.result === 'success');
|
|
362
|
+
const conclusion = allPassed ? 'success' : 'failure';
|
|
363
|
+
|
|
364
|
+
const skipCompare = '${{ inputs.skip_compare }}' === 'true';
|
|
365
|
+
const connectorName = '${{ inputs.connector_name }}';
|
|
366
|
+
const prNumber = '${{ inputs.pr }}';
|
|
367
|
+
const commands = skipRead ? 'spec, check, discover' : 'spec, check, discover, read';
|
|
368
|
+
let summary;
|
|
369
|
+
if (skipCompare) {
|
|
370
|
+
const image = '${{ inputs.override_test_image }}' || `(built from ${connectorName} PR #${prNumber})`;
|
|
371
|
+
summary = `Single-version sequential regression test: \`${image}\` running \`${commands}\` commands.`;
|
|
372
|
+
} else {
|
|
373
|
+
const controlImage = '${{ inputs.override_control_image }}' || '(auto-detected)';
|
|
374
|
+
summary = `Comparison sequential regression test: \`${connectorName}\` (PR #${prNumber}) vs \`${controlImage}\` running \`${commands}\` commands.`;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
const check = await github.rest.checks.create({
|
|
378
|
+
owner: context.repo.owner,
|
|
379
|
+
repo: context.repo.repo,
|
|
380
|
+
name: 'Regression Test Report',
|
|
381
|
+
head_sha: context.sha,
|
|
382
|
+
status: 'completed',
|
|
383
|
+
conclusion: conclusion,
|
|
384
|
+
output: {
|
|
385
|
+
title: 'Regression Test Report',
|
|
386
|
+
summary: summary,
|
|
387
|
+
text: reportContent
|
|
388
|
+
}
|
|
389
|
+
});
|
|
390
|
+
|
|
391
|
+
core.setOutput('report_url', check.data.html_url);
|
|
392
|
+
|
|
393
|
+
- name: Add Report Link to Summary
|
|
394
|
+
if: always()
|
|
395
|
+
run: |
|
|
396
|
+
{
|
|
397
|
+
echo ""
|
|
398
|
+
echo "---"
|
|
399
|
+
echo ""
|
|
400
|
+
echo "### View Full Report"
|
|
401
|
+
echo ""
|
|
402
|
+
echo "[Open Regression Test Report](${{ steps.create-report-check.outputs.report_url }})"
|
|
403
|
+
} >> "$GITHUB_STEP_SUMMARY"
|
|
404
|
+
outputs:
|
|
405
|
+
success: ${{ steps.final-status.outputs.success }}
|
|
406
|
+
summary_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
407
|
+
report_url: ${{ steps.create-report-check.outputs.report_url }}
|
|
@@ -51,6 +51,13 @@ In CI, these secrets are available at the org level and a Cloud SQL Auth Proxy h
|
|
|
51
51
|
|
|
52
52
|
To grant a service account access to the prod database query tools, you need to grant permissions on the `CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS` secret in Google Secret Manager (see `CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS_SECRET_ID` in `src/airbyte_ops_mcp/constants.py`). The service account needs both `secretAccessor` (to read the secret value) and `viewer` (to list secret versions) roles.
|
|
53
53
|
|
|
54
|
+
### Known Service Accounts
|
|
55
|
+
|
|
56
|
+
The following service accounts are currently used for specific purposes:
|
|
57
|
+
|
|
58
|
+
- **`devin-ai-support-service@prod-ab-cloud-proj.iam.gserviceaccount.com`** - Used by Devin AI for interactive development and testing
|
|
59
|
+
- **`e2e-testing-gsm-reader@dataline-integration-testing.iam.gserviceaccount.com`** - Used by CI workflows for regression testing (note: this is a cross-project service account from `dataline-integration-testing`)
|
|
60
|
+
|
|
54
61
|
### Required Permissions
|
|
55
62
|
|
|
56
63
|
#### Secret Manager Permissions
|
|
@@ -110,6 +117,35 @@ gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
|
|
|
110
117
|
--condition=None
|
|
111
118
|
```
|
|
112
119
|
|
|
120
|
+
#### Workspace-Specific Secrets (for `--with-secrets`)
|
|
121
|
+
|
|
122
|
+
The `fetch-connection-config --with-secrets` feature retrieves unmasked connector credentials. This requires access to **two types of secrets**:
|
|
123
|
+
|
|
124
|
+
1. **`CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS`** - Database connection details (documented above)
|
|
125
|
+
2. **Workspace-specific secrets** - The actual connector credentials stored in Secret Manager with names like `airbyte_workspace_{workspace_id}_secret_{secret_id}_v1`
|
|
126
|
+
|
|
127
|
+
The permissions documented above only grant access to the database connection secret. To retrieve actual connector credentials, the service account also needs Secret Manager access to the workspace-specific secrets. This can be granted in two ways:
|
|
128
|
+
|
|
129
|
+
**Option A: Project-level access (broad)**
|
|
130
|
+
```bash
|
|
131
|
+
# Grant project-level Secret Manager access (allows reading ALL secrets in the project)
|
|
132
|
+
gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
|
|
133
|
+
--member="serviceAccount:YOUR_SERVICE_ACCOUNT@prod-ab-cloud-proj.iam.gserviceaccount.com" \
|
|
134
|
+
--role="roles/secretmanager.secretAccessor" \
|
|
135
|
+
--condition=None
|
|
136
|
+
|
|
137
|
+
gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
|
|
138
|
+
--member="serviceAccount:YOUR_SERVICE_ACCOUNT@prod-ab-cloud-proj.iam.gserviceaccount.com" \
|
|
139
|
+
--role="roles/secretmanager.viewer" \
|
|
140
|
+
--condition=None
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Option B: Scoped access with IAM conditions (recommended for production)**
|
|
144
|
+
|
|
145
|
+
Use IAM conditions to restrict access to secrets matching a specific pattern (e.g., only secrets for certain workspaces). This requires setting up conditional IAM bindings - consult GCP documentation for details.
|
|
146
|
+
|
|
147
|
+
**Note:** Without workspace-specific secret access, `fetch-connection-config` will work but `--with-secrets` will fail with a "Permission denied" error when trying to resolve the actual credentials.
|
|
148
|
+
|
|
113
149
|
To check if the permission is already granted:
|
|
114
150
|
|
|
115
151
|
```bash
|
|
@@ -158,3 +194,26 @@ export USE_CLOUD_SQL_PROXY=1
|
|
|
158
194
|
export DB_PORT=5433
|
|
159
195
|
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
|
|
160
196
|
```
|
|
197
|
+
|
|
198
|
+
## Regression Test Workflow
|
|
199
|
+
|
|
200
|
+
The [Connector Regression Test workflow](https://github.com/airbytehq/airbyte-ops-mcp/actions/workflows/connector-regression-test.yml) can be triggered manually or via the `run_regression_tests` MCP tool.
|
|
201
|
+
|
|
202
|
+
### Workflow Parameters
|
|
203
|
+
|
|
204
|
+
| Parameter | Required | Description |
|
|
205
|
+
|-----------|----------|-------------|
|
|
206
|
+
| `connector_name` | Yes | Connector name (e.g., `source-amazon-seller-partner`) |
|
|
207
|
+
| `pr` | Yes | PR number from the airbyte repo to build from (e.g., `71055`) |
|
|
208
|
+
| `connection_id` | No | Airbyte Cloud connection ID to fetch config/catalog from |
|
|
209
|
+
| `skip_compare` | No | If true, run single-version tests only (default: false) |
|
|
210
|
+
| `skip_read_action` | No | If true, skip the read action (default: false) |
|
|
211
|
+
| `override_test_image` | No | Override test connector image with tag |
|
|
212
|
+
| `override_control_image` | No | Override control connector image (baseline version) |
|
|
213
|
+
|
|
214
|
+
### Required CI Secrets
|
|
215
|
+
|
|
216
|
+
The workflow requires these secrets (configured at the org level):
|
|
217
|
+
- `AIRBYTE_CLOUD_CLIENT_ID` / `AIRBYTE_CLOUD_CLIENT_SECRET` - For Airbyte Cloud API access
|
|
218
|
+
- `GCP_GSM_CREDENTIALS` - For GCP Secret Manager access
|
|
219
|
+
- `GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL` - For prod database access (mapped to `GCP_PROD_DB_ACCESS_CREDENTIALS`)
|
{airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.0}/src/airbyte_ops_mcp/mcp/prerelease.py
RENAMED
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
"""MCP tools for triggering connector pre-release workflows.
|
|
3
3
|
|
|
4
4
|
This module provides MCP tools for triggering the publish-connectors-prerelease
|
|
5
|
-
workflow in the airbytehq/airbyte repository
|
|
5
|
+
workflow in the airbytehq/airbyte repository (for OSS connectors) or the
|
|
6
|
+
publish_enterprise_connectors workflow in airbytehq/airbyte-enterprise
|
|
7
|
+
(for enterprise connectors) via GitHub's workflow dispatch API.
|
|
6
8
|
"""
|
|
7
9
|
|
|
8
10
|
from __future__ import annotations
|
|
9
11
|
|
|
10
12
|
import base64
|
|
13
|
+
from enum import StrEnum
|
|
11
14
|
from typing import Annotated, Literal
|
|
12
15
|
|
|
13
16
|
import requests
|
|
@@ -18,12 +21,25 @@ from pydantic import BaseModel, Field
|
|
|
18
21
|
from airbyte_ops_mcp.github_actions import GITHUB_API_BASE, resolve_github_token
|
|
19
22
|
from airbyte_ops_mcp.mcp._mcp_utils import mcp_tool, register_mcp_tools
|
|
20
23
|
|
|
24
|
+
|
|
25
|
+
class ConnectorRepo(StrEnum):
|
|
26
|
+
"""Repository where connector code is located."""
|
|
27
|
+
|
|
28
|
+
AIRBYTE = "airbyte"
|
|
29
|
+
AIRBYTE_ENTERPRISE = "airbyte-enterprise"
|
|
30
|
+
|
|
31
|
+
|
|
21
32
|
DEFAULT_REPO_OWNER = "airbytehq"
|
|
22
|
-
DEFAULT_REPO_NAME =
|
|
33
|
+
DEFAULT_REPO_NAME = ConnectorRepo.AIRBYTE
|
|
23
34
|
DEFAULT_BRANCH = "master"
|
|
24
35
|
PRERELEASE_WORKFLOW_FILE = "publish-connectors-prerelease-command.yml"
|
|
25
36
|
CONNECTOR_PATH_PREFIX = "airbyte-integrations/connectors"
|
|
26
37
|
|
|
38
|
+
# Enterprise repository constants
|
|
39
|
+
ENTERPRISE_REPO_NAME = ConnectorRepo.AIRBYTE_ENTERPRISE
|
|
40
|
+
ENTERPRISE_DEFAULT_BRANCH = "main"
|
|
41
|
+
ENTERPRISE_PRERELEASE_WORKFLOW_FILE = "publish_enterprise_connectors.yml"
|
|
42
|
+
|
|
27
43
|
# Token env vars for prerelease publishing (in order of preference)
|
|
28
44
|
PRERELEASE_TOKEN_ENV_VARS = [
|
|
29
45
|
"GITHUB_CONNECTOR_PUBLISHING_PAT",
|
|
@@ -238,6 +254,14 @@ def publish_connector_to_airbyte_registry(
|
|
|
238
254
|
int,
|
|
239
255
|
Field(description="The pull request number containing the connector changes"),
|
|
240
256
|
],
|
|
257
|
+
repo: Annotated[
|
|
258
|
+
ConnectorRepo,
|
|
259
|
+
Field(
|
|
260
|
+
default=ConnectorRepo.AIRBYTE,
|
|
261
|
+
description="Repository where the connector PR is located. "
|
|
262
|
+
"Use 'airbyte' for OSS connectors (default) or 'airbyte-enterprise' for enterprise connectors.",
|
|
263
|
+
),
|
|
264
|
+
],
|
|
241
265
|
prerelease: Annotated[
|
|
242
266
|
Literal[True],
|
|
243
267
|
Field(
|
|
@@ -249,8 +273,10 @@ def publish_connector_to_airbyte_registry(
|
|
|
249
273
|
"""Publish a connector to the Airbyte registry.
|
|
250
274
|
|
|
251
275
|
Currently only supports pre-release publishing. This tool triggers the
|
|
252
|
-
publish-connectors-prerelease workflow in the airbytehq/airbyte repository
|
|
253
|
-
|
|
276
|
+
publish-connectors-prerelease workflow in the airbytehq/airbyte repository
|
|
277
|
+
(for OSS connectors) or the publish_enterprise_connectors workflow in
|
|
278
|
+
airbytehq/airbyte-enterprise (for enterprise connectors), which publishes
|
|
279
|
+
a pre-release version of the specified connector from the PR branch.
|
|
254
280
|
|
|
255
281
|
Pre-release versions are tagged with the format: {version}-preview.{7-char-git-sha}
|
|
256
282
|
These versions are available for version pinning via the scoped_configuration API.
|
|
@@ -267,17 +293,27 @@ def publish_connector_to_airbyte_registry(
|
|
|
267
293
|
# Guard: Check for required token
|
|
268
294
|
token = resolve_github_token(PRERELEASE_TOKEN_ENV_VARS)
|
|
269
295
|
|
|
296
|
+
# Determine repo-specific settings
|
|
297
|
+
is_enterprise = repo == ConnectorRepo.AIRBYTE_ENTERPRISE
|
|
298
|
+
target_repo_name = ENTERPRISE_REPO_NAME if is_enterprise else DEFAULT_REPO_NAME
|
|
299
|
+
target_branch = ENTERPRISE_DEFAULT_BRANCH if is_enterprise else DEFAULT_BRANCH
|
|
300
|
+
target_workflow = (
|
|
301
|
+
ENTERPRISE_PRERELEASE_WORKFLOW_FILE
|
|
302
|
+
if is_enterprise
|
|
303
|
+
else PRERELEASE_WORKFLOW_FILE
|
|
304
|
+
)
|
|
305
|
+
|
|
270
306
|
# Get the PR's head SHA for computing the docker image tag
|
|
271
307
|
# Note: We no longer pass gitref to the workflow - it derives the ref from PR number
|
|
272
308
|
head_info = _get_pr_head_info(
|
|
273
|
-
DEFAULT_REPO_OWNER,
|
|
309
|
+
DEFAULT_REPO_OWNER, target_repo_name, pr_number, token
|
|
274
310
|
)
|
|
275
311
|
|
|
276
312
|
# Prepare workflow inputs
|
|
277
313
|
# The workflow uses refs/pull/{pr}/head directly - no gitref needed
|
|
278
314
|
# Note: The workflow auto-detects modified connectors from the PR
|
|
279
315
|
workflow_inputs = {
|
|
280
|
-
"repo": f"{DEFAULT_REPO_OWNER}/{
|
|
316
|
+
"repo": f"{DEFAULT_REPO_OWNER}/{target_repo_name}",
|
|
281
317
|
"pr": str(pr_number),
|
|
282
318
|
}
|
|
283
319
|
|
|
@@ -285,9 +321,9 @@ def publish_connector_to_airbyte_registry(
|
|
|
285
321
|
# The workflow will checkout the PR branch via inputs.gitref
|
|
286
322
|
workflow_url = _trigger_workflow_dispatch(
|
|
287
323
|
owner=DEFAULT_REPO_OWNER,
|
|
288
|
-
repo=
|
|
289
|
-
workflow_file=
|
|
290
|
-
ref=
|
|
324
|
+
repo=target_repo_name,
|
|
325
|
+
workflow_file=target_workflow,
|
|
326
|
+
ref=target_branch,
|
|
291
327
|
inputs=workflow_inputs,
|
|
292
328
|
token=token,
|
|
293
329
|
)
|
|
@@ -297,7 +333,7 @@ def publish_connector_to_airbyte_registry(
|
|
|
297
333
|
docker_image_tag: str | None = None
|
|
298
334
|
metadata = _get_connector_metadata(
|
|
299
335
|
DEFAULT_REPO_OWNER,
|
|
300
|
-
|
|
336
|
+
target_repo_name,
|
|
301
337
|
connector_name,
|
|
302
338
|
head_info.sha,
|
|
303
339
|
token,
|
|
@@ -311,9 +347,10 @@ def publish_connector_to_airbyte_registry(
|
|
|
311
347
|
base_version, head_info.sha
|
|
312
348
|
)
|
|
313
349
|
|
|
350
|
+
repo_info = f" from {repo}" if is_enterprise else ""
|
|
314
351
|
return PrereleaseWorkflowResult(
|
|
315
352
|
success=True,
|
|
316
|
-
message=f"Successfully triggered pre-release workflow for {connector_name} from PR #{pr_number}",
|
|
353
|
+
message=f"Successfully triggered pre-release workflow for {connector_name}{repo_info} from PR #{pr_number}",
|
|
317
354
|
workflow_url=workflow_url,
|
|
318
355
|
connector_name=connector_name,
|
|
319
356
|
pr_number=pr_number,
|