Tags: PSModule/GitHub-Script
Tags
🩹 [Patch]: Add logging for GitHub event data in info script (#64) ## Description This pull request adds a new logging group to the `scripts/info.ps1` file for better visibility into event-related information. ### Logging Improvements: * [`scripts/info.ps1`](diffhunk://#diff-82c586f67d16e32953b47a962c269d0a484f8aa660d71ad354e91fd2d4334cd9R54-R57): Added a new log group labeled 'Event Information' that retrieves and formats GitHub event data using `Get-GitHubEventData`. ## Type of change <!-- Use the check-boxes [x] on the options that are relevant. --> - [ ] 📖 [Docs] - [ ] 🪲 [Fix] - [x] 🩹 [Patch] - [ ]⚠️ [Security fix] - [ ] 🚀 [Feature] - [ ] 🌟 [Breaking change] ## Checklist <!-- Use the check-boxes [x] on the options that are relevant. --> - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas
🩹 [Patch]: Add logging for GitHub event data in info script (#64) ## Description This pull request adds a new logging group to the `scripts/info.ps1` file for better visibility into event-related information. ### Logging Improvements: * [`scripts/info.ps1`](diffhunk://#diff-82c586f67d16e32953b47a962c269d0a484f8aa660d71ad354e91fd2d4334cd9R54-R57): Added a new log group labeled 'Event Information' that retrieves and formats GitHub event data using `Get-GitHubEventData`. ## Type of change <!-- Use the check-boxes [x] on the options that are relevant. --> - [ ] 📖 [Docs] - [ ] 🪲 [Fix] - [x] 🩹 [Patch] - [ ]⚠️ [Security fix] - [ ] 🚀 [Feature] - [ ] 🌟 [Breaking change] ## Checklist <!-- Use the check-boxes [x] on the options that are relevant. --> - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas
🩹 [Patch]: Add logging for GitHub event data in info script (#64) ## Description This pull request adds a new logging group to the `scripts/info.ps1` file for better visibility into event-related information. ### Logging Improvements: * [`scripts/info.ps1`](diffhunk://#diff-82c586f67d16e32953b47a962c269d0a484f8aa660d71ad354e91fd2d4334cd9R54-R57): Added a new log group labeled 'Event Information' that retrieves and formats GitHub event data using `Get-GitHubEventData`. ## Type of change <!-- Use the check-boxes [x] on the options that are relevant. --> - [ ] 📖 [Docs] - [ ] 🪲 [Fix] - [x] 🩹 [Patch] - [ ]⚠️ [Security fix] - [ ] 🚀 [Feature] - [ ] 🌟 [Breaking change] ## Checklist <!-- Use the check-boxes [x] on the options that are relevant. --> - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas
🚀 Add KeyVaultKeyReference parameter for GitHub App authentication (#63) This PR adds support for authenticating GitHub Apps using Azure KeyVault key references, enabling secure private key storage in Azure KeyVault instead of GitHub secrets. ## Changes Made ### 🔧 Core Implementation - **action.yml**: Added new `KeyVaultKeyReference` input parameter with proper description and environment variable mapping - **scripts/init.ps1**: - Added validation logic ensuring mutual exclusion between `PrivateKey` and `KeyVaultKeyReference` - Added requirement validation that `ClientID` must be provided with exactly one key parameter - Implemented new authentication path: `Connect-GitHub -ClientID <ClientID> -KeyVaultKeyReference <url>` - Updated module status reporting to include KeyVault key reference status ### 📚 Documentation - **README.md**: - Added `KeyVaultKeyReference` to inputs documentation table - Added comprehensive Example 5 demonstrating Azure KeyVault authentication workflow - Updated example numbering consistently - Included note about required `azure/login` action for KeyVault authentication ## Usage Example ```yaml jobs: Run-Script: runs-on: ubuntu-latest steps: - name: Login to Azure uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Run script uses: PSModule/GitHub-Script@v1 with: ClientID: ${{ secrets.CLIENT_ID }} KeyVaultKeyReference: ${{ secrets.KEYVAULT_KEY_REFERENCE }} Script: | LogGroup "Get-GitHubApp" { Get-GitHubApp } ``` ## Validation The implementation includes comprehensive validation: - ✅ Mutual exclusion: Only one of `PrivateKey` or `KeyVaultKeyReference` can be provided - ✅ Requirement validation: `ClientID` must be provided with exactly one key parameter - ✅ Error handling for invalid input combinations - ✅ PowerShell and YAML syntax validation - ✅ Integration testing with 6/6 test scenarios passing ## Authentication Flow The action now supports three authentication methods: 1. **Token**: `Token` parameter (existing) 2. **GitHub App with Private Key**: `ClientID` + `PrivateKey` (existing) 3. **GitHub App with KeyVault**: `ClientID` + `KeyVaultKeyReference` (new) Fixes #62. <!-- START COPILOT CODING AGENT TIPS --> --- 💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click [here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to start the survey. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: MariusStorhaug <17722253+MariusStorhaug@users.noreply.github.com> Co-authored-by: Marius Storhaug <marstor@hotmail.com>
🪲 [Fix]: Fix debug and verbose inputs (#61) This pull request introduces updates to improve debug and verbose output handling across the GitHub PowerShell-based action. The changes ensure consistent configuration of debug and verbose preferences and enhance clarity in documentation and workflow files. ### Debug and Verbose Output Handling Updates: * [`.github/workflows/TestWorkflow.yml`](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL412-R412): Added the `-Debug` parameter to the `Get-GitHubUser` command to enable debug output during the workflow execution. * [`action.yml`](diffhunk://#diff-1243c5424efaaa19bd8e813c5e6f6da46316e63761421b3e5f5c8ced9a36e6b6L27-R31): Updated the descriptions for `Debug` and `Verbose` inputs to clarify that they enable debug and verbose output for the entire action. Additionally, configured `$DebugPreference` and `$VerbosePreference` based on input values to set PowerShell preferences dynamically. [[1]](diffhunk://#diff-1243c5424efaaa19bd8e813c5e6f6da46316e63761421b3e5f5c8ced9a36e6b6L27-R31) [[2]](diffhunk://#diff-1243c5424efaaa19bd8e813c5e6f6da46316e63761421b3e5f5c8ced9a36e6b6R95-R96) * [`scripts/info.ps1`](diffhunk://#diff-82c586f67d16e32953b47a962c269d0a484f8aa660d71ad354e91fd2d4334cd9L63-L64): Removed redundant `$DebugPreference` and `$VerbosePreference` configuration from the `end` block, as these preferences are now set globally in the action runner. * [`scripts/outputs.ps1`](diffhunk://#diff-ee715ca93229232e95883bf00629fd14e3bf174cdc17b723c4cc5d70e6a60a58L6-L7): Removed hardcoded `$DebugPreference` and `$VerbosePreference` settings to align with the new dynamic configuration approach. ### Documentation Updates: * [`README.md`](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L18-R19): Improved descriptions for `Debug` and `Verbose` inputs to specify that they enable output for the entire action, enhancing clarity for users.
🩹 [Patch]: Update test to connect a GitHub App using `Connect-GitHubA… …pp` (#60) ## Description This pull request updates the `.github/workflows/TestWorkflow.yml` file to improve the organization and output formatting of GitHub-related logs in the workflow scripts. The most important changes include switching from `Format-Table` to `Format-List` for better readability, restructuring log groups for clarity, and replacing specific installation token-based connections with a streamlined `Connect-GitHubApp` command. ### Improvements to output formatting: * Changed the output formatting from `Format-Table` to `Format-List` for `Get-GitHubApp` and `Get-GitHubConfig` commands to enhance readability. [[1]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL491-R507) [[2]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL522-R542) ### Workflow restructuring: * Replaced the token-based connection logic (`New-GitHubAppInstallationAccessToken` and `Connect-GitHub`) with a simplified `Connect-GitHubApp` command to connect to all installations of the app. [[1]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL491-R507) [[2]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL522-R542) * Added new log groups for `Contexts` (`Get-GitHubContext -ListAvailable`) and `GitHubConfig` (`Get-GitHubConfig`) to improve clarity and organization of workflow logs. [[1]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL491-R507) [[2]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL522-R542) ## Type of change <!-- Use the check-boxes [x] on the options that are relevant. --> - [ ] 📖 [Docs] - [ ] 🪲 [Fix] - [x] 🩹 [Patch] - [ ]⚠️ [Security fix] - [ ] 🚀 [Feature] - [ ] 🌟 [Breaking change] ## Checklist <!-- Use the check-boxes [x] on the options that are relevant. --> - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas
🩹 [Patch]: Add output for `GitHubRepos` from `PSModule` (#59) ## Description This pull request updates GitHub Actions workflows to improve functionality and maintainability. The changes include removing a redundant comment from the `Action-Test` workflow and modifying the `TestWorkflow` to specify the repository owner explicitly in multiple job configurations. Updates to GitHub Actions workflows: * [`.github/workflows/Action-Test.yml`](diffhunk://#diff-a12ae5c885b0673c0ff6f70c2670886907590d624626e07da4c52e01aeaf56a4L1): Removed a redundant comment related to skipping a Checkov rule for tag references. * [`.github/workflows/TestWorkflow.yml`](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL415-R415): Updated the `Get-GitHubRepository` command in three job configurations (`ActionTestWithUSERFGPAT`, `ActionTestWithORGFGPAT`, and `ActionTestWithGitHubAppEnt`) to include the `-Owner PSModule` parameter for specifying the repository owner explicitly. [[1]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL415-R415) [[2]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL441-R441) [[3]](diffhunk://#diff-242a265d6d6bfff6094c9285345022d0e6d7ddde58504dfc80249fafbd89ba2cL467-R467) ## Type of change <!-- Use the check-boxes [x] on the options that are relevant. --> - [ ] 📖 [Docs] - [x] 🪲 [Fix] - [ ] 🩹 [Patch] - [ ]⚠️ [Security fix] - [ ] 🚀 [Feature] - [ ] 🌟 [Breaking change] ## Checklist <!-- Use the check-boxes [x] on the options that are relevant. --> - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas
🪲 [Fix]: Ensure Prerelease input defaults to false in tests (#58) ## Description This pull request includes a small change to the `.github/workflows/Action-Test.yml` file. The change ensures that the `Prerelease` input defaults to `false` if not explicitly provided. ## Type of change <!-- Use the check-boxes [x] on the options that are relevant. --> - [ ] 📖 [Docs] - [x] 🪲 [Fix] - [ ] 🩹 [Patch] - [ ]⚠️ [Security fix] - [ ] 🚀 [Feature] - [ ] 🌟 [Breaking change] ## Checklist <!-- Use the check-boxes [x] on the options that are relevant. --> - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas
🩹 [Patch]: Add Prerelease input option to Action-Test workflow (#57) ## Description This pull request updates the GitHub Actions workflow configuration for testing. The main changes include removing the `Action-Test-Prerelease.yml` file and integrating its functionality into the `Action-Test.yml` file by introducing a new `Prerelease` input parameter. ### Workflow configuration updates: * [`.github/workflows/Action-Test-Prerelease.yml`](diffhunk://#diff-b5194b0e3305a1cd2a92e3524b1d419f9f3b4ee3d039158dcf12a513a3455953L1-L26): Removed the file entirely, consolidating its functionality into the main `Action-Test.yml` workflow. * [`.github/workflows/Action-Test.yml`](diffhunk://#diff-a12ae5c885b0673c0ff6f70c2670886907590d624626e07da4c52e01aeaf56a4R7-R11): Added a new `Prerelease` input parameter to the `workflow_dispatch` event, allowing users to specify whether to use the prerelease version of the GitHub PowerShell module. * [`.github/workflows/Action-Test.yml`](diffhunk://#diff-a12ae5c885b0673c0ff6f70c2670886907590d624626e07da4c52e01aeaf56a4R34): Updated the `jobs` section to pass the `Prerelease` input parameter to the workflow, ensuring compatibility with the consolidated functionality. ## Type of change <!-- Use the check-boxes [x] on the options that are relevant. --> - [ ] 📖 [Docs] - [x] 🪲 [Fix] - [ ] 🩹 [Patch] - [ ]⚠️ [Security fix] - [ ] 🚀 [Feature] - [ ] 🌟 [Breaking change] ## Checklist <!-- Use the check-boxes [x] on the options that are relevant. --> - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas
PreviousNext