airbyte-internal-ops 0.5.2__tar.gz → 0.6.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.6.0/.github/workflows/publish.yml +41 -0
- airbyte_internal_ops-0.6.0/.github/workflows/release-drafter.yml +52 -0
- airbyte_internal_ops-0.6.0/.github/workflows/semantic-pr-check.yml +56 -0
- airbyte_internal_ops-0.6.0/.github/workflows/validate-build.yml +46 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/PKG-INFO +2 -1
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/infra/sentry/__main__.py +1 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/poe_tasks.toml +11 -2
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/pyproject.toml +7 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/constants.py +13 -0
- airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/mcp/__init__.py +12 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +28 -22
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/gcp_logs.py +1 -1
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/github_actions.py +2 -2
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +2 -2
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/prerelease.py +2 -2
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +2 -2
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/prompts.py +2 -2
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/regression_tests.py +2 -2
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/server.py +57 -5
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/uv.lock +1676 -1670
- airbyte_internal_ops-0.5.2/.github/release-drafter.yml +0 -68
- airbyte_internal_ops-0.5.2/.github/workflows/publish.yml +0 -170
- airbyte_internal_ops-0.5.2/.github/workflows/release-drafter.yml +0 -23
- airbyte_internal_ops-0.5.2/.github/workflows/semantic-pr-check.yml +0 -103
- airbyte_internal_ops-0.5.2/bin/test_mcp_tool.py +0 -66
- airbyte_internal_ops-0.5.2/bin/test_mcp_tool_http.py +0 -110
- airbyte_internal_ops-0.5.2/src/airbyte_ops_mcp/_annotations.py +0 -51
- airbyte_internal_ops-0.5.2/src/airbyte_ops_mcp/mcp/__init__.py +0 -9
- airbyte_internal_ops-0.5.2/src/airbyte_ops_mcp/mcp/_http_headers.py +0 -254
- airbyte_internal_ops-0.5.2/src/airbyte_ops_mcp/mcp/_mcp_utils.py +0 -398
- airbyte_internal_ops-0.5.2/src/airbyte_ops_mcp/mcp/server_info.py +0 -84
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.env.template +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/copilot-instructions.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/dependabot.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/pr-welcome-message.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/autofix-command.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/connector-regression-test.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/format-check.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/lint-check.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/lock-command.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/pdoc_preview.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/pdoc_publish.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/poe-command.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/pr-welcome.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/pytest-fast.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/pytest-matrix.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/regression-tests-ci.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/sentry-apply-command.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/sentry-preview.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/slash-command-dispatch.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.github/workflows/tk-todo-check.yml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.gitignore +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/.mcp.json.template +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/CONTRIBUTING.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/conftest.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/docs/.gitignore +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/docs/generate.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/docs/templates/custom.css +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/docs/templates/theme.css +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/infra/sentry/.gitignore +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/infra/sentry/CONTRIBUTING.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/infra/sentry/Pulumi.prod.yaml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/infra/sentry/Pulumi.yaml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/infra/sentry/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/infra/sentry/requirements.txt +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/pyrefly.toml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/pytest.ini +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/ruff.toml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/assets.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/documentation.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/helpers.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/models.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/metadata.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/packaging.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/security.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/version.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/cli.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/consts.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/models.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/qa_checks.md.j2 +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.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.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cli/_base.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cli/app.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cli/cloud.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cli/gh.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cli/registry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cli/repo.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cloud_admin/api_client.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cloud_admin/auth.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/cloud_admin/models.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/docker_hub.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/gcp_auth.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/gcp_logs/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/gcp_logs/error_lookup.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/github_actions.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/github_api.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/_guidance.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/metadata_validator.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/prod_db_access/queries.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/prod_db_access/sql.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/py.typed +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/registry/models.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/registry/publish.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/cdk_secrets.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/ci_output.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/commons/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/config.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/connection_fetcher.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/connection_secret_retriever.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/connector_runner.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/evaluation_modes.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/http_metrics.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/message_cache/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/message_cache/duckdb_cache.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/models.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/obfuscation.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/regression/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/regression/comparators.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/schema_generation.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/validation/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/validation/catalog_validators.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/regression_tests/validation/record_validators.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/telemetry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/test_airbyte_admin_mcp.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/test_bump_version.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/test_cli_registry.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/test_list_connectors.py +0 -0
- {airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/tests/test_prerelease.py +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# This workflow publishes the python package to PyPI.
|
|
2
|
+
#
|
|
3
|
+
# Triggers:
|
|
4
|
+
# - release: published - When user clicks "Publish" on a draft release (downloads pre-built assets)
|
|
5
|
+
#
|
|
6
|
+
# Authentication: This workflow expects GitHub OIDC for passwordless PyPI publishing.
|
|
7
|
+
# For more info: https://docs.pypi.org/trusted-publishers/
|
|
8
|
+
|
|
9
|
+
name: Publish Package
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
release:
|
|
13
|
+
types: [published]
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
publish_to_pypi:
|
|
17
|
+
name: Publish Package to PyPI
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
permissions:
|
|
20
|
+
id-token: write
|
|
21
|
+
contents: read
|
|
22
|
+
environment:
|
|
23
|
+
name: PyPI
|
|
24
|
+
url: https://pypi.org/project/airbyte-internal-ops/
|
|
25
|
+
steps:
|
|
26
|
+
- name: Download wheel and sdist from release
|
|
27
|
+
uses: robinraju/release-downloader@v1.12
|
|
28
|
+
with:
|
|
29
|
+
tag: ${{ github.event.release.tag_name }}
|
|
30
|
+
fileName: "*.whl"
|
|
31
|
+
out-file-path: dist
|
|
32
|
+
|
|
33
|
+
- name: Download sdist from release
|
|
34
|
+
uses: robinraju/release-downloader@v1.12
|
|
35
|
+
with:
|
|
36
|
+
tag: ${{ github.event.release.tag_name }}
|
|
37
|
+
fileName: "*.tar.gz"
|
|
38
|
+
out-file-path: dist
|
|
39
|
+
|
|
40
|
+
- name: Publish to PyPI
|
|
41
|
+
uses: pypa/gh-action-pypi-publish@v1.13.0
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
name: Release Drafter
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch: {}
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
concurrency:
|
|
10
|
+
group: release-drafter
|
|
11
|
+
cancel-in-progress: false
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
draft_release:
|
|
15
|
+
name: Draft Release
|
|
16
|
+
permissions:
|
|
17
|
+
contents: write
|
|
18
|
+
pull-requests: write
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- name: Create or update draft release
|
|
22
|
+
uses: aaronsteers/semantic-pr-release-drafter@v0.4.0
|
|
23
|
+
id: release-drafter
|
|
24
|
+
env:
|
|
25
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
26
|
+
|
|
27
|
+
- name: Install uv
|
|
28
|
+
uses: astral-sh/setup-uv@v7
|
|
29
|
+
with:
|
|
30
|
+
version: "latest"
|
|
31
|
+
|
|
32
|
+
- name: Checkout Repo
|
|
33
|
+
uses: actions/checkout@v6
|
|
34
|
+
with:
|
|
35
|
+
fetch-depth: 0
|
|
36
|
+
|
|
37
|
+
- name: Build package
|
|
38
|
+
env:
|
|
39
|
+
TAG_NAME: ${{ steps.release-drafter.outputs.tag_name }}
|
|
40
|
+
run: |
|
|
41
|
+
echo "Building with version from tag: ${TAG_NAME}"
|
|
42
|
+
# Strip 'v' prefix for uv-dynamic-versioning
|
|
43
|
+
UV_DYNAMIC_VERSIONING_BYPASS="${TAG_NAME#v}" uv build
|
|
44
|
+
|
|
45
|
+
- name: Attach assets to draft release
|
|
46
|
+
uses: aaronsteers/semantic-pr-release-drafter@v0.4.0
|
|
47
|
+
with:
|
|
48
|
+
attach-files: |
|
|
49
|
+
dist/*.whl
|
|
50
|
+
dist/*.tar.gz
|
|
51
|
+
env:
|
|
52
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Semantic PR Title Validation
|
|
2
|
+
#
|
|
3
|
+
# This workflow validates PR titles follow conventional commit format.
|
|
4
|
+
|
|
5
|
+
name: Semantic PR Title Validation
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
pull_request:
|
|
9
|
+
types: [opened, edited, ready_for_review]
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
pull-requests: write
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
validate-pr-title:
|
|
17
|
+
name: Validate PR Title
|
|
18
|
+
# Skip if 'edited' event but the title wasn't changed (e.g., only description was edited)
|
|
19
|
+
if: >
|
|
20
|
+
github.event.action != 'edited'
|
|
21
|
+
|| (
|
|
22
|
+
github.event.changes.title &&
|
|
23
|
+
github.event.changes.title.from != ''
|
|
24
|
+
)
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- name: Check semantic PR title
|
|
28
|
+
uses: amannn/action-semantic-pull-request@v5
|
|
29
|
+
if: ${{ github.event.pull_request.draft == false }}
|
|
30
|
+
env:
|
|
31
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
32
|
+
with:
|
|
33
|
+
# Configure which types are allowed (newline-delimited).
|
|
34
|
+
# Comparison is case-insensitive, so only lowercase variants are needed.
|
|
35
|
+
# See: https://github.com/commitizen/conventional-commit-types/blob/master/index.json
|
|
36
|
+
types: |
|
|
37
|
+
fix
|
|
38
|
+
feat
|
|
39
|
+
docs
|
|
40
|
+
ci
|
|
41
|
+
chore
|
|
42
|
+
build
|
|
43
|
+
test
|
|
44
|
+
refactor
|
|
45
|
+
perf
|
|
46
|
+
style
|
|
47
|
+
|
|
48
|
+
- name: Check for "do not merge" in PR title
|
|
49
|
+
if: ${{ github.event.pull_request.draft == false }}
|
|
50
|
+
uses: actions/github-script@v7
|
|
51
|
+
with:
|
|
52
|
+
script: |
|
|
53
|
+
const title = context.payload.pull_request.title.toLowerCase();
|
|
54
|
+
if (title.includes('do not merge') || title.includes('do-not-merge')) {
|
|
55
|
+
core.setFailed('PR title contains "do not merge" or "do-not-merge". Please remove this before merging.');
|
|
56
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: Validate Build
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request: {}
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build-check:
|
|
14
|
+
name: Build and Inspect Python Package
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout code
|
|
18
|
+
uses: actions/checkout@v6
|
|
19
|
+
|
|
20
|
+
- name: Install uv
|
|
21
|
+
uses: astral-sh/setup-uv@v7
|
|
22
|
+
with:
|
|
23
|
+
version: "latest"
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
uses: actions/setup-python@v6
|
|
27
|
+
with:
|
|
28
|
+
python-version: "3.12"
|
|
29
|
+
|
|
30
|
+
- name: Disable direct references for build check
|
|
31
|
+
# Forcibly disable allow-direct-references to catch git dependencies at build time.
|
|
32
|
+
run: |
|
|
33
|
+
echo "Before:" && grep allow-direct-references pyproject.toml
|
|
34
|
+
sed -i 's/allow-direct-references *= *true/allow-direct-references = false/' pyproject.toml
|
|
35
|
+
echo "After:" && grep allow-direct-references pyproject.toml
|
|
36
|
+
|
|
37
|
+
- name: Build package
|
|
38
|
+
run: uv build
|
|
39
|
+
|
|
40
|
+
- name: Upload build artifacts
|
|
41
|
+
uses: actions/upload-artifact@v6
|
|
42
|
+
with:
|
|
43
|
+
name: Packages-${{ github.run_id }}
|
|
44
|
+
path: |
|
|
45
|
+
dist/*.whl
|
|
46
|
+
dist/*.tar.gz
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: airbyte-internal-ops
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: MCP and API interfaces that let the agents do the admin work
|
|
5
5
|
Author-email: Aaron Steers <aj@airbyte.io>
|
|
6
6
|
Keywords: admin,airbyte,api,mcp
|
|
@@ -21,6 +21,7 @@ Requires-Dist: cloud-sql-python-connector[pg8000]<2.0,>=1.7.0
|
|
|
21
21
|
Requires-Dist: cyclopts<5.0,>=4.0.0
|
|
22
22
|
Requires-Dist: docker<7.0,>=6.0
|
|
23
23
|
Requires-Dist: dpath<3.0,>=2.1.5
|
|
24
|
+
Requires-Dist: fastmcp-extensions<1.0,>=0.2.0
|
|
24
25
|
Requires-Dist: fastmcp<3.0,>=2.12.1
|
|
25
26
|
Requires-Dist: gitpython<4.0,>=3.1.29
|
|
26
27
|
Requires-Dist: google-cloud-logging<4.0,>=3.9.0
|
|
@@ -252,6 +252,7 @@ def define_abctl_project() -> tuple[sentry.Project, OutputVarsMap]:
|
|
|
252
252
|
filters=sentry.ProjectFiltersArgs(
|
|
253
253
|
error_messages=[
|
|
254
254
|
"*kong.ParseError: unexpected argument start",
|
|
255
|
+
"*errors.joinError: failed to determine if any previous psql version exists: error reading pgdata version file*",
|
|
255
256
|
"*values.yaml*no such file or directory*",
|
|
256
257
|
"*values.yml*no such file or directory*",
|
|
257
258
|
],
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# PoeThePoet task definitions
|
|
2
2
|
# https://poethepoet.natn.io/
|
|
3
3
|
|
|
4
|
+
# Global environment variables
|
|
5
|
+
[tool.poe.env]
|
|
6
|
+
# The pointer to our app. Used in MCP helper tasks.
|
|
7
|
+
MCP_SERVER_APP = "airbyte_ops_mcp.mcp.server:app"
|
|
8
|
+
|
|
4
9
|
[tool.poe.tasks]
|
|
5
10
|
|
|
6
11
|
# Linting and formatting
|
|
@@ -62,8 +67,12 @@ args = [{ name = "scope", default = "", help = "Optional scope/context to focus
|
|
|
62
67
|
|
|
63
68
|
[tool.poe.tasks.mcp-tool-test]
|
|
64
69
|
help = "Test MCP tools directly with JSON arguments: poe mcp-tool-test <tool_name> '<json_args>'"
|
|
65
|
-
cmd = "python
|
|
70
|
+
cmd = "python -m fastmcp_extensions.utils.test_tool --app $MCP_SERVER_APP"
|
|
66
71
|
|
|
67
72
|
[tool.poe.tasks.mcp-tool-test-http]
|
|
68
73
|
help = "Test MCP tools over HTTP transport (stateless): poe mcp-tool-test-http [tool_name] ['<json_args>']"
|
|
69
|
-
cmd = "python
|
|
74
|
+
cmd = "python -m fastmcp_extensions.utils.test_tool --http --app $MCP_SERVER_APP"
|
|
75
|
+
|
|
76
|
+
[tool.poe.tasks.mcp-server-describe]
|
|
77
|
+
help = "Describe MCP server tool list (count, total characters, average)"
|
|
78
|
+
cmd = "python -m fastmcp_extensions.utils.describe_server --app $MCP_SERVER_APP --name airbyte-ops-mcp"
|
|
@@ -19,6 +19,7 @@ dependencies = [
|
|
|
19
19
|
"docker>=6.0,<7.0",
|
|
20
20
|
"dpath>=2.1.5,<3.0",
|
|
21
21
|
"fastmcp>=2.12.1,<3.0",
|
|
22
|
+
"fastmcp-extensions>=0.2.0,<1.0",
|
|
22
23
|
"gitpython>=3.1.29,<4.0",
|
|
23
24
|
"google-cloud-logging>=3.9.0,<4.0",
|
|
24
25
|
"google-cloud-secret-manager>=2.18.0,<3.0",
|
|
@@ -149,6 +150,12 @@ vcs = "git"
|
|
|
149
150
|
style = "pep440"
|
|
150
151
|
fallback-version = "0.0.0"
|
|
151
152
|
|
|
153
|
+
[tool.hatch.metadata]
|
|
154
|
+
# We allow git-based dependencies during development.
|
|
155
|
+
# However, PyPI does not allow this so we toggle to `false` in CI build checks
|
|
156
|
+
# to ensure dependencies are properly pinned before merge.
|
|
157
|
+
allow-direct-references = true
|
|
158
|
+
|
|
152
159
|
[tool.hatch.build.targets.wheel]
|
|
153
160
|
packages = ["src/airbyte_ops_mcp"]
|
|
154
161
|
|
|
@@ -10,6 +10,19 @@ from airbyte.exceptions import PyAirbyteInputError
|
|
|
10
10
|
MCP_SERVER_NAME = "airbyte-internal-ops"
|
|
11
11
|
"""The name of the MCP server."""
|
|
12
12
|
|
|
13
|
+
|
|
14
|
+
class ServerConfigKey(StrEnum):
|
|
15
|
+
"""Config keys for MCP server configuration arguments.
|
|
16
|
+
|
|
17
|
+
These keys are used both when defining server_config_args in mcp_server()
|
|
18
|
+
and when retrieving config values via get_mcp_config().
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
BEARER_TOKEN = "bearer_token"
|
|
22
|
+
CLIENT_ID = "client_id"
|
|
23
|
+
CLIENT_SECRET = "client_secret"
|
|
24
|
+
|
|
25
|
+
|
|
13
26
|
USER_AGENT = "Airbyte-Internal-Ops Python client"
|
|
14
27
|
"""User-Agent string for HTTP requests to Airbyte Cloud APIs."""
|
|
15
28
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"""MCP tools organized by functional domain.
|
|
2
|
+
|
|
3
|
+
This package contains all MCP tool implementations organized by module name.
|
|
4
|
+
Domain is automatically inferred from the file stem where tools are defined:
|
|
5
|
+
- github_repo_ops: GitHub repository operations
|
|
6
|
+
- cloud_connector_versions: Cloud connector version management
|
|
7
|
+
- prod_db_queries: Production database queries
|
|
8
|
+
- github_actions: GitHub Actions workflow operations
|
|
9
|
+
- regression_tests: Connector regression testing
|
|
10
|
+
- prerelease: Connector prerelease operations
|
|
11
|
+
- gcp_logs: GCP log queries
|
|
12
|
+
"""
|
|
@@ -15,7 +15,8 @@ from typing import Annotated, Literal
|
|
|
15
15
|
|
|
16
16
|
from airbyte import constants
|
|
17
17
|
from airbyte.exceptions import PyAirbyteInputError
|
|
18
|
-
from fastmcp import FastMCP
|
|
18
|
+
from fastmcp import Context, FastMCP
|
|
19
|
+
from fastmcp_extensions import get_mcp_config, mcp_tool, register_mcp_tools
|
|
19
20
|
from pydantic import Field
|
|
20
21
|
|
|
21
22
|
from airbyte_ops_mcp.cloud_admin import api_client
|
|
@@ -29,19 +30,13 @@ from airbyte_ops_mcp.cloud_admin.models import (
|
|
|
29
30
|
VersionOverrideOperationResult,
|
|
30
31
|
WorkspaceVersionOverrideResult,
|
|
31
32
|
)
|
|
32
|
-
from airbyte_ops_mcp.constants import WorkspaceAliasEnum
|
|
33
|
+
from airbyte_ops_mcp.constants import ServerConfigKey, WorkspaceAliasEnum
|
|
33
34
|
from airbyte_ops_mcp.github_api import (
|
|
34
35
|
GitHubAPIError,
|
|
35
36
|
GitHubCommentParseError,
|
|
36
37
|
GitHubUserEmailNotFoundError,
|
|
37
38
|
get_admin_email_from_approval_comment,
|
|
38
39
|
)
|
|
39
|
-
from airbyte_ops_mcp.mcp._http_headers import (
|
|
40
|
-
resolve_bearer_token,
|
|
41
|
-
resolve_client_id,
|
|
42
|
-
resolve_client_secret,
|
|
43
|
-
)
|
|
44
|
-
from airbyte_ops_mcp.mcp._mcp_utils import mcp_tool, register_mcp_tools
|
|
45
40
|
|
|
46
41
|
|
|
47
42
|
@dataclass(frozen=True)
|
|
@@ -56,33 +51,36 @@ class _ResolvedCloudAuth:
|
|
|
56
51
|
client_secret: str | None = None
|
|
57
52
|
|
|
58
53
|
|
|
59
|
-
def _resolve_cloud_auth() -> _ResolvedCloudAuth:
|
|
54
|
+
def _resolve_cloud_auth(ctx: Context) -> _ResolvedCloudAuth:
|
|
60
55
|
"""Resolve authentication credentials for Airbyte Cloud API.
|
|
61
56
|
|
|
62
57
|
Credentials are resolved in priority order:
|
|
63
58
|
1. Bearer token (Authorization header or AIRBYTE_CLOUD_BEARER_TOKEN env var)
|
|
64
59
|
2. Client credentials (X-Airbyte-Cloud-Client-Id/Secret headers or env vars)
|
|
65
60
|
|
|
61
|
+
Args:
|
|
62
|
+
ctx: FastMCP Context object from the current tool invocation.
|
|
63
|
+
|
|
66
64
|
Returns:
|
|
67
65
|
_ResolvedCloudAuth with either bearer_token or client credentials set.
|
|
68
66
|
|
|
69
67
|
Raises:
|
|
70
68
|
CloudAuthError: If credentials cannot be resolved from headers or env vars.
|
|
71
69
|
"""
|
|
72
|
-
# Try bearer token first (preferred)
|
|
73
|
-
bearer_token =
|
|
70
|
+
# Try bearer token first (preferred, but not required)
|
|
71
|
+
bearer_token = get_mcp_config(ctx, ServerConfigKey.BEARER_TOKEN)
|
|
74
72
|
if bearer_token:
|
|
75
|
-
return _ResolvedCloudAuth(bearer_token=
|
|
73
|
+
return _ResolvedCloudAuth(bearer_token=bearer_token)
|
|
76
74
|
|
|
77
75
|
# Fall back to client credentials
|
|
78
76
|
try:
|
|
79
|
-
client_id =
|
|
80
|
-
client_secret =
|
|
77
|
+
client_id = get_mcp_config(ctx, ServerConfigKey.CLIENT_ID)
|
|
78
|
+
client_secret = get_mcp_config(ctx, ServerConfigKey.CLIENT_SECRET)
|
|
81
79
|
return _ResolvedCloudAuth(
|
|
82
|
-
client_id=
|
|
83
|
-
client_secret=
|
|
80
|
+
client_id=client_id,
|
|
81
|
+
client_secret=client_secret,
|
|
84
82
|
)
|
|
85
|
-
except
|
|
83
|
+
except ValueError as e:
|
|
86
84
|
raise CloudAuthError(
|
|
87
85
|
f"Failed to resolve credentials. Ensure credentials are provided "
|
|
88
86
|
f"via Authorization header (Bearer token), "
|
|
@@ -111,6 +109,8 @@ def get_cloud_connector_version(
|
|
|
111
109
|
Literal["source", "destination"],
|
|
112
110
|
"The type of connector (source or destination)",
|
|
113
111
|
],
|
|
112
|
+
*,
|
|
113
|
+
ctx: Context,
|
|
114
114
|
) -> ConnectorVersionInfo:
|
|
115
115
|
"""Get the current version information for a deployed connector.
|
|
116
116
|
|
|
@@ -126,7 +126,7 @@ def get_cloud_connector_version(
|
|
|
126
126
|
resolved_workspace_id = WorkspaceAliasEnum.resolve(workspace_id)
|
|
127
127
|
|
|
128
128
|
try:
|
|
129
|
-
auth = _resolve_cloud_auth()
|
|
129
|
+
auth = _resolve_cloud_auth(ctx)
|
|
130
130
|
|
|
131
131
|
# Use vendored API client instead of connector.get_connector_version()
|
|
132
132
|
# Use Config API root for version management operations
|
|
@@ -248,6 +248,8 @@ def set_cloud_connector_version_override(
|
|
|
248
248
|
default=None,
|
|
249
249
|
),
|
|
250
250
|
],
|
|
251
|
+
*,
|
|
252
|
+
ctx: Context,
|
|
251
253
|
) -> VersionOverrideOperationResult:
|
|
252
254
|
"""Set or clear a version override for a deployed connector.
|
|
253
255
|
|
|
@@ -359,7 +361,7 @@ def set_cloud_connector_version_override(
|
|
|
359
361
|
|
|
360
362
|
# Resolve auth and get current version info
|
|
361
363
|
try:
|
|
362
|
-
auth = _resolve_cloud_auth()
|
|
364
|
+
auth = _resolve_cloud_auth(ctx)
|
|
363
365
|
|
|
364
366
|
# Get current version info before the operation
|
|
365
367
|
current_version_data = api_client.get_connector_version(
|
|
@@ -529,6 +531,8 @@ def set_workspace_connector_version_override(
|
|
|
529
531
|
default=None,
|
|
530
532
|
),
|
|
531
533
|
],
|
|
534
|
+
*,
|
|
535
|
+
ctx: Context,
|
|
532
536
|
) -> WorkspaceVersionOverrideResult:
|
|
533
537
|
"""Set or clear a workspace-level version override for a connector type.
|
|
534
538
|
|
|
@@ -634,7 +638,7 @@ def set_workspace_connector_version_override(
|
|
|
634
638
|
|
|
635
639
|
# Resolve auth and call API client
|
|
636
640
|
try:
|
|
637
|
-
auth = _resolve_cloud_auth()
|
|
641
|
+
auth = _resolve_cloud_auth(ctx)
|
|
638
642
|
|
|
639
643
|
result = api_client.set_workspace_connector_version_override(
|
|
640
644
|
workspace_id=resolved_workspace_id,
|
|
@@ -762,6 +766,8 @@ def set_organization_connector_version_override(
|
|
|
762
766
|
default=None,
|
|
763
767
|
),
|
|
764
768
|
],
|
|
769
|
+
*,
|
|
770
|
+
ctx: Context,
|
|
765
771
|
) -> OrganizationVersionOverrideResult:
|
|
766
772
|
"""Set or clear an organization-level version override for a connector type.
|
|
767
773
|
|
|
@@ -863,7 +869,7 @@ def set_organization_connector_version_override(
|
|
|
863
869
|
|
|
864
870
|
# Resolve auth and call API client
|
|
865
871
|
try:
|
|
866
|
-
auth = _resolve_cloud_auth()
|
|
872
|
+
auth = _resolve_cloud_auth(ctx)
|
|
867
873
|
|
|
868
874
|
result = api_client.set_organization_connector_version_override(
|
|
869
875
|
organization_id=organization_id,
|
|
@@ -921,4 +927,4 @@ def register_cloud_connector_version_tools(app: FastMCP) -> None:
|
|
|
921
927
|
Args:
|
|
922
928
|
app: FastMCP application instance
|
|
923
929
|
"""
|
|
924
|
-
register_mcp_tools(app,
|
|
930
|
+
register_mcp_tools(app, mcp_module=__name__)
|
{airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/gcp_logs.py
RENAMED
|
@@ -10,6 +10,7 @@ from __future__ import annotations
|
|
|
10
10
|
from typing import Annotated
|
|
11
11
|
|
|
12
12
|
from fastmcp import FastMCP
|
|
13
|
+
from fastmcp_extensions import mcp_tool, register_mcp_tools
|
|
13
14
|
from pydantic import Field
|
|
14
15
|
|
|
15
16
|
from airbyte_ops_mcp.gcp_logs import (
|
|
@@ -18,7 +19,6 @@ from airbyte_ops_mcp.gcp_logs import (
|
|
|
18
19
|
fetch_error_logs,
|
|
19
20
|
)
|
|
20
21
|
from airbyte_ops_mcp.gcp_logs.error_lookup import DEFAULT_GCP_PROJECT
|
|
21
|
-
from airbyte_ops_mcp.mcp._mcp_utils import mcp_tool, register_mcp_tools
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
@mcp_tool(
|
{airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/github_actions.py
RENAMED
|
@@ -12,6 +12,7 @@ from typing import Annotated
|
|
|
12
12
|
|
|
13
13
|
import requests
|
|
14
14
|
from fastmcp import FastMCP
|
|
15
|
+
from fastmcp_extensions import mcp_tool, register_mcp_tools
|
|
15
16
|
from pydantic import BaseModel, Field
|
|
16
17
|
|
|
17
18
|
from airbyte_ops_mcp.github_actions import (
|
|
@@ -23,7 +24,6 @@ from airbyte_ops_mcp.github_api import (
|
|
|
23
24
|
get_pr_head_ref,
|
|
24
25
|
resolve_github_token,
|
|
25
26
|
)
|
|
26
|
-
from airbyte_ops_mcp.mcp._mcp_utils import mcp_tool, register_mcp_tools
|
|
27
27
|
|
|
28
28
|
# Token env vars for workflow triggering (in order of preference)
|
|
29
29
|
WORKFLOW_TRIGGER_TOKEN_ENV_VARS = [
|
|
@@ -400,4 +400,4 @@ def register_github_actions_tools(app: FastMCP) -> None:
|
|
|
400
400
|
Args:
|
|
401
401
|
app: FastMCP application instance
|
|
402
402
|
"""
|
|
403
|
-
register_mcp_tools(app,
|
|
403
|
+
register_mcp_tools(app, mcp_module=__name__)
|
{airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/github_repo_ops.py
RENAMED
|
@@ -10,12 +10,12 @@ from __future__ import annotations
|
|
|
10
10
|
from typing import Annotated, Literal
|
|
11
11
|
|
|
12
12
|
from fastmcp import FastMCP
|
|
13
|
+
from fastmcp_extensions import mcp_tool, register_mcp_tools
|
|
13
14
|
from pydantic import BaseModel
|
|
14
15
|
|
|
15
16
|
from airbyte_ops_mcp.airbyte_repo.bump_version import bump_connector_version
|
|
16
17
|
from airbyte_ops_mcp.airbyte_repo.list_connectors import list_connectors
|
|
17
18
|
from airbyte_ops_mcp.airbyte_repo.utils import resolve_diff_range
|
|
18
|
-
from airbyte_ops_mcp.mcp._mcp_utils import mcp_tool, register_mcp_tools
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class ConnectorListResponse(BaseModel):
|
|
@@ -162,4 +162,4 @@ def register_github_repo_ops_tools(app: FastMCP) -> None:
|
|
|
162
162
|
Args:
|
|
163
163
|
app: FastMCP application instance
|
|
164
164
|
"""
|
|
165
|
-
register_mcp_tools(app,
|
|
165
|
+
register_mcp_tools(app, mcp_module=__name__)
|
{airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/prerelease.py
RENAMED
|
@@ -16,6 +16,7 @@ from typing import Annotated, Literal
|
|
|
16
16
|
import requests
|
|
17
17
|
import yaml
|
|
18
18
|
from fastmcp import FastMCP
|
|
19
|
+
from fastmcp_extensions import mcp_tool, register_mcp_tools
|
|
19
20
|
from pydantic import BaseModel, Field
|
|
20
21
|
|
|
21
22
|
from airbyte_ops_mcp.github_actions import trigger_workflow_dispatch
|
|
@@ -24,7 +25,6 @@ from airbyte_ops_mcp.github_api import (
|
|
|
24
25
|
get_pr_head_ref,
|
|
25
26
|
resolve_github_token,
|
|
26
27
|
)
|
|
27
|
-
from airbyte_ops_mcp.mcp._mcp_utils import mcp_tool, register_mcp_tools
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class ConnectorRepo(StrEnum):
|
|
@@ -278,4 +278,4 @@ def register_prerelease_tools(app: FastMCP) -> None:
|
|
|
278
278
|
Args:
|
|
279
279
|
app: FastMCP application instance
|
|
280
280
|
"""
|
|
281
|
-
register_mcp_tools(app,
|
|
281
|
+
register_mcp_tools(app, mcp_module=__name__)
|
{airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/prod_db_queries.py
RENAMED
|
@@ -14,10 +14,10 @@ from typing import Annotated, Any
|
|
|
14
14
|
import requests
|
|
15
15
|
from airbyte.exceptions import PyAirbyteInputError
|
|
16
16
|
from fastmcp import FastMCP
|
|
17
|
+
from fastmcp_extensions import mcp_tool, register_mcp_tools
|
|
17
18
|
from pydantic import BaseModel, Field
|
|
18
19
|
|
|
19
20
|
from airbyte_ops_mcp.constants import OrganizationAliasEnum, WorkspaceAliasEnum
|
|
20
|
-
from airbyte_ops_mcp.mcp._mcp_utils import mcp_tool, register_mcp_tools
|
|
21
21
|
from airbyte_ops_mcp.prod_db_access.queries import (
|
|
22
22
|
query_actors_pinned_to_version,
|
|
23
23
|
query_connections_by_connector,
|
|
@@ -1274,4 +1274,4 @@ def query_prod_connector_connection_stats(
|
|
|
1274
1274
|
|
|
1275
1275
|
def register_prod_db_query_tools(app: FastMCP) -> None:
|
|
1276
1276
|
"""Register prod DB query tools with the FastMCP app."""
|
|
1277
|
-
register_mcp_tools(app,
|
|
1277
|
+
register_mcp_tools(app, mcp_module=__name__)
|
{airbyte_internal_ops-0.5.2 → airbyte_internal_ops-0.6.0}/src/airbyte_ops_mcp/mcp/prompts.py
RENAMED
|
@@ -10,10 +10,10 @@ from __future__ import annotations
|
|
|
10
10
|
from typing import Annotated
|
|
11
11
|
|
|
12
12
|
from fastmcp import FastMCP
|
|
13
|
+
from fastmcp_extensions import mcp_prompt, register_mcp_prompts
|
|
13
14
|
from pydantic import Field
|
|
14
15
|
|
|
15
16
|
from airbyte_ops_mcp.mcp._guidance import TEST_MY_TOOLS_GUIDANCE
|
|
16
|
-
from airbyte_ops_mcp.mcp._mcp_utils import mcp_prompt, register_mcp_prompts
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
@mcp_prompt(
|
|
@@ -56,4 +56,4 @@ def register_prompts(app: FastMCP) -> None:
|
|
|
56
56
|
Args:
|
|
57
57
|
app: FastMCP application instance
|
|
58
58
|
"""
|
|
59
|
-
register_mcp_prompts(app,
|
|
59
|
+
register_mcp_prompts(app, mcp_module=__name__)
|
|
@@ -29,12 +29,12 @@ from airbyte.exceptions import (
|
|
|
29
29
|
AirbyteWorkspaceMismatchError,
|
|
30
30
|
)
|
|
31
31
|
from fastmcp import FastMCP
|
|
32
|
+
from fastmcp_extensions import mcp_tool, register_mcp_tools
|
|
32
33
|
from pydantic import BaseModel, Field
|
|
33
34
|
|
|
34
35
|
from airbyte_ops_mcp.constants import WorkspaceAliasEnum
|
|
35
36
|
from airbyte_ops_mcp.github_actions import trigger_workflow_dispatch
|
|
36
37
|
from airbyte_ops_mcp.github_api import GITHUB_API_BASE, resolve_github_token
|
|
37
|
-
from airbyte_ops_mcp.mcp._mcp_utils import mcp_tool, register_mcp_tools
|
|
38
38
|
from airbyte_ops_mcp.mcp.prerelease import ConnectorRepo
|
|
39
39
|
|
|
40
40
|
logger = logging.getLogger(__name__)
|
|
@@ -471,4 +471,4 @@ def register_regression_tests_tools(app: FastMCP) -> None:
|
|
|
471
471
|
Args:
|
|
472
472
|
app: FastMCP application instance
|
|
473
473
|
"""
|
|
474
|
-
register_mcp_tools(app,
|
|
474
|
+
register_mcp_tools(app, mcp_module=__name__)
|