airbyte-internal-ops 0.1.8__tar.gz → 0.2.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.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/connector-live-test.yml +26 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/connector-regression-test.yml +39 -4
- airbyte_internal_ops-0.2.0/.github/workflows/live-tests-ci.yml +33 -0
- airbyte_internal_ops-0.2.0/.github/workflows/sentry-apply-command.yml +293 -0
- airbyte_internal_ops-0.2.0/.github/workflows/sentry-preview.yml +153 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/slash-command-dispatch.yml +1 -0
- airbyte_internal_ops-0.2.0/.github/workflows/tk-todo-check.yml +45 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/PKG-INFO +1 -1
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/bin/test_mcp_tool.py +1 -1
- airbyte_internal_ops-0.2.0/bin/test_mcp_tool_http.py +110 -0
- airbyte_internal_ops-0.2.0/infra/sentry/.gitignore +31 -0
- airbyte_internal_ops-0.2.0/infra/sentry/Pulumi.prod.yaml +72 -0
- airbyte_internal_ops-0.2.0/infra/sentry/Pulumi.yaml +29 -0
- airbyte_internal_ops-0.2.0/infra/sentry/README.md +230 -0
- airbyte_internal_ops-0.2.0/infra/sentry/__main__.py +347 -0
- airbyte_internal_ops-0.2.0/infra/sentry/docs/CONTRIBUTING.md +229 -0
- airbyte_internal_ops-0.2.0/infra/sentry/requirements.txt +11 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/poe_tasks.toml +4 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/pyproject.toml +3 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/README.md +2 -2
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +3 -2
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cli/cloud.py +342 -4
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cli/registry.py +2 -2
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cloud_admin/api_client.py +1 -1
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cloud_admin/auth.py +32 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/constants.py +27 -0
- airbyte_internal_ops-0.2.0/src/airbyte_ops_mcp/github_actions.py +218 -0
- airbyte_internal_ops-0.2.0/src/airbyte_ops_mcp/live_tests/cdk_secrets.py +90 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/ci_output.py +55 -5
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/connector_runner.py +3 -0
- airbyte_internal_ops-0.2.0/src/airbyte_ops_mcp/mcp/_http_headers.py +198 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +118 -22
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/github.py +4 -23
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/live_tests.py +46 -84
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/prerelease.py +12 -34
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +90 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/server.py +81 -8
- airbyte_internal_ops-0.2.0/src/airbyte_ops_mcp/prod_db_access/db_engine.py +261 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/prod_db_access/queries.py +68 -2
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/prod_db_access/sql.py +92 -2
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/test_cli_registry.py +1 -1
- airbyte_internal_ops-0.1.8/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -126
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.env.template +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/copilot-instructions.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/dependabot.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/pr-welcome-message.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/release-drafter.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/autofix-command.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/format-check.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/lint-check.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/lock-command.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/pdoc_preview.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/pdoc_publish.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/poe-command.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/pr-welcome.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/publish.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/pytest-fast.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/pytest-matrix.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/release-drafter.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/test-connection-retriever.yml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.gitignore +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.mcp.json.template +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/CONTRIBUTING.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/conftest.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/docs/.gitignore +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/docs/generate.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/docs/templates/custom.css +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/docs/templates/theme.css +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/pyrefly.toml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/pytest.ini +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/ruff.toml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_annotations.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/.gitignore +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/base_backend.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/duckdb_backend.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/file_backend.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connection_objects_retrieval.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connector_runner.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/errors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/evaluation_modes.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/hacks.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/json_schema_helper.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/mitm_addons.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/proxy.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/secret_access.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/segment_tracking.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/conftest.py.disabled +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/consts.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/poetry.lock +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/pytest.ini +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_check.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_discover.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_read.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_spec.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/report.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/stash_keys.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/private_details.html.j2 +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/report.html.j2 +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_check.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_discover.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_read.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_spec.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/assets.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/documentation.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/helpers.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/metadata.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/packaging.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/security.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/version.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/cli.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/consts.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/qa_checks.md.j2 +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/bundle-schemas.js +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/generate-metadata-models.sh +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ActorDefinitionResourceRequirements.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AirbyteInternal.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AllowedHosts.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBreakingChanges.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBuildOptions.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorIPCOptions.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.json +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetrics.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorPackageInfo.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryDestinationDefinition.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryReleases.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistrySourceDefinition.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryV0.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorReleases.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorTestSuiteOptions.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GeneratedFields.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GitInfo.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/JobType.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/NormalizationDestinationDefinitionConfig.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RegistryOverrides.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ReleaseStage.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RemoteRegistries.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ResourceRequirements.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RolloutConfiguration.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/Secret.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SecretStore.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SourceFileInfo.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SuggestedStreams.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SupportLevel.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/TestConnections.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/airbyte-connector-metadata-schema.json +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ActorDefinitionResourceRequirements.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AirbyteInternal.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AllowedHosts.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBreakingChanges.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBuildOptions.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorIPCOptions.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetadataDefinitionV0.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetrics.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorPackageInfo.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryDestinationDefinition.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryReleases.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistrySourceDefinition.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryV0.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorReleases.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorTestSuiteOptions.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GeneratedFields.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GitInfo.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/JobType.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/NormalizationDestinationDefinitionConfig.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RegistryOverrides.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ReleaseStage.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RemoteRegistries.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ResourceRequirements.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RolloutConfiguration.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/Secret.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SecretStore.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SourceFileInfo.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SuggestedStreams.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SupportLevel.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/TestConnections.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package-lock.json +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package.json +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/transform.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docker_hub.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.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.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/validators/metadata_validator.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cli/_base.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cli/app.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cli/gh.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cli/repo.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/cloud_admin/models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/gcp_auth.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/commons/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/config.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/connection_fetcher.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/connection_secret_retriever.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/evaluation_modes.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/http_metrics.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/message_cache/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/message_cache/duckdb_cache.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/obfuscation.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/regression/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/regression/comparators.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/schema_generation.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/validation/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/validation/catalog_validators.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/live_tests/validation/record_validators.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/_guidance.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/_mcp_utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/prompts.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/mcp/server_info.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/py.typed +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/registry/models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/src/airbyte_ops_mcp/registry/publish.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_live_tests/backends/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_live_tests/backends/test_file_backend.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_live_tests/test_get_connection_objects_retrieval.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_live_tests/test_json_schema_helper.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/test_airbyte_admin_mcp.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/test_bump_version.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/tests/test_list_connectors.py +0 -0
- {airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/uv.lock +0 -0
{airbyte_internal_ops-0.1.8 → airbyte_internal_ops-0.2.0}/.github/workflows/connector-live-test.yml
RENAMED
|
@@ -13,6 +13,10 @@ on:
|
|
|
13
13
|
description: "Connector name to build from source (e.g., 'source-pokeapi'). If provided, builds the image locally."
|
|
14
14
|
required: false
|
|
15
15
|
type: string
|
|
16
|
+
pr:
|
|
17
|
+
description: "PR number from the airbyte repo to checkout and build from (e.g., 70847). Only used when connector_name is provided."
|
|
18
|
+
required: false
|
|
19
|
+
type: string
|
|
16
20
|
command:
|
|
17
21
|
description: "Airbyte command to run"
|
|
18
22
|
required: false
|
|
@@ -53,6 +57,27 @@ jobs:
|
|
|
53
57
|
- name: Install dependencies
|
|
54
58
|
run: uv sync --group dev
|
|
55
59
|
|
|
60
|
+
- name: Resolve Airbyte ref
|
|
61
|
+
if: ${{ inputs.connector_name != '' }}
|
|
62
|
+
id: resolve-airbyte-ref
|
|
63
|
+
run: |
|
|
64
|
+
if [ -n "${{ inputs.pr }}" ]; then
|
|
65
|
+
echo "resolved_ref=refs/pull/${{ inputs.pr }}/head" >> "$GITHUB_OUTPUT"
|
|
66
|
+
echo "Using PR ${{ inputs.pr }} -> refs/pull/${{ inputs.pr }}/head"
|
|
67
|
+
else
|
|
68
|
+
echo "resolved_ref=master" >> "$GITHUB_OUTPUT"
|
|
69
|
+
echo "No PR specified, using master"
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
- name: Checkout Airbyte repo
|
|
73
|
+
if: ${{ inputs.connector_name != '' }}
|
|
74
|
+
uses: actions/checkout@v6
|
|
75
|
+
with:
|
|
76
|
+
repository: airbytehq/airbyte
|
|
77
|
+
ref: ${{ steps.resolve-airbyte-ref.outputs.resolved_ref }}
|
|
78
|
+
path: airbyte
|
|
79
|
+
fetch-depth: 1
|
|
80
|
+
|
|
56
81
|
- name: Run Live Test
|
|
57
82
|
id: live-test
|
|
58
83
|
env:
|
|
@@ -67,6 +92,7 @@ jobs:
|
|
|
67
92
|
|
|
68
93
|
if [ -n "${{ inputs.connector_name }}" ]; then
|
|
69
94
|
ARGS+=(--connector-name "${{ inputs.connector_name }}")
|
|
95
|
+
ARGS+=(--repo-root "${{ github.workspace }}/airbyte")
|
|
70
96
|
fi
|
|
71
97
|
|
|
72
98
|
if [ -n "${{ inputs.connection_id }}" ]; then
|
|
@@ -18,6 +18,10 @@ on:
|
|
|
18
18
|
description: "Connector name to build target image from source (e.g., 'source-pokeapi'). If provided, builds the target image locally."
|
|
19
19
|
required: false
|
|
20
20
|
type: string
|
|
21
|
+
pr:
|
|
22
|
+
description: "PR number from the airbyte repo to checkout and build from (e.g., 70847). Only used when connector_name is provided."
|
|
23
|
+
required: false
|
|
24
|
+
type: string
|
|
21
25
|
command:
|
|
22
26
|
description: "Airbyte command to run"
|
|
23
27
|
required: false
|
|
@@ -51,6 +55,10 @@ on:
|
|
|
51
55
|
description: "Connector name to build target image from source (e.g., 'source-pokeapi')."
|
|
52
56
|
required: false
|
|
53
57
|
type: string
|
|
58
|
+
pr:
|
|
59
|
+
description: "PR number from the airbyte repo to checkout and build from. Only used when connector_name is provided."
|
|
60
|
+
required: false
|
|
61
|
+
type: string
|
|
54
62
|
command:
|
|
55
63
|
description: "Airbyte command to run (spec, check, discover, read)"
|
|
56
64
|
required: false
|
|
@@ -79,6 +87,8 @@ on:
|
|
|
79
87
|
required: false
|
|
80
88
|
AIRBYTE_CLOUD_CLIENT_SECRET:
|
|
81
89
|
required: false
|
|
90
|
+
GCP_GSM_CREDENTIALS:
|
|
91
|
+
required: false
|
|
82
92
|
|
|
83
93
|
jobs:
|
|
84
94
|
regression-test:
|
|
@@ -105,11 +115,35 @@ jobs:
|
|
|
105
115
|
- name: Install dependencies
|
|
106
116
|
run: uv sync --group dev
|
|
107
117
|
|
|
118
|
+
- name: Resolve Airbyte ref
|
|
119
|
+
if: ${{ inputs.connector_name != '' }}
|
|
120
|
+
id: resolve-airbyte-ref
|
|
121
|
+
run: |
|
|
122
|
+
if [ -n "${{ inputs.pr }}" ]; then
|
|
123
|
+
echo "resolved_ref=refs/pull/${{ inputs.pr }}/head" >> "$GITHUB_OUTPUT"
|
|
124
|
+
echo "Using PR ${{ inputs.pr }} -> refs/pull/${{ inputs.pr }}/head"
|
|
125
|
+
else
|
|
126
|
+
echo "resolved_ref=master" >> "$GITHUB_OUTPUT"
|
|
127
|
+
echo "No PR specified, using master"
|
|
128
|
+
fi
|
|
129
|
+
|
|
130
|
+
- name: Checkout Airbyte repo
|
|
131
|
+
if: ${{ inputs.connector_name != '' }}
|
|
132
|
+
uses: actions/checkout@v6
|
|
133
|
+
with:
|
|
134
|
+
repository: airbytehq/airbyte
|
|
135
|
+
ref: ${{ steps.resolve-airbyte-ref.outputs.resolved_ref }}
|
|
136
|
+
path: airbyte
|
|
137
|
+
fetch-depth: 1
|
|
138
|
+
|
|
108
139
|
- name: Run Regression Test
|
|
109
140
|
id: regression-test
|
|
110
141
|
env:
|
|
111
142
|
AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
|
|
112
143
|
AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
|
|
144
|
+
GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
|
|
145
|
+
GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
|
|
146
|
+
USE_CONNECTION_SECRET_RETRIEVER: "true"
|
|
113
147
|
run: |
|
|
114
148
|
ARGS=(--command "${{ inputs.command }}")
|
|
115
149
|
|
|
@@ -123,6 +157,7 @@ jobs:
|
|
|
123
157
|
|
|
124
158
|
if [ -n "${{ inputs.connector_name }}" ]; then
|
|
125
159
|
ARGS+=(--connector-name "${{ inputs.connector_name }}")
|
|
160
|
+
ARGS+=(--repo-root "${{ github.workspace }}/airbyte")
|
|
126
161
|
fi
|
|
127
162
|
|
|
128
163
|
if [ -n "${{ inputs.connection_id }}" ]; then
|
|
@@ -143,14 +178,14 @@ jobs:
|
|
|
143
178
|
script: |
|
|
144
179
|
const fs = require('fs');
|
|
145
180
|
const reportPath = '/tmp/regression_test_artifacts/report.md';
|
|
146
|
-
|
|
181
|
+
|
|
147
182
|
let reportContent = 'Report not generated';
|
|
148
183
|
if (fs.existsSync(reportPath)) {
|
|
149
184
|
reportContent = fs.readFileSync(reportPath, 'utf8');
|
|
150
185
|
}
|
|
151
|
-
|
|
186
|
+
|
|
152
187
|
const conclusion = '${{ steps.regression-test.outcome }}' === 'success' ? 'success' : 'failure';
|
|
153
|
-
|
|
188
|
+
|
|
154
189
|
const check = await github.rest.checks.create({
|
|
155
190
|
owner: context.repo.owner,
|
|
156
191
|
repo: context.repo.repo,
|
|
@@ -164,7 +199,7 @@ jobs:
|
|
|
164
199
|
text: reportContent
|
|
165
200
|
}
|
|
166
201
|
});
|
|
167
|
-
|
|
202
|
+
|
|
168
203
|
core.setOutput('report_url', check.data.html_url);
|
|
169
204
|
|
|
170
205
|
- name: Add Report Link to Summary
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# CI smoke test for live_tests code changes
|
|
2
|
+
# Runs a lightweight regression test to validate live_tests code works correctly
|
|
3
|
+
name: Live Tests CI
|
|
4
|
+
|
|
5
|
+
permissions:
|
|
6
|
+
contents: read
|
|
7
|
+
checks: write
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
pull_request:
|
|
11
|
+
paths:
|
|
12
|
+
- 'src/airbyte_ops_mcp/live_tests/**'
|
|
13
|
+
- '.github/workflows/live-tests-ci.yml'
|
|
14
|
+
- '.github/workflows/connector-regression-test.yml'
|
|
15
|
+
|
|
16
|
+
# Allow manual triggering for testing
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
concurrency:
|
|
20
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
21
|
+
cancel-in-progress: true
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
smoke-test:
|
|
25
|
+
name: Live Tests Smoke Test
|
|
26
|
+
uses: ./.github/workflows/connector-regression-test.yml
|
|
27
|
+
with:
|
|
28
|
+
# Use source-pokeapi as a stable, public connector for smoke testing
|
|
29
|
+
target_image: "airbyte/source-pokeapi:0.3.0"
|
|
30
|
+
control_image: "airbyte/source-pokeapi:0.2.0"
|
|
31
|
+
# spec is the fastest command and doesn't require credentials
|
|
32
|
+
command: "spec"
|
|
33
|
+
# No secrets needed for spec command with public connector
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
name: Sentry Apply
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'infra/sentry/**'
|
|
9
|
+
- '.github/workflows/sentry-apply-command.yml'
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
inputs:
|
|
12
|
+
pr:
|
|
13
|
+
description: 'PR Number (for slash command)'
|
|
14
|
+
type: string
|
|
15
|
+
required: false
|
|
16
|
+
comment-id:
|
|
17
|
+
description: 'Comment ID (for slash command)'
|
|
18
|
+
type: string
|
|
19
|
+
required: false
|
|
20
|
+
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
actions: read
|
|
24
|
+
pull-requests: write
|
|
25
|
+
|
|
26
|
+
env:
|
|
27
|
+
STATE_ARTIFACT_NAME: pulumi-sentry-state
|
|
28
|
+
WORKING_DIRECTORY: infra/sentry
|
|
29
|
+
# Directory where Pulumi stores stack state (for artifact-based state storage)
|
|
30
|
+
# Note: This is the backend storage location, NOT PULUMI_HOME (which is for CLI config)
|
|
31
|
+
PULUMI_BACKEND_DIR: ${{ github.workspace }}/infra/sentry/.pulumi-state
|
|
32
|
+
|
|
33
|
+
jobs:
|
|
34
|
+
sentry-apply:
|
|
35
|
+
name: Sentry Apply
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
# Use environment for applies to enable approval gates
|
|
38
|
+
environment:
|
|
39
|
+
name: Sentry (Prod)
|
|
40
|
+
url: https://airbytehq.sentry.io/settings/projects/
|
|
41
|
+
defaults:
|
|
42
|
+
run:
|
|
43
|
+
working-directory: ${{ env.WORKING_DIRECTORY }}
|
|
44
|
+
steps:
|
|
45
|
+
- name: Resolve trigger context
|
|
46
|
+
id: context
|
|
47
|
+
run: |
|
|
48
|
+
# Determine trigger type and set appropriate variables
|
|
49
|
+
if [ "${{ github.event_name }}" = "push" ]; then
|
|
50
|
+
echo "trigger=push-to-main" >> $GITHUB_OUTPUT
|
|
51
|
+
echo "ref=${{ github.ref }}" >> $GITHUB_OUTPUT
|
|
52
|
+
echo "sha=${{ github.sha }}" >> $GITHUB_OUTPUT
|
|
53
|
+
echo "has_pr=false" >> $GITHUB_OUTPUT
|
|
54
|
+
echo "Triggered by push to main branch"
|
|
55
|
+
else
|
|
56
|
+
# workflow_dispatch - could be slash command or manual
|
|
57
|
+
if [ -n "${{ github.event.inputs.pr }}" ]; then
|
|
58
|
+
echo "trigger=slash-command" >> $GITHUB_OUTPUT
|
|
59
|
+
echo "has_pr=true" >> $GITHUB_OUTPUT
|
|
60
|
+
echo "Triggered by slash command on PR #${{ github.event.inputs.pr }}"
|
|
61
|
+
else
|
|
62
|
+
echo "trigger=manual" >> $GITHUB_OUTPUT
|
|
63
|
+
echo "ref=${{ github.ref }}" >> $GITHUB_OUTPUT
|
|
64
|
+
echo "sha=${{ github.sha }}" >> $GITHUB_OUTPUT
|
|
65
|
+
echo "has_pr=false" >> $GITHUB_OUTPUT
|
|
66
|
+
echo "Triggered by manual workflow dispatch"
|
|
67
|
+
fi
|
|
68
|
+
fi
|
|
69
|
+
working-directory: .
|
|
70
|
+
|
|
71
|
+
- name: Authenticate as GitHub App (if available)
|
|
72
|
+
uses: actions/create-github-app-token@v2
|
|
73
|
+
id: get-app-token
|
|
74
|
+
continue-on-error: true
|
|
75
|
+
with:
|
|
76
|
+
app-id: ${{ secrets.OCTAVIA_BOT_APP_ID }}
|
|
77
|
+
private-key: ${{ secrets.OCTAVIA_BOT_PRIVATE_KEY }}
|
|
78
|
+
|
|
79
|
+
- name: Get PR info (slash command only)
|
|
80
|
+
if: steps.context.outputs.has_pr == 'true'
|
|
81
|
+
id: pr-info
|
|
82
|
+
uses: actions/github-script@v7
|
|
83
|
+
with:
|
|
84
|
+
script: |
|
|
85
|
+
const { data: pr } = await github.rest.pulls.get({
|
|
86
|
+
owner: context.repo.owner,
|
|
87
|
+
repo: context.repo.repo,
|
|
88
|
+
pull_number: ${{ github.event.inputs.pr || 0 }}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// Security: Only allow on non-forked PRs
|
|
92
|
+
const isFork = pr.head.repo.full_name !== pr.base.repo.full_name;
|
|
93
|
+
if (isFork) {
|
|
94
|
+
core.setFailed('Security: /sentry-apply is not allowed on PRs from forks');
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
core.setOutput('ref', pr.head.ref);
|
|
99
|
+
core.setOutput('sha', pr.head.sha);
|
|
100
|
+
core.info(`PR #${{ github.event.inputs.pr }} from branch: ${pr.head.ref}`);
|
|
101
|
+
|
|
102
|
+
- name: Checkout code
|
|
103
|
+
uses: actions/checkout@v4
|
|
104
|
+
with:
|
|
105
|
+
ref: ${{ steps.pr-info.outputs.ref || github.ref }}
|
|
106
|
+
token: ${{ steps.get-app-token.outputs.token || secrets.GITHUB_TOKEN }}
|
|
107
|
+
|
|
108
|
+
- name: Append comment with job run link
|
|
109
|
+
if: github.event.inputs.comment-id
|
|
110
|
+
uses: peter-evans/create-or-update-comment@v5
|
|
111
|
+
with:
|
|
112
|
+
comment-id: ${{ github.event.inputs.comment-id }}
|
|
113
|
+
body: |
|
|
114
|
+
> **Sentry Apply Job Info**
|
|
115
|
+
>
|
|
116
|
+
> Running `pulumi up` to apply Sentry IaC changes from this PR.
|
|
117
|
+
> This will update the Sentry configuration and save state.
|
|
118
|
+
|
|
119
|
+
> Job started... [Check job output.](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})
|
|
120
|
+
|
|
121
|
+
- name: Set up Python
|
|
122
|
+
uses: actions/setup-python@v5
|
|
123
|
+
with:
|
|
124
|
+
python-version: '3.11'
|
|
125
|
+
|
|
126
|
+
- name: Install Pulumi CLI
|
|
127
|
+
uses: pulumi/setup-pulumi@v2
|
|
128
|
+
|
|
129
|
+
- name: Install base Pulumi dependency
|
|
130
|
+
run: |
|
|
131
|
+
pip install "pulumi>=3.147.0,<4.0.0"
|
|
132
|
+
|
|
133
|
+
- name: Generate Sentry provider SDK
|
|
134
|
+
run: |
|
|
135
|
+
pulumi package add terraform-provider jianyuan/sentry 0.14.1
|
|
136
|
+
|
|
137
|
+
- name: Install generated SDK
|
|
138
|
+
run: |
|
|
139
|
+
pip install sdks/sentry
|
|
140
|
+
|
|
141
|
+
- name: Download state artifact
|
|
142
|
+
id: download-state
|
|
143
|
+
continue-on-error: true
|
|
144
|
+
uses: dawidd6/action-download-artifact@v6
|
|
145
|
+
with:
|
|
146
|
+
name: ${{ env.STATE_ARTIFACT_NAME }}
|
|
147
|
+
path: ${{ env.PULUMI_BACKEND_DIR }}
|
|
148
|
+
workflow_conclusion: success
|
|
149
|
+
search_artifacts: true
|
|
150
|
+
if_no_artifact_found: warn
|
|
151
|
+
|
|
152
|
+
- name: Initialize local backend
|
|
153
|
+
env:
|
|
154
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
155
|
+
run: |
|
|
156
|
+
# Ensure backend directory exists
|
|
157
|
+
mkdir -p "$PULUMI_BACKEND_DIR"
|
|
158
|
+
|
|
159
|
+
# Login to local filesystem backend at specific directory
|
|
160
|
+
# Note: file:// URL tells Pulumi WHERE to store state (not --local which uses ~/.pulumi)
|
|
161
|
+
pulumi login "file://$PULUMI_BACKEND_DIR"
|
|
162
|
+
|
|
163
|
+
# Verify backend location
|
|
164
|
+
echo "Backend URL: $(pulumi whoami -v 2>/dev/null | grep -i backend || echo 'file://$PULUMI_BACKEND_DIR')"
|
|
165
|
+
|
|
166
|
+
if [ -d "$PULUMI_BACKEND_DIR/.pulumi/stacks" ]; then
|
|
167
|
+
echo "State restored from artifact"
|
|
168
|
+
ls -la "$PULUMI_BACKEND_DIR/.pulumi/stacks/" || true
|
|
169
|
+
else
|
|
170
|
+
echo "No existing state found, starting fresh"
|
|
171
|
+
fi
|
|
172
|
+
|
|
173
|
+
- name: Select stack
|
|
174
|
+
env:
|
|
175
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
176
|
+
run: |
|
|
177
|
+
pulumi stack select prod --create
|
|
178
|
+
|
|
179
|
+
- name: Pulumi Preview (Summary)
|
|
180
|
+
id: preview
|
|
181
|
+
shell: bash
|
|
182
|
+
env:
|
|
183
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
184
|
+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN_READWRITE }}
|
|
185
|
+
run: |
|
|
186
|
+
set -o pipefail
|
|
187
|
+
|
|
188
|
+
# Run preview before apply for audit trail (summary view)
|
|
189
|
+
echo "=== Pre-apply Preview (Summary) ==="
|
|
190
|
+
set +e
|
|
191
|
+
pulumi preview --stack prod 2>&1 | tee /tmp/pulumi-preview.txt
|
|
192
|
+
pulumi_exit=${PIPESTATUS[0]}
|
|
193
|
+
set -e
|
|
194
|
+
|
|
195
|
+
echo "preview_output<<EOF" >> "$GITHUB_OUTPUT"
|
|
196
|
+
cat /tmp/pulumi-preview.txt >> "$GITHUB_OUTPUT"
|
|
197
|
+
echo "EOF" >> "$GITHUB_OUTPUT"
|
|
198
|
+
|
|
199
|
+
exit "$pulumi_exit"
|
|
200
|
+
|
|
201
|
+
- name: Pulumi Preview (Detailed Diff)
|
|
202
|
+
id: preview_diff
|
|
203
|
+
shell: bash
|
|
204
|
+
env:
|
|
205
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
206
|
+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN_READWRITE }}
|
|
207
|
+
run: |
|
|
208
|
+
set -o pipefail
|
|
209
|
+
|
|
210
|
+
# Run preview with --diff for detailed property-level changes
|
|
211
|
+
echo "=== Pre-apply Preview (Detailed Diff) ==="
|
|
212
|
+
set +e
|
|
213
|
+
pulumi preview --stack prod --diff 2>&1 | tee /tmp/pulumi-preview-diff.txt
|
|
214
|
+
pulumi_exit=${PIPESTATUS[0]}
|
|
215
|
+
set -e
|
|
216
|
+
|
|
217
|
+
echo "preview_diff_output<<EOF" >> "$GITHUB_OUTPUT"
|
|
218
|
+
cat /tmp/pulumi-preview-diff.txt >> "$GITHUB_OUTPUT"
|
|
219
|
+
echo "EOF" >> "$GITHUB_OUTPUT"
|
|
220
|
+
|
|
221
|
+
exit "$pulumi_exit"
|
|
222
|
+
|
|
223
|
+
- name: Pulumi Up (Apply)
|
|
224
|
+
id: pulumi-up
|
|
225
|
+
shell: bash
|
|
226
|
+
env:
|
|
227
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
228
|
+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN_READWRITE }}
|
|
229
|
+
run: |
|
|
230
|
+
set -o pipefail
|
|
231
|
+
|
|
232
|
+
set +e
|
|
233
|
+
pulumi up --stack prod --yes 2>&1 | tee /tmp/pulumi-up.txt
|
|
234
|
+
pulumi_exit=${PIPESTATUS[0]}
|
|
235
|
+
set -e
|
|
236
|
+
|
|
237
|
+
echo "output<<EOF" >> "$GITHUB_OUTPUT"
|
|
238
|
+
cat /tmp/pulumi-up.txt >> "$GITHUB_OUTPUT"
|
|
239
|
+
echo "EOF" >> "$GITHUB_OUTPUT"
|
|
240
|
+
|
|
241
|
+
exit "$pulumi_exit"
|
|
242
|
+
|
|
243
|
+
- name: Upload state artifact
|
|
244
|
+
if: always()
|
|
245
|
+
uses: actions/upload-artifact@v4
|
|
246
|
+
with:
|
|
247
|
+
name: ${{ env.STATE_ARTIFACT_NAME }}
|
|
248
|
+
path: ${{ env.PULUMI_BACKEND_DIR }}
|
|
249
|
+
retention-days: 90
|
|
250
|
+
overwrite: true
|
|
251
|
+
include-hidden-files: true # Required to include .pulumi directory
|
|
252
|
+
|
|
253
|
+
- name: Append success comment
|
|
254
|
+
if: success() && github.event.inputs.comment-id
|
|
255
|
+
uses: peter-evans/create-or-update-comment@v5
|
|
256
|
+
with:
|
|
257
|
+
comment-id: ${{ github.event.inputs.comment-id }}
|
|
258
|
+
reactions: hooray
|
|
259
|
+
body: |
|
|
260
|
+
> Pulumi up completed successfully.
|
|
261
|
+
|
|
262
|
+
<details><summary>Preview Summary (before apply)</summary>
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
${{ steps.preview.outputs.preview_output }}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
</details>
|
|
269
|
+
|
|
270
|
+
<details><summary>Preview Detailed Diff (before apply)</summary>
|
|
271
|
+
|
|
272
|
+
```diff
|
|
273
|
+
${{ steps.preview_diff.outputs.preview_diff_output }}
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
</details>
|
|
277
|
+
|
|
278
|
+
<details><summary>Apply Output</summary>
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
${{ steps.pulumi-up.outputs.output }}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
</details>
|
|
285
|
+
|
|
286
|
+
- name: Append failure comment
|
|
287
|
+
if: failure() && github.event.inputs.comment-id
|
|
288
|
+
uses: peter-evans/create-or-update-comment@v5
|
|
289
|
+
with:
|
|
290
|
+
comment-id: ${{ github.event.inputs.comment-id }}
|
|
291
|
+
reactions: confused
|
|
292
|
+
body: |
|
|
293
|
+
> Pulumi up failed. Check the [job output](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
name: Sentry Preview
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
paths:
|
|
6
|
+
- 'infra/sentry/**'
|
|
7
|
+
- '.github/workflows/sentry-preview.yml'
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
actions: read # For downloading artifacts
|
|
12
|
+
pull-requests: write # For Pulumi PR comments
|
|
13
|
+
|
|
14
|
+
env:
|
|
15
|
+
STATE_ARTIFACT_NAME: pulumi-sentry-state
|
|
16
|
+
WORKING_DIRECTORY: infra/sentry
|
|
17
|
+
# Directory where Pulumi stores stack state (for artifact-based state storage)
|
|
18
|
+
# Note: This is the backend storage location, NOT PULUMI_HOME (which is for CLI config)
|
|
19
|
+
PULUMI_BACKEND_DIR: ${{ github.workspace }}/infra/sentry/.pulumi-state
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
preview:
|
|
23
|
+
name: Pulumi Preview
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
defaults:
|
|
26
|
+
run:
|
|
27
|
+
working-directory: ${{ env.WORKING_DIRECTORY }}
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout code
|
|
30
|
+
uses: actions/checkout@v4
|
|
31
|
+
|
|
32
|
+
- name: Set up Python
|
|
33
|
+
uses: actions/setup-python@v5
|
|
34
|
+
with:
|
|
35
|
+
python-version: '3.11'
|
|
36
|
+
|
|
37
|
+
- name: Install Pulumi CLI
|
|
38
|
+
uses: pulumi/setup-pulumi@v2
|
|
39
|
+
|
|
40
|
+
- name: Install base Pulumi dependency
|
|
41
|
+
run: |
|
|
42
|
+
pip install "pulumi>=3.147.0,<4.0.0"
|
|
43
|
+
|
|
44
|
+
- name: Generate Sentry provider SDK
|
|
45
|
+
run: |
|
|
46
|
+
pulumi package add terraform-provider jianyuan/sentry 0.14.1
|
|
47
|
+
|
|
48
|
+
- name: Install generated SDK
|
|
49
|
+
run: |
|
|
50
|
+
pip install sdks/sentry
|
|
51
|
+
|
|
52
|
+
- name: Download state artifact
|
|
53
|
+
id: download-state
|
|
54
|
+
continue-on-error: true
|
|
55
|
+
uses: dawidd6/action-download-artifact@v6
|
|
56
|
+
with:
|
|
57
|
+
name: ${{ env.STATE_ARTIFACT_NAME }}
|
|
58
|
+
path: ${{ env.PULUMI_BACKEND_DIR }}
|
|
59
|
+
workflow_conclusion: success
|
|
60
|
+
search_artifacts: true
|
|
61
|
+
if_no_artifact_found: warn
|
|
62
|
+
|
|
63
|
+
- name: Initialize local backend
|
|
64
|
+
env:
|
|
65
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
66
|
+
run: |
|
|
67
|
+
# Ensure backend directory exists
|
|
68
|
+
mkdir -p "$PULUMI_BACKEND_DIR"
|
|
69
|
+
|
|
70
|
+
# Login to local filesystem backend at specific directory
|
|
71
|
+
# Note: file:// URL tells Pulumi WHERE to store state (not --local which uses ~/.pulumi)
|
|
72
|
+
pulumi login "file://$PULUMI_BACKEND_DIR"
|
|
73
|
+
|
|
74
|
+
# Verify backend location
|
|
75
|
+
echo "Backend URL: $(pulumi whoami -v 2>/dev/null | grep -i backend || echo 'file://$PULUMI_BACKEND_DIR')"
|
|
76
|
+
|
|
77
|
+
# If state was downloaded, it's already in PULUMI_BACKEND_DIR
|
|
78
|
+
# If not, this is a fresh start
|
|
79
|
+
if [ -d "$PULUMI_BACKEND_DIR/.pulumi/stacks" ]; then
|
|
80
|
+
echo "State restored from artifact"
|
|
81
|
+
ls -la "$PULUMI_BACKEND_DIR/.pulumi/stacks/" || true
|
|
82
|
+
else
|
|
83
|
+
echo "No existing state found, starting fresh"
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
- name: Select stack
|
|
87
|
+
env:
|
|
88
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
89
|
+
run: |
|
|
90
|
+
pulumi stack select prod --create
|
|
91
|
+
|
|
92
|
+
- name: Pulumi Preview (Summary)
|
|
93
|
+
id: preview
|
|
94
|
+
env:
|
|
95
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
96
|
+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN_READONLY }}
|
|
97
|
+
run: |
|
|
98
|
+
# Run preview and capture output (summary view)
|
|
99
|
+
pulumi preview --stack prod 2>&1 | tee /tmp/pulumi-preview.txt
|
|
100
|
+
echo "preview_output<<EOF" >> $GITHUB_OUTPUT
|
|
101
|
+
cat /tmp/pulumi-preview.txt >> $GITHUB_OUTPUT
|
|
102
|
+
echo "EOF" >> $GITHUB_OUTPUT
|
|
103
|
+
|
|
104
|
+
- name: Pulumi Preview (Detailed Diff)
|
|
105
|
+
id: preview_diff
|
|
106
|
+
env:
|
|
107
|
+
PULUMI_CONFIG_PASSPHRASE: ${{ secrets.PULUMI_CONFIG_PASSPHRASE }}
|
|
108
|
+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN_READONLY }}
|
|
109
|
+
run: |
|
|
110
|
+
# Run preview with --diff for detailed property-level changes
|
|
111
|
+
pulumi preview --stack prod --diff 2>&1 | tee /tmp/pulumi-preview-diff.txt
|
|
112
|
+
echo "preview_diff_output<<EOF" >> $GITHUB_OUTPUT
|
|
113
|
+
cat /tmp/pulumi-preview-diff.txt >> $GITHUB_OUTPUT
|
|
114
|
+
echo "EOF" >> $GITHUB_OUTPUT
|
|
115
|
+
|
|
116
|
+
- name: Find existing preview comment
|
|
117
|
+
uses: peter-evans/find-comment@v3
|
|
118
|
+
id: find-comment
|
|
119
|
+
with:
|
|
120
|
+
issue-number: ${{ github.event.pull_request.number }}
|
|
121
|
+
comment-author: 'github-actions[bot]'
|
|
122
|
+
body-includes: '<!-- pulumi-preview-comment -->'
|
|
123
|
+
|
|
124
|
+
- name: Create or update preview comment
|
|
125
|
+
uses: peter-evans/create-or-update-comment@v5
|
|
126
|
+
with:
|
|
127
|
+
comment-id: ${{ steps.find-comment.outputs.comment-id }}
|
|
128
|
+
issue-number: ${{ github.event.pull_request.number }}
|
|
129
|
+
edit-mode: replace
|
|
130
|
+
body: |
|
|
131
|
+
<!-- pulumi-preview-comment -->
|
|
132
|
+
#### Pulumi Preview
|
|
133
|
+
|
|
134
|
+
<details><summary>Summary (readable overview)</summary>
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
${{ steps.preview.outputs.preview_output }}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
</details>
|
|
141
|
+
|
|
142
|
+
<details><summary>Detailed Diff (property-level changes for audit)</summary>
|
|
143
|
+
|
|
144
|
+
```diff
|
|
145
|
+
${{ steps.preview_diff.outputs.preview_diff_output }}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
</details>
|
|
149
|
+
|
|
150
|
+
*Pushed by: @${{ github.actor }}, Action: `${{ github.event_name }}`*
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
These changes will be applied when this PR is merged to `main`. Alternatively, you can run `/sentry-apply` to apply these changes now, before merging.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: TK-TODO Check # IGNORE:TK - this workflow checks for TK-TODO markers
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request: {}
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
tk-todo-check: # IGNORE:TK
|
|
14
|
+
name: Check for TK-TODO markers # IGNORE:TK
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout code
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Check for TK-TODO markers # IGNORE:TK
|
|
21
|
+
run: |
|
|
22
|
+
# Find all TK-TODO markers (case-insensitive) that don't have IGNORE:TK on the same line # IGNORE:TK
|
|
23
|
+
# Exit with error if any are found
|
|
24
|
+
|
|
25
|
+
echo "Checking for TK-TODO markers..." # IGNORE:TK
|
|
26
|
+
|
|
27
|
+
# Use git ls-files to only check tracked files (excludes gitignored files like sdks/)
|
|
28
|
+
# grep -i for case-insensitive matching
|
|
29
|
+
# grep -v for excluding lines with IGNORE:TK
|
|
30
|
+
# grep -n for line numbers
|
|
31
|
+
|
|
32
|
+
FOUND_TODOS=$(git ls-files | xargs grep -i -n "TK-TODO" 2>/dev/null | grep -i -v "IGNORE:TK" || true) # IGNORE:TK
|
|
33
|
+
|
|
34
|
+
if [ -n "$FOUND_TODOS" ]; then
|
|
35
|
+
echo ""
|
|
36
|
+
echo "ERROR: Found TK-TODO markers that must be resolved before merge:" # IGNORE:TK
|
|
37
|
+
echo ""
|
|
38
|
+
echo "$FOUND_TODOS"
|
|
39
|
+
echo ""
|
|
40
|
+
echo "To suppress a TK-TODO, add 'IGNORE:TK' (case-insensitive) on the same line." # IGNORE:TK
|
|
41
|
+
echo ""
|
|
42
|
+
exit 1
|
|
43
|
+
else
|
|
44
|
+
echo "No unresolved TK-TODO markers found." # IGNORE:TK
|
|
45
|
+
fi
|