CLI: connectivity check prints diagnostics to stdout, breaking piped output
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 85/100
Hướng nghiên cứu
Bắt đầu với check_connectivity() và bộ gọi @test_connection của nó trong collectoss/application/cli/__init__.py; chạy lệnh tái hiện bằng Python của issue để quan sát chẩn đoán trên stdout và traceback. Xác minh rằng các kiểm tra thành công giữ cho stdout sạch, các kiểm tra thất bại báo cáo chẩn đoán qua stderr hoặc logging và các thông báo lỗi sử dụng exception đã bắt; thêm hoặc cập nhật các kiểm thử CLI tập trung nếu cấu trúc kiểm thử hiện có của dự án cung cấp điều đó.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description:
check_connectivity() in collectoss/application/cli/__init__.py (used by @test_connection) reports failures with print(), so they go to stdout. It prints for every failed URL even when a later URL succeeds and the command runs normally, and for network/protocol errors it also prints a full traceback. This puts stray lines at the top of a working command's stdout and breaks piping, e.g. JSON output. The "no way to get connection to the database" error also goes to stdout.
Also, the network/protocol error messages print the exception class ({httpx.NetworkError}) instead of the caught exception ({e}).
Question for maintainers: is CLI output a stable API surface, and should diagnostics go to stderr? Found while working on #547 .
How to reproduce:
Run, with the first URL unreachable and the second reachable: uv run python -c “from collectoss.application.cli import check_connectivity as c; c([‘http://10.255.255.1','http://github.com’])” 2>/dev/null
stdout gets Connectivity test Request 0 Network Error: <class 'httpx.NetworkError'> plus a traceback, even though the function returns True. In normal use this happens when any of chaoss.community, github.com or gitlab.com is slow or unreachable.
Expected behavior:
Diagnostics go to stderr (or logging), and only when the check actually fails, so collectoss <command> > out.json gives valid output. Error messages include the caught exception.
Screenshots
N/A
Log files
Full output (~55 lines):
Software versions:
- CollectOSS: 4027f1212
- OS: macOS 12.6.7 (21G651)
- Browser: N/A
- Ngôn ngữ chính
- Python
- Star
- 17
- Fork
- 27
- Merge trung bình
- 3 ngày 10 giờ
- Pull request đã merge (30 ngày)
- 10
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của chaoss/CollectOSS
-
Ensure privacy policy fields are filled out by CollectOSS maintainers for the default forgesĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
chaoss/CollectOSS#521 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
mask keys by default when checking API key expiryCó thể đã có người làm @iGufrankhan đã nhận 111 ngày trước. Đang mởchallenging first issue CLI
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
chaoss/CollectOSS#414 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
challenging first issue CLI
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
chaoss/CollectOSS#413 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Output current time alongside API key reset timeCó thể đã có người làm @Dipro-cyber đã nhận 118 ngày trước. Đang mởCLI good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
chaoss/CollectOSS#412 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
devops
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
chaoss/CollectOSS#406 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của chaoss/CollectOSS
Issue tương tự
-
[Bug]: IndexHandler.post crashes with HTTP 500 on malformed payloads, missing credentials, or when login is disabledCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 6 ngày
-
Bump zizmor to 1.31.1+Đang mởgithub_actions
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
collective/icalendar#2003 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
openzim/python-scraperlib#360 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
volcengine/OpenViking#6445 ·
Maintainer thường phản hồi trong vòng 1 ngày