airbyte-internal-ops 0.3.1__tar.gz → 0.4.1__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 (562) hide show
  1. airbyte_internal_ops-0.4.1/.github/workflows/connector-regression-test.yml +407 -0
  2. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/CONTRIBUTING.md +59 -0
  3. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/PKG-INFO +1 -1
  4. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/bin/test_mcp_tool.py +1 -1
  5. airbyte_internal_ops-0.4.1/src/airbyte_ops_mcp/cli/gh.py +174 -0
  6. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cli/registry.py +2 -2
  7. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/github_actions.py +6 -100
  8. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/github_api.py +163 -5
  9. airbyte_internal_ops-0.3.1/src/airbyte_ops_mcp/mcp/github.py → airbyte_internal_ops-0.4.1/src/airbyte_ops_mcp/mcp/github_actions.py +117 -5
  10. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/prerelease.py +53 -63
  11. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +298 -1
  12. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/regression_tests.py +20 -9
  13. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/server.py +2 -2
  14. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/prod_db_access/queries.py +68 -0
  15. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/prod_db_access/sql.py +108 -0
  16. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/connector_runner.py +8 -4
  17. airbyte_internal_ops-0.3.1/.github/workflows/connector-regression-test.yml +0 -253
  18. airbyte_internal_ops-0.3.1/src/airbyte_ops_mcp/cli/gh.py +0 -71
  19. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.env.template +0 -0
  20. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/copilot-instructions.md +0 -0
  21. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/dependabot.yml +0 -0
  22. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/pr-welcome-message.md +0 -0
  23. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/release-drafter.yml +0 -0
  24. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/autofix-command.yml +0 -0
  25. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/format-check.yml +0 -0
  26. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/lint-check.yml +0 -0
  27. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/lock-command.yml +0 -0
  28. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/pdoc_preview.yml +0 -0
  29. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/pdoc_publish.yml +0 -0
  30. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/poe-command.yml +0 -0
  31. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/pr-welcome.yml +0 -0
  32. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/publish.yml +0 -0
  33. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/pytest-fast.yml +0 -0
  34. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/pytest-matrix.yml +0 -0
  35. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/regression-tests-ci.yml +0 -0
  36. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/release-drafter.yml +0 -0
  37. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/semantic-pr-check.yml +0 -0
  38. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/sentry-apply-command.yml +0 -0
  39. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/sentry-preview.yml +0 -0
  40. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/slash-command-dispatch.yml +0 -0
  41. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.github/workflows/tk-todo-check.yml +0 -0
  42. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.gitignore +0 -0
  43. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/.mcp.json.template +0 -0
  44. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/README.md +0 -0
  45. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/bin/test_mcp_tool_http.py +0 -0
  46. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/conftest.py +0 -0
  47. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/docs/.gitignore +0 -0
  48. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/docs/generate.py +0 -0
  49. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/docs/templates/custom.css +0 -0
  50. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/docs/templates/theme.css +0 -0
  51. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/infra/sentry/.gitignore +0 -0
  52. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/infra/sentry/Pulumi.prod.yaml +0 -0
  53. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/infra/sentry/Pulumi.yaml +0 -0
  54. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/infra/sentry/README.md +0 -0
  55. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/infra/sentry/__main__.py +0 -0
  56. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/infra/sentry/docs/CONTRIBUTING.md +0 -0
  57. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/infra/sentry/requirements.txt +0 -0
  58. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/poe_tasks.toml +0 -0
  59. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/pyproject.toml +0 -0
  60. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/pyrefly.toml +0 -0
  61. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/pytest.ini +0 -0
  62. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/ruff.toml +0 -0
  63. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/__init__.py +0 -0
  64. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_annotations.py +0 -0
  65. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
  66. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
  67. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
  68. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  69. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
  70. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
  71. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
  72. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
  73. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
  74. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
  75. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
  76. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
  77. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
  78. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
  79. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
  80. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
  81. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
  82. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/.gitignore +0 -0
  83. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/README.md +0 -0
  84. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
  85. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/__init__.py +0 -0
  86. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/__init__.py +0 -0
  87. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/base_backend.py +0 -0
  88. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/duckdb_backend.py +0 -0
  89. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/file_backend.py +0 -0
  90. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connection_objects_retrieval.py +0 -0
  91. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connector_runner.py +0 -0
  92. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/errors.py +0 -0
  93. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/evaluation_modes.py +0 -0
  94. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/hacks.py +0 -0
  95. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/json_schema_helper.py +0 -0
  96. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/mitm_addons.py +0 -0
  97. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/models.py +0 -0
  98. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/proxy.py +0 -0
  99. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/secret_access.py +0 -0
  100. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/segment_tracking.py +0 -0
  101. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/utils.py +0 -0
  102. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/conftest.py.disabled +0 -0
  103. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/consts.py +0 -0
  104. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/poetry.lock +0 -0
  105. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/pytest.ini +0 -0
  106. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/__init__.py +0 -0
  107. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_check.py +0 -0
  108. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_discover.py +0 -0
  109. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_read.py +0 -0
  110. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_spec.py +0 -0
  111. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/report.py +0 -0
  112. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/stash_keys.py +0 -0
  113. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/__init__.py +0 -0
  114. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/private_details.html.j2 +0 -0
  115. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/report.html.j2 +0 -0
  116. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/utils.py +0 -0
  117. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/__init__.py +0 -0
  118. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_check.py +0 -0
  119. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_discover.py +0 -0
  120. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_read.py +0 -0
  121. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_spec.py +0 -0
  122. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
  123. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
  124. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
  125. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
  126. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
  127. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
  128. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
  129. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
  130. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
  131. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
  132. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
  133. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
  134. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
  135. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
  136. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
  137. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
  138. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
  139. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
  140. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
  141. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
  142. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
  143. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
  144. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
  145. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
  146. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
  147. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
  148. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
  149. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
  150. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
  151. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
  152. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
  153. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
  154. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
  155. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
  156. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
  157. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
  158. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
  159. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
  160. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
  161. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
  162. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
  163. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
  164. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
  165. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
  166. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
  167. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
  168. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/build_customization.py +0 -0
  169. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
  170. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/java_connectors.py +0 -0
  171. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/manifest_only_connectors.py +0 -0
  172. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
  173. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/python_connectors.py +0 -0
  174. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
  175. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
  176. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
  177. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
  178. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
  179. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
  180. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
  181. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
  182. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/__init__.py +0 -0
  183. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/commands.py +0 -0
  184. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/pipeline.py +0 -0
  185. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
  186. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
  187. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
  188. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
  189. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
  190. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
  191. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
  192. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
  193. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
  194. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
  195. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
  196. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
  197. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/manifest_only_connectors.py +0 -0
  198. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
  199. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/templates/test_report.html.j2 +0 -0
  200. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
  201. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
  202. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
  203. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
  204. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/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
  205. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
  206. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
  207. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
  208. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
  209. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
  210. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
  211. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
  212. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
  213. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
  214. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
  215. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
  216. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
  217. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
  218. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
  219. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
  220. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
  221. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
  222. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
  223. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
  224. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
  225. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
  226. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
  227. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
  228. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
  229. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
  230. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
  231. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
  232. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
  233. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
  234. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
  235. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
  236. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
  237. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
  238. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
  239. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
  240. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
  241. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
  242. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
  243. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
  244. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
  245. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
  246. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
  247. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
  248. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/README.md +0 -0
  249. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/__init__.py +0 -0
  250. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/__init__.py +0 -0
  251. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/assets.py +0 -0
  252. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/__init__.py +0 -0
  253. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/documentation.py +0 -0
  254. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/helpers.py +0 -0
  255. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/models.py +0 -0
  256. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/documentation_headers_check_description.md.j2 +0 -0
  257. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
  258. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
  259. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/metadata.py +0 -0
  260. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/packaging.py +0 -0
  261. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/security.py +0 -0
  262. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/version.py +0 -0
  263. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/cli.py +0 -0
  264. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/consts.py +0 -0
  265. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/models.py +0 -0
  266. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/__init__.py +0 -0
  267. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/qa_checks.md.j2 +0 -0
  268. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/utils.py +0 -0
  269. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/README.md +0 -0
  270. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/bundle-schemas.js +0 -0
  271. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/generate-metadata-models.sh +0 -0
  272. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ActorDefinitionResourceRequirements.py +0 -0
  273. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AirbyteInternal.py +0 -0
  274. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AllowedHosts.py +0 -0
  275. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBreakingChanges.py +0 -0
  276. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBuildOptions.py +0 -0
  277. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorIPCOptions.py +0 -0
  278. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.json +0 -0
  279. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.py +0 -0
  280. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetrics.py +0 -0
  281. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorPackageInfo.py +0 -0
  282. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryDestinationDefinition.py +0 -0
  283. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryReleases.py +0 -0
  284. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistrySourceDefinition.py +0 -0
  285. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryV0.py +0 -0
  286. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorReleases.py +0 -0
  287. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorTestSuiteOptions.py +0 -0
  288. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GeneratedFields.py +0 -0
  289. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GitInfo.py +0 -0
  290. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/JobType.py +0 -0
  291. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/NormalizationDestinationDefinitionConfig.py +0 -0
  292. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RegistryOverrides.py +0 -0
  293. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ReleaseStage.py +0 -0
  294. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RemoteRegistries.py +0 -0
  295. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ResourceRequirements.py +0 -0
  296. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RolloutConfiguration.py +0 -0
  297. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/Secret.py +0 -0
  298. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SecretStore.py +0 -0
  299. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SourceFileInfo.py +0 -0
  300. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SuggestedStreams.py +0 -0
  301. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SupportLevel.py +0 -0
  302. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/TestConnections.py +0 -0
  303. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/__init__.py +0 -0
  304. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/airbyte-connector-metadata-schema.json +0 -0
  305. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ActorDefinitionResourceRequirements.yaml +0 -0
  306. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AirbyteInternal.yaml +0 -0
  307. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AllowedHosts.yaml +0 -0
  308. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBreakingChanges.yaml +0 -0
  309. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBuildOptions.yaml +0 -0
  310. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorIPCOptions.yaml +0 -0
  311. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetadataDefinitionV0.yaml +0 -0
  312. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetrics.yaml +0 -0
  313. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorPackageInfo.yaml +0 -0
  314. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryDestinationDefinition.yaml +0 -0
  315. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryReleases.yaml +0 -0
  316. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistrySourceDefinition.yaml +0 -0
  317. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryV0.yaml +0 -0
  318. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorReleases.yaml +0 -0
  319. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorTestSuiteOptions.yaml +0 -0
  320. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GeneratedFields.yaml +0 -0
  321. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GitInfo.yaml +0 -0
  322. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/JobType.yaml +0 -0
  323. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/NormalizationDestinationDefinitionConfig.yaml +0 -0
  324. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RegistryOverrides.yaml +0 -0
  325. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ReleaseStage.yaml +0 -0
  326. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RemoteRegistries.yaml +0 -0
  327. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ResourceRequirements.yaml +0 -0
  328. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RolloutConfiguration.yaml +0 -0
  329. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/Secret.yaml +0 -0
  330. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SecretStore.yaml +0 -0
  331. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SourceFileInfo.yaml +0 -0
  332. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SuggestedStreams.yaml +0 -0
  333. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SupportLevel.yaml +0 -0
  334. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/TestConnections.yaml +0 -0
  335. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package-lock.json +0 -0
  336. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package.json +0 -0
  337. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/transform.py +0 -0
  338. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
  339. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
  340. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
  341. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docker_hub.py +0 -0
  342. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
  343. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
  344. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
  345. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
  346. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
  347. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
  348. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
  349. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
  350. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
  351. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
  352. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
  353. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
  354. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
  355. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
  356. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
  357. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
  358. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
  359. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
  360. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
  361. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
  362. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
  363. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
  364. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
  365. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
  366. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
  367. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
  368. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
  369. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/file_managers/local_file_manager.py +0 -0
  370. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
  371. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
  372. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
  373. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
  374. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
  375. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
  376. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
  377. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
  378. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
  379. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
  380. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
  381. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
  382. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
  383. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
  384. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
  385. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
  386. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
  387. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
  388. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
  389. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
  390. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
  391. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
  392. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
  393. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
  394. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
  395. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +0 -0
  396. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
  397. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
  398. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
  399. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
  400. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
  401. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
  402. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
  403. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
  404. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/validators/metadata_validator.py +0 -0
  405. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
  406. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
  407. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
  408. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
  409. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
  410. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cli/_base.py +0 -0
  411. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
  412. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cli/app.py +0 -0
  413. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cli/cloud.py +0 -0
  414. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cli/repo.py +0 -0
  415. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
  416. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cloud_admin/api_client.py +0 -0
  417. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cloud_admin/auth.py +0 -0
  418. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
  419. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/cloud_admin/models.py +0 -0
  420. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
  421. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +0 -0
  422. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
  423. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
  424. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/constants.py +0 -0
  425. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/gcp_auth.py +0 -0
  426. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/gcp_logs/__init__.py +0 -0
  427. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/gcp_logs/error_lookup.py +0 -0
  428. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/__init__.py +0 -0
  429. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/_guidance.py +0 -0
  430. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/_http_headers.py +0 -0
  431. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/_mcp_utils.py +0 -0
  432. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +0 -0
  433. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
  434. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
  435. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/gcp_logs.py +0 -0
  436. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +0 -0
  437. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
  438. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/prompts.py +0 -0
  439. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
  440. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/mcp/server_info.py +0 -0
  441. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
  442. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -0
  443. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
  444. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/py.typed +0 -0
  445. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
  446. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/registry/models.py +0 -0
  447. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/registry/publish.py +0 -0
  448. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/__init__.py +0 -0
  449. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/cdk_secrets.py +0 -0
  450. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/ci_output.py +0 -0
  451. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/commons/__init__.py +0 -0
  452. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/config.py +0 -0
  453. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/connection_fetcher.py +0 -0
  454. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/connection_secret_retriever.py +0 -0
  455. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/evaluation_modes.py +0 -0
  456. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/http_metrics.py +0 -0
  457. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/message_cache/__init__.py +0 -0
  458. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/message_cache/duckdb_cache.py +0 -0
  459. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/models.py +0 -0
  460. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/obfuscation.py +0 -0
  461. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/regression/__init__.py +0 -0
  462. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/regression/comparators.py +0 -0
  463. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/schema_generation.py +0 -0
  464. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/validation/__init__.py +0 -0
  465. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/validation/catalog_validators.py +0 -0
  466. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/src/airbyte_ops_mcp/regression_tests/validation/record_validators.py +0 -0
  467. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/__init__.py +0 -0
  468. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  469. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
  470. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
  471. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
  472. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
  473. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_live_tests/backends/__init__.py +0 -0
  474. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_live_tests/backends/test_file_backend.py +0 -0
  475. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_live_tests/test_get_connection_objects_retrieval.py +0 -0
  476. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_live_tests/test_json_schema_helper.py +0 -0
  477. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
  478. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
  479. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
  480. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
  481. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
  482. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
  483. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
  484. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
  485. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
  486. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
  487. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +0 -0
  488. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
  489. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
  490. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
  491. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
  492. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
  493. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
  494. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
  495. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
  496. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
  497. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
  498. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +0 -0
  499. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +0 -0
  500. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
  501. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
  502. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
  503. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
  504. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
  505. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
  506. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
  507. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
  508. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
  509. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
  510. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
  511. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
  512. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
  513. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
  514. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
  515. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
  516. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
  517. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
  518. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
  519. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
  520. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
  521. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
  522. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
  523. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
  524. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
  525. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
  526. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
  527. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
  528. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
  529. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
  530. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
  531. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
  532. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
  533. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
  534. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
  535. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
  536. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
  537. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
  538. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
  539. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
  540. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
  541. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
  542. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
  543. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
  544. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
  545. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
  546. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
  547. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
  548. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
  549. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
  550. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
  551. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
  552. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
  553. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
  554. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
  555. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
  556. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
  557. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/test_airbyte_admin_mcp.py +0 -0
  558. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/test_bump_version.py +0 -0
  559. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/test_cli_registry.py +0 -0
  560. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/test_list_connectors.py +0 -0
  561. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/tests/test_prerelease.py +0 -0
  562. {airbyte_internal_ops-0.3.1 → airbyte_internal_ops-0.4.1}/uv.lock +0 -0
@@ -0,0 +1,407 @@
1
+ name: Connector Regression Test
2
+ permissions:
3
+ contents: read
4
+ checks: write
5
+
6
+ on:
7
+ workflow_dispatch:
8
+ inputs:
9
+ connector_name:
10
+ description: "Connector name to build from source (e.g., 'source-pokeapi')."
11
+ required: true
12
+ type: string
13
+ pr:
14
+ description: "PR number to checkout and build from (e.g., 70847). Must be from the repository specified by 'repo'."
15
+ required: true
16
+ type: string
17
+ repo:
18
+ description: "Repository where the connector PR is located."
19
+ required: false
20
+ type: choice
21
+ options:
22
+ - airbyte
23
+ - airbyte-enterprise
24
+ default: "airbyte"
25
+ connection_id:
26
+ description: "Airbyte Cloud connection ID to fetch config/catalog from."
27
+ required: false
28
+ type: string
29
+ skip_compare:
30
+ description: "If true, skip comparison and run single-version tests only. If false (default), run comparison tests (target vs control)."
31
+ required: false
32
+ type: boolean
33
+ default: false
34
+ skip_read_action:
35
+ description: "If true, skip the read action (run only spec, check, discover)."
36
+ required: false
37
+ type: boolean
38
+ default: false
39
+ override_test_image:
40
+ description: "Override test connector image with tag (e.g., airbyte/source-github:1.0.0). Ignored if skip_compare=false."
41
+ required: false
42
+ type: string
43
+ override_control_image:
44
+ description: "Override control connector image (baseline version) with tag. Ignored if skip_compare=true."
45
+ required: false
46
+ type: string
47
+
48
+ workflow_call:
49
+ inputs:
50
+ connector_name:
51
+ description: "Connector name to build from source (e.g., 'source-pokeapi')."
52
+ required: true
53
+ type: string
54
+ pr:
55
+ description: "PR number to checkout and build from. Must be from the repository specified by 'repo'."
56
+ required: true
57
+ type: string
58
+ repo:
59
+ description: "Repository where the connector PR is located. Use 'airbyte' or 'airbyte-enterprise'."
60
+ required: false
61
+ type: string
62
+ default: "airbyte"
63
+ connection_id:
64
+ description: "Airbyte Cloud connection ID to fetch config/catalog from."
65
+ required: false
66
+ type: string
67
+ skip_compare:
68
+ description: "If true, skip comparison and run single-version tests only. If false (default), run comparison tests (target vs control)."
69
+ required: false
70
+ type: boolean
71
+ default: false
72
+ skip_read_action:
73
+ description: "If true, skip the read action (run only spec, check, discover)."
74
+ required: false
75
+ type: boolean
76
+ default: false
77
+ override_test_image:
78
+ description: "Override test connector image with tag. Ignored if skip_compare=false."
79
+ required: false
80
+ type: string
81
+ override_control_image:
82
+ description: "Override control connector image (baseline version) with tag. Ignored if skip_compare=true."
83
+ required: false
84
+ type: string
85
+ outputs:
86
+ success:
87
+ description: "True if regression test passed (no regression detected)"
88
+ value: ${{ jobs.regression-test.outputs.success }}
89
+ summary_url:
90
+ description: "GitHub Actions run summary URL"
91
+ value: ${{ jobs.regression-test.outputs.summary_url }}
92
+ report_url:
93
+ description: "Detailed regression report (GitHub Check URL)"
94
+ value: ${{ jobs.regression-test.outputs.report_url }}
95
+ secrets:
96
+ AIRBYTE_CLOUD_CLIENT_ID:
97
+ required: false
98
+ AIRBYTE_CLOUD_CLIENT_SECRET:
99
+ required: false
100
+ GCP_GSM_CREDENTIALS:
101
+ required: false
102
+ GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL:
103
+ required: false
104
+
105
+ jobs:
106
+ regression-test:
107
+ name: "Regression Test: '${{ inputs.connector_name }}'"
108
+ runs-on: ubuntu-latest
109
+ steps:
110
+ - name: Checkout code
111
+ uses: actions/checkout@v6
112
+
113
+ - name: Install uv
114
+ uses: astral-sh/setup-uv@v7
115
+ with:
116
+ version: "latest"
117
+
118
+ - name: Set up Python
119
+ uses: actions/setup-python@v6
120
+ with:
121
+ python-version: "3.11"
122
+
123
+ - name: Install dependencies
124
+ run: uv sync --group dev
125
+
126
+ - name: Resolve connector repo ref
127
+ id: resolve-connector-ref
128
+ run: |
129
+ REPO="${{ inputs.repo }}"
130
+ # Default to 'airbyte' if not specified
131
+ if [ -z "$REPO" ]; then
132
+ REPO="airbyte"
133
+ fi
134
+ echo "repo=$REPO" >> "$GITHUB_OUTPUT"
135
+ echo "resolved_ref=refs/pull/${{ inputs.pr }}/head" >> "$GITHUB_OUTPUT"
136
+ echo "Using PR ${{ inputs.pr }} from airbytehq/$REPO -> refs/pull/${{ inputs.pr }}/head"
137
+
138
+ - name: Checkout connector repo
139
+ uses: actions/checkout@v6
140
+ with:
141
+ repository: airbytehq/${{ steps.resolve-connector-ref.outputs.repo }}
142
+ ref: ${{ steps.resolve-connector-ref.outputs.resolved_ref }}
143
+ path: connector-repo
144
+ fetch-depth: 1
145
+
146
+ - name: Install Cloud SQL Proxy
147
+ if: ${{ inputs.connection_id != '' }}
148
+ run: |
149
+ set -euo pipefail
150
+ echo "Installing Cloud SQL Proxy..."
151
+ VERSION="v2.15.0"
152
+ BASE_URL="https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/${VERSION}"
153
+ BINARY_NAME="cloud-sql-proxy.linux.amd64"
154
+ # Checksum from GitHub release: https://github.com/GoogleCloudPlatform/cloud-sql-proxy/releases/tag/v2.15.0
155
+ EXPECTED_SHA256="cf3e9d069ea0d09cdfddce77daa36811bb0b963b1169e9c3f1586433ca7325fa"
156
+
157
+ echo "Downloading Cloud SQL Proxy binary..."
158
+ curl -fsSLO "${BASE_URL}/${BINARY_NAME}"
159
+
160
+ echo "Verifying Cloud SQL Proxy checksum..."
161
+ echo "${EXPECTED_SHA256} ${BINARY_NAME}" | sha256sum -c -
162
+
163
+ chmod +x "${BINARY_NAME}"
164
+ sudo mv "${BINARY_NAME}" /usr/local/bin/cloud-sql-proxy
165
+ cloud-sql-proxy --version
166
+
167
+ - name: Start Cloud SQL Proxy
168
+ if: ${{ inputs.connection_id != '' }}
169
+ env:
170
+ GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
171
+ run: |
172
+ echo "Starting Cloud SQL Proxy for connection secret retrieval..."
173
+ # Start proxy in background on port 15432
174
+ uv run airbyte-ops cloud db start-proxy --port 15432 &
175
+ # Wait for proxy to be ready
176
+ for i in {1..30}; do
177
+ if nc -z localhost 15432 2>/dev/null; then
178
+ echo "Cloud SQL Proxy is ready on port 15432"
179
+ break
180
+ fi
181
+ echo "Waiting for proxy to start... ($i/30)"
182
+ sleep 1
183
+ done
184
+ if ! nc -z localhost 15432 2>/dev/null; then
185
+ echo "ERROR: Cloud SQL Proxy failed to start"
186
+ exit 1
187
+ fi
188
+
189
+ - name: Build common args
190
+ id: build-args
191
+ run: |
192
+ SKIP_COMPARE="${{ inputs.skip_compare }}"
193
+ ARGS=""
194
+
195
+ # Always add connector_name and repo-root (both are required)
196
+ ARGS+=" --connector-name ${{ inputs.connector_name }}"
197
+ ARGS+=" --repo-root ${{ github.workspace }}/connector-repo"
198
+
199
+ # Add connection_id if provided
200
+ if [ -n "${{ inputs.connection_id }}" ]; then
201
+ ARGS+=" --connection-id ${{ inputs.connection_id }}"
202
+ fi
203
+
204
+ if [ "$SKIP_COMPARE" = "true" ]; then
205
+ # Single-version mode: use --skip-compare flag
206
+ ARGS+=" --skip-compare"
207
+
208
+ if [ -n "${{ inputs.override_test_image }}" ]; then
209
+ ARGS+=" --test-image ${{ inputs.override_test_image }}"
210
+ fi
211
+ else
212
+ # Comparison mode (default): run target vs control
213
+ if [ -n "${{ inputs.override_control_image }}" ]; then
214
+ ARGS+=" --control-image ${{ inputs.override_control_image }}"
215
+ fi
216
+ fi
217
+
218
+ echo "common_args=$ARGS" >> "$GITHUB_OUTPUT"
219
+
220
+ - name: Run SPEC
221
+ id: run-spec
222
+ env:
223
+ AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
224
+ AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
225
+ GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
226
+ GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
227
+ USE_CONNECTION_SECRET_RETRIEVER: "true"
228
+ run: |
229
+ echo "Running: uv run airbyte-ops cloud connector regression-test --command spec ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/spec"
230
+ uv run airbyte-ops cloud connector regression-test --command spec ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/spec
231
+
232
+ - name: Upload SPEC Artifacts
233
+ if: always()
234
+ uses: actions/upload-artifact@v5
235
+ with:
236
+ name: regression-test-artifacts-spec-${{ github.run_id }}
237
+ path: /tmp/regression_test_artifacts/spec/
238
+ retention-days: 7
239
+
240
+ - name: Run CHECK
241
+ id: run-check
242
+ env:
243
+ AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
244
+ AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
245
+ GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
246
+ GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
247
+ USE_CONNECTION_SECRET_RETRIEVER: "true"
248
+ run: |
249
+ echo "Running: uv run airbyte-ops cloud connector regression-test --command check ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/check"
250
+ uv run airbyte-ops cloud connector regression-test --command check ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/check
251
+
252
+ - name: Upload CHECK Artifacts
253
+ if: always()
254
+ uses: actions/upload-artifact@v5
255
+ with:
256
+ name: regression-test-artifacts-check-${{ github.run_id }}
257
+ path: /tmp/regression_test_artifacts/check/
258
+ retention-days: 7
259
+
260
+ - name: Run DISCOVER
261
+ id: run-discover
262
+ env:
263
+ AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
264
+ AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
265
+ GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
266
+ GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
267
+ USE_CONNECTION_SECRET_RETRIEVER: "true"
268
+ run: |
269
+ echo "Running: uv run airbyte-ops cloud connector regression-test --command discover ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/discover"
270
+ uv run airbyte-ops cloud connector regression-test --command discover ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/discover
271
+
272
+ - name: Upload DISCOVER Artifacts
273
+ if: always()
274
+ uses: actions/upload-artifact@v5
275
+ with:
276
+ name: regression-test-artifacts-discover-${{ github.run_id }}
277
+ path: /tmp/regression_test_artifacts/discover/
278
+ retention-days: 7
279
+
280
+ - name: Run READ
281
+ id: run-read
282
+ if: inputs.skip_read_action != true
283
+ env:
284
+ AIRBYTE_CLOUD_CLIENT_ID: ${{ secrets.AIRBYTE_CLOUD_CLIENT_ID }}
285
+ AIRBYTE_CLOUD_CLIENT_SECRET: ${{ secrets.AIRBYTE_CLOUD_CLIENT_SECRET }}
286
+ GCP_GSM_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS }}
287
+ GCP_PROD_DB_ACCESS_CREDENTIALS: ${{ secrets.GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL }}
288
+ USE_CONNECTION_SECRET_RETRIEVER: "true"
289
+ run: |
290
+ echo "Running: uv run airbyte-ops cloud connector regression-test --command read ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/read"
291
+ uv run airbyte-ops cloud connector regression-test --command read ${{ steps.build-args.outputs.common_args }} --output-dir /tmp/regression_test_artifacts/read
292
+
293
+ - name: Upload READ Artifacts
294
+ if: always() && inputs.skip_read_action != true
295
+ uses: actions/upload-artifact@v5
296
+ with:
297
+ name: regression-test-artifacts-read-${{ github.run_id }}
298
+ path: /tmp/regression_test_artifacts/read/
299
+ retention-days: 7
300
+
301
+ - name: Determine Final Status
302
+ id: final-status
303
+ if: always()
304
+ run: |
305
+ SPEC_RESULT="${{ steps.run-spec.outcome }}"
306
+ CHECK_RESULT="${{ steps.run-check.outcome }}"
307
+ DISCOVER_RESULT="${{ steps.run-discover.outcome }}"
308
+ READ_RESULT="${{ steps.run-read.outcome }}"
309
+ SKIP_READ="${{ inputs.skip_read_action }}"
310
+
311
+ echo "SPEC: $SPEC_RESULT"
312
+ echo "CHECK: $CHECK_RESULT"
313
+ echo "DISCOVER: $DISCOVER_RESULT"
314
+ echo "READ: $READ_RESULT (skip_read=$SKIP_READ)"
315
+
316
+ if [ "$SPEC_RESULT" != "success" ] || [ "$CHECK_RESULT" != "success" ] || [ "$DISCOVER_RESULT" != "success" ]; then
317
+ echo "success=false" >> "$GITHUB_OUTPUT"
318
+ exit 0
319
+ fi
320
+
321
+ if [ "$SKIP_READ" != "true" ] && [ "$READ_RESULT" != "success" ]; then
322
+ echo "success=false" >> "$GITHUB_OUTPUT"
323
+ exit 0
324
+ fi
325
+
326
+ echo "success=true" >> "$GITHUB_OUTPUT"
327
+
328
+ - name: Create Regression Test Report Check
329
+ id: create-report-check
330
+ if: always()
331
+ uses: actions/github-script@v7
332
+ with:
333
+ script: |
334
+ const fs = require('fs');
335
+
336
+ // Collect results from each command
337
+ const specResult = '${{ steps.run-spec.outcome }}';
338
+ const checkResult = '${{ steps.run-check.outcome }}';
339
+ const discoverResult = '${{ steps.run-discover.outcome }}';
340
+ const readResult = '${{ steps.run-read.outcome }}';
341
+ const skipRead = '${{ inputs.skip_read_action }}' === 'true';
342
+
343
+ const results = [
344
+ { command: 'spec', result: specResult },
345
+ { command: 'check', result: checkResult },
346
+ { command: 'discover', result: discoverResult },
347
+ ];
348
+ if (!skipRead) {
349
+ results.push({ command: 'read', result: readResult });
350
+ }
351
+
352
+ // Build report content
353
+ let reportContent = '# Sequential Regression Test Report\n\n';
354
+ reportContent += '| Command | Result |\n';
355
+ reportContent += '|---------|--------|\n';
356
+ for (const r of results) {
357
+ const status = r.result === 'success' ? 'PASS' : 'FAIL';
358
+ reportContent += `| ${r.command.toUpperCase()} | ${status} |\n`;
359
+ }
360
+
361
+ const allPassed = results.every(r => r.result === 'success');
362
+ const conclusion = allPassed ? 'success' : 'failure';
363
+
364
+ const skipCompare = '${{ inputs.skip_compare }}' === 'true';
365
+ const connectorName = '${{ inputs.connector_name }}';
366
+ const prNumber = '${{ inputs.pr }}';
367
+ const commands = skipRead ? 'spec, check, discover' : 'spec, check, discover, read';
368
+ let summary;
369
+ if (skipCompare) {
370
+ const image = '${{ inputs.override_test_image }}' || `(built from ${connectorName} PR #${prNumber})`;
371
+ summary = `Single-version sequential regression test: \`${image}\` running \`${commands}\` commands.`;
372
+ } else {
373
+ const controlImage = '${{ inputs.override_control_image }}' || '(auto-detected)';
374
+ summary = `Comparison sequential regression test: \`${connectorName}\` (PR #${prNumber}) vs \`${controlImage}\` running \`${commands}\` commands.`;
375
+ }
376
+
377
+ const check = await github.rest.checks.create({
378
+ owner: context.repo.owner,
379
+ repo: context.repo.repo,
380
+ name: 'Regression Test Report',
381
+ head_sha: context.sha,
382
+ status: 'completed',
383
+ conclusion: conclusion,
384
+ output: {
385
+ title: 'Regression Test Report',
386
+ summary: summary,
387
+ text: reportContent
388
+ }
389
+ });
390
+
391
+ core.setOutput('report_url', check.data.html_url);
392
+
393
+ - name: Add Report Link to Summary
394
+ if: always()
395
+ run: |
396
+ {
397
+ echo ""
398
+ echo "---"
399
+ echo ""
400
+ echo "### View Full Report"
401
+ echo ""
402
+ echo "[Open Regression Test Report](${{ steps.create-report-check.outputs.report_url }})"
403
+ } >> "$GITHUB_STEP_SUMMARY"
404
+ outputs:
405
+ success: ${{ steps.final-status.outputs.success }}
406
+ summary_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
407
+ report_url: ${{ steps.create-report-check.outputs.report_url }}
@@ -51,6 +51,13 @@ In CI, these secrets are available at the org level and a Cloud SQL Auth Proxy h
51
51
 
52
52
  To grant a service account access to the prod database query tools, you need to grant permissions on the `CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS` secret in Google Secret Manager (see `CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS_SECRET_ID` in `src/airbyte_ops_mcp/constants.py`). The service account needs both `secretAccessor` (to read the secret value) and `viewer` (to list secret versions) roles.
53
53
 
54
+ ### Known Service Accounts
55
+
56
+ The following service accounts are currently used for specific purposes:
57
+
58
+ - **`devin-ai-support-service@prod-ab-cloud-proj.iam.gserviceaccount.com`** - Used by Devin AI for interactive development and testing
59
+ - **`e2e-testing-gsm-reader@dataline-integration-testing.iam.gserviceaccount.com`** - Used by CI workflows for regression testing (note: this is a cross-project service account from `dataline-integration-testing`)
60
+
54
61
  ### Required Permissions
55
62
 
56
63
  #### Secret Manager Permissions
@@ -110,6 +117,35 @@ gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
110
117
  --condition=None
111
118
  ```
112
119
 
120
+ #### Workspace-Specific Secrets (for `--with-secrets`)
121
+
122
+ The `fetch-connection-config --with-secrets` feature retrieves unmasked connector credentials. This requires access to **two types of secrets**:
123
+
124
+ 1. **`CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS`** - Database connection details (documented above)
125
+ 2. **Workspace-specific secrets** - The actual connector credentials stored in Secret Manager with names like `airbyte_workspace_{workspace_id}_secret_{secret_id}_v1`
126
+
127
+ The permissions documented above only grant access to the database connection secret. To retrieve actual connector credentials, the service account also needs Secret Manager access to the workspace-specific secrets. This can be granted in two ways:
128
+
129
+ **Option A: Project-level access (broad)**
130
+ ```bash
131
+ # Grant project-level Secret Manager access (allows reading ALL secrets in the project)
132
+ gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
133
+ --member="serviceAccount:YOUR_SERVICE_ACCOUNT@prod-ab-cloud-proj.iam.gserviceaccount.com" \
134
+ --role="roles/secretmanager.secretAccessor" \
135
+ --condition=None
136
+
137
+ gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
138
+ --member="serviceAccount:YOUR_SERVICE_ACCOUNT@prod-ab-cloud-proj.iam.gserviceaccount.com" \
139
+ --role="roles/secretmanager.viewer" \
140
+ --condition=None
141
+ ```
142
+
143
+ **Option B: Scoped access with IAM conditions (recommended for production)**
144
+
145
+ Use IAM conditions to restrict access to secrets matching a specific pattern (e.g., only secrets for certain workspaces). This requires setting up conditional IAM bindings - consult GCP documentation for details.
146
+
147
+ **Note:** Without workspace-specific secret access, `fetch-connection-config` will work but `--with-secrets` will fail with a "Permission denied" error when trying to resolve the actual credentials.
148
+
113
149
  To check if the permission is already granted:
114
150
 
115
151
  ```bash
@@ -158,3 +194,26 @@ export USE_CLOUD_SQL_PROXY=1
158
194
  export DB_PORT=5433
159
195
  export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.json
160
196
  ```
197
+
198
+ ## Regression Test Workflow
199
+
200
+ The [Connector Regression Test workflow](https://github.com/airbytehq/airbyte-ops-mcp/actions/workflows/connector-regression-test.yml) can be triggered manually or via the `run_regression_tests` MCP tool.
201
+
202
+ ### Workflow Parameters
203
+
204
+ | Parameter | Required | Description |
205
+ |-----------|----------|-------------|
206
+ | `connector_name` | Yes | Connector name (e.g., `source-amazon-seller-partner`) |
207
+ | `pr` | Yes | PR number from the airbyte repo to build from (e.g., `71055`) |
208
+ | `connection_id` | No | Airbyte Cloud connection ID to fetch config/catalog from |
209
+ | `skip_compare` | No | If true, run single-version tests only (default: false) |
210
+ | `skip_read_action` | No | If true, skip the read action (default: false) |
211
+ | `override_test_image` | No | Override test connector image with tag |
212
+ | `override_control_image` | No | Override control connector image (baseline version) |
213
+
214
+ ### Required CI Secrets
215
+
216
+ The workflow requires these secrets (configured at the org level):
217
+ - `AIRBYTE_CLOUD_CLIENT_ID` / `AIRBYTE_CLOUD_CLIENT_SECRET` - For Airbyte Cloud API access
218
+ - `GCP_GSM_CREDENTIALS` - For GCP Secret Manager access
219
+ - `GCP_GSM_CREDENTIALS_FOR_TESTING_TOOL` - For prod database access (mapped to `GCP_PROD_DB_ACCESS_CREDENTIALS`)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-internal-ops
3
- Version: 0.3.1
3
+ Version: 0.4.1
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
@@ -8,7 +8,7 @@ Usage:
8
8
  Examples:
9
9
  poe mcp-tool-test publish_connector_to_airbyte_registry \
10
10
  '{"connector_name": "destination-pinecone", "pr_number": 70202}'
11
- poe mcp-tool-test check_workflow_status \
11
+ poe mcp-tool-test check_ci_workflow_status \
12
12
  '{"workflow_url": "https://github.com/airbytehq/airbyte/actions/runs/12345"}'
13
13
  poe mcp-tool-test get_docker_image_info \
14
14
  '{"image": "airbyte/destination-pinecone", "tag": "0.1.0-preview.abc1234"}'
@@ -0,0 +1,174 @@
1
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
2
+ """CLI commands for GitHub operations.
3
+
4
+ Commands:
5
+ airbyte-ops gh workflow status - Check GitHub Actions workflow status
6
+ airbyte-ops gh workflow trigger - Trigger a GitHub Actions CI workflow
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import json
12
+ import time
13
+ from typing import Annotated
14
+
15
+ from cyclopts import App, Parameter
16
+
17
+ from airbyte_ops_mcp.cli._base import app
18
+ from airbyte_ops_mcp.cli._shared import exit_with_error, print_json
19
+ from airbyte_ops_mcp.mcp.github_actions import (
20
+ check_ci_workflow_status,
21
+ trigger_ci_workflow,
22
+ )
23
+
24
+ # Create the gh sub-app
25
+ gh_app = App(name="gh", help="GitHub operations.")
26
+ app.command(gh_app)
27
+
28
+ # Create the workflow sub-app under gh
29
+ workflow_app = App(name="workflow", help="GitHub Actions workflow operations.")
30
+ gh_app.command(workflow_app)
31
+
32
+
33
+ @workflow_app.command(name="status")
34
+ def workflow_status(
35
+ url: Annotated[
36
+ str | None,
37
+ Parameter(
38
+ help="Full GitHub Actions workflow run URL "
39
+ "(e.g., 'https://github.com/owner/repo/actions/runs/12345')."
40
+ ),
41
+ ] = None,
42
+ owner: Annotated[
43
+ str | None,
44
+ Parameter(help="Repository owner (e.g., 'airbytehq')."),
45
+ ] = None,
46
+ repo: Annotated[
47
+ str | None,
48
+ Parameter(help="Repository name (e.g., 'airbyte')."),
49
+ ] = None,
50
+ run_id: Annotated[
51
+ int | None,
52
+ Parameter(help="Workflow run ID."),
53
+ ] = None,
54
+ ) -> None:
55
+ """Check the status of a GitHub Actions workflow run.
56
+
57
+ Provide either --url OR all of (--owner, --repo, --run-id).
58
+ """
59
+ # Validate input parameters
60
+ if url:
61
+ if owner or repo or run_id:
62
+ exit_with_error(
63
+ "Cannot specify --url together with --owner/--repo/--run-id. "
64
+ "Use either --url OR the component parts."
65
+ )
66
+ elif not (owner and repo and run_id):
67
+ exit_with_error(
68
+ "Must provide either --url OR all of (--owner, --repo, --run-id)."
69
+ )
70
+
71
+ result = check_ci_workflow_status(
72
+ workflow_url=url,
73
+ owner=owner,
74
+ repo=repo,
75
+ run_id=run_id,
76
+ )
77
+ print_json(result.model_dump())
78
+
79
+
80
+ @workflow_app.command(name="trigger")
81
+ def workflow_trigger(
82
+ owner: Annotated[
83
+ str,
84
+ Parameter(help="Repository owner (e.g., 'airbytehq')."),
85
+ ],
86
+ repo: Annotated[
87
+ str,
88
+ Parameter(help="Repository name (e.g., 'airbyte')."),
89
+ ],
90
+ workflow_file: Annotated[
91
+ str,
92
+ Parameter(help="Workflow file name (e.g., 'connector-regression-test.yml')."),
93
+ ],
94
+ workflow_definition_ref: Annotated[
95
+ str | None,
96
+ Parameter(
97
+ help="Branch name or PR number for the workflow definition to use. "
98
+ "If a PR number is provided, it resolves to the PR's head branch name. "
99
+ "Defaults to 'main' if not specified."
100
+ ),
101
+ ] = None,
102
+ inputs: Annotated[
103
+ str | None,
104
+ Parameter(
105
+ help='Workflow inputs as a JSON string (e.g., \'{"key": "value"}\').'
106
+ ),
107
+ ] = None,
108
+ wait: Annotated[
109
+ bool,
110
+ Parameter(help="Wait for the workflow to complete before returning."),
111
+ ] = False,
112
+ wait_seconds: Annotated[
113
+ int,
114
+ Parameter(
115
+ help="Maximum seconds to wait for workflow completion (default: 600)."
116
+ ),
117
+ ] = 600,
118
+ ) -> None:
119
+ """Trigger a GitHub Actions CI workflow via workflow_dispatch.
120
+
121
+ This command triggers a workflow in any GitHub repository that has workflow_dispatch
122
+ enabled. It resolves PR numbers to branch names automatically.
123
+ """
124
+ # Parse inputs JSON if provided
125
+ parsed_inputs: dict[str, str] | None = None
126
+ if inputs:
127
+ try:
128
+ parsed_inputs = json.loads(inputs)
129
+ except json.JSONDecodeError as e:
130
+ exit_with_error(f"Invalid JSON for --inputs: {e}")
131
+
132
+ # Trigger the workflow
133
+ result = trigger_ci_workflow(
134
+ owner=owner,
135
+ repo=repo,
136
+ workflow_file=workflow_file,
137
+ workflow_definition_ref=workflow_definition_ref,
138
+ inputs=parsed_inputs,
139
+ )
140
+
141
+ print_json(result.model_dump())
142
+
143
+ # If wait is enabled and we have a run_id, poll for completion
144
+ if wait and result.run_id:
145
+ print(f"\nWaiting for workflow to complete (timeout: {wait_seconds}s)...")
146
+ start_time = time.time()
147
+ poll_interval = 10 # seconds
148
+
149
+ while time.time() - start_time < wait_seconds:
150
+ status_result = check_ci_workflow_status(
151
+ owner=owner,
152
+ repo=repo,
153
+ run_id=result.run_id,
154
+ )
155
+
156
+ if status_result.status == "completed":
157
+ print(
158
+ f"\nWorkflow completed with conclusion: {status_result.conclusion}"
159
+ )
160
+ print_json(status_result.model_dump())
161
+ return
162
+
163
+ elapsed = int(time.time() - start_time)
164
+ print(f" Status: {status_result.status} (elapsed: {elapsed}s)")
165
+ time.sleep(poll_interval)
166
+
167
+ print(f"\nTimeout reached after {wait_seconds}s. Workflow still running.")
168
+ # Print final status
169
+ final_status = check_ci_workflow_status(
170
+ owner=owner,
171
+ repo=repo,
172
+ run_id=result.run_id,
173
+ )
174
+ print_json(final_status.model_dump())
@@ -28,11 +28,11 @@ from airbyte_ops_mcp.cli._shared import (
28
28
  print_json,
29
29
  print_success,
30
30
  )
31
- from airbyte_ops_mcp.github_actions import (
31
+ from airbyte_ops_mcp.github_api import (
32
32
  get_file_contents_at_ref,
33
33
  resolve_github_token,
34
34
  )
35
- from airbyte_ops_mcp.mcp.github import get_docker_image_info
35
+ from airbyte_ops_mcp.mcp.github_actions import get_docker_image_info
36
36
  from airbyte_ops_mcp.mcp.prerelease import (
37
37
  compute_prerelease_docker_image_tag,
38
38
  publish_connector_to_airbyte_registry,