mirror of
https://github.com/fleetdm/fleet
synced 2026-05-22 08:28:52 +00:00
Update Fleet-maintained apps (#36160)
Automated ingestion of latest Fleet-maintained app data. Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com>
This commit is contained in:
parent
8c43b4c8e3
commit
97a2e0f5ea
7 changed files with 23 additions and 23 deletions
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "2.0.77",
|
||||
"version": "2.1.17",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92';"
|
||||
},
|
||||
"installer_url": "https://downloads.cursor.com/production/ba90f2f88e4911312761abab9492c42442117cfe/darwin/arm64/Cursor-darwin-arm64.zip",
|
||||
"installer_url": "https://downloads.cursor.com/production/6757269838ae9ac4caaa2be13f396fdfbcf1f9a6/darwin/arm64/Cursor-darwin-arm64.zip",
|
||||
"install_script_ref": "d059edf1",
|
||||
"uninstall_script_ref": "f7561d44",
|
||||
"sha256": "971687d226bea0dd7ae41daef58023c30e7e22ee59ecb779c215c6b758eb77c8",
|
||||
"sha256": "169294deaf9541ee75173aa741f340ad57faaa740493c61a6b93bd651f80d662",
|
||||
"default_categories": [
|
||||
"Developer tools"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "1.143.2.0",
|
||||
"version": "1.143.3.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.grammarly.ProjectLlama';"
|
||||
},
|
||||
"installer_url": "https://download-mac.grammarly.com/versions/1.143.2.0/Grammarly.dmg",
|
||||
"installer_url": "https://download-mac.grammarly.com/versions/1.143.3.0/Grammarly.dmg",
|
||||
"install_script_ref": "962d8d13",
|
||||
"uninstall_script_ref": "7b5a67c7",
|
||||
"sha256": "d7d3b381457c0536cdd20512ca739772fb4910f614479efd94eb2d89f9f8a4e4",
|
||||
"sha256": "602d4cbae29108f1ae85b93d94ef4e7532292cce1f6029d3fdb280a7ad042468",
|
||||
"default_categories": [
|
||||
"Productivity"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "12.0.0",
|
||||
"version": "12.1.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.insomnia.app';"
|
||||
},
|
||||
"installer_url": "https://github.com/Kong/insomnia/releases/download/core%4012.0.0/Insomnia.Core-12.0.0.dmg",
|
||||
"installer_url": "https://github.com/Kong/insomnia/releases/download/core%4012.1.0/Insomnia.Core-12.1.0.dmg",
|
||||
"install_script_ref": "b5685b20",
|
||||
"uninstall_script_ref": "6024f710",
|
||||
"sha256": "98fb5e8d83afac7b92967446da5e9623343751afde986b44d3ccbcf4680c0235",
|
||||
"sha256": "ec37f8bffc79446c17ac5ddc33e33a0024d5067b7551938bf1cfc7c957904f43",
|
||||
"default_categories": [
|
||||
"Developer tools"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
"exists": "SELECT 1 FROM programs WHERE name = 'Microsoft Teams' AND publisher = 'Microsoft Corporation';"
|
||||
},
|
||||
"installer_url": "https://installer.teams.static.microsoft/production-windows-x64/25306.804.4102.7193/MSTeams-x64.msix",
|
||||
"install_script_ref": "24672a1a",
|
||||
"install_script_ref": "a90fa842",
|
||||
"uninstall_script_ref": "8c408748",
|
||||
"sha256": "7bd9be340d47eabaaaa105b819a29f86cb5c1c9038874e1f0f17cd5cde92839f",
|
||||
"default_categories": [
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
}
|
||||
],
|
||||
"refs": {
|
||||
"24672a1a": "$softwareName = \"MSTeams-x64\"\n$msixPath = \"${env:INSTALLER_PATH}\"\n$taskName = \"fleet-install-$softwareName.msix\"\n$scriptPath = \"$env:PUBLIC\\install-$softwareName.ps1\"\n$exitCodeFile = \"$env:PUBLIC\\install-exitcode-$softwareName.txt\"\n\n$userScript = @\"\n`$msixPath = \"$msixPath\"\n`$exitCodeFile = \"$exitCodeFile\"\n`$exitCode = 0\n\ntry {\n Write-Host \"=== Teams Installation Start ===\"\n Write-Host \"MSIX Path: `$msixPath\"\n\n # Provision for all future users\n Write-Host \"[1/3] Provisioning for all future users...\"\n Add-AppProvisionedPackage -Online -PackagePath `$msixPath -SkipLicense -ErrorAction Stop\n Write-Host \"[1/3] Provisioning complete\"\n\n # Also install for current user so osquery can detect it immediately\n Write-Host \"[2/3] Installing for current user...\"\n Add-AppxPackage -Path `$msixPath -ErrorAction Stop\n Write-Host \"[2/3] Installation complete\"\n\n # Poll for package registration (up to 30 seconds)\n Write-Host \"[3/3] Polling for registration (max 30s)...\"\n `$maxAttempts = 30\n `$attempt = 0\n `$installed = `$null\n\n while (`$attempt -lt `$maxAttempts) {\n `$installed = Get-AppxPackage -Name \"MSTeams\" -ErrorAction SilentlyContinue\n if (`$installed) {\n Write-Host \"[3/3] Package registered after `$attempt seconds\"\n break\n }\n Start-Sleep -Seconds 1\n `$attempt++\n }\n\n if (-not `$installed) {\n Write-Host \"[3/3] ERROR: Package not registered after `$attempt seconds\"\n `$exitCode = 1\n } else {\n Write-Host \"=== Installation Successful ===\"\n Write-Host \"Package: `$(`$installed.PackageFullName)\"\n Write-Host \"Version: `$(`$installed.Version)\"\n }\n} catch {\n Write-Host \"=== Installation Failed ===\"\n Write-Host \"Error: `$(`$_.Exception.Message)\"\n `$exitCode = 1\n} finally {\n Write-Host \"Exit Code: `$exitCode\"\n Set-Content -Path `$exitCodeFile -Value `$exitCode\n}\n\nExit `$exitCode\n\"@\n\n$exitCode = 0\n\ntry {\n # Wait for an interactive user to be logged on\n while ($true) {\n $userName = (Get-CimInstance Win32_ComputerSystem).UserName\n\n if ($userName -and $userName -like \"*\\*\") {\n break\n } else {\n Start-Sleep -Seconds 5\n }\n }\n\n # Write the install script to disk\n Set-Content -Path $scriptPath -Value $userScript -Force\n\n # Build task action: run script (output goes to stdout for Fleet)\n $action = New-ScheduledTaskAction -Execute \"powershell.exe\" `\n -Argument \"-WindowStyle Hidden -ExecutionPolicy Bypass -File `\"$scriptPath`\"\"\n\n $trigger = New-ScheduledTaskTrigger -AtLogOn\n\n $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries\n\n $principal = New-ScheduledTaskPrincipal -UserId $userName -RunLevel Highest\n\n $task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings -Principal $principal\n\n Register-ScheduledTask -TaskName $taskName -InputObject $task -User $userName -Force | Out-Null\n\n # Start the task\n Start-ScheduledTask -TaskName $taskName\n\n # Wait for it to start\n $startDate = Get-Date\n $state = (Get-ScheduledTask -TaskName $taskName).State\n while ($state -ne \"Running\") {\n Start-Sleep -Seconds 1\n $elapsed = (New-Timespan -Start $startDate).TotalSeconds\n if ($elapsed -gt 120) { throw \"Timeout waiting for task to start.\" }\n $state = (Get-ScheduledTask -TaskName $taskName).State\n }\n\n # Wait for it to complete\n while ($state -eq \"Running\") {\n Start-Sleep -Seconds 15\n $elapsed = (New-Timespan -Start $startDate).TotalSeconds\n if ($elapsed -gt 120) { throw \"Timeout waiting for task to finish.\" }\n $state = (Get-ScheduledTask -TaskName $taskName).State\n }\n\n if (Test-Path $exitCodeFile) {\n $exitCode = Get-Content $exitCodeFile\n } else {\n $exitCode = 1\n }\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n} finally {\n # Clean up\n Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue\n Remove-Item -Path $scriptPath -Force -ErrorAction SilentlyContinue\n Remove-Item -Path $exitCodeFile -Force -ErrorAction SilentlyContinue\n}\n\nExit $exitCode\n",
|
||||
"8c408748": "$softwareName = \"MSTeams-x64\"\n$packageName = \"MSTeams\"\n$taskName = \"fleet-uninstall-$softwareName.msix\"\n$scriptPath = \"$env:PUBLIC\\uninstall-$softwareName.ps1\"\n$exitCodeFile = \"$env:PUBLIC\\uninstall-exitcode-$softwareName.txt\"\n\n$userScript = @\"\n`$packageName = \"$packageName\"\n`$exitCodeFile = \"$exitCodeFile\"\n`$exitCode = 0\n\ntry {\n Write-Host \"=== Teams Uninstallation Start ===\"\n\n # Remove for current user\n Write-Host \"Removing package for current user...\"\n Remove-AppxPackage -Package (Get-AppxPackage -Name `$packageName).PackageFullName -ErrorAction Stop\n Write-Host \"Removed for current user\"\n\n # Also remove provisioned package for all future users\n Write-Host \"Removing provisioned package for all future users...\"\n Get-AppxProvisionedPackage -Online | Where-Object { `$_.DisplayName -eq `$packageName } | Remove-AppxProvisionedPackage -Online -ErrorAction Stop\n Write-Host \"Removed provisioned package\"\n\n Write-Host \"=== Uninstallation Successful ===\"\n} catch {\n Write-Host \"=== Uninstallation Failed ===\"\n Write-Host \"Error: `$(`$_.Exception.Message)\"\n `$exitCode = 1\n} finally {\n Write-Host \"Exit Code: `$exitCode\"\n Set-Content -Path `$exitCodeFile -Value `$exitCode\n}\n\nExit `$exitCode\n\"@\n\n$exitCode = 0\n\ntry {\n # Wait for an interactive user to be logged on\n while ($true) {\n $userName = (Get-CimInstance Win32_ComputerSystem).UserName\n\n if ($userName -and $userName -like \"*\\*\") {\n break\n } else {\n Start-Sleep -Seconds 5\n }\n }\n\n # Write the uninstall script to disk\n Set-Content -Path $scriptPath -Value $userScript -Force\n\n # Build task action: run script (output goes to stdout for Fleet)\n $action = New-ScheduledTaskAction -Execute \"powershell.exe\" `\n -Argument \"-WindowStyle Hidden -ExecutionPolicy Bypass -File `\"$scriptPath`\"\"\n\n $trigger = New-ScheduledTaskTrigger -AtLogOn\n\n $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries\n\n $principal = New-ScheduledTaskPrincipal -UserId $userName -RunLevel Highest\n\n $task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings -Principal $principal\n\n Register-ScheduledTask -TaskName $taskName -InputObject $task -User $userName -Force\n\n # Start the task\n Start-ScheduledTask -TaskName $taskName\n\n # Wait for it to start\n $startDate = Get-Date\n $state = (Get-ScheduledTask -TaskName $taskName).State\n while ($state -ne \"Running\") {\n Start-Sleep -Seconds 1\n $elapsed = (New-Timespan -Start $startDate).TotalSeconds\n if ($elapsed -gt 120) { throw \"Timeout waiting for task to start.\" }\n $state = (Get-ScheduledTask -TaskName $taskName).State\n }\n\n # Wait for it to complete\n while ($state -eq \"Running\") {\n Start-Sleep -Seconds 5\n $elapsed = (New-Timespan -Start $startDate).TotalSeconds\n if ($elapsed -gt 120) { throw \"Timeout waiting for task to finish.\" }\n $state = (Get-ScheduledTask -TaskName $taskName).State\n }\n\n if (Test-Path $exitCodeFile) {\n $exitCode = Get-Content $exitCodeFile\n }\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n} finally {\n # Clean up\n Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue\n Remove-Item -Path $scriptPath -Force -ErrorAction SilentlyContinue\n Remove-Item -Path $exitCodeFile -Force -ErrorAction SilentlyContinue\n}\n\nExit $exitCode"
|
||||
"8c408748": "$softwareName = \"MSTeams-x64\"\n$packageName = \"MSTeams\"\n$taskName = \"fleet-uninstall-$softwareName.msix\"\n$scriptPath = \"$env:PUBLIC\\uninstall-$softwareName.ps1\"\n$exitCodeFile = \"$env:PUBLIC\\uninstall-exitcode-$softwareName.txt\"\n\n$userScript = @\"\n`$packageName = \"$packageName\"\n`$exitCodeFile = \"$exitCodeFile\"\n`$exitCode = 0\n\ntry {\n Write-Host \"=== Teams Uninstallation Start ===\"\n\n # Remove for current user\n Write-Host \"Removing package for current user...\"\n Remove-AppxPackage -Package (Get-AppxPackage -Name `$packageName).PackageFullName -ErrorAction Stop\n Write-Host \"Removed for current user\"\n\n # Also remove provisioned package for all future users\n Write-Host \"Removing provisioned package for all future users...\"\n Get-AppxProvisionedPackage -Online | Where-Object { `$_.DisplayName -eq `$packageName } | Remove-AppxProvisionedPackage -Online -ErrorAction Stop\n Write-Host \"Removed provisioned package\"\n\n Write-Host \"=== Uninstallation Successful ===\"\n} catch {\n Write-Host \"=== Uninstallation Failed ===\"\n Write-Host \"Error: `$(`$_.Exception.Message)\"\n `$exitCode = 1\n} finally {\n Write-Host \"Exit Code: `$exitCode\"\n Set-Content -Path `$exitCodeFile -Value `$exitCode\n}\n\nExit `$exitCode\n\"@\n\n$exitCode = 0\n\ntry {\n # Wait for an interactive user to be logged on\n while ($true) {\n $userName = (Get-CimInstance Win32_ComputerSystem).UserName\n\n if ($userName -and $userName -like \"*\\*\") {\n break\n } else {\n Start-Sleep -Seconds 5\n }\n }\n\n # Write the uninstall script to disk\n Set-Content -Path $scriptPath -Value $userScript -Force\n\n # Build task action: run script (output goes to stdout for Fleet)\n $action = New-ScheduledTaskAction -Execute \"powershell.exe\" `\n -Argument \"-WindowStyle Hidden -ExecutionPolicy Bypass -File `\"$scriptPath`\"\"\n\n $trigger = New-ScheduledTaskTrigger -AtLogOn\n\n $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries\n\n $principal = New-ScheduledTaskPrincipal -UserId $userName -RunLevel Highest\n\n $task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings -Principal $principal\n\n Register-ScheduledTask -TaskName $taskName -InputObject $task -User $userName -Force\n\n # Start the task\n Start-ScheduledTask -TaskName $taskName\n\n # Wait for it to start\n $startDate = Get-Date\n $state = (Get-ScheduledTask -TaskName $taskName).State\n while ($state -ne \"Running\") {\n Start-Sleep -Seconds 1\n $elapsed = (New-Timespan -Start $startDate).TotalSeconds\n if ($elapsed -gt 120) { throw \"Timeout waiting for task to start.\" }\n $state = (Get-ScheduledTask -TaskName $taskName).State\n }\n\n # Wait for it to complete\n while ($state -eq \"Running\") {\n Start-Sleep -Seconds 5\n $elapsed = (New-Timespan -Start $startDate).TotalSeconds\n if ($elapsed -gt 120) { throw \"Timeout waiting for task to finish.\" }\n $state = (Get-ScheduledTask -TaskName $taskName).State\n }\n\n if (Test-Path $exitCodeFile) {\n $exitCode = Get-Content $exitCodeFile\n }\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n} finally {\n # Clean up\n Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue\n Remove-Item -Path $scriptPath -Force -ErrorAction SilentlyContinue\n Remove-Item -Path $exitCodeFile -Force -ErrorAction SilentlyContinue\n}\n\nExit $exitCode",
|
||||
"a90fa842": "$softwareName = \"MSTeams-x64\"\n$msixPath = \"${env:INSTALLER_PATH}\"\n$taskName = \"fleet-install-$softwareName.msix\"\n$scriptPath = \"$env:PUBLIC\\install-$softwareName.ps1\"\n$exitCodeFile = \"$env:PUBLIC\\install-exitcode-$softwareName.txt\"\n\n$userScript = @\"\n`$msixPath = \"$msixPath\"\n`$exitCodeFile = \"$exitCodeFile\"\n`$exitCode = 0\n\ntry {\n Write-Host \"=== Teams Installation Start ===\"\n Write-Host \"MSIX Path: `$msixPath\"\n\n # Provision for all future users\n Write-Host \"[1/3] Provisioning for all future users...\"\n Add-AppProvisionedPackage -Online -PackagePath `$msixPath -SkipLicense -ErrorAction Stop\n Write-Host \"[1/3] Provisioning complete\"\n\n # Also install for current user so osquery can detect it immediately\n Write-Host \"[2/3] Installing for current user...\"\n Add-AppxPackage -Path `$msixPath -ErrorAction Stop\n Write-Host \"[2/3] Installation complete\"\n\n # Poll for package registration (up to 30 seconds)\n Write-Host \"[3/3] Polling for registration (max 30s)...\"\n `$maxAttempts = 30\n `$attempt = 0\n `$installed = `$null\n\n while (`$attempt -lt `$maxAttempts) {\n `$installed = Get-AppxPackage -Name \"MSTeams\" -ErrorAction SilentlyContinue\n if (`$installed) {\n Write-Host \"[3/3] Package registered after `$attempt seconds\"\n break\n }\n Start-Sleep -Seconds 1\n `$attempt++\n }\n\n if (-not `$installed) {\n Write-Host \"[3/3] ERROR: Package not registered after `$attempt seconds\"\n `$exitCode = 1\n } else {\n Write-Host \"=== Installation Successful ===\"\n Write-Host \"Package: `$(`$installed.PackageFullName)\"\n Write-Host \"Version: `$(`$installed.Version)\"\n }\n} catch {\n Write-Host \"=== Installation Failed ===\"\n Write-Host \"Error: `$(`$_.Exception.Message)\"\n `$exitCode = 1\n} finally {\n Write-Host \"Exit Code: `$exitCode\"\n Set-Content -Path `$exitCodeFile -Value `$exitCode\n}\n\nExit `$exitCode\n\"@\n\n$exitCode = 0\n\ntry {\n # Wait for an interactive user to be logged on\n while ($true) {\n $userName = (Get-CimInstance Win32_ComputerSystem).UserName\n\n if ($userName -and $userName -like \"*\\*\") {\n break\n } else {\n Start-Sleep -Seconds 5\n }\n }\n\n # Write the install script to disk\n Set-Content -Path $scriptPath -Value $userScript -Force\n\n # Build task action: run script (output goes to stdout for Fleet)\n $action = New-ScheduledTaskAction -Execute \"powershell.exe\" `\n -Argument \"-WindowStyle Hidden -ExecutionPolicy Bypass -File `\"$scriptPath`\"\"\n\n $trigger = New-ScheduledTaskTrigger -AtLogOn\n\n $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries\n\n $principal = New-ScheduledTaskPrincipal -UserId $userName -RunLevel Highest\n\n $task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings -Principal $principal\n\n Register-ScheduledTask -TaskName $taskName -InputObject $task -User $userName -Force | Out-Null\n\n # Start the task\n Start-ScheduledTask -TaskName $taskName\n\n # Wait for it to start\n $startDate = Get-Date\n $state = (Get-ScheduledTask -TaskName $taskName).State\n while ($state -ne \"Running\") {\n Start-Sleep -Seconds 1\n $elapsed = (New-Timespan -Start $startDate).TotalSeconds\n if ($elapsed -gt 120) { throw \"Timeout waiting for task to start.\" }\n $state = (Get-ScheduledTask -TaskName $taskName).State\n }\n\n # Wait for it to complete\n while ($state -eq \"Running\") {\n Start-Sleep -Seconds 5\n $elapsed = (New-Timespan -Start $startDate).TotalSeconds\n if ($elapsed -gt 120) { throw \"Timeout waiting for task to finish.\" }\n $state = (Get-ScheduledTask -TaskName $taskName).State\n }\n\n if (Test-Path $exitCodeFile) {\n $exitCode = Get-Content $exitCodeFile\n } else {\n $exitCode = 1\n }\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n} finally {\n # Clean up\n Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue\n Remove-Item -Path $scriptPath -Force -ErrorAction SilentlyContinue\n Remove-Item -Path $exitCodeFile -Force -ErrorAction SilentlyContinue\n}\n\nExit $exitCode\n"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "2025.2.4",
|
||||
"version": "2025.2.5",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.PhpStorm';"
|
||||
},
|
||||
"installer_url": "https://download.jetbrains.com/webide/PhpStorm-2025.2.4-aarch64.dmg",
|
||||
"installer_url": "https://download.jetbrains.com/webide/PhpStorm-2025.2.5-aarch64.dmg",
|
||||
"install_script_ref": "147cb283",
|
||||
"uninstall_script_ref": "5991db8a",
|
||||
"sha256": "d05c2e3e9106646bdf93731a034dcd82a359c7a91601d6456ed8ea88a75c3546",
|
||||
"sha256": "8320ce229c03277f53a836bc19b796e9241bb00e3e40d4f048290baa27aa9a90",
|
||||
"default_categories": [
|
||||
"Developer tools"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "11.72.7",
|
||||
"version": "11.72.9",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac';"
|
||||
},
|
||||
"installer_url": "https://dl.pstmn.io/download/version/11.72.7/osx_arm64",
|
||||
"installer_url": "https://dl.pstmn.io/download/version/11.72.9/osx_arm64",
|
||||
"install_script_ref": "a937991a",
|
||||
"uninstall_script_ref": "15e9f11c",
|
||||
"sha256": "96c43cfb8e509f619d6c8914fe6d3fcefa0f59220ee3f15570bdfa8fe629bd13",
|
||||
"sha256": "fd609da03c83037c2e09e3bf08cc46434961289348a035bcb312c6627fd01f61",
|
||||
"default_categories": [
|
||||
"Developer tools"
|
||||
]
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue