Skip to content

ci: read gh's 'no artifact matches' as no step summaries (#2074) - #2075

Merged
JarryShaw merged 1 commit into
mainfrom
fix/2074-gh-no-artifact-wording
Oct 23, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
fix/2074-gh-no-artifact-wording

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • ci — changes to CI configuration files and scripts

Description of your pull request and other information

Closes #2074. util/check_suite_report.py treated only no valid artifacts found to download as "no summaries". The first live report (Discussion #2072) instead showed gh's no artifact matches any of the names or patterns provided as a failure to read the summaries.

  • The messages: cli/cli's runDownload (pkg/cmd/run/download/download.go) has three "nothing to download" messages, checked from v1.9.0 to trunk:

    • no valid artifacts found to download
    • no artifact matches any of the names or patterns provided (v2.11.0+)
    • no artifact matches any of the names provided (up to v2.10.0)

    A new NOTHING set holds all three, and a failure counts as "no summaries" only when one of gh's output lines is exactly one of them. Every other failure still gives the "could not be read" line and a warning.

  • Tests: a new stand-in gh mode prints a given message.

    • Each of the three wordings must give a report with no summaries section and no warning.
    • A 401, a 404, a DNS failure, and a longer line that merely contains the phrase must still warn.
    • On main, the two no artifact matches cases and the longer-line case fail.
  • Results: the reporter, helper, KTLO-guard and discussion-report tests pass.

`gh run download --pattern` fails with one of three messages when a run
has nothing to download, per cli/cli pkg/cmd/run/download/download.go
(runDownload): "no valid artifacts found to download" when the run has no
unexpired artifact, and "no artifact matches any of the names or patterns
provided" (gh >= 2.11.0; "... of the names provided" before) when none
matches. Only the first was handled, so Discussion #2072 said the
summaries "could not be read". Match each as a whole stderr line; any
other failure still surfaces.
@JarryShaw JarryShaw added bug Issues reporting a defect (set by the bug report template; a default, not an assessment) ci Pull requests that change CI or workflow configuration (ci: subject prefix) review: running A cross-review is in flight against the current head - no verdict yet labels Oct 23, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 458f12ff9 (Sonnet cross-review).

  • The messages: checked in cli/cli's download.go at trunk, v2.10.0, v2.11.0 and v2.40.0. There are exactly three "nothing to download" errors, all errors.New with no prefix. gh's printError writes them bare with fmt.Fprintln, so an exact line match catches them. The installed gh 2.103.0 matches trunk.
  • Genuine errors: every other error in that file (error fetching artifacts, error downloading, and the rest) still warns, and so do 401, 404 and DNS failures.
  • The reviewer's own cases: a trailing \r\n, trailing spaces, or a deprecation line before the message is still read as "no summaries". A different case or an added period still warns.
  • One leniency: if stderr ever held a real error line and an exact "nothing" line together, the error would be hidden. gh emits only one error, so this isn't blocking.

@JarryShaw JarryShaw added review: good-to-go Cross-review at the current head says ready; CI state is separate and removed review: running A cross-review is in flight against the current head - no verdict yet labels Oct 23, 2026
@JarryShaw JarryShaw moved this to In review in PyPCAPKit Oct 23, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

Ready to merge at 458f12ff9: the review is GOOD TO GO and CI is complete (56 passed, 0 failed). The ordering leg ran 2043 tests with 0 failures. The 3.8–3.10 KTLO legs show 0 failing tests, and the PR is based on current main (61bb4ba66).

@github-actions

Copy link
Copy Markdown
Contributor

Coverage: 91.54% (unit tier, Python 3.15, 458f12ff9, Unit Tests run success)

Package Statements Missed Branches Partial Cover
pcapkit (top level) 104 4 20 2 95.16%
pcapkit/const 19599 880 2618 866 92.12%
pcapkit/corekit 2565 71 812 37 96.56%
pcapkit/dumpkit 282 3 102 3 98.44%
pcapkit/foundation 2930 23 1022 25 98.79%
pcapkit/interface 138 4 52 3 96.32%
pcapkit/protocols 17414 219 4574 185 98.14%
pcapkit/toolkit 869 36 298 10 95.20%
pcapkit/utilities 473 7 136 5 98.03%
pcapkit/vendor 4432 1988 1018 167 51.87%

Per-file detail: the coverage-html artifact of this run.

@JarryShaw
JarryShaw merged commit 935e88b into main Oct 23, 2026
65 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in PyPCAPKit Oct 23, 2026
@JarryShaw
JarryShaw deleted the fix/2074-gh-no-artifact-wording branch October 23, 2026 13:31
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Oct 23, 2026
@JarryShaw JarryShaw added this to the PyPCAPKit v1.5 milestone Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Issues reporting a defect (set by the bug report template; a default, not an assessment) ci Pull requests that change CI or workflow configuration (ci: subject prefix)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

ci: check_suite_report reads gh's 'no artifact matches' as an error

1 participant