mirror of
https://codeberg.org/Cyborus/forgejo-cli.git
synced 2024-11-27 12:03:49 +01:00
feat(display): bring issue printing to visual parity with PR printing
This commit is contained in:
parent
02e27479fc
commit
6b78a23ca4
1 changed files with 44 additions and 4 deletions
|
@ -236,7 +236,26 @@ async fn create_issue(
|
|||
}
|
||||
|
||||
pub async fn view_issue(repo: &RepoName, api: &Forgejo, id: u64) -> eyre::Result<()> {
|
||||
let crate::SpecialRender {
|
||||
dash,
|
||||
|
||||
bright_red,
|
||||
bright_green,
|
||||
yellow,
|
||||
dark_grey,
|
||||
white,
|
||||
reset,
|
||||
..
|
||||
} = crate::special_render();
|
||||
|
||||
let issue = api.issue_get_issue(repo.owner(), repo.name(), id).await?;
|
||||
|
||||
// if it's a pull request, display it as one instead
|
||||
if issue.pull_request.is_some() {
|
||||
crate::prs::view_pr(repo, api, Some(id)).await?;
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let title = issue
|
||||
.title
|
||||
.as_ref()
|
||||
|
@ -249,11 +268,32 @@ pub async fn view_issue(repo: &RepoName, api: &Forgejo, id: u64) -> eyre::Result
|
|||
.login
|
||||
.as_ref()
|
||||
.ok_or_else(|| eyre::eyre!("user does not have login"))?;
|
||||
println!("#{}: {}", id, title);
|
||||
println!("By {}", username);
|
||||
let state = issue
|
||||
.state
|
||||
.ok_or_else(|| eyre::eyre!("pr does not have state"))?;
|
||||
let comments = issue.comments.unwrap_or_default();
|
||||
|
||||
println!("{yellow}{title} {dark_grey}#{id}{reset}");
|
||||
print!("By {white}{username}{reset} {dash} ");
|
||||
|
||||
use forgejo_api::structs::StateType;
|
||||
match state {
|
||||
StateType::Open => println!("{bright_green}Open{reset}"),
|
||||
StateType::Closed => println!("{bright_red}Closed{reset}"),
|
||||
};
|
||||
|
||||
if let Some(body) = &issue.body {
|
||||
println!();
|
||||
println!("{}", crate::markdown(body));
|
||||
if !body.is_empty() {
|
||||
println!();
|
||||
println!("{}", crate::markdown(body));
|
||||
}
|
||||
}
|
||||
println!();
|
||||
|
||||
if comments == 1 {
|
||||
println!("1 comment");
|
||||
} else {
|
||||
println!("{comments} comments");
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue