summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgabm <gabm@hrz.tu-chemnitz.de>2022-12-10 14:47:38 +0100
committerGitHub <noreply@github.com>2022-12-10 14:47:38 +0100
commit90b6a0dded07d0ff592a348a563f14adcc5b381d (patch)
tree351a1c3d6903e80f30c8e6380fa54e9f344b485d
parent99872f252184b3a509b05a4e118a5245b51cce79 (diff)
crash when using pagination on `installation/repositories` (#280)
* add repositories to the expected attributes * add error message on unknown pagination result
-rw-r--r--src/page.rs18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/page.rs b/src/page.rs
index 4cf0746..cc7e935 100644
--- a/src/page.rs
+++ b/src/page.rs
@@ -182,10 +182,20 @@ impl<T: serde::de::DeserializeOwned> crate::FromResponse for Page<T> {
last,
})
} else {
- let attr = vec!["items", "workflows", "workflow_runs", "jobs", "artifacts"]
- .into_iter()
- .find(|v| json.get(v).is_some())
- .unwrap();
+ let attr = vec![
+ "items",
+ "workflows",
+ "workflow_runs",
+ "jobs",
+ "artifacts",
+ "repositories",
+ ]
+ .into_iter()
+ .find(|v| json.get(v).is_some())
+ .ok_or(Box::from(
+ "error decoding pagination result, top-level attribute unknown",
+ ))
+ .context(crate::error::OtherSnafu)?;
Ok(Self {
items: serde_json::from_value(json.get(attr).cloned().unwrap())