diff --git a/docs/docs/cmd/teams/tab/tab-list.mdx b/docs/docs/cmd/teams/tab/tab-list.mdx index f723b98ca8e..266f16795e8 100644 --- a/docs/docs/cmd/teams/tab/tab-list.mdx +++ b/docs/docs/cmd/teams/tab/tab-list.mdx @@ -78,14 +78,15 @@ m365 teams tab list --teamId 00000000-0000-0000-0000-000000000000 --channelId 19 ``` text displayName : My Contoso Tab id : 34991fbf-59f4-48d9-b094-b9d64d550e23 + teamsAppTabId: 1542629c-01b3-4a6d-8f76-1938b779e48d ``` ``` text - id,displayName - 34991fbf-59f4-48d9-b094-b9d64d550e23,My Contoso Tab + id,displayName,teamsAppTabId + 34991fbf-59f4-48d9-b094-b9d64d550e23,My Contoso Tab,1542629c-01b3-4a6d-8f76-1938b779e48d ``` @@ -103,6 +104,7 @@ m365 teams tab list --teamId 00000000-0000-0000-0000-000000000000 --channelId 19 id | 34991fbf-59f4-48d9-b094-b9d64d550e23 displayName | My Contoso Tab webUrl | https://teams.microsoft.com/l/entity/1542629c-01b3-4a6d-8f76-1938b779e48d/_djb2_msteams_prefix_34991fbf-59f4-48d9-b094-b9d64d550e23?webUrl=https%3a%2f%2fteams.contoso.ai%2fmsteams%2fcontent%2ftab%2fteam%3ftheme%3d%7btheme%7d&label=My%20Contoso%20Tab&context=%7b%0d%0a++%22canvasUrl%22%3a+%22https%3a%2f%2fteams.contoso.ai%2fmsteams%2fcontent%2ftab%2fteam%3ftheme%3d%7btheme%7d%22%2c%0d%0a++%22channelId%22%3a+%2219%3aB3nCnLKwwCoGDEADyUgQ5kJ5Pkekujyjmwxp7uhQeAE1%40thread.tacv2%22%2c%0d%0a++%22subEntityId%22%3a+null%0d%0a%7d&groupId=aee5a2c9-b1df-45ac-9964-c708e760a045&tenantId=92e59666-257b-49c3-b1fa-1bae8107f6ba + teamsAppTabId | 1542629c-01b3-4a6d-8f76-1938b779e48d ``` diff --git a/docs/docs/v10-upgrade-guidance.mdx b/docs/docs/v10-upgrade-guidance.mdx index 243eef9fe20..95a6161c1cf 100644 --- a/docs/docs/v10-upgrade-guidance.mdx +++ b/docs/docs/v10-upgrade-guidance.mdx @@ -207,6 +207,16 @@ Overwriting the SPFx package should be the default behavior of the continuous de Please update your scripts not to use the `overwrite` option. +## Teams + +### Removes duplicate property from 'teams tab list' command. + +In the [teams tab list](./cmd/teams/tab/tab-list.mdx) we removed the `teamsAppTabId` from the command output as it was a duplicate of the `teamsApp/id` property. + +#### What action do I need to take? + +Please update your scripts not to use the `teamsAppTabId` property from the command output. + ## Yammer (Viva Engage) ### Removal of deprecated Yammer aliases diff --git a/src/m365/teams/commands/tab/tab-list.spec.ts b/src/m365/teams/commands/tab/tab-list.spec.ts index 6fae4cf5cb3..3117a7b7a50 100644 --- a/src/m365/teams/commands/tab/tab-list.spec.ts +++ b/src/m365/teams/commands/tab/tab-list.spec.ts @@ -133,7 +133,7 @@ describe(commands.TAB_LIST, () => { } as any), new CommandError('Channel id is not in a valid format: 29:d09d9792d59544af846fa19c98b6acc6@thread.skype')); }); - it('correctly lists all tabs in a Microsoft Teams channel', async () => { + it('correctly lists all tabs in a Microsoft Teams channel in text format', async () => { sinon.stub(request, 'get').callsFake(async (opts) => { if (opts.url === `https://graph.microsoft.com/v1.0/teams/00000000-0000-0000-0000-000000000000/channels/19%3A00000000000000000000000000000000%40thread.skype/tabs?$expand=teamsApp`) { return { @@ -175,9 +175,11 @@ describe(commands.TAB_LIST, () => { await command.action(logger, { options: { teamId: '00000000-0000-0000-0000-000000000000', - channelId: '19:00000000000000000000000000000000@thread.skype' + channelId: '19:00000000000000000000000000000000@thread.skype', + output: 'text' } }); + assert(loggerLogSpy.calledWith([{ "id": "e7cb46d2-b291-409a-b4bc-f5bdd26f10d4", "displayName": "Document%20Library", @@ -193,7 +195,8 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Document Library", "distributionMethod": "store" - } + }, + "teamsAppTabId": "com.microsoft.teamspace.tab.files.sharepoint" }, { "id": "ba38f554-9ce6-4719-bc9b-e38e4ca16860", @@ -211,7 +214,8 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Website", "distributionMethod": "store" - } + }, + "teamsAppTabId": "com.microsoft.teamspace.tab.web" }, { "id": "b6c511f1-3ad7-4111-8a82-36b13aad4c9e", @@ -228,7 +232,8 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Word", "distributionMethod": "store" - } + }, + "teamsAppTabId": "com.microsoft.teamspace.tab.file.staticviewer.word" }, { "id": "d9e972d8-e93d-4b87-beb2-3698912398ea", @@ -248,21 +253,58 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Wiki", "distributionMethod": "store" - } + }, + "teamsAppTabId": "com.microsoft.teamspace.tab.wiki" }])); }); - it('correctly lists all tabs in a Microsoft Teams channel (debug)', async () => { + it('correctly lists all tabs in a Microsoft Teams channel in json format', async () => { sinon.stub(request, 'get').callsFake(async (opts) => { if (opts.url === `https://graph.microsoft.com/v1.0/teams/00000000-0000-0000-0000-000000000000/channels/19%3A00000000000000000000000000000000%40thread.skype/tabs?$expand=teamsApp`) { return { - value: [{ "id": "e7cb46d2-b291-409a-b4bc-f5bdd26f10d4", "displayName": "Document%20Library", "webUrl": "https://teams.microsoft.com/l/channel/19%3a552b7125655c46d5b5b86db02ee7bfdf%40thread.skype/tab%3a%3afbd8cf48-e450-463a-8636-231307dda5f6?label=Document%2520Library&groupId=aa5cf078-46e3-4bcf-9e02-e15ff6efe889&tenantId=a1d5f937-b756-46d7-b92f-464629a6d985", "configuration": { "entityId": null, "contentUrl": "https://contoso.sharepoint.com/sites/MoCaDeSyMo/Freigegebene Dokumente", "removeUrl": null, "websiteUrl": null }, "teamsApp": { "id": "com.microsoft.teamspace.tab.files.sharepoint", "externalId": null, "displayName": "Document Library", "distributionMethod": "store" } }, { "id": "ba38f554-9ce6-4719-bc9b-e38e4ca16860", "displayName": "CLI-Microsoft365", "webUrl": "https://teams.microsoft.com/l/channel/19%3a552b7125655c46d5b5b86db02ee7bfdf%40thread.skype/tab%3a%3a5a2f05cf-0b6d-4012-b296-342d89158248?webUrl=https%3a%2f%2fgithub.com%2fpnp%2fcli-microsoft365&label=CLI-Microsoft365&groupId=aa5cf078-46e3-4bcf-9e02-e15ff6efe889&tenantId=a1d5f937-b756-46d7-b92f-464629a6d985", "configuration": { "entityId": null, "contentUrl": "https://github.com/pnp/cli-microsoft365", "removeUrl": null, "websiteUrl": "https://github.com/pnp/cli-microsoft365", "dateAdded": "2019-03-28T18:35:53.81Z" }, "teamsApp": { "id": "com.microsoft.teamspace.tab.web", "externalId": null, "displayName": "Website", "distributionMethod": "store" } }, { "id": "b6c511f1-3ad7-4111-8a82-36b13aad4c9e", "displayName": "Word", "webUrl": "https://teams.microsoft.com/l/channel/19%3a552b7125655c46d5b5b86db02ee7bfdf%40thread.skype/tab%3a%3a00b9c26c-b0f4-4c1a-98fa-426aded95ca3?label=Word&groupId=aa5cf078-46e3-4bcf-9e02-e15ff6efe889&tenantId=a1d5f937-b756-46d7-b92f-464629a6d985", "configuration": { "entityId": "C6DBBF49-0290-4194-B3DA-319A72014FD6", "contentUrl": "https://contoso.sharepoint.com/sites/MoCaDeSyMo/Freigegebene Dokumente/General/Kopieren und Verschieben von Dateien in Office365.docx", "removeUrl": null, "websiteUrl": null }, "teamsApp": { "id": "com.microsoft.teamspace.tab.file.staticviewer.word", "externalId": null, "displayName": "Word", "distributionMethod": "store" } }, { "id": "d9e972d8-e93d-4b87-beb2-3698912398ea", "displayName": "Wiki", "webUrl": "https://teams.microsoft.com/l/channel/19%3a552b7125655c46d5b5b86db02ee7bfdf%40thread.skype/tab%3a%3a9d44e015-ae5c-47dc-9577-5af76609e2b0?label=Wiki&groupId=aa5cf078-46e3-4bcf-9e02-e15ff6efe889&tenantId=a1d5f937-b756-46d7-b92f-464629a6d985", "configuration": { "entityId": null, "contentUrl": null, "removeUrl": null, "websiteUrl": null, "wikiTabName": "Wiki", "wikiTabId": 1, "wikiDefaultTab": true }, "teamsApp": { "id": "com.microsoft.teamspace.tab.wiki", "externalId": null, "displayName": "Wiki", "distributionMethod": "store" } }] + value: [ + { + "id": "e7cb46d2-b291-409a-b4bc-f5bdd26f10d4", + "displayName": "Document%20Library", + "webUrl": "https://teams.microsoft.com/l/channel/19%3a552b7125655c46d5b5b86db02ee7bfdf%40thread.skype/tab%3a%3afbd8cf48-e450-463a-8636-231307dda5f6?label=Document%2520Library&groupId=aa5cf078-46e3-4bcf-9e02-e15ff6efe889&tenantId=a1d5f937-b756-46d7-b92f-464629a6d985", + "configuration": { "entityId": null, "contentUrl": "https://contoso.sharepoint.com/sites/MoCaDeSyMo/Freigegebene Dokumente", "removeUrl": null, "websiteUrl": null }, + "teamsApp": { "id": "com.microsoft.teamspace.tab.files.sharepoint", "externalId": null, "displayName": "Document Library", "distributionMethod": "store" } + }, + { + "id": "ba38f554-9ce6-4719-bc9b-e38e4ca16860", + "displayName": "CLI-Microsoft365", + "webUrl": "https://teams.microsoft.com/l/channel/19%3a552b7125655c46d5b5b86db02ee7bfdf%40thread.skype/tab%3a%3a5a2f05cf-0b6d-4012-b296-342d89158248?webUrl=https%3a%2f%2fgithub.com%2fpnp%2fcli-microsoft365&label=CLI-Microsoft365&groupId=aa5cf078-46e3-4bcf-9e02-e15ff6efe889&tenantId=a1d5f937-b756-46d7-b92f-464629a6d985", + "configuration": { "entityId": null, "contentUrl": "https://github.com/pnp/cli-microsoft365", "removeUrl": null, "websiteUrl": "https://github.com/pnp/cli-microsoft365", "dateAdded": "2019-03-28T18:35:53.81Z" }, + "teamsApp": { "id": "com.microsoft.teamspace.tab.web", "externalId": null, "displayName": "Website", "distributionMethod": "store" } + }, + { + "id": "b6c511f1-3ad7-4111-8a82-36b13aad4c9e", + "displayName": "Word", + "webUrl": "https://teams.microsoft.com/l/channel/19%3a552b7125655c46d5b5b86db02ee7bfdf%40thread.skype/tab%3a%3a00b9c26c-b0f4-4c1a-98fa-426aded95ca3?label=Word&groupId=aa5cf078-46e3-4bcf-9e02-e15ff6efe889&tenantId=a1d5f937-b756-46d7-b92f-464629a6d985", + "configuration": { "entityId": "C6DBBF49-0290-4194-B3DA-319A72014FD6", "contentUrl": "https://contoso.sharepoint.com/sites/MoCaDeSyMo/Freigegebene Dokumente/General/Kopieren und Verschieben von Dateien in Office365.docx", "removeUrl": null, "websiteUrl": null }, + "teamsApp": { "id": "com.microsoft.teamspace.tab.file.staticviewer.word", "externalId": null, "displayName": "Word", "distributionMethod": "store" } + }, + { + "id": "d9e972d8-e93d-4b87-beb2-3698912398ea", + "displayName": "Wiki", + "webUrl": "https://teams.microsoft.com/l/channel/19%3a552b7125655c46d5b5b86db02ee7bfdf%40thread.skype/tab%3a%3a9d44e015-ae5c-47dc-9577-5af76609e2b0?label=Wiki&groupId=aa5cf078-46e3-4bcf-9e02-e15ff6efe889&tenantId=a1d5f937-b756-46d7-b92f-464629a6d985", + "configuration": { "entityId": null, "contentUrl": null, "removeUrl": null, "websiteUrl": null, "wikiTabName": "Wiki", "wikiTabId": 1, "wikiDefaultTab": true }, + "teamsApp": { "id": "com.microsoft.teamspace.tab.wiki", "externalId": null, "displayName": "Wiki", "distributionMethod": "store" } + } + ] }; } throw 'Invalid request'; }); - await command.action(logger, { options: { debug: true, teamId: "00000000-0000-0000-0000-000000000000", channelId: "19:00000000000000000000000000000000@thread.skype" } }); + await command.action(logger, { + options: { + teamId: '00000000-0000-0000-0000-000000000000', + channelId: '19:00000000000000000000000000000000@thread.skype', + output: 'json' + } + }); + assert(loggerLogSpy.calledWith([{ "id": "e7cb46d2-b291-409a-b4bc-f5bdd26f10d4", "displayName": "Document%20Library", @@ -336,4 +378,4 @@ describe(commands.TAB_LIST, () => { } }])); }); -}); +}); \ No newline at end of file diff --git a/src/m365/teams/commands/tab/tab-list.ts b/src/m365/teams/commands/tab/tab-list.ts index 1f43e837490..cf3033a9cc0 100644 --- a/src/m365/teams/commands/tab/tab-list.ts +++ b/src/m365/teams/commands/tab/tab-list.ts @@ -68,6 +68,13 @@ class TeamsTabListCommand extends GraphCommand { try { const items = await odata.getAllItems(endpoint); + + if (args.options.output !== 'json') { + items.forEach(i => { + (i as any).teamsAppTabId = i.teamsApp!.id; + }); + } + await logger.log(items); } catch (err: any) {