airbyte-internal-ops 0.9.1__tar.gz → 0.10.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.
Files changed (452) hide show
  1. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/pdoc_preview.yml +1 -1
  2. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/pdoc_publish.yml +1 -1
  3. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/semantic-pr-check.yml +2 -2
  4. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/sentry-apply-command.yml +2 -2
  5. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/sentry-preview.yml +2 -2
  6. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/PKG-INFO +1 -1
  7. airbyte_internal_ops-0.10.0/docs/progressive-rollouts.md +464 -0
  8. airbyte_internal_ops-0.10.0/src/airbyte_ops_mcp/airbyte_repo/progressive_rollout.py +279 -0
  9. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cli/local.py +118 -0
  10. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cloud_admin/api_client.py +336 -0
  11. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cloud_admin/models.py +99 -0
  12. airbyte_internal_ops-0.10.0/src/airbyte_ops_mcp/mcp/connector_rollout.py +779 -0
  13. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +227 -0
  14. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/server.py +2 -0
  15. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/prod_db_access/queries.py +144 -0
  16. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/prod_db_access/sql.py +298 -0
  17. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.env.template +0 -0
  18. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/copilot-instructions.md +0 -0
  19. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/dependabot.yml +0 -0
  20. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/pr-welcome-message.md +0 -0
  21. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/autofix-command.yml +0 -0
  22. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/connector-regression-test.yml +0 -0
  23. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/format-check.yml +0 -0
  24. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/lint-check.yml +0 -0
  25. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/lock-command.yml +0 -0
  26. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/poe-command.yml +0 -0
  27. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/pr-welcome.yml +0 -0
  28. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/publish.yml +0 -0
  29. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/pytest-fast.yml +0 -0
  30. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/pytest-matrix.yml +0 -0
  31. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/regression-tests-ci.yml +0 -0
  32. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/release-drafter.yml +0 -0
  33. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/slash-command-dispatch.yml +0 -0
  34. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/tk-todo-check.yml +0 -0
  35. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.github/workflows/validate-build.yml +0 -0
  36. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.gitignore +0 -0
  37. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/.mcp.json.template +0 -0
  38. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/CONTRIBUTING.md +0 -0
  39. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/README.md +0 -0
  40. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/conftest.py +0 -0
  41. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/docs/.gitignore +0 -0
  42. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/docs/generate.py +0 -0
  43. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/docs/templates/custom.css +0 -0
  44. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/docs/templates/theme.css +0 -0
  45. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/infra/sentry/.gitignore +0 -0
  46. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/infra/sentry/CONTRIBUTING.md +0 -0
  47. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/infra/sentry/Pulumi.prod.yaml +0 -0
  48. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/infra/sentry/Pulumi.yaml +0 -0
  49. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/infra/sentry/README.md +0 -0
  50. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/infra/sentry/__main__.py +0 -0
  51. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/infra/sentry/requirements.txt +0 -0
  52. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/poe_tasks.toml +0 -0
  53. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/pyproject.toml +0 -0
  54. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/pyrefly.toml +0 -0
  55. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/pytest.ini +0 -0
  56. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/ruff.toml +0 -0
  57. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/__init__.py +0 -0
  58. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
  59. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
  60. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
  61. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  62. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
  63. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
  64. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
  65. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
  66. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
  67. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
  68. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
  69. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
  70. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
  71. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
  72. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
  73. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
  74. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
  75. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
  76. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
  77. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
  78. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
  79. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
  80. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
  81. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
  82. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
  83. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
  84. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
  85. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
  86. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
  87. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
  88. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
  89. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
  90. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
  91. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
  92. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
  93. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
  94. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
  95. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
  96. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
  97. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
  98. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
  99. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
  100. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
  101. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
  102. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
  103. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
  104. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
  105. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
  106. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
  107. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
  108. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
  109. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
  110. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
  111. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
  112. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
  113. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
  114. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
  115. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
  116. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
  117. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
  118. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
  119. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
  120. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
  121. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/build_customization.py +0 -0
  122. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
  123. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/java_connectors.py +0 -0
  124. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/manifest_only_connectors.py +0 -0
  125. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
  126. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/python_connectors.py +0 -0
  127. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
  128. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
  129. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
  130. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
  131. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
  132. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
  133. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
  134. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
  135. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/__init__.py +0 -0
  136. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/commands.py +0 -0
  137. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/pipeline.py +0 -0
  138. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
  139. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
  140. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
  141. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
  142. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
  143. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
  144. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
  145. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
  146. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
  147. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
  148. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
  149. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
  150. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/manifest_only_connectors.py +0 -0
  151. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
  152. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/templates/test_report.html.j2 +0 -0
  153. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
  154. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
  155. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
  156. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
  157. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.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
  158. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
  159. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
  160. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
  161. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
  162. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
  163. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
  164. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
  165. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
  166. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
  167. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
  168. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
  169. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
  170. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
  171. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
  172. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
  173. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
  174. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
  175. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
  176. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
  177. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
  178. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
  179. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
  180. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
  181. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
  182. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
  183. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
  184. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
  185. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
  186. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
  187. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
  188. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
  189. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
  190. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
  191. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
  192. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
  193. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
  194. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
  195. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
  196. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
  197. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
  198. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
  199. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
  200. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
  201. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
  202. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
  203. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
  204. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
  205. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
  206. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
  207. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
  208. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
  209. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
  210. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
  211. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
  212. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
  213. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
  214. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
  215. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
  216. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
  217. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
  218. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
  219. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
  220. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
  221. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
  222. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
  223. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
  224. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
  225. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
  226. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
  227. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
  228. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
  229. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
  230. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
  231. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/file_managers/local_file_manager.py +0 -0
  232. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
  233. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
  234. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
  235. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
  236. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
  237. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
  238. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
  239. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
  240. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
  241. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
  242. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
  243. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
  244. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
  245. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
  246. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
  247. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
  248. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
  249. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
  250. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
  251. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
  252. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
  253. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
  254. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
  255. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
  256. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
  257. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +0 -0
  258. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
  259. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
  260. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
  261. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
  262. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
  263. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
  264. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
  265. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
  266. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/_sentry.py +0 -0
  267. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
  268. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
  269. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/airbyte_repo/changelog_fix.py +0 -0
  270. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
  271. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
  272. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
  273. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cli/_base.py +0 -0
  274. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
  275. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cli/app.py +0 -0
  276. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cli/cloud.py +0 -0
  277. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cli/gh.py +0 -0
  278. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cli/registry.py +0 -0
  279. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
  280. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cloud_admin/auth.py +0 -0
  281. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
  282. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
  283. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +0 -0
  284. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
  285. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
  286. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_ops/__init__.py +0 -0
  287. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_ops/utils.py +0 -0
  288. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/README.md +0 -0
  289. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/__init__.py +0 -0
  290. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/__init__.py +0 -0
  291. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/assets.py +0 -0
  292. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/documentation/__init__.py +0 -0
  293. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/documentation/documentation.py +0 -0
  294. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/documentation/helpers.py +0 -0
  295. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/documentation/models.py +0 -0
  296. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/documentation/templates/documentation_headers_check_description.md.j2 +0 -0
  297. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
  298. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
  299. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/metadata.py +0 -0
  300. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/packaging.py +0 -0
  301. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/security.py +0 -0
  302. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/checks/version.py +0 -0
  303. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/cli.py +0 -0
  304. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/consts.py +0 -0
  305. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/models.py +0 -0
  306. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/templates/__init__.py +0 -0
  307. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/templates/qa_checks.md.j2 +0 -0
  308. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/connector_qa/utils.py +0 -0
  309. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/constants.py +0 -0
  310. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/docker_hub.py +0 -0
  311. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/gcp_auth.py +0 -0
  312. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/gcp_logs/__init__.py +0 -0
  313. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/gcp_logs/error_lookup.py +0 -0
  314. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/github_actions.py +0 -0
  315. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/github_api.py +0 -0
  316. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/__init__.py +0 -0
  317. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/_guidance.py +0 -0
  318. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +0 -0
  319. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
  320. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
  321. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/gcp_logs.py +0 -0
  322. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/github_actions.py +0 -0
  323. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +0 -0
  324. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
  325. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/prerelease.py +0 -0
  326. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/prompts.py +0 -0
  327. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
  328. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/mcp/regression_tests.py +0 -0
  329. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/metadata_validator.py +0 -0
  330. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
  331. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -0
  332. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
  333. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/py.typed +0 -0
  334. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
  335. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/registry/_gcs_util.py +0 -0
  336. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/registry/connector_stubs.py +0 -0
  337. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/registry/models.py +0 -0
  338. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/registry/publish.py +0 -0
  339. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/__init__.py +0 -0
  340. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/cdk_secrets.py +0 -0
  341. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/ci_output.py +0 -0
  342. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/commons/__init__.py +0 -0
  343. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/config.py +0 -0
  344. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/connection_fetcher.py +0 -0
  345. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/connection_secret_retriever.py +0 -0
  346. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/connector_runner.py +0 -0
  347. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/evaluation_modes.py +0 -0
  348. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/http_metrics.py +0 -0
  349. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/message_cache/__init__.py +0 -0
  350. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/message_cache/duckdb_cache.py +0 -0
  351. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/models.py +0 -0
  352. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/obfuscation.py +0 -0
  353. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/regression/__init__.py +0 -0
  354. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/regression/comparators.py +0 -0
  355. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/schema_generation.py +0 -0
  356. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/validation/__init__.py +0 -0
  357. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/validation/catalog_validators.py +0 -0
  358. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/regression_tests/validation/record_validators.py +0 -0
  359. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/src/airbyte_ops_mcp/telemetry.py +0 -0
  360. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/__init__.py +0 -0
  361. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  362. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
  363. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
  364. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
  365. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
  366. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
  367. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
  368. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
  369. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
  370. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
  371. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
  372. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
  373. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
  374. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
  375. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +0 -0
  376. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
  377. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
  378. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
  379. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
  380. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
  381. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
  382. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
  383. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
  384. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
  385. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
  386. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +0 -0
  387. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +0 -0
  388. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
  389. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
  390. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
  391. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
  392. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
  393. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
  394. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
  395. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
  396. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
  397. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
  398. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
  399. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
  400. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
  401. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
  402. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
  403. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
  404. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
  405. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
  406. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
  407. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
  408. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
  409. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
  410. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
  411. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
  412. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
  413. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
  414. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
  415. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
  416. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
  417. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
  418. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
  419. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
  420. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
  421. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
  422. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
  423. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
  424. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
  425. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
  426. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
  427. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
  428. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
  429. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
  430. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
  431. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
  432. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
  433. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
  434. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
  435. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
  436. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
  437. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
  438. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
  439. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
  440. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
  441. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
  442. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
  443. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
  444. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
  445. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/test_airbyte_admin_mcp.py +0 -0
  446. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/test_bump_version.py +0 -0
  447. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/test_cli_registry.py +0 -0
  448. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/test_connector_stubs.py +0 -0
  449. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/test_list_connectors.py +0 -0
  450. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/test_prerelease.py +0 -0
  451. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/tests/test_sentry.py +0 -0
  452. {airbyte_internal_ops-0.9.1 → airbyte_internal_ops-0.10.0}/uv.lock +0 -0
@@ -17,7 +17,7 @@ jobs:
17
17
  - name: Checkout code
18
18
  uses: actions/checkout@v6
19
19
  - name: Set up uv
20
- uses: astral-sh/setup-uv@v5
20
+ uses: astral-sh/setup-uv@v7
21
21
  - name: Set up Python
22
22
  uses: actions/setup-python@v6
23
23
  with:
@@ -31,7 +31,7 @@ jobs:
31
31
  - name: Checkout code
32
32
  uses: actions/checkout@v6
33
33
  - name: Set up uv
34
- uses: astral-sh/setup-uv@v5
34
+ uses: astral-sh/setup-uv@v7
35
35
  - name: Set up Python
36
36
  uses: actions/setup-python@v6
37
37
  with:
@@ -25,7 +25,7 @@ jobs:
25
25
  runs-on: ubuntu-latest
26
26
  steps:
27
27
  - name: Check semantic PR title
28
- uses: amannn/action-semantic-pull-request@v5
28
+ uses: amannn/action-semantic-pull-request@v6
29
29
  if: ${{ github.event.pull_request.draft == false }}
30
30
  env:
31
31
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -47,7 +47,7 @@ jobs:
47
47
 
48
48
  - name: Check for "do not merge" in PR title
49
49
  if: ${{ github.event.pull_request.draft == false }}
50
- uses: actions/github-script@v7
50
+ uses: actions/github-script@v8
51
51
  with:
52
52
  script: |
53
53
  const title = context.payload.pull_request.title.toLowerCase();
@@ -84,7 +84,7 @@ jobs:
84
84
  - name: Get PR info (slash command only)
85
85
  if: steps.context.outputs.has_pr == 'true'
86
86
  id: pr-info
87
- uses: actions/github-script@v7
87
+ uses: actions/github-script@v8
88
88
  with:
89
89
  script: |
90
90
  const { data: pr } = await github.rest.pulls.get({
@@ -149,7 +149,7 @@ jobs:
149
149
  - name: Download state artifact
150
150
  id: download-state
151
151
  continue-on-error: true
152
- uses: dawidd6/action-download-artifact@v12
152
+ uses: dawidd6/action-download-artifact@v13
153
153
  with:
154
154
  name: ${{ env.STATE_ARTIFACT_NAME }}
155
155
  path: ${{ env.PULUMI_BACKEND_DIR }}
@@ -62,7 +62,7 @@ jobs:
62
62
  - name: Download state artifact
63
63
  id: download-state
64
64
  continue-on-error: true
65
- uses: dawidd6/action-download-artifact@v12
65
+ uses: dawidd6/action-download-artifact@v13
66
66
  with:
67
67
  name: ${{ env.STATE_ARTIFACT_NAME }}
68
68
  path: ${{ env.PULUMI_BACKEND_DIR }}
@@ -127,7 +127,7 @@ jobs:
127
127
  echo "EOF" >> $GITHUB_OUTPUT
128
128
 
129
129
  - name: Find existing preview comment
130
- uses: peter-evans/find-comment@v3
130
+ uses: peter-evans/find-comment@v4
131
131
  id: find-comment
132
132
  with:
133
133
  issue-number: ${{ github.event.pull_request.number }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-internal-ops
3
- Version: 0.9.1
3
+ Version: 0.10.0
4
4
  Summary: MCP and API interfaces that let the agents do the admin work
5
5
  Author-email: Aaron Steers <aj@airbyte.io>
6
6
  Keywords: admin,airbyte,api,mcp
@@ -0,0 +1,464 @@
1
+ # Connector Progressive Rollouts
2
+
3
+ This document describes the process for managing connector progressive rollouts in Airbyte Cloud. Progressive rollouts allow gradual migration of customers to new connector versions, enabling monitoring and rollback capabilities before full release.
4
+
5
+ ## Overview
6
+
7
+ Progressive rollouts provide a controlled way to release new connector versions:
8
+
9
+ - **Release Candidates (RCs)**: Pre-release versions (e.g., `0.1.0-rc.1`) that can be tested with a subset of customers
10
+ - **Gradual Migration**: Customers are progressively migrated from the stable version to the RC
11
+ - **Monitoring**: Track success/failure rates during the rollout
12
+ - **Rollback Capability**: If issues are detected, the rollout can be paused or rolled back
13
+
14
+ ## Progressive Rollout Lifecycle
15
+
16
+ 1. [Initialize](#1-initialize) - Prepare metadata.yaml and verify rollout status
17
+ 2. [Start Workflow](#2-start-workflow) - Begin the rollout workflow
18
+ 3. [Manually Pin Actors](#3-manually-pin-actors-optional) - Pin specific actors for early testing (optional)
19
+ 4. [Monitor](#4-monitor) - Track rollout progress and performance
20
+ 5. [Pause/Resume](#5-pauseresume-optional) - Pause if issues detected (optional)
21
+ 6. [Finalize](#6-finalize) - Promote, rollback, or cancel the rollout
22
+ 7. [Cleanup](#7-cleanup) - Remove version pins after completion
23
+
24
+ ### 1. Initialize
25
+
26
+ Prepare the connector for progressive rollout and confirm the rollout is ready to start.
27
+
28
+ **Steps:**
29
+
30
+ 1. **Mark the PR for progressive rollout**: Use the CLI tool to configure the connector's `metadata.yaml`:
31
+ ```bash
32
+ airbyte-ops repo connector setup-progressive-rollout \
33
+ --name <connector-name> \
34
+ --repo-path /path/to/airbyte-enterprise \
35
+ --rc-version <version> # Optional, defaults to next minor with -rc.1 suffix
36
+ ```
37
+
38
+ This command:
39
+ - Sets `dockerImageTag` to the RC version
40
+ - Adds `registryOverrides.cloud.dockerImageTag` to pin Cloud users to the current stable version
41
+ - Adds `registryOverrides.oss.dockerImageTag` to pin OSS users to the current stable version
42
+ - Enables `releases.rolloutConfiguration.enableProgressiveRollout: true`
43
+
44
+ 2. **Merge the PR**: Once the metadata.yaml changes are reviewed and approved, merge the PR.
45
+
46
+ 3. **Verify initialization**: The connector will be automatically published after the PR is merged. Wait for the publish workflow to complete (typically a few minutes), then confirm the rollout appears in the database with "initialized" status:
47
+ ```bash
48
+ # Using the MCP tool
49
+ poe mcp-tool-test query_prod_connector_rollouts '{"actor_definition_id": "<connector-uuid>"}'
50
+ ```
51
+
52
+ The rollout should show `state: "initialized"`.
53
+
54
+ ### 2. Start Workflow
55
+
56
+ Start the rollout workflow to begin the progressive migration process.
57
+
58
+ **Tool:** `start_connector_rollout`
59
+
60
+ > [!NOTE]
61
+ > This step requires [human approval](#appendix-approval-comment-urls).
62
+
63
+ ```bash
64
+ poe mcp-tool-test start_connector_rollout '{
65
+ "docker_repository": "airbyte/source-example",
66
+ "docker_image_tag": "1.0.0-rc.1",
67
+ "actor_definition_id": "<connector-uuid>",
68
+ "approval_comment_url": "<github-comment-url>",
69
+ "rollout_strategy": "manual",
70
+ "initial_rollout_pct": 25,
71
+ "final_target_rollout_pct": 50
72
+ }'
73
+ ```
74
+
75
+ **Parameters:**
76
+
77
+ - `docker_repository`: The docker repository (e.g., `airbyte/source-pokeapi`)
78
+ - `docker_image_tag`: The RC version tag (e.g., `0.3.48-rc.1`)
79
+ - `actor_definition_id`: The connector's UUID
80
+ - `approval_comment_url`: GitHub comment URL from an @airbyte.io user authorizing the action
81
+ - `rollout_strategy`: One of `manual`, `automated`, or `overridden` (default: `manual`)
82
+ - `initial_rollout_pct`: Step size percentage for rollout progression (default: 25%)
83
+ - `final_target_rollout_pct`: Maximum percentage of actors to pin (default: 50%)
84
+
85
+ **Important: Multiple Calls Supported**
86
+
87
+ This tool can be called multiple times while the rollout is in `INITIALIZED` state to update the configuration (strategy, percentages). Once the Temporal workflow starts and the state transitions to `WORKFLOW_STARTED`, the configuration is locked and cannot be changed.
88
+
89
+ <!-- TODO: Determine and document the recommended approach for configuring rollouts
90
+ https://github.com/airbytehq/airbyte-ops-mcp/issues/322 -->
91
+
92
+ **Authorization:** The start tool requires:
93
+
94
+ - `AIRBYTE_INTERNAL_ADMIN_FLAG=airbyte.io` environment variable
95
+ - A GitHub comment URL from an @airbyte.io user authorizing the action
96
+
97
+ After starting, the rollout state transitions to `"workflow_started"` and then `"in_progress"`.
98
+
99
+ ### 3. Manually Pin Actors (Optional)
100
+
101
+ Before or during the rollout, you can manually pin specific actors (sources/destinations) to the RC version for early testing.
102
+
103
+ **Tools:** Use existing ops-mcp actor pinning tools:
104
+
105
+ - `set_workspace_connector_version_override` - Pin all actors in a workspace
106
+ - `set_cloud_connector_version_override` - Set version overrides at the cloud level
107
+
108
+ > [!NOTE]
109
+ > These tools require [human approval](#appendix-approval-comment-urls).
110
+
111
+ This is useful for:
112
+
113
+ - Testing with internal workspaces before broader rollout
114
+ - Targeting specific customers who have agreed to beta test
115
+ - Validating fixes for customer-reported issues
116
+
117
+ ### 4. Monitor
118
+
119
+ Track the rollout progress and performance of the RC version. This step is performed repeatedly throughout the rollout.
120
+
121
+ **Tool:** `query_prod_rollout_monitoring_stats`
122
+
123
+ ```bash
124
+ poe mcp-tool-test query_prod_rollout_monitoring_stats '{"rollout_id": "<rollout-uuid>", "days_back": 7}'
125
+ ```
126
+
127
+ **Returns:**
128
+
129
+ - **Aggregate stats:**
130
+ - `num_actors`: Total actors using this connector
131
+ - `num_actors_pinned`: Actors with any version pin (eligible or already pinned)
132
+ - `num_pinned_to_rollout`: Actors specifically pinned to this rollout's RC version
133
+
134
+ - **Per-actor stats:**
135
+ - `actor_id`: The actor UUID
136
+ - `num_succeeded`: Number of successful syncs in the lookback period
137
+ - `num_failed`: Number of failed syncs in the lookback period
138
+ - `num_connections`: Number of connections using this actor
139
+
140
+ **What to look for:**
141
+
142
+ - Compare success/failure rates between RC and stable versions
143
+ - Watch for any actors with unusually high failure rates
144
+ - Monitor the progression of `num_pinned_to_rollout` as the rollout advances
145
+
146
+ ### 5. Pause/Resume (Optional)
147
+
148
+ If issues are detected during monitoring, the rollout can be paused to prevent further customer migration.
149
+
150
+ **Tools:** <!-- TODO: Implement pause_rollout and resume_rollout MCP tools - https://github.com/airbytehq/airbyte-ops-mcp/issues/323 -->
151
+
152
+ ```bash
153
+ # TODO: Document pause/resume commands once implemented
154
+ # https://github.com/airbytehq/airbyte-ops-mcp/issues/323
155
+ ```
156
+
157
+ **When to pause:**
158
+
159
+ - Significant increase in failure rates compared to stable version
160
+ - Customer-reported issues specific to the RC version
161
+ - Infrastructure issues affecting the rollout
162
+
163
+ ### 6. Finalize
164
+
165
+ Complete the rollout with one of three outcomes:
166
+
167
+ **Tool:** `finalize_connector_rollout`
168
+
169
+ > [!NOTE]
170
+ > This step requires [human approval](#appendix-approval-comment-urls).
171
+
172
+ #### Promote to GA (succeeded)
173
+
174
+ The RC is performing well and should become the new stable version:
175
+
176
+ ```bash
177
+ poe mcp-tool-test finalize_connector_rollout '{
178
+ "docker_repository": "airbyte/source-example",
179
+ "docker_image_tag": "1.0.0-rc.1",
180
+ "actor_definition_id": "<connector-uuid>",
181
+ "rollout_id": "<rollout-uuid>",
182
+ "state": "succeeded",
183
+ "approval_comment_url": "<github-comment-url>"
184
+ }'
185
+ ```
186
+
187
+ #### Rollback (failed_rolled_back)
188
+
189
+ Issues were found and the RC should not be released:
190
+
191
+ ```bash
192
+ poe mcp-tool-test finalize_connector_rollout '{
193
+ "docker_repository": "airbyte/source-example",
194
+ "docker_image_tag": "1.0.0-rc.1",
195
+ "actor_definition_id": "<connector-uuid>",
196
+ "rollout_id": "<rollout-uuid>",
197
+ "state": "failed_rolled_back",
198
+ "approval_comment_url": "<github-comment-url>",
199
+ "error_msg": "High failure rate detected",
200
+ "failed_reason": "FOUND_ISSUES"
201
+ }'
202
+ ```
203
+
204
+ #### Cancel
205
+
206
+ The rollout should be stopped without completing:
207
+
208
+ ```bash
209
+ poe mcp-tool-test finalize_connector_rollout '{
210
+ "docker_repository": "airbyte/source-example",
211
+ "docker_image_tag": "1.0.0-rc.1",
212
+ "actor_definition_id": "<connector-uuid>",
213
+ "rollout_id": "<rollout-uuid>",
214
+ "state": "canceled",
215
+ "approval_comment_url": "<github-comment-url>",
216
+ "retain_pins_on_cancellation": false
217
+ }'
218
+ ```
219
+
220
+ **Authorization:** The finalize tool requires:
221
+
222
+ - `AIRBYTE_INTERNAL_ADMIN_FLAG=airbyte.io` environment variable
223
+ - A GitHub comment URL from an @airbyte.io user authorizing the action
224
+
225
+ ### 7. Cleanup
226
+
227
+ After a successful rollout, remove the version pins from metadata.yaml.
228
+
229
+ **Tool:** `airbyte-ops repo connector cleanup-progressive-rollout`
230
+
231
+ ```bash
232
+ airbyte-ops repo connector cleanup-progressive-rollout \
233
+ --name source-github \
234
+ --repo-path /path/to/airbyte
235
+ ```
236
+
237
+ This step:
238
+
239
+ - Removes `registryOverrides.cloud.dockerImageTag`
240
+ - Removes `registryOverrides.oss.dockerImageTag`
241
+ - Updates `dockerImageTag` to the GA version (removing `-rc.X` suffix)
242
+ - Removes or sets `releases.rolloutConfiguration.enableProgressiveRollout: false`
243
+
244
+ ## Rollout States
245
+
246
+ | State | Description |
247
+ |-------|-------------|
248
+ | `initialized` | Rollout created, waiting to start |
249
+ | `workflow_started` | Rollout workflow has been triggered |
250
+ | `in_progress` | Actively migrating customers to RC |
251
+ | `paused` | Rollout temporarily stopped |
252
+ | `finalizing` | Completing the rollout |
253
+ | `succeeded` | RC promoted to GA |
254
+ | `failed_rolled_back` | RC rolled back due to issues |
255
+ | `canceled` | Rollout canceled |
256
+ | `errored` | Rollout encountered an error |
257
+
258
+ ## Automated Decision Logic
259
+
260
+ The progressive rollout backend includes automated failure detection and decision-making. This section describes how the system monitors rollouts and what actions it can take.
261
+
262
+ ### Signal: Sync Success/Failure Counts
263
+
264
+ The `RolloutProgressionDecider` monitors sync results from pinned connections. For each actor (source/destination) pinned to the RC version, it tracks:
265
+
266
+ - Number of successful syncs
267
+ - Number of failed syncs
268
+
269
+ ### Decision States
270
+
271
+ The system can make one of four decisions:
272
+
273
+ | Decision | Description | Trigger |
274
+ |----------|-------------|---------|
275
+ | `RELEASE` | Promote RC to GA | 100% sync success rate with sufficient data |
276
+ | `ROLLBACK` | Roll back to previous version | Reserved for future use (currently triggers PAUSE) |
277
+ | `PAUSE` | Pause rollout for manual intervention | Any sync failures detected |
278
+ | `INSUFFICIENT_DATA` | Continue waiting | Not enough actors pinned or syncs completed |
279
+
280
+ ### Decision Thresholds
281
+
282
+ The system uses these thresholds to make decisions:
283
+
284
+ - **Success Threshold**: 100% - All syncs must succeed for automatic promotion
285
+ - **Completion Threshold**: 50% - At least 50% of pinned actors must have completed syncs before making a final decision
286
+ - **Failure Threshold**: Any (>0) - A single failed sync triggers PAUSE
287
+
288
+ ### Decision Flow
289
+
290
+ 1. **Check for failures**: If any syncs have failed (`nFailedSyncs > 0`), immediately return `PAUSE`
291
+ 2. **Check actor coverage**: If fewer than the required percentage of actors have completed syncs, return `INSUFFICIENT_DATA`
292
+ 3. **Check success rate**: If 100% of completed syncs succeeded, return `RELEASE`
293
+ 4. **Fallback**: If none of the above, return `PAUSE` for manual review
294
+
295
+ ### Automatic Actions
296
+
297
+ When the workflow receives a decision:
298
+
299
+ - **RELEASE**: Finalizes the rollout with `SUCCEEDED` state, triggers GA promotion workflow
300
+ - **ROLLBACK**: Finalizes with `FAILED_ROLLED_BACK` state, removes RC pins (path exists but not currently auto-triggered)
301
+ - **PAUSE**: Pauses the workflow, requiring manual intervention via the `resume_rollout` or `finalize_connector_rollout` tools
302
+ - **INSUFFICIENT_DATA**: Continues the rollout loop, pinning more actors and waiting for sync results
303
+
304
+ ### Rollout Expiration
305
+
306
+ If a rollout runs for too long without reaching a terminal state, it automatically pauses. This prevents rollouts from running indefinitely and ensures human review of stalled rollouts.
307
+
308
+ ### Current Limitations
309
+
310
+ The system is intentionally conservative:
311
+
312
+ - **Any failure triggers PAUSE**: Rather than automatically rolling back, the system pauses to allow human judgment. This prevents premature rollbacks due to transient issues or unrelated failures.
313
+ - **100% success required**: The high threshold ensures only well-tested versions are promoted automatically.
314
+ - **Manual intervention for edge cases**: Complex scenarios (partial failures, intermittent issues) require human decision-making.
315
+
316
+ ## metadata.yaml Configuration
317
+
318
+ ### Progressive Rollout Fields
319
+
320
+ ```yaml
321
+ data:
322
+ # The version to be released (RC version during rollout)
323
+ dockerImageTag: "1.0.0-rc.1"
324
+
325
+ # Pin existing users to stable version during rollout
326
+ registryOverrides:
327
+ cloud:
328
+ dockerImageTag: "0.9.0" # Current stable version for Cloud
329
+ oss:
330
+ dockerImageTag: "0.9.0" # Current stable version for OSS
331
+
332
+ # Enable progressive rollout
333
+ releases:
334
+ rolloutConfiguration:
335
+ enableProgressiveRollout: true
336
+ ```
337
+
338
+ ### Version Naming Convention
339
+
340
+ - **Stable versions**: `X.Y.Z` (e.g., `1.0.0`, `0.9.5`)
341
+ - **Release candidates**: `X.Y.Z-rc.N` (e.g., `1.0.0-rc.1`, `1.0.0-rc.2`)
342
+
343
+ When creating an RC:
344
+ - If the current version is `0.9.5`, the default RC version would be `0.10.0-rc.1`
345
+ - Multiple RCs can be created: `1.0.0-rc.1`, `1.0.0-rc.2`, etc.
346
+
347
+ ## Available Tools
348
+
349
+ ### MCP Tools (airbyte-ops-mcp)
350
+
351
+ | Tool | Purpose |
352
+ |------|---------|
353
+ | `query_prod_connector_rollouts` | Query rollout status and history |
354
+ | `query_prod_rollout_monitoring_stats` | Get rollout progress and sync stats |
355
+ | `finalize_connector_rollout` | Promote, rollback, or cancel a rollout |
356
+ | `set_workspace_connector_version_override` | Pin actors to specific versions |
357
+ | `start_connector_rollout` | Start the rollout workflow |
358
+ | `pause_rollout` | Pause an in-progress rollout <!-- TODO: Implement pause_rollout tool - https://github.com/airbytehq/airbyte-ops-mcp/issues/323 --> |
359
+ | `resume_rollout` | Resume a paused rollout <!-- TODO: Implement resume_rollout tool - https://github.com/airbytehq/airbyte-ops-mcp/issues/323 --> |
360
+
361
+ ### CLI Tools (airbyte-ops)
362
+
363
+ | Command | Purpose |
364
+ |---------|---------|
365
+ | `airbyte-ops repo connector setup-progressive-rollout` | Configure metadata.yaml for rollout |
366
+ | `airbyte-ops repo connector cleanup-progressive-rollout` | Remove rollout config after completion |
367
+
368
+ ## Related Resources
369
+
370
+ - [Airbyte Ops MCP Repository](https://github.com/airbytehq/airbyte-ops-mcp)
371
+ - [Connector Registry](https://connectors.airbyte.com/files/registries/v0/oss_registry.json)
372
+ - <!-- TODO: Add link to internal rollout dashboard if available - https://github.com/airbytehq/airbyte-ops-mcp/issues/322 -->
373
+ - <!-- TODO: Add link to connector publishing documentation - https://github.com/airbytehq/airbyte-ops-mcp/issues/322 -->
374
+
375
+ ## Appendix: Approval Comment URLs
376
+
377
+ Certain high-impact operations require an "approval comment URL" as an authorization mechanism. This provides an audit trail and ensures that sensitive actions are explicitly approved by an authorized team member.
378
+
379
+ ### How It Works
380
+
381
+ An approval comment URL is a direct link to a GitHub comment where an @airbyte.io team member has explicitly approved the action. The system validates that the comment author has a verified @airbyte.io email address before allowing the operation to proceed.
382
+
383
+ **Example approval comment URL:**
384
+ ```
385
+ https://github.com/airbytehq/airbyte-ops-mcp/issues/310#issuecomment-3837359087
386
+ ```
387
+
388
+ ### Creating an Approval Comment
389
+
390
+ To create a valid approval comment:
391
+
392
+ 1. Navigate to the relevant GitHub issue or PR tracking the rollout
393
+ 2. Post a comment explicitly approving the action (e.g., "Approved for GA promotion")
394
+ 3. Copy the permalink URL of that comment (click the timestamp, then copy the URL)
395
+ 4. Give this URL to the AI agent, or if calling directly, pass as the `approval_comment_url` parameter
396
+
397
+ ### Actions Requiring Approval
398
+
399
+ | Action | Tool | Why Approval Is Required |
400
+ |--------|------|--------------------------|
401
+ | Pin workspace actors | `set_workspace_connector_version_override` | Affects all actors in a workspace |
402
+ | Pin cloud actors | `set_cloud_connector_version_override` | Affects actors at the cloud level |
403
+ | Start rollout workflow | `start_connector_rollout` | Initiates customer migration to RC version |
404
+ | Promote RC to GA | `finalize_connector_rollout` (state: `succeeded`) | Affects all customers using the connector |
405
+ | Rollback RC | `finalize_connector_rollout` (state: `failed_rolled_back`) | Reverts customers to previous version |
406
+ | Cancel rollout | `finalize_connector_rollout` (state: `canceled`) | Terminates the rollout process |
407
+
408
+ ### Additional Requirements
409
+
410
+ In addition to the approval comment URL, these operations also require the `AIRBYTE_INTERNAL_ADMIN_FLAG=airbyte.io` environment variable to be set. This two-factor authorization ensures that both the tool operator and an @airbyte.io team member have approved the action.
411
+
412
+ ## Troubleshooting
413
+
414
+ ### Rollout not appearing after merge
415
+
416
+ **Symptom:** The connector PR was merged but no rollout appears in the database.
417
+
418
+ **Possible causes:**
419
+ 1. The connector publish workflow hasn't completed yet
420
+ 2. `enableProgressiveRollout` is not set to `true` in metadata.yaml
421
+ 3. The connector version wasn't properly tagged as an RC
422
+
423
+ **Resolution:**
424
+ - Wait for the publish workflow to complete (check GitHub Actions)
425
+ - Verify metadata.yaml has `releases.rolloutConfiguration.enableProgressiveRollout: true`
426
+ - Ensure `dockerImageTag` follows the RC naming convention (`X.Y.Z-rc.N`)
427
+
428
+ ### High failure rate during rollout
429
+
430
+ **Symptom:** Monitoring shows significantly higher failure rates for the RC compared to stable.
431
+
432
+ **Resolution:**
433
+ 1. Pause the rollout to prevent further customer impact
434
+ 2. Investigate the failures using job logs
435
+ 3. If issues are confirmed, finalize with `failed_rolled_back` state
436
+ 4. Fix the issues and create a new RC (`X.Y.Z-rc.2`)
437
+
438
+ ### Cannot finalize rollout
439
+
440
+ **Symptom:** The finalize tool returns an authorization error.
441
+
442
+ **Possible causes:**
443
+ 1. Missing `AIRBYTE_INTERNAL_ADMIN_FLAG` environment variable
444
+ 2. Invalid or expired GitHub comment URL
445
+ 3. Comment author is not an @airbyte.io user
446
+
447
+ **Resolution:**
448
+ - Ensure `AIRBYTE_INTERNAL_ADMIN_FLAG=airbyte.io` is set
449
+ - Get a fresh approval comment from an @airbyte.io team member
450
+ - Verify the comment URL is accessible and the author's email is verified
451
+
452
+ ### Actors not being migrated
453
+
454
+ **Symptom:** `num_pinned_to_rollout` stays at 0 even after starting the workflow.
455
+
456
+ **Possible causes:**
457
+ 1. Rollout is still in `initialized` state (workflow not started)
458
+ 2. Rollout percentage is set to 0
459
+ 3. No eligible actors for this connector
460
+
461
+ **Resolution:**
462
+ - Verify the rollout state is `in_progress`
463
+ - Check the `current_target_rollout_pct` value
464
+ - Confirm there are active actors using this connector (`num_actors` > 0)