Skip to content

Adds the Xbox Game Package Manager project to the 'main' branch for Package Uploader #80

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 187 commits into from
Jun 23, 2025

Conversation

WilliamsJason
Copy link
Collaborator

Using the Xbox Game Package Manager (UI tool over the Package Uploader)

The Xbox Game Package Manager is a Windows desktop application that provides a user-friendly graphical interface for the Package Uploader functionality. This tool simplifies both package creation and upload operations with the following key features:

Package Creation

  • GDK Integration: Leverages your installed Xbox Game Development Kit (GDK) to create game packages directly from loose game files
  • Simple Configuration: Point to the folder containing your MicrosoftGame.config file and configure optional settings
  • Custom Layout Support: Option to specify a custom layout XML file for advanced packaging scenarios
  • Output Directory Selection: Choose where the packaged files will be saved

Package Upload

  • Streamlined Workflow: Select your package, branch, and market group in a simple interface
  • Status Monitoring: Track upload progress in real-time with visual indicators
  • Browser-based Authentication: Authenticate seamlessly through your default browser without managing service credentials
  • Multi-tenant Support: Advanced option to specify a tenant ID if your account has access to multiple tenants

Benefits

  • No Configuration Files: Create and upload packages without writing JSON configuration files
  • Visual Progress: Monitor packaging and upload progress through a visual interface
  • Simplified Authentication: Uses browser-based authentication to eliminate the need for client secrets or certificates
  • Error Handling: Provides clear error messages and troubleshooting guidance through the UI

WilliamsJason and others added 30 commits March 6, 2025 09:25
Updated `PackageUploadView.xaml` to include a new namespace for converters and added a `StringNotEmptyConverter` resource. Introduced a `VerticalStackLayout` for displaying success and error messages.

Modified `BaseViewModel.cs` to include `System.Runtime.CompilerServices` for property change notifications.

Updated `PackageCreationViewModel.cs` to enhance command format with logging options and improved output string handling for debugging.

Enhanced `PackageUploadViewModel.cs` with new properties for success and error messages, and updated the configuration file path to include timestamps.

Refined command formats for product retrieval and package uploads to include logging.

Modified `StartUploadPackageProcess` to clear previous messages and log output based on process exit codes.

Added `StringNotEmptyConverter` to improve data binding capabilities in the UI.
1. Drag drop support for game data folder or package file if only doing upload.
2. Data extraction from the package file (supporting upload only case). Reduced reliance on MakePkg output harvesting by relying on that extraction in both scenarios.
…once I figure out Delta upload (which isn't working for me at the moment), but it's a good start.
…e the preferences thanks to inbuilt MAUI tools
…some extra UI showing login details (pulls the 'name' claim from the JWT if possible).
… with most of the necessary functionality.
…tuff looks close. Now it's just final details. TODO: Final details to get right fonts, fix alignments, and change colors for different button states. Also tie in EKB button.
@WilliamsJason WilliamsJason requested a review from Copilot June 16, 2025 15:36
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR integrates the new Xbox Game Package Manager UI tool into the Package Uploader solution, enhances authentication flows with multi-tenant and cacheable browser credentials, and updates CLI options, DI registrations, documentation, and package versions.

  • Introduce cacheable browser credential provider, Azure tenant service, and reset mechanisms for multi-tenant token management
  • Add -t/--TenantId CLI option, update command-line configuration mappings, and extend DI for new auth flows
  • Bump ILCompiler to 8.0.17, enable security defaults, and document the Xbox Game Package Manager in README/SUPPORT

Reviewed Changes

Copilot reviewed 207 out of 207 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/Models/AzureTenants.cs Add AzureTenant and AzureTenantList models
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/InteractiveBrowserCredentialAccessTokenProvider.cs Support tenant ID in browser authentication
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/IAuthenticationResetService.cs Define IAuthenticationResetService interface
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/CredentialAccessTokenProvider.cs Expose protected Logger field
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/Config/AccessTokenProviderConfig.cs Add AzureManagementBaseUrl to config
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/ClientSecretCredentialAccessTokenProvider.cs Migrate to ClientSecretAuthInfo and update error messages
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/ClientCertificateCredentialAccessTokenProvider.cs Migrate to ClientCertificateAuthInfo and load certificates
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/CachableInteractiveBrowserCredentialAccessToken.cs Implement token caching and Azure tenant listing
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/AzureTenantService.cs Implement IAzureTenantService for tenant enumeration
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/AuthenticationResetService.cs Reset global token handlers and MSAL cache
src/PackageUploader.ClientApi/Client/Ingestion/TokenProvider/AccessTokenProviderExtensions.cs Register new auth providers, tenant services, and options
src/PackageUploader.ClientApi/Client/Ingestion/IngestionAuthenticationDelegatingHandler.cs Make handler public and register for reset
src/PackageUploader.Application/packages.lock.json Bump Microsoft.DotNet.ILCompiler to 8.0.17
src/PackageUploader.Application/Program.cs Add TenantIdOption and update command-line mapping
src/PackageUploader.Application/PackageUploader.Application.csproj Enable HighEntropyVA security setting
src/Directory.Build.props Apply <HighEntropyVA> and strict features globally
SUPPORT.md Revise support instructions
README.md Document Xbox Game Package Manager section
.github/workflows/dotnet.yml Setup .NET build and test workflow
.github/workflows/codeql.yml Customize CodeQL build steps
Comments suppressed due to low confidence (1)

SUPPORT.md:9

  • [nitpick] The use of "etc." is vague. List all supported contributors explicitly or point to a CONTRIBUTORS file to avoid uncertainty.
For help and questions about using this project, please open an issue indicating you need help and tag the active Contributors (WilliamsJason, Zenidog8, toekneeparkms, etc.).

@Zenidog8 Zenidog8 self-requested a review June 20, 2025 23:47
…Me-updates-06-20-2025-57953936

Updates per edit pass
@Zenidog8 Zenidog8 self-requested a review June 23, 2025 15:16
@WilliamsJason WilliamsJason merged commit 7fa1c27 into main Jun 23, 2025
8 checks passed
@WilliamsJason WilliamsJason deleted the PackageUploaderUI branch June 23, 2025 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update SUPPORT.md
3 participants