Microsoft Graph Beta Doc: https://docs.microsoft.com/en-us/graph/api/teamstab-list?view=graph-rest-beta
GET /teams/{id}/channels/{id}/tabs
command: graph teams tab list -i|--teamId <teamId> -c|--channelId <channelId>
teamId: The ID of the team to where the channel exists
channelId: The ID of the channel to list tabs from
Nice suggestion and a proper spec! I've updated the formatting so that the command format is easier to read. Want to pick it up yourself @NWessel or want to let others help out?
@waldekmastykarz i would love to pick it up, but i'm not able to reserve time for it for the next period. So it is open to take! When i get some available time, and if no one started it then will definitely do it :)
No problem. Let's leave it open for taking and check back when you have time: if it's still available, all yours. If it's already taken, then we could find something else for you. Once again thank you!
@waldekmastykarz as discussed a couple of minutes ago I would like to get started with this one. Will try to reserve some time in the next 2-4 weeks. If this timeframe is ok with everyone I'm happy to be assigned to that issue.
Of course! Happy to have you with us! Please don't hesitate to reach out if you have any questions 馃憦
@waldekmastykarz @NWessel

That's what I got after the first two hours, so far so good, needs polishing, testing and so on, but it's a start.
Questions:
Which format should the output have?
In terms of channels, how should the CLI operate? I could just take the teamsId param and iterate through all the channels in that team and get all the tabs or is that something a user should do by calling the command in a loop?
Awesome @thomyg 馃挭
Output is being formatted by the CLI so you don't need to worry about it. All you need to do is to pass the object/array you want to show in the output and the CLI will take care of the rest. When you pass an array, multiple items will be displayed in a table where each item represents a row and each property becomes a column. If objects have too many properties or their values are too long, the table will be unreadable. To deal with that, we often choose to include a subset of properties for the regular table output and include all properties for output type JSON, for example: https://github.com/pnp/office365-cli/blob/555bce61b81450d3615bb2f9cf4e4a7121ee47f2/src/o365/graph/commands/teams/teams-app-list.ts#L43-L54.
Following the spec, this command shows tabs in the specific channel only. If you want to iterate over all channels, you'd write a script where you first retrieve all channels and then for each get the list of tabs. That's however outside of the scope of this command.
Hope this helps 馃憤
@waldekmastykarz
Opened the PR. Feedback welcome!
Edit: the fact that the test framework is case sensitive in regards to the graph url took me like 2 hours ;) Should I add this small hint to the get started documentation?
It's not really the test framework: it's just how string comparison in JavaScript works. Isn't it the same in C#? 馃槈
Ok, let's call it a Thursday night brain fart, agreed.
In my defense, neither postman nor graph explorer cares about "v1.0" vs "V1.0". It took me some time to realize that string comparison is the true enemy here ;)
Most helpful comment
Awesome @thomyg 馃挭
Output is being formatted by the CLI so you don't need to worry about it. All you need to do is to pass the object/array you want to show in the output and the CLI will take care of the rest. When you pass an array, multiple items will be displayed in a table where each item represents a row and each property becomes a column. If objects have too many properties or their values are too long, the table will be unreadable. To deal with that, we often choose to include a subset of properties for the regular table output and include all properties for output type JSON, for example: https://github.com/pnp/office365-cli/blob/555bce61b81450d3615bb2f9cf4e4a7121ee47f2/src/o365/graph/commands/teams/teams-app-list.ts#L43-L54.
Following the spec, this command shows tabs in the specific channel only. If you want to iterate over all channels, you'd write a script where you first retrieve all channels and then for each get the list of tabs. That's however outside of the scope of this command.
Hope this helps 馃憤