diff --git a/images/gitea/src/cmd/package.rs b/images/gitea/src/cmd/package.rs index d82d765..314fbff 100644 --- a/images/gitea/src/cmd/package.rs +++ b/images/gitea/src/cmd/package.rs @@ -5,7 +5,7 @@ use std::path::Path; use cli_table::format::Justify; use cli_table::{Cell, Style, Table}; use color_eyre::eyre::{self, Context}; -use color_eyre::{Help, Report, Result}; +use color_eyre::{Help, Report, Result, SectionExt as _}; use globwalk::{DirEntry, GlobWalkerBuilder}; use reqwest::StatusCode; use serde::{Deserialize, Serialize}; @@ -275,7 +275,10 @@ pub(crate) fn run(action: &Action) -> Result<()> { eyre::bail!("No data received on stdin"); } - serde_json::from_str(&buf).wrap_err("Failed to parse stdin")? + serde_json::from_str(&buf) + .wrap_err("Failed to parse config") + .with_suggestion(|| "Double-check the `source` and `params` sections in your pipeline") + .with_section(|| buf.header("JSON"))? }; match action { diff --git a/images/gitea/src/cmd/pr.rs b/images/gitea/src/cmd/pr.rs index a20f39a..99dc439 100644 --- a/images/gitea/src/cmd/pr.rs +++ b/images/gitea/src/cmd/pr.rs @@ -5,7 +5,7 @@ use std::path::Path; use cli_table::format::Justify; use cli_table::{print_stderr, Cell, Style, Table}; use color_eyre::eyre::{self, Context}; -use color_eyre::Result; +use color_eyre::{Result, Section as _, SectionExt as _}; use reqwest::blocking::Response; use serde::{Deserialize, Serialize}; use serde_json::json; @@ -160,7 +160,10 @@ pub(crate) fn run(action: &Action) -> Result<()> { eyre::bail!("No data received on stdin"); } - serde_json::from_str(&buf).wrap_err("Failed to parse stdin")? + serde_json::from_str(&buf) + .wrap_err("Failed to parse config") + .with_suggestion(|| "Double-check the `source` and `params` sections in your pipeline") + .with_section(|| buf.header("JSON"))? }; match action { diff --git a/images/gitea/src/cmd/status.rs b/images/gitea/src/cmd/status.rs index 5533bae..8c68f09 100644 --- a/images/gitea/src/cmd/status.rs +++ b/images/gitea/src/cmd/status.rs @@ -144,7 +144,10 @@ pub(crate) fn run(action: &Action) -> Result<()> { } serde_json::from_str(&buf) - .wrap_err("Failed to parse stdin") + .wrap_err("Failed to parse config") + .with_suggestion(|| { + "Double-check the `source` and `params` sections in your pipeline" + }) .with_section(|| buf.header("JSON"))? };