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.
- {airbyte_internal_ops-0.7.1.dist-info → airbyte_internal_ops-0.8.0.dist-info}/METADATA +1 -1
- {airbyte_internal_ops-0.7.1.dist-info → airbyte_internal_ops-0.8.0.dist-info}/RECORD +6 -6
- airbyte_ops_mcp/cli/local.py +6 -5
- airbyte_ops_mcp/connector_qa/cli.py +37 -0
- {airbyte_internal_ops-0.7.1.dist-info → airbyte_internal_ops-0.8.0.dist-info}/WHEEL +0 -0
- {airbyte_internal_ops-0.7.1.dist-info → airbyte_internal_ops-0.8.0.dist-info}/entry_points.txt +0 -0
|
@@ -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=
|
|
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=
|
|
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.
|
|
309
|
-
airbyte_internal_ops-0.
|
|
310
|
-
airbyte_internal_ops-0.
|
|
311
|
-
airbyte_internal_ops-0.
|
|
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,,
|
airbyte_ops_mcp/cli/local.py
CHANGED
|
@@ -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
|
-
|
|
563
|
-
"[green]PASS[/green]"
|
|
564
|
-
|
|
565
|
-
|
|
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
|
|
|
File without changes
|
{airbyte_internal_ops-0.7.1.dist-info → airbyte_internal_ops-0.8.0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|