-
Notifications
You must be signed in to change notification settings - Fork 5
🩹 [Patch]: Optimize Connect-GitHubApp and use parallel processing of access tokens #519
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
base: main
Are you sure you want to change the base?
Conversation
…s and improve examples
- Created TEMPLATE.ps1 for Pester tests with a template structure. - Added Teams.Tests.ps1 to test GitHub Teams API functionalities including team creation, retrieval, updating, and deletion. - Introduced Users.Tests.ps1 to validate user-related API calls, including user retrieval and updates. - Implemented Variables.Tests.ps1 to manage GitHub repository variables, including setting, updating, and removing variables.
There was a problem hiding this 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 enhances the Connect-GitHubApp
function to support parallel processing of GitHub App installation connections, significantly improving performance when connecting to multiple installations. The changes introduce new parameter sets for handling pipeline input and parallel execution controls.
- Added parallel processing capabilities using
ForEach-Object -Parallel
with configurable throttle limits - Introduced new parameter set for accepting installation objects from pipeline input
- Added retry logic for context creation to improve reliability
Reviewed Changes
Copilot reviewed 2 out of 17 changed files in this pull request and generated 4 comments.
File | Description |
---|---|
src/functions/public/Auth/Connect-GitHubApp.ps1 | Major refactoring to support parallel processing, new parameter sets, and recursive connections to installations |
.github/PSModule.yml | Configuration updates to skip various test components in CI workflows |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
…e and improve parallel processing
Co-authored-by: Copilot <[email protected]>
0a4ce89
to
7212939
Compare
…reation and removing unnecessary Write-Host statements in Connect-GitHubApp
…missionDefinition class
…gic for module import in Connect-GitHubApp
…GitHubPermission class with equality and hash code methods
…ion comparison logic in GitHubAppInstallation class
…d adjusting property names
…n GitHubAppContext and GitHubAppInstallationContext
…ppContext and streamline app property initialization
…rEnterpriseOrganization function
…t-GitHubAppInstallationForAuthenticatedAppAsList function
…nstallationForAuthenticatedAppByID function
…pInstallation function for clarity
…ostName parameter for URL generation
…prove error handling
…unused Installation parameter and updating App assignment to use GitHubApp directly.
…llationContext to streamline the class structure.
…itialization and allow URL override for improved flexibility.
…lude URL, enhancing object creation efficiency across multiple functions.
…include App context, improving object creation clarity in installation retrieval functions.
…lly assign App object, improving flexibility in object creation. Update GitHubUser constructor to use null coalescing for bio and ensure direct assignment for followers and following properties.
… improved parallel processing of installations. Update context handling to utilize using scope for better variable access in parallel execution.
…use the correct module name, ensuring compatibility with the latest module structure.
… module context, improving module management and accessibility.
… variables for improved parallel processing and module version handling.
…cted installations for improved parallel processing in Connect-GitHubApp.
…ntext parameter handling in Connect-GitHubApp for enhanced performance.
…arameters to improve clarity and maintainability in Connect-GitHubApp.
…ext parameter handling for improved clarity and performance in Connect-GitHubApp.
…or revoking installation access tokens in GitHub App. 🚀 [Add]: Create Resolve-GitHubContext filter to resolve context into GitHubContext object for improved context handling. 🚀 [Add]: Introduce Set-GitHubContext function to set and store GitHub context in the vault for API authentication. 🚀 [Update]: Enhance Disconnect-GitHubAccount function to support wildcard context resolution for improved usability. 🚀 [Add]: Add Get-GitHubToken function to retrieve GitHub tokens from environment variables as plaintext or secure string.
f1b7971
to
46f54a0
Compare
…tallations for improved parallel processing in Connect-GitHubApp.
…r improved clarity in end processing of Connect-GitHubApp.
…t for controlling parallel thread usage during disconnection.
… removal from the vault with support for single and multiple contexts.
…into parallelConnect
…ailed output for GitHub app, configuration, and installation details.
… for enhanced debugging and logging during installation context.
…nstallation to streamline test execution.
…r pipeline usage in Connect-GitHubApp function.
…unctions to support multi-string and wildcard context resolution.
…ext variable usage in Remove-GitHubContext.
…ort-Object for unique sorting and improve debug output.
Description
This pull request enhances the
Connect-GitHubApp
function to support parallel and recursive creation of connections to multiple GitHub App installations, improving scalability and performance. It also updates the documentation and parameter handling to reflect these new capabilities. The changes are grouped below by theme:Parallel Processing & Scalability Improvements:
-ThrottleLimit
parameter and PowerShell's parallel execution features (ForEach-Object -Parallel
). This applies to all installations, filtered targets, and piped installation objects. [1] [2]Documentation & Usability Updates:
-ThrottleLimit
parameter. [1] [2] [3]Robustness Enhancements:
Configuration File Updates:
.github/PSModule.yml
to enable skipping of test results, source code, module builds, and documentation in CI workflows, aligning with the new parallel processing capabilities.Type of change
Checklist