diff --git a/src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs b/src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs index b8bea35..82499c0 100644 --- a/src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs +++ b/src/Svrooij.WinTuner.CmdLets/Commands/DeployWtWin32App.cs @@ -233,9 +233,19 @@ await batch.AddBatchRequestStepAsync(graphServiceClient.DeviceAppManagement.Mobi // Copy assignments from old app to new app if (oldWin32App.Assignments is not null && oldWin32App.Assignments.Count > 0) { + // This part is to enable auto update for the new app, if that was not set on the old app + var assignments = oldWin32App.Assignments; + foreach (var assignment in assignments) + { + if (assignment.Intent == GraphModels.InstallIntent.Available && assignment.Settings is null) + { + assignment.Settings = new GraphModels.Win32LobAppAssignmentSettings { AutoUpdateSettings = new GraphModels.Win32LobAppAutoUpdateSettings { AutoUpdateSupersededApps = GraphModels.Win32LobAppAutoUpdateSupersededApps.Enabled } }; + } + } + await batch.AddBatchRequestStepAsync(graphServiceClient.DeviceAppManagement.MobileApps[newAppId].Assign.ToPostRequestInformation(new Microsoft.Graph.Beta.DeviceAppManagement.MobileApps.Item.Assign.AssignPostRequestBody { - MobileAppAssignments = oldWin32App.Assignments + MobileAppAssignments = assignments, //oldWin32App.Assignments })); // Remove assignments from old app diff --git a/src/Svrooij.WinTuner.CmdLets/Commands/Update-WtIntuneApp.cs b/src/Svrooij.WinTuner.CmdLets/Commands/Update-WtIntuneApp.cs index 03b17d5..789c9e6 100644 --- a/src/Svrooij.WinTuner.CmdLets/Commands/Update-WtIntuneApp.cs +++ b/src/Svrooij.WinTuner.CmdLets/Commands/Update-WtIntuneApp.cs @@ -17,7 +17,7 @@ namespace Svrooij.WinTuner.CmdLets.Commands; /// /// /// Update the categories of an app and make it available for all users -/// Update-WtIntuneApp -AppId "1450c17d-aee5-4bef-acf9-9e0107d340f2" -UseDefaultCredentials -Categories "Productivity","Business" -AvailableFor "AllUsers" +/// Update-WtIntuneApp -AppId "1450c17d-aee5-4bef-acf9-9e0107d340f2" -UseDefaultCredentials -Categories "Productivity","Business" -AvailableFor "AllUsers" -EnableAutoUpdate $true /// [Cmdlet(VerbsData.Update, "WtIntuneApp")] [OutputType(typeof(MobileApp))] @@ -58,6 +58,13 @@ public class UpdateWtIntuneApp : BaseIntuneCmdlet HelpMessage = "Groups that the app should be uninstalled for, Group Object ID or 'AllUsers'/'AllDevices'")] public string[]? UninstallFor { get; set; } + /// + /// Enable auto update for the app + /// + [Parameter(Mandatory = false, + HelpMessage = "Enable auto update for the app")] + public bool EnableAutoUpdate { get; set; } = false; + [ServiceDependency] private ILogger? logger; @@ -83,7 +90,7 @@ public override async Task ProcessRecordAsync(CancellationToken cancellationToke (UninstallFor is not null && UninstallFor.Any())) { logger?.LogInformation("Assigning app {appId} to groups", AppId); - await graphServiceClient.AssignAppAsync(AppId!, RequiredFor, AvailableFor, UninstallFor, cancellationToken); + await graphServiceClient.AssignAppAsync(AppId!, RequiredFor, AvailableFor, UninstallFor, EnableAutoUpdate, cancellationToken); } // Load the app to get the relationships diff --git a/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj b/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj index aedb1ee..e40f4b1 100644 --- a/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj +++ b/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.csproj @@ -13,7 +13,7 @@ - + All diff --git a/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.dll-Help.xml b/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.dll-Help.xml index a29f8e1..85ec0bd 100644 --- a/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.dll-Help.xml +++ b/src/Svrooij.WinTuner.CmdLets/Svrooij.WinTuner.CmdLets.dll-Help.xml @@ -1961,6 +1961,18 @@ None + + EnableAutoUpdate + + Enable auto update for the app + + Boolean + + Boolean + + + None + @@ -2120,6 +2132,18 @@ None + + EnableAutoUpdate + + Enable auto update for the app + + Boolean + + Boolean + + + None + diff --git a/src/Svrooij.WinTuner.CmdLets/WinTuner.psd1 b/src/Svrooij.WinTuner.CmdLets/WinTuner.psd1 index 775fce3..326d712 100644 --- a/src/Svrooij.WinTuner.CmdLets/WinTuner.psd1 +++ b/src/Svrooij.WinTuner.CmdLets/WinTuner.psd1 @@ -65,7 +65,7 @@ "New-WtWingetPackage", "Remove-WtWin32App", "Unprotect-IntuneWinPackage" - "Update-WtWin32App" + "Update-WtIntuneApp" ) # Variables to export from this module. diff --git a/src/Svrooij.WinTuner.CmdLets/docs/Update-WtIntuneApp.md b/src/Svrooij.WinTuner.CmdLets/docs/Update-WtIntuneApp.md index 0ef81b3..812caf4 100644 --- a/src/Svrooij.WinTuner.CmdLets/docs/Update-WtIntuneApp.md +++ b/src/Svrooij.WinTuner.CmdLets/docs/Update-WtIntuneApp.md @@ -14,9 +14,10 @@ Update an app in Intune ``` Update-WtIntuneApp -AppId [-Categories ] [-AvailableFor ] - [-RequiredFor ] [-UninstallFor ] [[-UseManagedIdentity] ] - [[-UseDefaultAzureCredential] ] [[-Token] ] [[-Username] ] [[-TenantId] ] - [[-ClientId] ] [[-ClientSecret] ] [-ProgressAction ] [] + [-RequiredFor ] [-UninstallFor ] [-EnableAutoUpdate ] + [[-UseManagedIdentity] ] [[-UseDefaultAzureCredential] ] [[-Token] ] + [[-Username] ] [[-TenantId] ] [[-ClientId] ] [[-ClientSecret] ] + [-ProgressAction ] [] ``` ## DESCRIPTION @@ -231,6 +232,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -EnableAutoUpdate +Enable auto update for the app + +```yaml +Type: Boolean +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### CommonParameters This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). diff --git a/src/Svrooij.WinTuner.CmdLets/packages.lock.json b/src/Svrooij.WinTuner.CmdLets/packages.lock.json index ef415cd..d14706f 100644 --- a/src/Svrooij.WinTuner.CmdLets/packages.lock.json +++ b/src/Svrooij.WinTuner.CmdLets/packages.lock.json @@ -4,13 +4,13 @@ "net8.0": { "Azure.Identity": { "type": "Direct", - "requested": "[1.10.4, )", - "resolved": "1.10.4", - "contentHash": "hSvisZy9sld0Gik1X94od3+rRXCx+AKgi+iLH6fFdlnRZRePn7RtrqUGSsORiH2h8H2sc4NLTrnuUte1WL+QuQ==", + "requested": "[1.11.2, )", + "resolved": "1.11.2", + "contentHash": "mihECA1msfwdjTPXHwK9N3n4ln8jMB0DuT0r2caDGPriRT1vca4/Jgmo6FmFZPo8RQsQt1fVn1Gxv5WqkyHVeA==", "dependencies": { - "Azure.Core": "1.36.0", - "Microsoft.Identity.Client": "4.56.0", - "Microsoft.Identity.Client.Extensions.Msal": "4.56.0", + "Azure.Core": "1.38.0", + "Microsoft.Identity.Client": "4.60.3", + "Microsoft.Identity.Client.Extensions.Msal": "4.60.3", "System.Memory": "4.5.4", "System.Security.Cryptography.ProtectedData": "4.7.0", "System.Text.Json": "4.7.2", @@ -37,10 +37,11 @@ }, "Azure.Core": { "type": "Transitive", - "resolved": "1.36.0", - "contentHash": "vwqFZdHS4dzPlI7FFRkPx9ctA+aGGeRev3gnzG8lntWvKMmBhAmulABi1O9CEvS3/jzYt7yA+0pqVdxkpAd7dQ==", + "resolved": "1.38.0", + "contentHash": "IuEgCoVA0ef7E4pQtpC3+TkPbzaoQfa77HlfJDmfuaJUCVJmn7fT0izamZiryW5sYUFKizsftIxMkXKbgIcPMQ==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.ClientModel": "1.0.0", "System.Diagnostics.DiagnosticSource": "6.0.1", "System.Memory.Data": "1.0.2", "System.Numerics.Vectors": "4.5.0", @@ -289,8 +290,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "rC+qiskr8RKq2a43hH55vuDRz4Wto+bxwxMrKzCIOann1NL0OFFTjEk4ZVnTTBdijVWC6mhOaSmdV1H6J6bXmA==", + "resolved": "4.60.3", + "contentHash": "jve1RzmSpBhGlqMzPva6VfRbLMLZZc1Q8WRVZf8+iEruQkBgDTJPq8OeTehcY4GGYG1j6UB1xVofVE+n4BLDdw==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -298,19 +299,19 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "q5W6Sl853jiuFVrcr4c0cWFFy/Szmm6GMVpL8QEt5GEymJbDTwhNvNC6qWP3yoy+xBZL1KYExt5MVj3QZ+pFjA==", + "resolved": "4.60.3", + "contentHash": "ki+l9Jxp5ift/c5iHS6LC0Y+MEZ7cPzC91l1Aj4tgzV6VzvF7/qO4vclFWQsB4MiA0KUMybkSOAZEuRahrHGlQ==", "dependencies": { - "Microsoft.Identity.Client": "4.60.1", + "Microsoft.Identity.Client": "4.60.3", "Microsoft.Identity.Client.NativeInterop": "0.16.0" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "EdPcGqvruFzNBcW+/3DSP4vNmLNYXSSnngj+QecAxmy6VRnvA7kt5KE2bU8qQmt4KkOitNHBVYVwze2XkqOLxw==", + "resolved": "4.60.3", + "contentHash": "X1Cz14/RbmlLshusE5u2zfG+5ul6ttgou19BZe5Mdw1qm6fgOI9/imBB2TIsx2UD7nkgd2+MCSzhbukZf7udeg==", "dependencies": { - "Microsoft.Identity.Client": "4.60.1", + "Microsoft.Identity.Client": "4.60.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -321,23 +322,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "seOFPaBQh2K683eFujAuDsrO2XbOA+SvxRli+wu7kl+ZymuGQzjmmUKfyFHmDazpPOBnmOX1ZnjX7zFDZHyNIA==" + "resolved": "7.5.1", + "contentHash": "PT16ZFbPIiMsYv07oy3zOjqUOJ7xutGBkJTOX0+IbNyU6+O6X7aIxjq9EaSSRLWbekRgamgtmfg8Xjw6A6Ua9g==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "mfyiGptbcH+oYrzAtWWwuV+7MoM0G0si+9owaj6DGWInhq/N/KDj/pWHhq1ShdmBu332gjP+cppjgwBpsOj7Fg==", + "resolved": "7.5.1", + "contentHash": "93CGSa8RPdZU8zfvA3nf9NGKUqEnQrE12VzYlMqKh72ddhzusosqLNEUgH/YhFWBLRFOnY1RCgHMV7pR+sAx2w==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.0" + "Microsoft.IdentityModel.Tokens": "7.5.1" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "3BInZEajJvnTDP/YRrmJ3Fyw8XAWWR9jG+3FkhhzRJJYItVL+BEH9qlgxSmtrxp7S7N6TOv+Y+X8BG61viiehQ==", + "resolved": "7.5.1", + "contentHash": "PnpAQX20BAiDIPYmWUyQSlEaWD8BLXzHpiDGTCT568Cs0ReOeyzNe401LzCeiv6ilug/KefVeV1CeqtCHTo8dw==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.0" + "Microsoft.IdentityModel.Abstractions": "7.5.1" } }, "Microsoft.IdentityModel.Protocols": { @@ -360,10 +361,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "owe33wqe0ZbwBxM3D90I0XotxNyTdl85jud03d+OrUOJNnTiqnYePwBk3WU9yW0Rk5CYX+sfSim7frmu6jeEzQ==", + "resolved": "7.5.1", + "contentHash": "Q3DKpyFViP84IUlTFKH/zIkswIrmSh2Vd/eFDo4wlOHy4DYxoweZEEw4kDEiKt9VCX6o7SddK3HK2xDYyFpexA==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.0" + "Microsoft.IdentityModel.Logging": "7.5.1" } }, "Microsoft.Kiota.Abstractions": { @@ -659,8 +660,8 @@ }, "Riok.Mapperly": { "type": "Transitive", - "resolved": "3.4.0", - "contentHash": "bTxBEQ0+2x816IL78Fv0B/KkaGRtzfisit9dfWTfa7jjjwMMzpMW9A+V/hyxqHdJtYvtDL6dUNMLJige4zxJvw==" + "resolved": "3.5.1", + "contentHash": "ECFSdemqIN7HoCu8lOtGYW15fYK5XgSg9tpaspdevi4rj6Z4KomMQz6bKID1L5WMHxjyexix250wP5eAF0iKNw==" }, "runtime.linux-arm.runtime.native.System.IO.Ports": { "type": "Transitive", @@ -739,6 +740,15 @@ "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, + "System.ClientModel": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "I3CVkvxeqFYjIVEP59DnjbeoGNfo/+SZrCLpRz2v/g0gpCHaEMPtWSY0s9k/7jR1rAsLNg2z2u1JRB76tPjnIw==", + "dependencies": { + "System.Memory.Data": "1.0.2", + "System.Text.Json": "4.7.2" + } + }, "System.CodeDom": { "type": "Transitive", "resolved": "8.0.0", @@ -872,11 +882,11 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "D0TtrWOfoPdyYSlvOGaU9F1QR+qrbgJ/4eiEsQkIz7YQKIKkGXQldXukn6cYG9OahSq5UVMvyAIObECpH6Wglg==", + "resolved": "7.5.1", + "contentHash": "UUw+E0R73lZLlXgneYIJQxNs1kfbcxjVzw64JQyiwjqCd4HMpAbjn+xRo86QZT84uHq8/MkqvfH82tgjgPzpuw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.0", - "Microsoft.IdentityModel.Tokens": "7.5.0" + "Microsoft.IdentityModel.JsonWebTokens": "7.5.1", + "Microsoft.IdentityModel.Tokens": "7.5.1" } }, "System.IO": { @@ -1258,11 +1268,11 @@ "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Options": "[8.0.2, )", "Microsoft.Graph.Beta": "[5.59.0-preview, )", - "Microsoft.Identity.Client.Broker": "[4.60.1, )", - "Microsoft.Identity.Client.Extensions.Msal": "[4.60.1, )", - "Riok.Mapperly": "[3.4.0, )", + "Microsoft.Identity.Client.Broker": "[4.60.3, )", + "Microsoft.Identity.Client.Extensions.Msal": "[4.60.3, )", + "Riok.Mapperly": "[3.5.1, )", "SvRooij.ContentPrep": "[0.1.3-alpha0001, )", - "System.IdentityModel.Tokens.Jwt": "[7.5.0, )", + "System.IdentityModel.Tokens.Jwt": "[7.5.1, )", "Winget.CommunityRepository": "[1.0.0, )" } } diff --git a/src/Winget.CommunityRepository.Ef/Winget.CommunityRepository.Ef.csproj b/src/Winget.CommunityRepository.Ef/Winget.CommunityRepository.Ef.csproj index 688716f..49cd9bb 100644 --- a/src/Winget.CommunityRepository.Ef/Winget.CommunityRepository.Ef.csproj +++ b/src/Winget.CommunityRepository.Ef/Winget.CommunityRepository.Ef.csproj @@ -7,12 +7,12 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/WingetIntune.Cli/Commands/PublishCommand.cs b/src/WingetIntune.Cli/Commands/PublishCommand.cs index 896e226..7af7838 100644 --- a/src/WingetIntune.Cli/Commands/PublishCommand.cs +++ b/src/WingetIntune.Cli/Commands/PublishCommand.cs @@ -39,6 +39,7 @@ public PublishCommand() : base(name, description) AddOption(RequiredForOption); AddOption(UninstallForOption); AddOption(new Option("--auto-package", "Automatically package the app if it's not found in the package folder") { IsHidden = true }); + AddOption(new Option("--auto-update", "Turn on auto update, if assigned as available") { IsHidden = true }); AddOption(PackageCommand.GetArchitectureOption(isHidden: true)); AddOption(PackageCommand.GetInstallerContextOption(isHidden: true)); this.Handler = CommandHandler.Create(HandleCommand); @@ -99,7 +100,8 @@ await intuneManager.GenerateInstallerPackage(options.TempFolder, Categories = options.Category, AvailableFor = options.Available, RequiredFor = options.Required, - UninstallFor = options.Uninstall + UninstallFor = options.Uninstall, + AddAutoUpdateSetting = options.AutoUpdate }; var app = packageInfo.Source == PackageSource.Store @@ -124,6 +126,7 @@ internal class PublishCommandOptions : WinGetRootCommand.DefaultOptions public string[] Uninstall { get; set; } = Array.Empty(); public bool AutoPackage { get; set; } + public bool AutoUpdate { get; set; } public string TempFolder { get; set; } public InstallerContext InstallerContext { get; set; } public Architecture Architecture { get; set; } diff --git a/src/WingetIntune.Cli/WingetIntune.Cli.csproj b/src/WingetIntune.Cli/WingetIntune.Cli.csproj index 77f6bff..9c2c0ed 100644 --- a/src/WingetIntune.Cli/WingetIntune.Cli.csproj +++ b/src/WingetIntune.Cli/WingetIntune.Cli.csproj @@ -40,7 +40,7 @@ - + diff --git a/src/WingetIntune.Cli/packages.lock.json b/src/WingetIntune.Cli/packages.lock.json index 9d7085e..d56ea33 100644 --- a/src/WingetIntune.Cli/packages.lock.json +++ b/src/WingetIntune.Cli/packages.lock.json @@ -4,13 +4,13 @@ "net8.0": { "Azure.Identity": { "type": "Direct", - "requested": "[1.10.4, )", - "resolved": "1.10.4", - "contentHash": "hSvisZy9sld0Gik1X94od3+rRXCx+AKgi+iLH6fFdlnRZRePn7RtrqUGSsORiH2h8H2sc4NLTrnuUte1WL+QuQ==", + "requested": "[1.11.2, )", + "resolved": "1.11.2", + "contentHash": "mihECA1msfwdjTPXHwK9N3n4ln8jMB0DuT0r2caDGPriRT1vca4/Jgmo6FmFZPo8RQsQt1fVn1Gxv5WqkyHVeA==", "dependencies": { - "Azure.Core": "1.36.0", - "Microsoft.Identity.Client": "4.56.0", - "Microsoft.Identity.Client.Extensions.Msal": "4.56.0", + "Azure.Core": "1.38.0", + "Microsoft.Identity.Client": "4.60.3", + "Microsoft.Identity.Client.Extensions.Msal": "4.60.3", "System.Memory": "4.5.4", "System.Security.Cryptography.ProtectedData": "4.7.0", "System.Text.Json": "4.7.2", @@ -56,10 +56,11 @@ }, "Azure.Core": { "type": "Transitive", - "resolved": "1.36.0", - "contentHash": "vwqFZdHS4dzPlI7FFRkPx9ctA+aGGeRev3gnzG8lntWvKMmBhAmulABi1O9CEvS3/jzYt7yA+0pqVdxkpAd7dQ==", + "resolved": "1.38.0", + "contentHash": "IuEgCoVA0ef7E4pQtpC3+TkPbzaoQfa77HlfJDmfuaJUCVJmn7fT0izamZiryW5sYUFKizsftIxMkXKbgIcPMQ==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.ClientModel": "1.0.0", "System.Diagnostics.DiagnosticSource": "6.0.1", "System.Memory.Data": "1.0.2", "System.Numerics.Vectors": "4.5.0", @@ -80,58 +81,58 @@ }, "Microsoft.Data.Sqlite.Core": { "type": "Transitive", - "resolved": "8.0.3", - "contentHash": "1euU97SivROH7nVIh2c/V63e0nQ73Txr/YlysB7fJuTV8LcfeL9WO1gdiJWcRIDoq8/McxcTc7evY6JJ1pD95w==", + "resolved": "8.0.4", + "contentHash": "x5FE5m1h31UIDEk0j3r38HtYvsa0fxd5jXzvE/SARI7LecXt/jm4z2SUl6TEoJGQOo9Ow2wg3a0MU2E1TVVAdA==", "dependencies": { "SQLitePCLRaw.core": "2.1.6" } }, "Microsoft.EntityFrameworkCore": { "type": "Transitive", - "resolved": "8.0.3", - "contentHash": "QUPQbeq4yCjgIL/6PzkhfwhljXmai3CNOsErWFJ/WJ1Z41V8+At0Bi4PT8/2pX25kPgf83g0CUKIZd0QbeKT4A==", + "resolved": "8.0.4", + "contentHash": "/kyu9pXuxQvhg8RO/oN5Q5Og7cDIVvZtrt1z48rX7Yido+zEGkUkp3/Bjd9u45N2uuPPF8mn2pKDlAewCvv3/Q==", "dependencies": { - "Microsoft.EntityFrameworkCore.Abstractions": "8.0.3", - "Microsoft.EntityFrameworkCore.Analyzers": "8.0.3", + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.4", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.4", "Microsoft.Extensions.Caching.Memory": "8.0.0", "Microsoft.Extensions.Logging": "8.0.0" } }, "Microsoft.EntityFrameworkCore.Abstractions": { "type": "Transitive", - "resolved": "8.0.3", - "contentHash": "cW+SKdx34wZ25ZVKCpk/6+6z27wrZlQ1qXyx7UWpy34s9CyAojH0QiYlV/2owNOGSAH67rm+LxAjUOicsqlGzQ==" + "resolved": "8.0.4", + "contentHash": "S50pjtPNOvRktacaO6UAhvGCPMT56wxqEq8fQfcjaSUySPGba6mKWo6ackw6DdeAR1cA6U+U0uj27warA2KtJA==" }, "Microsoft.EntityFrameworkCore.Analyzers": { "type": "Transitive", - "resolved": "8.0.3", - "contentHash": "3csRAzz5O5Gn+GQBMyLn26OICtEo2/U2iDDygQhKb3LnC78bAUvutkMqvb0Ek5A6uHrBcZQrKQJfkgfnRT5XZw==" + "resolved": "8.0.4", + "contentHash": "P8hfMZECdbgle4Us8HGRUKAjqVwgbtr5JqtCxqEoiVORrNQAmcpu3g1NKwTAoUsO9Z0QRgExtYoAmdggR/DkMQ==" }, "Microsoft.EntityFrameworkCore.Relational": { "type": "Transitive", - "resolved": "8.0.3", - "contentHash": "8JnVZHWaNFkrrD/FC0O4jekiHIYey8y6TQ4Co3OzLz0wd5Dm1cwJfTp++1TvaVu0BBd4bVDtiktppa5epuoPrA==", + "resolved": "8.0.4", + "contentHash": "aWLT6e9a8oMzXgF0YQpYYa3mDeU+yb2UQSQ+RrIgyGgSpzPfSKgpA7v2kOVDuZr2AQ6NNAlWPaBG7wZuKQI96w==", "dependencies": { - "Microsoft.EntityFrameworkCore": "8.0.3", + "Microsoft.EntityFrameworkCore": "8.0.4", "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.EntityFrameworkCore.Sqlite": { "type": "Transitive", - "resolved": "8.0.3", - "contentHash": "mdHNwlJkV71pKJU1MzIbjHWyjLw03S2kCO6mnuZL6V7uDv5ZxncoT5OELUiv7wRAYxnBucrl7ZPT76hwhBKBFw==", + "resolved": "8.0.4", + "contentHash": "7y0Z7y1SwBNswxlNY9zduqk5I0+pWWzYIFhtJtvo55RcfomIQDmOODG/s5+iOxv0JoVHjFOgAc8AMI3DwAaoig==", "dependencies": { - "Microsoft.EntityFrameworkCore.Sqlite.Core": "8.0.3", + "Microsoft.EntityFrameworkCore.Sqlite.Core": "8.0.4", "SQLitePCLRaw.bundle_e_sqlite3": "2.1.6" } }, "Microsoft.EntityFrameworkCore.Sqlite.Core": { "type": "Transitive", - "resolved": "8.0.3", - "contentHash": "6DvYtnLdpViXgA5F2Z/cIJfWIv31Eby5j2YqUzr+sgJulKtCX+ypvmfooXlYnCwJDlcmIaMY27TMnlrCcUvZmA==", + "resolved": "8.0.4", + "contentHash": "4XCrL6vdFQSXZY6b89cXvjYNvTKP5azMvgacI2XE+B0D7Lg3zYSjmfLZYWfR3j3izx5X8xCTkHZnaRHHfHcv+w==", "dependencies": { - "Microsoft.Data.Sqlite.Core": "8.0.3", - "Microsoft.EntityFrameworkCore.Relational": "8.0.3", + "Microsoft.Data.Sqlite.Core": "8.0.4", + "Microsoft.EntityFrameworkCore.Relational": "8.0.4", "Microsoft.Extensions.DependencyModel": "8.0.0" } }, @@ -471,8 +472,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "rC+qiskr8RKq2a43hH55vuDRz4Wto+bxwxMrKzCIOann1NL0OFFTjEk4ZVnTTBdijVWC6mhOaSmdV1H6J6bXmA==", + "resolved": "4.60.3", + "contentHash": "jve1RzmSpBhGlqMzPva6VfRbLMLZZc1Q8WRVZf8+iEruQkBgDTJPq8OeTehcY4GGYG1j6UB1xVofVE+n4BLDdw==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -480,19 +481,19 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "q5W6Sl853jiuFVrcr4c0cWFFy/Szmm6GMVpL8QEt5GEymJbDTwhNvNC6qWP3yoy+xBZL1KYExt5MVj3QZ+pFjA==", + "resolved": "4.60.3", + "contentHash": "ki+l9Jxp5ift/c5iHS6LC0Y+MEZ7cPzC91l1Aj4tgzV6VzvF7/qO4vclFWQsB4MiA0KUMybkSOAZEuRahrHGlQ==", "dependencies": { - "Microsoft.Identity.Client": "4.60.1", + "Microsoft.Identity.Client": "4.60.3", "Microsoft.Identity.Client.NativeInterop": "0.16.0" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "EdPcGqvruFzNBcW+/3DSP4vNmLNYXSSnngj+QecAxmy6VRnvA7kt5KE2bU8qQmt4KkOitNHBVYVwze2XkqOLxw==", + "resolved": "4.60.3", + "contentHash": "X1Cz14/RbmlLshusE5u2zfG+5ul6ttgou19BZe5Mdw1qm6fgOI9/imBB2TIsx2UD7nkgd2+MCSzhbukZf7udeg==", "dependencies": { - "Microsoft.Identity.Client": "4.60.1", + "Microsoft.Identity.Client": "4.60.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -503,23 +504,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "seOFPaBQh2K683eFujAuDsrO2XbOA+SvxRli+wu7kl+ZymuGQzjmmUKfyFHmDazpPOBnmOX1ZnjX7zFDZHyNIA==" + "resolved": "7.5.1", + "contentHash": "PT16ZFbPIiMsYv07oy3zOjqUOJ7xutGBkJTOX0+IbNyU6+O6X7aIxjq9EaSSRLWbekRgamgtmfg8Xjw6A6Ua9g==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "mfyiGptbcH+oYrzAtWWwuV+7MoM0G0si+9owaj6DGWInhq/N/KDj/pWHhq1ShdmBu332gjP+cppjgwBpsOj7Fg==", + "resolved": "7.5.1", + "contentHash": "93CGSa8RPdZU8zfvA3nf9NGKUqEnQrE12VzYlMqKh72ddhzusosqLNEUgH/YhFWBLRFOnY1RCgHMV7pR+sAx2w==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.0" + "Microsoft.IdentityModel.Tokens": "7.5.1" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "3BInZEajJvnTDP/YRrmJ3Fyw8XAWWR9jG+3FkhhzRJJYItVL+BEH9qlgxSmtrxp7S7N6TOv+Y+X8BG61viiehQ==", + "resolved": "7.5.1", + "contentHash": "PnpAQX20BAiDIPYmWUyQSlEaWD8BLXzHpiDGTCT568Cs0ReOeyzNe401LzCeiv6ilug/KefVeV1CeqtCHTo8dw==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.0" + "Microsoft.IdentityModel.Abstractions": "7.5.1" } }, "Microsoft.IdentityModel.Protocols": { @@ -542,10 +543,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "owe33wqe0ZbwBxM3D90I0XotxNyTdl85jud03d+OrUOJNnTiqnYePwBk3WU9yW0Rk5CYX+sfSim7frmu6jeEzQ==", + "resolved": "7.5.1", + "contentHash": "Q3DKpyFViP84IUlTFKH/zIkswIrmSh2Vd/eFDo4wlOHy4DYxoweZEEw4kDEiKt9VCX6o7SddK3HK2xDYyFpexA==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.0" + "Microsoft.IdentityModel.Logging": "7.5.1" } }, "Microsoft.Kiota.Abstractions": { @@ -630,8 +631,8 @@ }, "Riok.Mapperly": { "type": "Transitive", - "resolved": "3.4.0", - "contentHash": "bTxBEQ0+2x816IL78Fv0B/KkaGRtzfisit9dfWTfa7jjjwMMzpMW9A+V/hyxqHdJtYvtDL6dUNMLJige4zxJvw==" + "resolved": "3.5.1", + "contentHash": "ECFSdemqIN7HoCu8lOtGYW15fYK5XgSg9tpaspdevi4rj6Z4KomMQz6bKID1L5WMHxjyexix250wP5eAF0iKNw==" }, "SQLitePCLRaw.bundle_e_sqlite3": { "type": "Transitive", @@ -678,6 +679,15 @@ "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, + "System.ClientModel": { + "type": "Transitive", + "resolved": "1.0.0", + "contentHash": "I3CVkvxeqFYjIVEP59DnjbeoGNfo/+SZrCLpRz2v/g0gpCHaEMPtWSY0s9k/7jR1rAsLNg2z2u1JRB76tPjnIw==", + "dependencies": { + "System.Memory.Data": "1.0.2", + "System.Text.Json": "4.7.2" + } + }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", @@ -718,11 +728,11 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "D0TtrWOfoPdyYSlvOGaU9F1QR+qrbgJ/4eiEsQkIz7YQKIKkGXQldXukn6cYG9OahSq5UVMvyAIObECpH6Wglg==", + "resolved": "7.5.1", + "contentHash": "UUw+E0R73lZLlXgneYIJQxNs1kfbcxjVzw64JQyiwjqCd4HMpAbjn+xRo86QZT84uHq8/MkqvfH82tgjgPzpuw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.0", - "Microsoft.IdentityModel.Tokens": "7.5.0" + "Microsoft.IdentityModel.JsonWebTokens": "7.5.1", + "Microsoft.IdentityModel.Tokens": "7.5.1" } }, "System.IO": { @@ -894,8 +904,8 @@ "winget.communityrepository.ef": { "type": "Project", "dependencies": { - "Microsoft.EntityFrameworkCore.Sqlite": "[8.0.3, )", - "Microsoft.EntityFrameworkCore.Sqlite.Core": "[8.0.3, )", + "Microsoft.EntityFrameworkCore.Sqlite": "[8.0.4, )", + "Microsoft.EntityFrameworkCore.Sqlite.Core": "[8.0.4, )", "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", "Winget.CommunityRepository": "[1.0.0, )" } @@ -909,11 +919,11 @@ "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Options": "[8.0.2, )", "Microsoft.Graph.Beta": "[5.59.0-preview, )", - "Microsoft.Identity.Client.Broker": "[4.60.1, )", - "Microsoft.Identity.Client.Extensions.Msal": "[4.60.1, )", - "Riok.Mapperly": "[3.4.0, )", + "Microsoft.Identity.Client.Broker": "[4.60.3, )", + "Microsoft.Identity.Client.Extensions.Msal": "[4.60.3, )", + "Riok.Mapperly": "[3.5.1, )", "SvRooij.ContentPrep": "[0.1.3-alpha0001, )", - "System.IdentityModel.Tokens.Jwt": "[7.5.0, )", + "System.IdentityModel.Tokens.Jwt": "[7.5.1, )", "Winget.CommunityRepository": "[1.0.0, )" } } diff --git a/src/WingetIntune/Graph/GraphWorkflows.cs b/src/WingetIntune/Graph/GraphWorkflows.cs index be21e05..9a9c3dc 100644 --- a/src/WingetIntune/Graph/GraphWorkflows.cs +++ b/src/WingetIntune/Graph/GraphWorkflows.cs @@ -1,4 +1,5 @@ using Microsoft.Graph.Beta; +using Microsoft.Graph.Beta.DeviceManagement.Monitoring.AlertRecords.MicrosoftGraphDeviceManagementGetPortalNotifications; using Microsoft.Graph.Beta.Models; using WingetIntune.Extensions; using WingetIntune.Intune; @@ -27,7 +28,7 @@ public static async Task AddIntuneCategoriesToApp(this GraphServiceClient graphS await graphServiceClient.Batch.PostAsync(batch, cancellationToken); } - public static async Task AssignAppAsync(this GraphServiceClient graphServiceClient, string appId, string[]? requiredFor, string[]? availableFor, string[]? uninstallFor, CancellationToken cancellationToken) + public static async Task AssignAppAsync(this GraphServiceClient graphServiceClient, string appId, string[]? requiredFor, string[]? availableFor, string[]? uninstallFor, bool addAutoUpdateSetting, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(graphServiceClient); ArgumentException.ThrowIfNullOrEmpty(appId); @@ -41,7 +42,7 @@ public static async Task AssignAppAsync(this GraphServiceClient graphServic if (availableFor is not null && availableFor.Any()) { - assignments.AddRange(GenerateAssignments(availableFor, InstallIntent.Available)); + assignments.AddRange(GenerateAssignments(availableFor, InstallIntent.Available, addAutoUpdateSetting)); } if (uninstallFor is not null && uninstallFor.Any()) @@ -61,40 +62,44 @@ await graphServiceClient.DeviceAppManagement.MobileApps[appId].Assign.PostAsync( return assignments.Count; } - private static List GenerateAssignments(string[] groups, InstallIntent intent) + private static List GenerateAssignments(string[] groups, InstallIntent intent, bool addSetting = false) { List assignments = new List(); + MobileAppAssignmentSettings? settings = null; + if (intent == InstallIntent.Available && addSetting) + { + settings = new Win32LobAppAssignmentSettings { AutoUpdateSettings = new Win32LobAppAutoUpdateSettings { AutoUpdateSupersededApps = Win32LobAppAutoUpdateSupersededApps.Enabled } }; + } if (groups is not null && groups.Any()) { var groupsGuids = groups.Where(x => Guid.TryParse(x, out _)); if (groupsGuids.Count() > 0) { - assignments.AddRange(groupsGuids.Select(x => new MobileAppAssignment - { - Intent = intent, - Target = new GroupAssignmentTarget - { - GroupId = x - } - })); + assignments.AddRange(groupsGuids.Select(x => CreateAssignment(intent, new GroupAssignmentTarget { GroupId = x }, settings))); } if (groups.ContainsIgnoreCase(IntuneManagerConstants.AllUsers)) { - assignments.Add(new MobileAppAssignment - { - Intent = intent, - Target = new AllLicensedUsersAssignmentTarget() - }); + assignments.Add(CreateAssignment(intent, new AllLicensedUsersAssignmentTarget(), settings)); } if (groups.ContainsIgnoreCase(IntuneManagerConstants.AllDevices)) { - assignments.Add(new MobileAppAssignment - { - Intent = intent, - Target = new AllDevicesAssignmentTarget() - }); + assignments.Add(CreateAssignment(intent, new AllDevicesAssignmentTarget(), settings)); } } return assignments; } + + private static MobileAppAssignment CreateAssignment(InstallIntent intent, DeviceAndAppManagementAssignmentTarget target, MobileAppAssignmentSettings? settings = null) + { + var a = new MobileAppAssignment + { + Intent = intent, + Target = target, + }; + if (settings is not null) + { + a.AdditionalData.Add("settings", settings); + } + return a; + } } diff --git a/src/WingetIntune/Intune/IntuneManager.cs b/src/WingetIntune/Intune/IntuneManager.cs index 09b5856..7c72065 100644 --- a/src/WingetIntune/Intune/IntuneManager.cs +++ b/src/WingetIntune/Intune/IntuneManager.cs @@ -212,7 +212,7 @@ public async Task PublishAppAsync(string packagesFolder, PackageInfo if (options.AvailableFor.Any() || options.RequiredFor.Any() || options.UninstallFor.Any()) { - await AssignAppAsync(graphServiceClient, app!.Id!, options.RequiredFor, options.AvailableFor, options.UninstallFor, cancellationToken); + await AssignAppAsync(graphServiceClient, app!.Id!, options.RequiredFor, options.AvailableFor, options.UninstallFor, options.AddAutoUpdateSetting, cancellationToken); } return app!; } @@ -359,7 +359,7 @@ public async Task PublishStoreAppAsync(IntunePublishOptions options, } if (options.AvailableFor.Any() || options.RequiredFor.Any() || options.UninstallFor.Any()) { - await AssignAppAsync(graphServiceClient, appCreated.Id!, options.RequiredFor, options.AvailableFor, options.UninstallFor, cancellationToken); + await AssignAppAsync(graphServiceClient, appCreated.Id!, options.RequiredFor, options.AvailableFor, options.UninstallFor, false, cancellationToken); } return appCreated; } @@ -404,7 +404,7 @@ private async Task AddCategoriesToApp(GraphServiceClient graphServiceClient, str } } - private async Task AssignAppAsync(GraphServiceClient graphServiceClient, string appId, string[]? requiredFor, string[]? availableFor, string[]? uninstallFor, CancellationToken cancellationToken) + private async Task AssignAppAsync(GraphServiceClient graphServiceClient, string appId, string[]? requiredFor, string[]? availableFor, string[]? uninstallFor, bool addAutoUpdateSetting, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(graphServiceClient); ArgumentException.ThrowIfNullOrEmpty(appId); @@ -412,7 +412,7 @@ private async Task AssignAppAsync(GraphServiceClient graphServiceClient, string try { - var assignments = await GraphWorkflows.AssignAppAsync(graphServiceClient, appId, requiredFor, availableFor, uninstallFor, cancellationToken); + var assignments = await GraphWorkflows.AssignAppAsync(graphServiceClient, appId, requiredFor, availableFor, uninstallFor, addAutoUpdateSetting, cancellationToken); logger.LogInformation("Assigned app {appId} to {assignmentCount} assignments", appId, assignments); } catch (Exception ex) diff --git a/src/WingetIntune/Intune/IntunePublishOptions.cs b/src/WingetIntune/Intune/IntunePublishOptions.cs index cb7fab8..ea6d4cf 100644 --- a/src/WingetIntune/Intune/IntunePublishOptions.cs +++ b/src/WingetIntune/Intune/IntunePublishOptions.cs @@ -13,4 +13,6 @@ public class IntunePublishOptions public string[] AvailableFor { get; set; } = Array.Empty(); public string[] RequiredFor { get; set; } = Array.Empty(); public string[] UninstallFor { get; set; } = Array.Empty(); + + public bool AddAutoUpdateSetting { get; set; } } diff --git a/src/WingetIntune/WingetIntune.csproj b/src/WingetIntune/WingetIntune.csproj index 3c57036..a42a66c 100644 --- a/src/WingetIntune/WingetIntune.csproj +++ b/src/WingetIntune/WingetIntune.csproj @@ -30,11 +30,11 @@ - - - + + + - + diff --git a/src/WingetIntune/packages.lock.json b/src/WingetIntune/packages.lock.json index 7ffa24e..2d6229b 100644 --- a/src/WingetIntune/packages.lock.json +++ b/src/WingetIntune/packages.lock.json @@ -58,29 +58,29 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Direct", - "requested": "[4.60.1, )", - "resolved": "4.60.1", - "contentHash": "q5W6Sl853jiuFVrcr4c0cWFFy/Szmm6GMVpL8QEt5GEymJbDTwhNvNC6qWP3yoy+xBZL1KYExt5MVj3QZ+pFjA==", + "requested": "[4.60.3, )", + "resolved": "4.60.3", + "contentHash": "ki+l9Jxp5ift/c5iHS6LC0Y+MEZ7cPzC91l1Aj4tgzV6VzvF7/qO4vclFWQsB4MiA0KUMybkSOAZEuRahrHGlQ==", "dependencies": { - "Microsoft.Identity.Client": "4.60.1", + "Microsoft.Identity.Client": "4.60.3", "Microsoft.Identity.Client.NativeInterop": "0.16.0" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Direct", - "requested": "[4.60.1, )", - "resolved": "4.60.1", - "contentHash": "EdPcGqvruFzNBcW+/3DSP4vNmLNYXSSnngj+QecAxmy6VRnvA7kt5KE2bU8qQmt4KkOitNHBVYVwze2XkqOLxw==", + "requested": "[4.60.3, )", + "resolved": "4.60.3", + "contentHash": "X1Cz14/RbmlLshusE5u2zfG+5ul6ttgou19BZe5Mdw1qm6fgOI9/imBB2TIsx2UD7nkgd2+MCSzhbukZf7udeg==", "dependencies": { - "Microsoft.Identity.Client": "4.60.1", + "Microsoft.Identity.Client": "4.60.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, "Riok.Mapperly": { "type": "Direct", - "requested": "[3.4.0, )", - "resolved": "3.4.0", - "contentHash": "bTxBEQ0+2x816IL78Fv0B/KkaGRtzfisit9dfWTfa7jjjwMMzpMW9A+V/hyxqHdJtYvtDL6dUNMLJige4zxJvw==" + "requested": "[3.5.1, )", + "resolved": "3.5.1", + "contentHash": "ECFSdemqIN7HoCu8lOtGYW15fYK5XgSg9tpaspdevi4rj6Z4KomMQz6bKID1L5WMHxjyexix250wP5eAF0iKNw==" }, "SvRooij.ContentPrep": { "type": "Direct", @@ -95,12 +95,12 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Direct", - "requested": "[7.5.0, )", - "resolved": "7.5.0", - "contentHash": "D0TtrWOfoPdyYSlvOGaU9F1QR+qrbgJ/4eiEsQkIz7YQKIKkGXQldXukn6cYG9OahSq5UVMvyAIObECpH6Wglg==", + "requested": "[7.5.1, )", + "resolved": "7.5.1", + "contentHash": "UUw+E0R73lZLlXgneYIJQxNs1kfbcxjVzw64JQyiwjqCd4HMpAbjn+xRo86QZT84uHq8/MkqvfH82tgjgPzpuw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.0", - "Microsoft.IdentityModel.Tokens": "7.5.0" + "Microsoft.IdentityModel.JsonWebTokens": "7.5.1", + "Microsoft.IdentityModel.Tokens": "7.5.1" } }, "Azure.Core": { @@ -221,8 +221,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "rC+qiskr8RKq2a43hH55vuDRz4Wto+bxwxMrKzCIOann1NL0OFFTjEk4ZVnTTBdijVWC6mhOaSmdV1H6J6bXmA==", + "resolved": "4.60.3", + "contentHash": "jve1RzmSpBhGlqMzPva6VfRbLMLZZc1Q8WRVZf8+iEruQkBgDTJPq8OeTehcY4GGYG1j6UB1xVofVE+n4BLDdw==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -235,23 +235,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "seOFPaBQh2K683eFujAuDsrO2XbOA+SvxRli+wu7kl+ZymuGQzjmmUKfyFHmDazpPOBnmOX1ZnjX7zFDZHyNIA==" + "resolved": "7.5.1", + "contentHash": "PT16ZFbPIiMsYv07oy3zOjqUOJ7xutGBkJTOX0+IbNyU6+O6X7aIxjq9EaSSRLWbekRgamgtmfg8Xjw6A6Ua9g==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "mfyiGptbcH+oYrzAtWWwuV+7MoM0G0si+9owaj6DGWInhq/N/KDj/pWHhq1ShdmBu332gjP+cppjgwBpsOj7Fg==", + "resolved": "7.5.1", + "contentHash": "93CGSa8RPdZU8zfvA3nf9NGKUqEnQrE12VzYlMqKh72ddhzusosqLNEUgH/YhFWBLRFOnY1RCgHMV7pR+sAx2w==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.0" + "Microsoft.IdentityModel.Tokens": "7.5.1" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "3BInZEajJvnTDP/YRrmJ3Fyw8XAWWR9jG+3FkhhzRJJYItVL+BEH9qlgxSmtrxp7S7N6TOv+Y+X8BG61viiehQ==", + "resolved": "7.5.1", + "contentHash": "PnpAQX20BAiDIPYmWUyQSlEaWD8BLXzHpiDGTCT568Cs0ReOeyzNe401LzCeiv6ilug/KefVeV1CeqtCHTo8dw==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.0" + "Microsoft.IdentityModel.Abstractions": "7.5.1" } }, "Microsoft.IdentityModel.Protocols": { @@ -274,10 +274,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "owe33wqe0ZbwBxM3D90I0XotxNyTdl85jud03d+OrUOJNnTiqnYePwBk3WU9yW0Rk5CYX+sfSim7frmu6jeEzQ==", + "resolved": "7.5.1", + "contentHash": "Q3DKpyFViP84IUlTFKH/zIkswIrmSh2Vd/eFDo4wlOHy4DYxoweZEEw4kDEiKt9VCX6o7SddK3HK2xDYyFpexA==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.0" + "Microsoft.IdentityModel.Logging": "7.5.1" } }, "Microsoft.Kiota.Abstractions": { diff --git a/tests/WingetIntune.Tests/WingetIntune.Tests.csproj b/tests/WingetIntune.Tests/WingetIntune.Tests.csproj index 7d9ba69..09cc6bb 100644 --- a/tests/WingetIntune.Tests/WingetIntune.Tests.csproj +++ b/tests/WingetIntune.Tests/WingetIntune.Tests.csproj @@ -25,8 +25,8 @@ - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/tests/WingetIntune.Tests/packages.lock.json b/tests/WingetIntune.Tests/packages.lock.json index 82f0b7e..db2e389 100644 --- a/tests/WingetIntune.Tests/packages.lock.json +++ b/tests/WingetIntune.Tests/packages.lock.json @@ -44,20 +44,20 @@ }, "xunit": { "type": "Direct", - "requested": "[2.7.0, )", - "resolved": "2.7.0", - "contentHash": "KcCI5zxh8zbUfQTeErc4oT7YokViVND2V0p4vDJ2VD4lhF9V5qCYMMDNixme7FdwYy3SwPHF+2xC2Dq4Z9GSlA==", + "requested": "[2.7.1, )", + "resolved": "2.7.1", + "contentHash": "9o050yCLzPvHxbrAkaHnI1j+YfPvRw+/ncvKbTfzIhO4JvQA0rPgoICJxXHMkscfgXmLFwZ8107ehnMUVzE23A==", "dependencies": { - "xunit.analyzers": "1.11.0", - "xunit.assert": "2.7.0", - "xunit.core": "[2.7.0]" + "xunit.analyzers": "1.12.0", + "xunit.assert": "2.7.1", + "xunit.core": "[2.7.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.5.7, )", - "resolved": "2.5.7", - "contentHash": "31Rl7dBJriX0DNwZfDp8gqFOPsiM0c9kqpcH/HvNi9vDp+K7Ydf42H7mVIvYT918Ywzn1ymLg1c4DDC6iU754w==" + "requested": "[2.5.8, )", + "resolved": "2.5.8", + "contentHash": "ZJTm71neOfZcUnqdyY0A0Qgcg1162DoOq6+VpCCsOaD9rwCK5alcjOEHeu17sEekzq4qNv3kyelx6lUMsAt/eA==" }, "Azure.Core": { "type": "Transitive", @@ -238,8 +238,8 @@ }, "Microsoft.Identity.Client": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "rC+qiskr8RKq2a43hH55vuDRz4Wto+bxwxMrKzCIOann1NL0OFFTjEk4ZVnTTBdijVWC6mhOaSmdV1H6J6bXmA==", + "resolved": "4.60.3", + "contentHash": "jve1RzmSpBhGlqMzPva6VfRbLMLZZc1Q8WRVZf8+iEruQkBgDTJPq8OeTehcY4GGYG1j6UB1xVofVE+n4BLDdw==", "dependencies": { "Microsoft.IdentityModel.Abstractions": "6.35.0", "System.Diagnostics.DiagnosticSource": "6.0.1" @@ -247,19 +247,19 @@ }, "Microsoft.Identity.Client.Broker": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "q5W6Sl853jiuFVrcr4c0cWFFy/Szmm6GMVpL8QEt5GEymJbDTwhNvNC6qWP3yoy+xBZL1KYExt5MVj3QZ+pFjA==", + "resolved": "4.60.3", + "contentHash": "ki+l9Jxp5ift/c5iHS6LC0Y+MEZ7cPzC91l1Aj4tgzV6VzvF7/qO4vclFWQsB4MiA0KUMybkSOAZEuRahrHGlQ==", "dependencies": { - "Microsoft.Identity.Client": "4.60.1", + "Microsoft.Identity.Client": "4.60.3", "Microsoft.Identity.Client.NativeInterop": "0.16.0" } }, "Microsoft.Identity.Client.Extensions.Msal": { "type": "Transitive", - "resolved": "4.60.1", - "contentHash": "EdPcGqvruFzNBcW+/3DSP4vNmLNYXSSnngj+QecAxmy6VRnvA7kt5KE2bU8qQmt4KkOitNHBVYVwze2XkqOLxw==", + "resolved": "4.60.3", + "contentHash": "X1Cz14/RbmlLshusE5u2zfG+5ul6ttgou19BZe5Mdw1qm6fgOI9/imBB2TIsx2UD7nkgd2+MCSzhbukZf7udeg==", "dependencies": { - "Microsoft.Identity.Client": "4.60.1", + "Microsoft.Identity.Client": "4.60.3", "System.Security.Cryptography.ProtectedData": "4.5.0" } }, @@ -270,23 +270,23 @@ }, "Microsoft.IdentityModel.Abstractions": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "seOFPaBQh2K683eFujAuDsrO2XbOA+SvxRli+wu7kl+ZymuGQzjmmUKfyFHmDazpPOBnmOX1ZnjX7zFDZHyNIA==" + "resolved": "7.5.1", + "contentHash": "PT16ZFbPIiMsYv07oy3zOjqUOJ7xutGBkJTOX0+IbNyU6+O6X7aIxjq9EaSSRLWbekRgamgtmfg8Xjw6A6Ua9g==" }, "Microsoft.IdentityModel.JsonWebTokens": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "mfyiGptbcH+oYrzAtWWwuV+7MoM0G0si+9owaj6DGWInhq/N/KDj/pWHhq1ShdmBu332gjP+cppjgwBpsOj7Fg==", + "resolved": "7.5.1", + "contentHash": "93CGSa8RPdZU8zfvA3nf9NGKUqEnQrE12VzYlMqKh72ddhzusosqLNEUgH/YhFWBLRFOnY1RCgHMV7pR+sAx2w==", "dependencies": { - "Microsoft.IdentityModel.Tokens": "7.5.0" + "Microsoft.IdentityModel.Tokens": "7.5.1" } }, "Microsoft.IdentityModel.Logging": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "3BInZEajJvnTDP/YRrmJ3Fyw8XAWWR9jG+3FkhhzRJJYItVL+BEH9qlgxSmtrxp7S7N6TOv+Y+X8BG61viiehQ==", + "resolved": "7.5.1", + "contentHash": "PnpAQX20BAiDIPYmWUyQSlEaWD8BLXzHpiDGTCT568Cs0ReOeyzNe401LzCeiv6ilug/KefVeV1CeqtCHTo8dw==", "dependencies": { - "Microsoft.IdentityModel.Abstractions": "7.5.0" + "Microsoft.IdentityModel.Abstractions": "7.5.1" } }, "Microsoft.IdentityModel.Protocols": { @@ -309,10 +309,10 @@ }, "Microsoft.IdentityModel.Tokens": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "owe33wqe0ZbwBxM3D90I0XotxNyTdl85jud03d+OrUOJNnTiqnYePwBk3WU9yW0Rk5CYX+sfSim7frmu6jeEzQ==", + "resolved": "7.5.1", + "contentHash": "Q3DKpyFViP84IUlTFKH/zIkswIrmSh2Vd/eFDo4wlOHy4DYxoweZEEw4kDEiKt9VCX6o7SddK3HK2xDYyFpexA==", "dependencies": { - "Microsoft.IdentityModel.Logging": "7.5.0" + "Microsoft.IdentityModel.Logging": "7.5.1" } }, "Microsoft.Kiota.Abstractions": { @@ -419,8 +419,8 @@ }, "Riok.Mapperly": { "type": "Transitive", - "resolved": "3.4.0", - "contentHash": "bTxBEQ0+2x816IL78Fv0B/KkaGRtzfisit9dfWTfa7jjjwMMzpMW9A+V/hyxqHdJtYvtDL6dUNMLJige4zxJvw==" + "resolved": "3.5.1", + "contentHash": "ECFSdemqIN7HoCu8lOtGYW15fYK5XgSg9tpaspdevi4rj6Z4KomMQz6bKID1L5WMHxjyexix250wP5eAF0iKNw==" }, "Std.UriTemplate": { "type": "Transitive", @@ -469,11 +469,11 @@ }, "System.IdentityModel.Tokens.Jwt": { "type": "Transitive", - "resolved": "7.5.0", - "contentHash": "D0TtrWOfoPdyYSlvOGaU9F1QR+qrbgJ/4eiEsQkIz7YQKIKkGXQldXukn6cYG9OahSq5UVMvyAIObECpH6Wglg==", + "resolved": "7.5.1", + "contentHash": "UUw+E0R73lZLlXgneYIJQxNs1kfbcxjVzw64JQyiwjqCd4HMpAbjn+xRo86QZT84uHq8/MkqvfH82tgjgPzpuw==", "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "7.5.0", - "Microsoft.IdentityModel.Tokens": "7.5.0" + "Microsoft.IdentityModel.JsonWebTokens": "7.5.1", + "Microsoft.IdentityModel.Tokens": "7.5.1" } }, "System.IO": { @@ -641,37 +641,37 @@ }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.11.0", - "contentHash": "SCv+Ihxv+fCqotGeM8sVwLhw8nzAJ2aFRN5lcoKn9QtGdbVJ79JqDc+4u8/Ddnp2udxtmv+xYFWkHNlb/sk01w==" + "resolved": "1.12.0", + "contentHash": "w23LH3aXade2WXKvXi0oA/uV15fpgUMjsPq1x91iQckzgWApgAiijNHmfFQtqNPm41wfrdbRl7nSJRd0yux/dw==" }, "xunit.assert": { "type": "Transitive", - "resolved": "2.7.0", - "contentHash": "CCTs3bUhmIS4tDwK6Cn/IiabG3RhYzdf65eIkO7u9/grKoN9MrN780LzVED3E8v+vwmmj7b5TW3/GFuZHPAzWA==" + "resolved": "2.7.1", + "contentHash": "JqvXS4yX+PtJn5BuqoKkYav7I0g4nXcxRbGTomDwVQjFccOdyfYKpuPOHX/DqrPCcL+MIHrGVdP3bveUXlvdnA==" }, "xunit.core": { "type": "Transitive", - "resolved": "2.7.0", - "contentHash": "98tzqYAbtc/p/2Ba455XTNbD12Qoo8kPehjC4oDT46CAsLli5JOCU9hFF2MV3HHWMw/Y3yFUV2Vcukplbs6kuA==", + "resolved": "2.7.1", + "contentHash": "hcODgS+RXdjmXq0zQzmRbERQgY+bAGGx1bdH3370t/8CTGmIEU2qAc1dQAjIRpARsacR0cj6LLJDUF5BNQNKTQ==", "dependencies": { - "xunit.extensibility.core": "[2.7.0]", - "xunit.extensibility.execution": "[2.7.0]" + "xunit.extensibility.core": "[2.7.1]", + "xunit.extensibility.execution": "[2.7.1]" } }, "xunit.extensibility.core": { "type": "Transitive", - "resolved": "2.7.0", - "contentHash": "JLnx4PI0vn1Xr1Ust6ydrp2t/ktm2dyGPAVoDJV5gQuvBMSbd2K7WGzODa2ttiz030CeQ8nbsXl05+cvf7QNyA==", + "resolved": "2.7.1", + "contentHash": "yLX4XlBFkvNYCzf+DEzlNk45KsSlu9W93IJHBmtUP96qZ9XyRYDFlwMj6BCcOhDKVNrZxSM8bqu4F/Qud4ehxA==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", - "resolved": "2.7.0", - "contentHash": "bjY+crT1jOyxKagFjCMdEVzoenO2v66ru8+CK/0UaXvyG4U9Q3UTieJkbQXbi7/1yZIK1sGh01l5/jh2CwLJtQ==", + "resolved": "2.7.1", + "contentHash": "ei3dKF8agj4UKkJ6KkaZ5/Gcif3if6hBsyzegIQJonZDSKZFvb0AyKtyOhDfggBaXVL5iXZExITdRkfjC95yhw==", "dependencies": { - "xunit.extensibility.core": "[2.7.0]" + "xunit.extensibility.core": "[2.7.1]" } }, "YamlDotNet": { @@ -695,11 +695,11 @@ "Microsoft.Extensions.Logging.Abstractions": "[8.0.1, )", "Microsoft.Extensions.Options": "[8.0.2, )", "Microsoft.Graph.Beta": "[5.59.0-preview, )", - "Microsoft.Identity.Client.Broker": "[4.60.1, )", - "Microsoft.Identity.Client.Extensions.Msal": "[4.60.1, )", - "Riok.Mapperly": "[3.4.0, )", + "Microsoft.Identity.Client.Broker": "[4.60.3, )", + "Microsoft.Identity.Client.Extensions.Msal": "[4.60.3, )", + "Riok.Mapperly": "[3.5.1, )", "SvRooij.ContentPrep": "[0.1.3-alpha0001, )", - "System.IdentityModel.Tokens.Jwt": "[7.5.0, )", + "System.IdentityModel.Tokens.Jwt": "[7.5.1, )", "Winget.CommunityRepository": "[1.0.0, )" } }