airbyte-internal-ops 0.2.3__tar.gz → 0.2.4__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 (558) hide show
  1. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/PKG-INFO +1 -1
  2. airbyte_internal_ops-0.2.4/src/airbyte_ops_mcp/github_api.py +264 -0
  3. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +48 -32
  4. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.env.template +0 -0
  5. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/copilot-instructions.md +0 -0
  6. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/dependabot.yml +0 -0
  7. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/pr-welcome-message.md +0 -0
  8. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/release-drafter.yml +0 -0
  9. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/autofix-command.yml +0 -0
  10. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/connector-regression-test.yml +0 -0
  11. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/format-check.yml +0 -0
  12. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/lint-check.yml +0 -0
  13. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/lock-command.yml +0 -0
  14. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/pdoc_preview.yml +0 -0
  15. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/pdoc_publish.yml +0 -0
  16. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/poe-command.yml +0 -0
  17. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/pr-welcome.yml +0 -0
  18. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/publish.yml +0 -0
  19. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/pytest-fast.yml +0 -0
  20. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/pytest-matrix.yml +0 -0
  21. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/regression-tests-ci.yml +0 -0
  22. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/release-drafter.yml +0 -0
  23. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/semantic-pr-check.yml +0 -0
  24. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/sentry-apply-command.yml +0 -0
  25. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/sentry-preview.yml +0 -0
  26. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/slash-command-dispatch.yml +0 -0
  27. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/test-connection-retriever.yml +0 -0
  28. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.github/workflows/tk-todo-check.yml +0 -0
  29. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.gitignore +0 -0
  30. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/.mcp.json.template +0 -0
  31. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/CONTRIBUTING.md +0 -0
  32. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/README.md +0 -0
  33. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/bin/test_mcp_tool.py +0 -0
  34. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/bin/test_mcp_tool_http.py +0 -0
  35. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/conftest.py +0 -0
  36. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/docs/.gitignore +0 -0
  37. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/docs/generate.py +0 -0
  38. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/docs/templates/custom.css +0 -0
  39. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/docs/templates/theme.css +0 -0
  40. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/infra/sentry/.gitignore +0 -0
  41. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/infra/sentry/Pulumi.prod.yaml +0 -0
  42. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/infra/sentry/Pulumi.yaml +0 -0
  43. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/infra/sentry/README.md +0 -0
  44. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/infra/sentry/__main__.py +0 -0
  45. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/infra/sentry/docs/CONTRIBUTING.md +0 -0
  46. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/infra/sentry/requirements.txt +0 -0
  47. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/poe_tasks.toml +0 -0
  48. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/pyproject.toml +0 -0
  49. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/pyrefly.toml +0 -0
  50. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/pytest.ini +0 -0
  51. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/ruff.toml +0 -0
  52. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/__init__.py +0 -0
  53. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_annotations.py +0 -0
  54. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
  55. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
  56. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
  57. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  58. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
  59. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
  60. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
  61. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
  62. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
  63. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
  64. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
  65. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
  66. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
  67. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
  68. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
  69. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
  70. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
  71. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/.gitignore +0 -0
  72. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/README.md +0 -0
  73. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
  74. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/__init__.py +0 -0
  75. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/__init__.py +0 -0
  76. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/base_backend.py +0 -0
  77. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/duckdb_backend.py +0 -0
  78. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/file_backend.py +0 -0
  79. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connection_objects_retrieval.py +0 -0
  80. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connector_runner.py +0 -0
  81. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/errors.py +0 -0
  82. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/evaluation_modes.py +0 -0
  83. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/hacks.py +0 -0
  84. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/json_schema_helper.py +0 -0
  85. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/mitm_addons.py +0 -0
  86. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/models.py +0 -0
  87. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/proxy.py +0 -0
  88. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/secret_access.py +0 -0
  89. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/segment_tracking.py +0 -0
  90. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/utils.py +0 -0
  91. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/conftest.py.disabled +0 -0
  92. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/consts.py +0 -0
  93. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/poetry.lock +0 -0
  94. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/pytest.ini +0 -0
  95. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/__init__.py +0 -0
  96. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_check.py +0 -0
  97. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_discover.py +0 -0
  98. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_read.py +0 -0
  99. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_spec.py +0 -0
  100. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/report.py +0 -0
  101. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/stash_keys.py +0 -0
  102. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/__init__.py +0 -0
  103. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/private_details.html.j2 +0 -0
  104. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/report.html.j2 +0 -0
  105. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/utils.py +0 -0
  106. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/__init__.py +0 -0
  107. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_check.py +0 -0
  108. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_discover.py +0 -0
  109. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_read.py +0 -0
  110. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_spec.py +0 -0
  111. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
  112. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
  113. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
  114. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
  115. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
  116. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
  117. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
  118. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
  119. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
  120. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
  121. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
  122. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
  123. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
  124. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
  125. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
  126. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
  127. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
  128. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
  129. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
  130. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
  131. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
  132. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
  133. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
  134. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
  135. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
  136. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
  137. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
  138. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
  139. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
  140. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
  141. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
  142. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
  143. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
  144. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
  145. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
  146. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
  147. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
  148. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
  149. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
  150. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
  151. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
  152. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
  153. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
  154. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
  155. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
  156. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
  157. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/build_customization.py +0 -0
  158. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
  159. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/java_connectors.py +0 -0
  160. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/manifest_only_connectors.py +0 -0
  161. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
  162. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/python_connectors.py +0 -0
  163. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
  164. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
  165. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
  166. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
  167. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
  168. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
  169. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
  170. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
  171. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/__init__.py +0 -0
  172. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/commands.py +0 -0
  173. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/pipeline.py +0 -0
  174. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
  175. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
  176. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
  177. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
  178. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
  179. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
  180. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
  181. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
  182. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
  183. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
  184. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
  185. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
  186. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/manifest_only_connectors.py +0 -0
  187. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
  188. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/templates/test_report.html.j2 +0 -0
  189. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
  190. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
  191. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
  192. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
  193. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/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
  194. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
  195. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
  196. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
  197. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
  198. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
  199. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
  200. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
  201. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
  202. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
  203. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
  204. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
  205. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
  206. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
  207. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
  208. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
  209. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
  210. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
  211. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
  212. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
  213. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
  214. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
  215. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
  216. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
  217. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
  218. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
  219. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
  220. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
  221. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
  222. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
  223. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
  224. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
  225. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
  226. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
  227. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
  228. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
  229. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
  230. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
  231. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
  232. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
  233. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
  234. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
  235. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
  236. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
  237. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/README.md +0 -0
  238. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/__init__.py +0 -0
  239. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/__init__.py +0 -0
  240. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/assets.py +0 -0
  241. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/__init__.py +0 -0
  242. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/documentation.py +0 -0
  243. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/helpers.py +0 -0
  244. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/models.py +0 -0
  245. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/documentation_headers_check_description.md.j2 +0 -0
  246. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
  247. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
  248. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/metadata.py +0 -0
  249. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/packaging.py +0 -0
  250. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/security.py +0 -0
  251. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/version.py +0 -0
  252. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/cli.py +0 -0
  253. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/consts.py +0 -0
  254. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/models.py +0 -0
  255. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/__init__.py +0 -0
  256. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/qa_checks.md.j2 +0 -0
  257. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/utils.py +0 -0
  258. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/README.md +0 -0
  259. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/bundle-schemas.js +0 -0
  260. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/generate-metadata-models.sh +0 -0
  261. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ActorDefinitionResourceRequirements.py +0 -0
  262. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AirbyteInternal.py +0 -0
  263. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AllowedHosts.py +0 -0
  264. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBreakingChanges.py +0 -0
  265. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBuildOptions.py +0 -0
  266. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorIPCOptions.py +0 -0
  267. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.json +0 -0
  268. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.py +0 -0
  269. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetrics.py +0 -0
  270. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorPackageInfo.py +0 -0
  271. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryDestinationDefinition.py +0 -0
  272. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryReleases.py +0 -0
  273. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistrySourceDefinition.py +0 -0
  274. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryV0.py +0 -0
  275. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorReleases.py +0 -0
  276. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorTestSuiteOptions.py +0 -0
  277. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GeneratedFields.py +0 -0
  278. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GitInfo.py +0 -0
  279. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/JobType.py +0 -0
  280. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/NormalizationDestinationDefinitionConfig.py +0 -0
  281. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RegistryOverrides.py +0 -0
  282. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ReleaseStage.py +0 -0
  283. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RemoteRegistries.py +0 -0
  284. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ResourceRequirements.py +0 -0
  285. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RolloutConfiguration.py +0 -0
  286. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/Secret.py +0 -0
  287. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SecretStore.py +0 -0
  288. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SourceFileInfo.py +0 -0
  289. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SuggestedStreams.py +0 -0
  290. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SupportLevel.py +0 -0
  291. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/TestConnections.py +0 -0
  292. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/__init__.py +0 -0
  293. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/airbyte-connector-metadata-schema.json +0 -0
  294. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ActorDefinitionResourceRequirements.yaml +0 -0
  295. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AirbyteInternal.yaml +0 -0
  296. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AllowedHosts.yaml +0 -0
  297. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBreakingChanges.yaml +0 -0
  298. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBuildOptions.yaml +0 -0
  299. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorIPCOptions.yaml +0 -0
  300. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetadataDefinitionV0.yaml +0 -0
  301. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetrics.yaml +0 -0
  302. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorPackageInfo.yaml +0 -0
  303. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryDestinationDefinition.yaml +0 -0
  304. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryReleases.yaml +0 -0
  305. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistrySourceDefinition.yaml +0 -0
  306. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryV0.yaml +0 -0
  307. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorReleases.yaml +0 -0
  308. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorTestSuiteOptions.yaml +0 -0
  309. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GeneratedFields.yaml +0 -0
  310. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GitInfo.yaml +0 -0
  311. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/JobType.yaml +0 -0
  312. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/NormalizationDestinationDefinitionConfig.yaml +0 -0
  313. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RegistryOverrides.yaml +0 -0
  314. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ReleaseStage.yaml +0 -0
  315. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RemoteRegistries.yaml +0 -0
  316. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ResourceRequirements.yaml +0 -0
  317. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RolloutConfiguration.yaml +0 -0
  318. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/Secret.yaml +0 -0
  319. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SecretStore.yaml +0 -0
  320. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SourceFileInfo.yaml +0 -0
  321. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SuggestedStreams.yaml +0 -0
  322. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SupportLevel.yaml +0 -0
  323. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/TestConnections.yaml +0 -0
  324. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package-lock.json +0 -0
  325. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package.json +0 -0
  326. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/transform.py +0 -0
  327. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
  328. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
  329. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
  330. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docker_hub.py +0 -0
  331. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
  332. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
  333. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
  334. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
  335. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
  336. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
  337. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
  338. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
  339. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
  340. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
  341. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
  342. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
  343. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
  344. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
  345. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
  346. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
  347. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
  348. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
  349. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
  350. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
  351. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
  352. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
  353. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
  354. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
  355. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
  356. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
  357. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
  358. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/file_managers/local_file_manager.py +0 -0
  359. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
  360. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
  361. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
  362. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
  363. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
  364. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
  365. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
  366. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
  367. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
  368. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
  369. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
  370. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
  371. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
  372. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
  373. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
  374. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
  375. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
  376. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
  377. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
  378. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
  379. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
  380. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
  381. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
  382. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
  383. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
  384. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +0 -0
  385. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
  386. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
  387. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
  388. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
  389. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
  390. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
  391. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
  392. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
  393. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/validators/metadata_validator.py +0 -0
  394. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
  395. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
  396. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
  397. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
  398. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
  399. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cli/_base.py +0 -0
  400. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
  401. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cli/app.py +0 -0
  402. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cli/cloud.py +0 -0
  403. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cli/gh.py +0 -0
  404. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cli/registry.py +0 -0
  405. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cli/repo.py +0 -0
  406. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
  407. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cloud_admin/api_client.py +0 -0
  408. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cloud_admin/auth.py +0 -0
  409. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
  410. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/cloud_admin/models.py +0 -0
  411. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
  412. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +0 -0
  413. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
  414. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
  415. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/constants.py +0 -0
  416. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/gcp_auth.py +0 -0
  417. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/github_actions.py +0 -0
  418. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/__init__.py +0 -0
  419. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/_guidance.py +0 -0
  420. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/_http_headers.py +0 -0
  421. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/_mcp_utils.py +0 -0
  422. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
  423. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
  424. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/github.py +0 -0
  425. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +0 -0
  426. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
  427. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/prerelease.py +0 -0
  428. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +0 -0
  429. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/prompts.py +0 -0
  430. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
  431. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/regression_tests.py +0 -0
  432. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/server.py +0 -0
  433. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/mcp/server_info.py +0 -0
  434. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
  435. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -0
  436. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
  437. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/prod_db_access/queries.py +0 -0
  438. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/prod_db_access/sql.py +0 -0
  439. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/py.typed +0 -0
  440. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
  441. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/registry/models.py +0 -0
  442. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/registry/publish.py +0 -0
  443. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/__init__.py +0 -0
  444. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/cdk_secrets.py +0 -0
  445. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/ci_output.py +0 -0
  446. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/commons/__init__.py +0 -0
  447. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/config.py +0 -0
  448. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/connection_fetcher.py +0 -0
  449. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/connection_secret_retriever.py +0 -0
  450. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/connector_runner.py +0 -0
  451. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/evaluation_modes.py +0 -0
  452. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/http_metrics.py +0 -0
  453. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/message_cache/__init__.py +0 -0
  454. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/message_cache/duckdb_cache.py +0 -0
  455. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/models.py +0 -0
  456. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/obfuscation.py +0 -0
  457. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/regression/__init__.py +0 -0
  458. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/regression/comparators.py +0 -0
  459. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/schema_generation.py +0 -0
  460. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/validation/__init__.py +0 -0
  461. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/validation/catalog_validators.py +0 -0
  462. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/src/airbyte_ops_mcp/regression_tests/validation/record_validators.py +0 -0
  463. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/__init__.py +0 -0
  464. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  465. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
  466. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
  467. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
  468. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
  469. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_live_tests/backends/__init__.py +0 -0
  470. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_live_tests/backends/test_file_backend.py +0 -0
  471. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_live_tests/test_get_connection_objects_retrieval.py +0 -0
  472. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_live_tests/test_json_schema_helper.py +0 -0
  473. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
  474. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
  475. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
  476. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
  477. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
  478. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
  479. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
  480. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
  481. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
  482. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
  483. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +0 -0
  484. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
  485. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
  486. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
  487. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
  488. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
  489. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
  490. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
  491. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
  492. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
  493. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
  494. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +0 -0
  495. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +0 -0
  496. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
  497. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
  498. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
  499. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
  500. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
  501. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
  502. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
  503. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
  504. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
  505. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
  506. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
  507. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
  508. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
  509. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
  510. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
  511. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
  512. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
  513. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
  514. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
  515. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
  516. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
  517. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
  518. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
  519. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
  520. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
  521. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
  522. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
  523. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
  524. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
  525. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
  526. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
  527. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
  528. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
  529. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
  530. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
  531. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
  532. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
  533. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
  534. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
  535. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
  536. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
  537. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
  538. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
  539. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
  540. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
  541. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
  542. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
  543. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
  544. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
  545. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
  546. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
  547. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
  548. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
  549. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
  550. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
  551. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
  552. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
  553. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/test_airbyte_admin_mcp.py +0 -0
  554. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/test_bump_version.py +0 -0
  555. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/test_cli_registry.py +0 -0
  556. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/test_list_connectors.py +0 -0
  557. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/tests/test_prerelease.py +0 -0
  558. {airbyte_internal_ops-0.2.3 → airbyte_internal_ops-0.2.4}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-internal-ops
3
- Version: 0.2.3
3
+ Version: 0.2.4
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,264 @@
1
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
2
+ """GitHub API utilities for user and comment operations.
3
+
4
+ This module provides utilities for interacting with GitHub's REST API
5
+ to retrieve user information and comment details. These utilities are
6
+ used by MCP tools for authorization and audit purposes.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import re
12
+ from dataclasses import dataclass
13
+ from urllib.parse import urlparse
14
+
15
+ import requests
16
+
17
+ from airbyte_ops_mcp.github_actions import GITHUB_API_BASE, resolve_github_token
18
+
19
+
20
+ class GitHubCommentParseError(Exception):
21
+ """Raised when a GitHub comment URL cannot be parsed."""
22
+
23
+
24
+ class GitHubUserEmailNotFoundError(Exception):
25
+ """Raised when a GitHub user's public email cannot be found."""
26
+
27
+
28
+ class GitHubAPIError(Exception):
29
+ """Raised when a GitHub API call fails."""
30
+
31
+
32
+ @dataclass(frozen=True)
33
+ class GitHubCommentInfo:
34
+ """Information about a GitHub comment and its author."""
35
+
36
+ comment_id: int
37
+ """The numeric comment ID."""
38
+
39
+ owner: str
40
+ """Repository owner (e.g., 'airbytehq')."""
41
+
42
+ repo: str
43
+ """Repository name (e.g., 'oncall')."""
44
+
45
+ author_login: str
46
+ """GitHub username of the comment author."""
47
+
48
+ author_association: str
49
+ """Author's association with the repo (e.g., 'MEMBER', 'OWNER', 'CONTRIBUTOR')."""
50
+
51
+ comment_type: str
52
+ """Type of comment: 'issue_comment' or 'review_comment'."""
53
+
54
+
55
+ @dataclass(frozen=True)
56
+ class GitHubUserInfo:
57
+ """Information about a GitHub user."""
58
+
59
+ login: str
60
+ """GitHub username."""
61
+
62
+ email: str | None
63
+ """Public email address, if set."""
64
+
65
+ name: str | None
66
+ """Display name, if set."""
67
+
68
+
69
+ def _parse_github_comment_url(url: str) -> tuple[str, str, int, str]:
70
+ """Parse a GitHub comment URL to extract owner, repo, comment_id, and comment_type.
71
+
72
+ Supports two URL formats:
73
+ - Issue/PR timeline comments: https://github.com/{owner}/{repo}/issues/{num}#issuecomment-{id}
74
+ - PR review comments: https://github.com/{owner}/{repo}/pull/{num}#discussion_r{id}
75
+
76
+ Args:
77
+ url: GitHub comment URL.
78
+
79
+ Returns:
80
+ Tuple of (owner, repo, comment_id, comment_type).
81
+ comment_type is either 'issue_comment' or 'review_comment'.
82
+
83
+ Raises:
84
+ GitHubCommentParseError: If the URL cannot be parsed.
85
+ """
86
+ parsed = urlparse(url)
87
+
88
+ if parsed.scheme != "https":
89
+ raise GitHubCommentParseError(
90
+ f"Invalid URL scheme: expected 'https', got '{parsed.scheme}'"
91
+ )
92
+
93
+ if parsed.netloc != "github.com":
94
+ raise GitHubCommentParseError(
95
+ f"Invalid URL host: expected 'github.com', got '{parsed.netloc}'"
96
+ )
97
+
98
+ path_parts = parsed.path.strip("/").split("/")
99
+ if len(path_parts) < 2:
100
+ raise GitHubCommentParseError(
101
+ f"Invalid URL path: expected at least owner/repo, got '{parsed.path}'"
102
+ )
103
+
104
+ owner = path_parts[0]
105
+ repo = path_parts[1]
106
+ fragment = parsed.fragment
107
+
108
+ issue_comment_match = re.match(r"^issuecomment-(\d+)$", fragment)
109
+ if issue_comment_match:
110
+ comment_id = int(issue_comment_match.group(1))
111
+ return owner, repo, comment_id, "issue_comment"
112
+
113
+ review_comment_match = re.match(r"^discussion_r(\d+)$", fragment)
114
+ if review_comment_match:
115
+ comment_id = int(review_comment_match.group(1))
116
+ return owner, repo, comment_id, "review_comment"
117
+
118
+ raise GitHubCommentParseError(
119
+ f"Invalid URL fragment: expected '#issuecomment-<id>' or '#discussion_r<id>', "
120
+ f"got '#{fragment}'"
121
+ )
122
+
123
+
124
+ def get_github_comment_info(
125
+ owner: str,
126
+ repo: str,
127
+ comment_id: int,
128
+ comment_type: str,
129
+ token: str | None = None,
130
+ ) -> GitHubCommentInfo:
131
+ """Fetch comment information from GitHub API.
132
+
133
+ Args:
134
+ owner: Repository owner.
135
+ repo: Repository name.
136
+ comment_id: Numeric comment ID.
137
+ comment_type: Either 'issue_comment' or 'review_comment'.
138
+ token: GitHub API token. If None, will be resolved from environment.
139
+
140
+ Returns:
141
+ GitHubCommentInfo with comment and author details.
142
+
143
+ Raises:
144
+ GitHubAPIError: If the API request fails.
145
+ ValueError: If comment_type is invalid.
146
+ """
147
+ if token is None:
148
+ token = resolve_github_token()
149
+
150
+ if comment_type == "issue_comment":
151
+ url = f"{GITHUB_API_BASE}/repos/{owner}/{repo}/issues/comments/{comment_id}"
152
+ elif comment_type == "review_comment":
153
+ url = f"{GITHUB_API_BASE}/repos/{owner}/{repo}/pulls/comments/{comment_id}"
154
+ else:
155
+ raise ValueError(f"Invalid comment_type: {comment_type}")
156
+
157
+ headers = {
158
+ "Authorization": f"Bearer {token}",
159
+ "Accept": "application/vnd.github+json",
160
+ "X-GitHub-Api-Version": "2022-11-28",
161
+ }
162
+
163
+ response = requests.get(url, headers=headers, timeout=30)
164
+ if not response.ok:
165
+ raise GitHubAPIError(
166
+ f"Failed to fetch comment {comment_id} from {owner}/{repo}: "
167
+ f"{response.status_code} {response.text}"
168
+ )
169
+
170
+ data = response.json()
171
+ user = data.get("user", {})
172
+
173
+ return GitHubCommentInfo(
174
+ comment_id=comment_id,
175
+ owner=owner,
176
+ repo=repo,
177
+ author_login=user.get("login", ""),
178
+ author_association=data.get("author_association", "NONE"),
179
+ comment_type=comment_type,
180
+ )
181
+
182
+
183
+ def get_github_user_info(login: str, token: str | None = None) -> GitHubUserInfo:
184
+ """Fetch user information from GitHub API.
185
+
186
+ Args:
187
+ login: GitHub username.
188
+ token: GitHub API token. If None, will be resolved from environment.
189
+
190
+ Returns:
191
+ GitHubUserInfo with user details.
192
+
193
+ Raises:
194
+ GitHubAPIError: If the API request fails.
195
+ """
196
+ if token is None:
197
+ token = resolve_github_token()
198
+
199
+ url = f"{GITHUB_API_BASE}/users/{login}"
200
+ headers = {
201
+ "Authorization": f"Bearer {token}",
202
+ "Accept": "application/vnd.github+json",
203
+ "X-GitHub-Api-Version": "2022-11-28",
204
+ }
205
+
206
+ response = requests.get(url, headers=headers, timeout=30)
207
+ if not response.ok:
208
+ raise GitHubAPIError(
209
+ f"Failed to fetch user {login}: {response.status_code} {response.text}"
210
+ )
211
+
212
+ data = response.json()
213
+
214
+ return GitHubUserInfo(
215
+ login=data.get("login", login),
216
+ email=data.get("email"),
217
+ name=data.get("name"),
218
+ )
219
+
220
+
221
+ def get_admin_email_from_approval_comment(approval_comment_url: str) -> str:
222
+ """Derive the admin email from a GitHub approval comment URL.
223
+
224
+ This function:
225
+ 1. Parses the comment URL to extract owner, repo, and comment ID.
226
+ 2. Fetches the comment from GitHub API to get the author's username.
227
+ 3. Fetches the user's profile to get their public email.
228
+ 4. Validates the email is an @airbyte.io address.
229
+
230
+ Args:
231
+ approval_comment_url: GitHub comment URL where approval was given.
232
+
233
+ Returns:
234
+ The admin's @airbyte.io email address.
235
+
236
+ Raises:
237
+ GitHubCommentParseError: If the URL cannot be parsed.
238
+ GitHubAPIError: If GitHub API calls fail.
239
+ GitHubUserEmailNotFoundError: If the user has no public email or
240
+ the email is not an @airbyte.io address.
241
+ """
242
+ owner, repo, comment_id, comment_type = _parse_github_comment_url(
243
+ approval_comment_url
244
+ )
245
+
246
+ comment_info = get_github_comment_info(owner, repo, comment_id, comment_type)
247
+
248
+ user_info = get_github_user_info(comment_info.author_login)
249
+
250
+ if not user_info.email:
251
+ raise GitHubUserEmailNotFoundError(
252
+ f"GitHub user '{comment_info.author_login}' does not have a public email set. "
253
+ f"To use this tool, the approver must have a public @airbyte.io email "
254
+ f"configured on their GitHub profile (Settings > Public email)."
255
+ )
256
+
257
+ if not user_info.email.endswith("@airbyte.io"):
258
+ raise GitHubUserEmailNotFoundError(
259
+ f"GitHub user '{comment_info.author_login}' has public email '{user_info.email}' "
260
+ f"which is not an @airbyte.io address. Only @airbyte.io emails are authorized "
261
+ f"for admin operations."
262
+ )
263
+
264
+ return user_info.email
@@ -27,6 +27,12 @@ from airbyte_ops_mcp.cloud_admin.models import (
27
27
  ConnectorVersionInfo,
28
28
  VersionOverrideOperationResult,
29
29
  )
30
+ from airbyte_ops_mcp.github_api import (
31
+ GitHubAPIError,
32
+ GitHubCommentParseError,
33
+ GitHubUserEmailNotFoundError,
34
+ get_admin_email_from_approval_comment,
35
+ )
30
36
  from airbyte_ops_mcp.mcp._http_headers import (
31
37
  resolve_bearer_token,
32
38
  resolve_client_id,
@@ -155,6 +161,15 @@ def set_cloud_connector_version_override(
155
161
  Literal["source", "destination"],
156
162
  "The type of connector (source or destination)",
157
163
  ],
164
+ approval_comment_url: Annotated[
165
+ str,
166
+ Field(
167
+ description="URL to a GitHub comment where the admin has explicitly "
168
+ "requested or authorized this deployment. Must be a valid GitHub comment URL. "
169
+ "Required for authorization. The admin email is automatically derived from "
170
+ "the comment author's GitHub profile.",
171
+ ),
172
+ ],
158
173
  version: Annotated[
159
174
  str | None,
160
175
  Field(
@@ -186,14 +201,6 @@ def set_cloud_connector_version_override(
186
201
  default=None,
187
202
  ),
188
203
  ],
189
- admin_user_email: Annotated[
190
- str | None,
191
- Field(
192
- description="Email of the admin user authorizing this operation. "
193
- "Must be an @airbyte.io email address. Required for authorization.",
194
- default=None,
195
- ),
196
- ],
197
204
  issue_url: Annotated[
198
205
  str | None,
199
206
  Field(
@@ -202,15 +209,6 @@ def set_cloud_connector_version_override(
202
209
  default=None,
203
210
  ),
204
211
  ],
205
- approval_comment_url: Annotated[
206
- str | None,
207
- Field(
208
- description="URL to a GitHub comment where the admin has explicitly "
209
- "requested or authorized this deployment. Must be a valid GitHub comment URL. "
210
- "Required for authorization.",
211
- default=None,
212
- ),
213
- ],
214
212
  ai_agent_session_url: Annotated[
215
213
  str | None,
216
214
  Field(
@@ -224,9 +222,13 @@ def set_cloud_connector_version_override(
224
222
 
225
223
  **Admin-only operation** - Requires:
226
224
  - AIRBYTE_INTERNAL_ADMIN_FLAG=airbyte.io environment variable
227
- - admin_user_email parameter (must be @airbyte.io email)
228
225
  - issue_url parameter (GitHub issue URL for context)
229
- - approval_comment_url parameter (GitHub comment URL with approval)
226
+ - approval_comment_url parameter (GitHub comment URL with approval from an @airbyte.io user)
227
+
228
+ The admin user email is automatically derived from the approval_comment_url by:
229
+ 1. Fetching the comment from GitHub API to get the author's username
230
+ 2. Fetching the user's profile to get their public email
231
+ 3. Validating the email is an @airbyte.io address
230
232
 
231
233
  You must specify EXACTLY ONE of `version` OR `unset=True`, but not both.
232
234
  When setting a version, `override_reason` is required.
@@ -252,16 +254,9 @@ def set_cloud_connector_version_override(
252
254
  connector_type=actor_type,
253
255
  )
254
256
 
255
- # Validate new authorization parameters
257
+ # Validate authorization parameters
256
258
  validation_errors: list[str] = []
257
259
 
258
- if not admin_user_email:
259
- validation_errors.append("admin_user_email is required for authorization")
260
- elif "@airbyte.io" not in admin_user_email:
261
- validation_errors.append(
262
- f"admin_user_email must be an @airbyte.io email address, got: {admin_user_email}"
263
- )
264
-
265
260
  if not issue_url:
266
261
  validation_errors.append(
267
262
  "issue_url is required for authorization (GitHub issue URL)"
@@ -271,11 +266,7 @@ def set_cloud_connector_version_override(
271
266
  f"issue_url must be a valid GitHub URL (https://github.com/...), got: {issue_url}"
272
267
  )
273
268
 
274
- if not approval_comment_url:
275
- validation_errors.append(
276
- "approval_comment_url is required for authorization (GitHub comment URL)"
277
- )
278
- elif not approval_comment_url.startswith("https://github.com/"):
269
+ if not approval_comment_url.startswith("https://github.com/"):
279
270
  validation_errors.append(
280
271
  f"approval_comment_url must be a valid GitHub URL, got: {approval_comment_url}"
281
272
  )
@@ -296,6 +287,31 @@ def set_cloud_connector_version_override(
296
287
  connector_type=actor_type,
297
288
  )
298
289
 
290
+ # Derive admin email from approval comment URL
291
+ try:
292
+ admin_user_email = get_admin_email_from_approval_comment(approval_comment_url)
293
+ except GitHubCommentParseError as e:
294
+ return VersionOverrideOperationResult(
295
+ success=False,
296
+ message=f"Failed to parse approval comment URL: {e}",
297
+ connector_id=actor_id,
298
+ connector_type=actor_type,
299
+ )
300
+ except GitHubAPIError as e:
301
+ return VersionOverrideOperationResult(
302
+ success=False,
303
+ message=f"Failed to fetch approval comment from GitHub: {e}",
304
+ connector_id=actor_id,
305
+ connector_type=actor_type,
306
+ )
307
+ except GitHubUserEmailNotFoundError as e:
308
+ return VersionOverrideOperationResult(
309
+ success=False,
310
+ message=str(e),
311
+ connector_id=actor_id,
312
+ connector_type=actor_type,
313
+ )
314
+
299
315
  # Build enhanced override reason with audit fields (only for 'set' operations)
300
316
  enhanced_override_reason = override_reason
301
317
  if not unset and override_reason: