Skip to content

Commit 9bccfee

Browse files
committed
Improve error for init with invalid org
This adds some error details to `phylum init` when executed with an organization that either doesn't exist, or the user has no access to. Closes #1576.
1 parent 0a6236d commit 9bccfee

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

.phylum_project

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
id: d84b0bb3-fb64-43cb-a473-dc96b54db662
1+
id: f8741c81-bd8c-4279-8911-00a5b56609e0
22
name: cli
3-
created_at: 2024-09-20T12:27:33.762071-05:00
4-
group_name: integrations
3+
created_at: 2025-02-18T19:00:30.208697+01:00
4+
group_name: chris
55
depfiles:
66
- path: ./Cargo.lock
77
type: cargo

cli/src/commands/init.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use reqwest::StatusCode;
1515
use crate::api::{PhylumApi, PhylumApiError, ResponseError};
1616
use crate::commands::{project, CommandResult, ExitCode};
1717
use crate::config::{self, Config};
18-
use crate::{print_user_success, print_user_warning};
18+
use crate::{print_user_failure, print_user_success, print_user_warning};
1919

2020
/// Handle `phylum init` subcommand.
2121
pub async fn handle_init(api: &PhylumApi, matches: &ArgMatches, config: Config) -> CommandResult {
@@ -44,7 +44,15 @@ pub async fn handle_init(api: &PhylumApi, matches: &ArgMatches, config: Config)
4444
let org = config.org();
4545
let groups: Vec<_> = match org {
4646
Some(org) => {
47-
api.org_groups(org).await?.groups.into_iter().map(|group| group.name).collect()
47+
let org_groups = match api.org_groups(org).await {
48+
Ok(org_groups) => org_groups,
49+
Err(err) if err.status() == Some(StatusCode::NOT_FOUND) => {
50+
print_user_failure!("Organization {org:?} does not exist.");
51+
return Ok(ExitCode::NotFound);
52+
},
53+
Err(err) => return Err(err.into()),
54+
};
55+
org_groups.groups.into_iter().map(|group| group.name).collect()
4856
},
4957
None => {
5058
api.get_groups_list().await?.groups.into_iter().map(|group| group.group_name).collect()

0 commit comments

Comments
 (0)