refactor(hive-forge): port CLI verbs to forgejo-api

This commit is contained in:
müde 2026-07-07 09:24:53 +02:00
commit 4636987469
36 changed files with 1463 additions and 1153 deletions

View file

@ -2,7 +2,6 @@
use anyhow::Result;
use clap::Args as ClapArgs;
use serde_json::Value;
use crate::client::Client;
@ -13,17 +12,16 @@ pub struct Args {
}
pub fn run(client: &Client, args: Args) -> Result<()> {
let repo = client.repo();
let v = client.get_json(&format!("/repos/{repo}/branches?limit=100"))?;
let names: Vec<&str> = v
.as_array()
.map(|a| {
a.iter()
.filter_map(|b| b.get("name").and_then(Value::as_str))
.collect()
})
.unwrap_or_default();
for n in names {
let (owner, name) = client.owner_repo()?;
let (_, branches) = client
.api()
.repo_list_branches(owner, name)
.page_size(100)
.send()?;
for branch in &branches {
let Some(n) = branch.name.as_deref() else {
continue;
};
if args.pattern.as_deref().is_none_or(|p| n.contains(p)) {
println!("{n}");
}