refactor(hive-forge): port CLI verbs to forgejo-api
This commit is contained in:
parent
b8a3927c43
commit
4636987469
36 changed files with 1463 additions and 1153 deletions
|
|
@ -8,9 +8,9 @@
|
|||
|
||||
use anyhow::Result;
|
||||
use clap::Args as ClapArgs;
|
||||
use serde_json::json;
|
||||
use forgejo_api::structs::PullReviewRequestOptions;
|
||||
|
||||
use crate::client::Client;
|
||||
use crate::client::{Client, index};
|
||||
|
||||
#[derive(ClapArgs)]
|
||||
pub struct Args {
|
||||
|
|
@ -24,17 +24,26 @@ pub struct Args {
|
|||
}
|
||||
|
||||
pub fn run(client: &Client, args: Args) -> Result<()> {
|
||||
let repo = client.repo();
|
||||
let path = format!("/repos/{repo}/pulls/{}/requested_reviewers", args.number);
|
||||
let body = json!({ "reviewers": [args.user] });
|
||||
let (owner, name) = client.owner_repo()?;
|
||||
let idx = index(args.number)?;
|
||||
let body = PullReviewRequestOptions {
|
||||
reviewers: Some(vec![args.user.clone()]),
|
||||
team_reviewers: None,
|
||||
};
|
||||
if args.remove {
|
||||
client.delete(&path, Some(&body))?;
|
||||
client
|
||||
.api()
|
||||
.repo_delete_pull_review_requests(owner, name, idx, body)
|
||||
.send()?;
|
||||
println!(
|
||||
"review request withdrawn: {} on #{}",
|
||||
args.user, args.number
|
||||
);
|
||||
} else {
|
||||
client.post_json(&path, &body)?;
|
||||
client
|
||||
.api()
|
||||
.repo_create_pull_review_requests(owner, name, idx, body)
|
||||
.send()?;
|
||||
println!("review requested: {} on #{}", args.user, args.number);
|
||||
}
|
||||
Ok(())
|
||||
|
|
|
|||
Loading…
Reference in a new issue