MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / execute

Method execute

atomic-cli/src/commands/team/member.rs:170–225  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

168
169impl TeamMemberList {
170 async fn execute(&self) -> CliResult<()> {
171 let client = build_client(self.org.as_deref(), None).await?;
172 let org_slug = client.org_slug().to_string();
173
174 let members =
175 atomic_teams::team_member::list_team_members(&client, &org_slug, &self.team_slug)
176 .await
177 .map_err(|e| CliError::RemoteError {
178 message: e.to_string(),
179 url: None,
180 })?;
181
182 let is_json = self
183 .format
184 .as_deref()
185 .map(|f| f.eq_ignore_ascii_case("json"))
186 .unwrap_or(false);
187
188 if is_json {
189 let json = serde_json::to_string_pretty(&members).map_err(|e| {
190 CliError::Internal(anyhow::anyhow!("Failed to serialize team members: {e}"))
191 })?;
192 println!("{json}");
193 } else if members.is_empty() {
194 print_hint(&format!("No members found in team '{}'.", self.team_slug));
195 print_hint(&format!(
196 "Use 'atomic team member add {} <identity-id>' to add one.",
197 self.team_slug
198 ));
199 } else {
200 let mut table = Table::new();
201 table.set_columns(vec![
202 Column::new("IDENTITY_ID").min_width(36),
203 Column::new("ROLE").min_width(12),
204 Column::new("ADDED").min_width(20),
205 ]);
206
207 for member in &members {
208 table.add_row(vec![
209 member.identity_id.to_string(),
210 member.role.to_string(),
211 member.added_at.to_rfc3339(),
212 ]);
213 }
214
215 println!("{table}");
216
217 print_hint(&format!(
218 "{} member(s) in team '{}'",
219 members.len(),
220 self.team_slug
221 ));
222 }
223
224 Ok(())
225 }
226}
227

Callers 1

runMethod · 0.45

Calls 15

build_clientFunction · 0.85
list_team_membersFunction · 0.85
print_hintFunction · 0.85
resolve_identityFunction · 0.85
add_team_memberFunction · 0.85
print_successFunction · 0.85
update_team_member_roleFunction · 0.85
print_warningFunction · 0.85
remove_team_memberFunction · 0.85
org_slugMethod · 0.80
set_columnsMethod · 0.80
add_rowMethod · 0.80

Tested by

no test coverage detected