airbyte-internal-ops 0.7.1__py3-none-any.whl → 0.8.0__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-internal-ops
3
- Version: 0.7.1
3
+ Version: 0.8.0
4
4
  Summary: MCP and API interfaces that let the agents do the admin work
5
5
  Author-email: Aaron Steers <aj@airbyte.io>
6
6
  Keywords: admin,airbyte,api,mcp
@@ -226,7 +226,7 @@ airbyte_ops_mcp/cli/_shared.py,sha256=jg-xMyGzTCGPqKd8VTfE_3kGPIyO_3Kx5sQbG4rPc0
226
226
  airbyte_ops_mcp/cli/app.py,sha256=xxlyJzlFvZuy-qKAhTPPmzj-t0o7MSqQ7aPHonfT1vU,790
227
227
  airbyte_ops_mcp/cli/cloud.py,sha256=jac0FcG3UvNNeNNhqZR04uY9BCyVvins1kjO0LRZ86Y,45861
228
228
  airbyte_ops_mcp/cli/gh.py,sha256=koJPu0MDB6AW7mJq2z4dZV65ofvsZTkqoeitGF8KJR8,5364
229
- airbyte_ops_mcp/cli/local.py,sha256=7C6PZ2RHDnOciurrSan5te93LWPjC1Rfwes6y37JL5Q,20756
229
+ airbyte_ops_mcp/cli/local.py,sha256=57F_FrC8oEEa9eb85sptJOSDncS_ItlWtnO6DcJomKk,20874
230
230
  airbyte_ops_mcp/cli/registry.py,sha256=L4nDKhlegr31gSE-GUvDFSq10KgDz5kJuZXgLIxYIyg,9785
231
231
  airbyte_ops_mcp/cloud_admin/__init__.py,sha256=cqE96Q10Kp6elhH9DAi6TVsIwSUy3sooDLLrxTaktGk,816
232
232
  airbyte_ops_mcp/cloud_admin/api_client.py,sha256=pzdnZpIxOaXJsF_vQuw9_goiDbqwgEQxFwZwsoupY40,57459
@@ -241,7 +241,7 @@ airbyte_ops_mcp/connector_ops/__init__.py,sha256=5nkBfeHDRKVyqEln8bvPs-J1qDDM6RB
241
241
  airbyte_ops_mcp/connector_ops/utils.py,sha256=yZsrdj2Jv-6rb97recNncZCkmY79EqpPiZOMUOf8ke4,28573
242
242
  airbyte_ops_mcp/connector_qa/README.md,sha256=ajuFHew-gZPqGwoX3AAPbGvuysUyQJqTKmzvVEDJRWk,5146
243
243
  airbyte_ops_mcp/connector_qa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
244
- airbyte_ops_mcp/connector_qa/cli.py,sha256=e9hygxSttegibGzs3g6xEJ1AiXEnOnrIFQQEsNWTY6E,5037
244
+ airbyte_ops_mcp/connector_qa/cli.py,sha256=1GHsQtfCcJEQbFf7PpFTcgtzRJT4lD8-o2yocjymkus,5949
245
245
  airbyte_ops_mcp/connector_qa/consts.py,sha256=XK0M1dend18Mz1ThxS-tUEiU1zb_4HUcje7BR9Eb6mQ,1161
246
246
  airbyte_ops_mcp/connector_qa/models.py,sha256=PDWeKVzqOa5VLa5iLHE76h7qePL3r-zhf8dmeLuXMUw,11488
247
247
  airbyte_ops_mcp/connector_qa/utils.py,sha256=AtegjKBGmYqq9juPedJ4-Jt7LBxcD4ZYNIIS7iLEqiU,1476
@@ -305,7 +305,7 @@ airbyte_ops_mcp/regression_tests/regression/comparators.py,sha256=MJkLZEKHivgrG0
305
305
  airbyte_ops_mcp/regression_tests/validation/__init__.py,sha256=MBEwGOoNuqT4_oCahtoK62OKWIjUCfWa7vZTxNj_0Ek,1532
306
306
  airbyte_ops_mcp/regression_tests/validation/catalog_validators.py,sha256=jqqVAMOk0mtdPgwu4d0hA0ZEjtsNh5gapvGydRv3_qk,12553
307
307
  airbyte_ops_mcp/regression_tests/validation/record_validators.py,sha256=RjauAhKWNwxMBTu0eNS2hMFNQVs5CLbQU51kp6FOVDk,7432
308
- airbyte_internal_ops-0.7.1.dist-info/METADATA,sha256=t0gLi4mWDcu44KHUYJJ43_6l1fFlkQBnO2V9ywznbNQ,5964
309
- airbyte_internal_ops-0.7.1.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
310
- airbyte_internal_ops-0.7.1.dist-info/entry_points.txt,sha256=WxP0l7bRFss4Cr5uQqVj9mTEKwnRKouNuphXQF0lotA,171
311
- airbyte_internal_ops-0.7.1.dist-info/RECORD,,
308
+ airbyte_internal_ops-0.8.0.dist-info/METADATA,sha256=b9pAOYSCdbb5hYDF-Wuk8wWG1r2uh7-Su-8wzwPOE_s,5964
309
+ airbyte_internal_ops-0.8.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
310
+ airbyte_internal_ops-0.8.0.dist-info/entry_points.txt,sha256=WxP0l7bRFss4Cr5uQqVj9mTEKwnRKouNuphXQF0lotA,171
311
+ airbyte_internal_ops-0.8.0.dist-info/RECORD,,
@@ -559,11 +559,12 @@ def run_qa_checks(
559
559
  for connector in connectors:
560
560
  for qa_check in checks_to_run:
561
561
  result = qa_check.run(connector)
562
- status_icon = (
563
- "[green]PASS[/green]"
564
- if result.status == CheckStatus.PASSED
565
- else "[red]FAIL[/red]"
566
- )
562
+ if result.status == CheckStatus.PASSED:
563
+ status_icon = "[green]PASS[/green]"
564
+ elif result.status == CheckStatus.SKIPPED:
565
+ status_icon = "[yellow]🔶 SKIP[/yellow]"
566
+ else:
567
+ status_icon = "[red]❌ FAIL[/red]"
567
568
  console.print(
568
569
  f"{status_icon} {connector.technical_name}: {result.check.name}"
569
570
  )
@@ -25,6 +25,10 @@ from airbyte_ops_mcp.connector_qa.utils import (
25
25
  get_all_connectors_in_directory,
26
26
  remove_strict_encrypt_suffix,
27
27
  )
28
+ from airbyte_ops_mcp.regression_tests.ci_output import (
29
+ is_ci,
30
+ write_github_summary,
31
+ )
28
32
 
29
33
 
30
34
  # HELPERS
@@ -43,6 +47,33 @@ async def run_checks_for_connector(
43
47
  return check_results
44
48
 
45
49
 
50
+ def generate_qa_summary(failed_checks: List[CheckResult]) -> str:
51
+ """Generate a markdown summary of QA check failures for GitHub Actions.
52
+
53
+ Args:
54
+ failed_checks: List of failed check results.
55
+
56
+ Returns:
57
+ Markdown-formatted summary string.
58
+ """
59
+ if not failed_checks:
60
+ return "## ✅ Connector QA Check Results\n\nAll checks passed."
61
+
62
+ lines = [
63
+ "## ❌ Connector QA Check Results",
64
+ "",
65
+ f"**{len(failed_checks)} check(s) failed:**",
66
+ "",
67
+ ]
68
+
69
+ for result in failed_checks:
70
+ lines.append(
71
+ f"- **{result.connector.technical_name}**: {result.check.name} - {result.message}"
72
+ )
73
+
74
+ return "\n".join(lines)
75
+
76
+
46
77
  @click.group
47
78
  async def connectors_qa() -> None:
48
79
  pass
@@ -118,11 +149,17 @@ async def run(
118
149
  if report_path:
119
150
  Report(check_results=all_connector_check_results).write(report_path)
120
151
  click.echo(f"Report written to {report_path}")
152
+
121
153
  failed_checks = [
122
154
  check_result
123
155
  for check_result in all_connector_check_results
124
156
  if check_result.status is CheckStatus.FAILED
125
157
  ]
158
+
159
+ if is_ci():
160
+ summary = generate_qa_summary(failed_checks)
161
+ write_github_summary(summary)
162
+
126
163
  if failed_checks:
127
164
  raise click.ClickException(f"{len(failed_checks)} checks failed")
128
165