fix: import command exits early on first failure when importing multiple artifacts

Offen
#393 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@A-d-i-t-y arbeitet bereits daran.

Seit 16.5.2026.

  • #394 von @A-d-i-t-y — offen

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
65/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
go
Bereich
cli

Rechercherichtung

Beginne am Einstiegspunkt des Importbefehls und finde den aktuellen os.Exit(1)-Pfad, der verwendet wird, wenn ein Artefakt fehlschlägt. Führe einen Import mehrerer Dateien mit einer fehlschlagenden Datei aus, um das bestehende Verhalten zu beobachten. Als erledigt gilt die Aufgabe, wenn jede Datei versucht wird, jedes Ergebnis gemeldet wird, eine abschließende Erfolgs-/Fehlerzusammenfassung ausgegeben wird und der Befehl mit dem Exit-Code 1 beendet wird, wenn eine Datei fehlschlägt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

component/cli kind/bug

Why we need this improvement:
When importing multiple comma-separated files, if one file fails,
the command immediately exits and remaining files are never imported.
Users have no visibility into which files succeeded and which failed.

How this will help:
All files should be attempted regardless of individual failures.
A summary at the end should show which files succeeded and which failed,
giving users complete feedback in one run.

Motivation:
This is a silent bug in CI/CD pipelines where partial imports can
cause hard-to-debug failures.

Problem

When running:
microcks import "file1.yaml,file2.yaml,file3.yaml"

If file2.yaml fails, the command immediately calls os.Exit(1)
and file3.yaml is never imported. The user has no idea which
files were successfully imported and which were not.

Proposed Fix

  • Collect errors instead of exiting immediately
  • Attempt all files regardless of individual failures
  • Print a summary at the end showing pass/fail for each file
  • Exit with code 1 only if any file failed

Example output after fix

Importing 'file1.yaml'... success
Importing 'file2.yaml'... failed: connection refused
Importing 'file3.yaml'... success

Import completed: 2 succeeded, 1 failed

Vorherrschende Sprache
Go
Sterne
59
Forks
74
Ø Merge
4 T. 5 Std.
Gemergte PRs (30 T.)
15

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microcks/microcks-cli

Alle Issues in microcks/microcks-cli

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.