diff options
author | gabm <gabm@hrz.tu-chemnitz.de> | 2022-12-10 14:47:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-10 14:47:38 +0100 |
commit | 90b6a0dded07d0ff592a348a563f14adcc5b381d (patch) | |
tree | 351a1c3d6903e80f30c8e6380fa54e9f344b485d | |
parent | 99872f252184b3a509b05a4e118a5245b51cce79 (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.rs | 18 |
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()) |