def list(_)
target = find_membership_container
members = target.members
if options.all
show_members = members.sort
else
show_members = members.select do |m|
if m.owner?
true
elsif m.explicit_role?
true
elsif m.from.any? {|f| f["type"] != "team" }
true
else
false
end
end.sort
end
show_name = show_members.any?{ |m| m.name.presence && m.name != m.login }
show_login = show_members.any?{ |m| m.login.presence }
if show_members.present?
say table(show_members.map do |member|
[
((member.name || "") if show_name),
((member.login || "") if show_login),
role_description(member, member.teams(members)),
(member.id if options.ids),
member.type
].compact
end, :header => [
('Name' if show_name),
('Login' if show_login),
'Role',
("ID" if options.ids),
"Type"
].compact)
else
info "The #{target.class.model_name.downcase} #{target.name} does not have any members."
end
if show_members.count < members.count
paragraph do
info "Pass --all to display all members, including members of teams."
end
end
0
end