Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
6a93c3f
🩹 [Patch]: Update output format for GitHub configuration and context …
MariusStorhaug Jan 4, 2025
59b4c49
🩹 [Patch]: Update README to include example for using Set-GitHubOutpu…
MariusStorhaug Jan 4, 2025
3258860
🩹 [Patch]: Refactor GitHub connection logging and reintroduce GitHub …
MariusStorhaug Jan 4, 2025
4396db1
🩹 [Patch]: Enhance logging messages in GitHub PowerShell module setup…
MariusStorhaug Jan 4, 2025
5385fb6
🩹 [Patch]: Update logging to use Write-Host for better visibility in …
MariusStorhaug Jan 4, 2025
532206a
test
MariusStorhaug Jan 4, 2025
8d0fd7d
🩹 [Patch]: Improve authentication info logging format and restore mod…
MariusStorhaug Jan 4, 2025
06a4de3
🩹 [Patch]: Update authentication info logging to display properties i…
MariusStorhaug Jan 4, 2025
8835528
🩹 [Patch]: Sort installed PowerShell resources by name for improved r…
MariusStorhaug Jan 4, 2025
49fff01
🩹 [Patch]: Enhance logging for GitHub connection by using Write-Host …
MariusStorhaug Jan 4, 2025
b425329
🩹 [Patch]: Refactor GitHub connection logging to improve clarity and …
MariusStorhaug Jan 4, 2025
972f70a
🩹 [Patch]: Update log group formatting for consistency and improved r…
MariusStorhaug Jan 4, 2025
54db675
🩹 [Patch]: Update log group formatting for improved consistency and r…
MariusStorhaug Jan 4, 2025
4b1d8d3
🩹 [Patch]: Update log group formatting for improved consistency and r…
MariusStorhaug Jan 4, 2025
b71f473
🩹 [Patch]: Standardize log group formatting for improved consistency …
MariusStorhaug Jan 4, 2025
05df7d5
🩹 [Patch]: Update log group separators for improved visual clarity
MariusStorhaug Jan 4, 2025
74a4ae5
🩹 [Patch]: Update log group separators for improved visual consistency
MariusStorhaug Jan 4, 2025
41ac2d8
🩹 [Patch]: Replace Write-Host with Write-Verbose for improved logging…
MariusStorhaug Jan 4, 2025
31cc45b
🩹 [Patch]: Move Debug and Verbose preference settings to the end of t…
MariusStorhaug Jan 4, 2025
3559a7e
🩹 [Patch]: Replace Write-Host with Write-Verbose for improved logging…
MariusStorhaug Jan 4, 2025
f8b4b8c
🩹 [Patch]: Simplify log group name for GitHub module configuration fo…
MariusStorhaug Jan 4, 2025
e0de540
🩹 [Patch]: Update version handling to default to 'latest' if not prov…
MariusStorhaug Jan 4, 2025
e49f9a7
🩹 [Patch]: Refactor log group formatting for GitHub script to enhance…
MariusStorhaug Jan 4, 2025
6a731a9
🩹 [Patch]: Remove unnecessary header line from GitHub script for impr…
MariusStorhaug Jan 4, 2025
375f8e2
🩹 [Patch]: Fix formatting of log group separators in GitHub script fo…
MariusStorhaug Jan 4, 2025
bd7223f
🩹 [Patch]: Standardize log group separator formatting in GitHub scrip…
MariusStorhaug Jan 4, 2025
6d116eb
🩹 [Patch]: Update log group formatting in GitHub script for improved …
MariusStorhaug Jan 4, 2025
4fcaf2f
test
MariusStorhaug Jan 4, 2025
c99810d
🩹 [Patch]: Adjust log group formatting in GitHub script for improved …
MariusStorhaug Jan 4, 2025
8a997c5
🩹 [Patch]: Replace LogGroup with Write-Host for improved log group fo…
MariusStorhaug Jan 4, 2025
cc12d45
🩹 [Patch]: Update log group indicators in GitHub script for improved …
MariusStorhaug Jan 4, 2025
38224dd
🩹 [Patch]: Correct log group formatting in GitHub script for improved…
MariusStorhaug Jan 4, 2025
9e7c0c3
🩹 [Patch]: Add additional log group indicators for enhanced visual cl…
MariusStorhaug Jan 4, 2025
809d280
🩹 [Patch]: Simplify log group arrow indicators in GitHub script for i…
MariusStorhaug Jan 4, 2025
47c0ac8
🩹 [Patch]: Enhance log group indicators in GitHub script with additio…
MariusStorhaug Jan 4, 2025
30b2ec3
🩹 [Patch]: Adjust log group formatting in GitHub script for improved …
MariusStorhaug Jan 4, 2025
e1d8f90
🩹 [Patch]: Streamline log group formatting in GitHub script for impro…
MariusStorhaug Jan 4, 2025
58ebacf
🩹 [Patch]: Remove unused arrow character indicators in GitHub script …
MariusStorhaug Jan 4, 2025
41bde80
test
MariusStorhaug Jan 4, 2025
4d91ff4
🩹 [Patch]: Refine log group formatting in GitHub script for enhanced …
MariusStorhaug Jan 4, 2025
de1cb53
🩹 [Patch]: Update log group formatting in GitHub script for improved …
MariusStorhaug Jan 5, 2025
91b41e2
🩹 [Patch]: Adjust log group formatting in GitHub script for improved …
MariusStorhaug Jan 5, 2025
f88fd09
🩹 [Patch]: Rename log group for GitHub connection to enhance clarity …
MariusStorhaug Jan 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,30 @@ For more information on the available functions and automatic loaded variables,
| - | - |
| `result` | The output of the script as a JSON object. To add outputs to `result`, use `Set-GitHubOutput`. |

To use the outputs in a subsequent step, you can use the following syntax:

```yaml
- uses: PSModule/GitHub-Script@v1
id: set-output
with:
Script: |
Set-GitHubOutput -Name 'Octocat' -Value @{
Name = 'Octocat'
Image = 'https://octodex.github.com/images/original.png'
}

- name: Use outputs
shell: pwsh
env:
result: ${{ steps.set-output.outputs.result }} # = '{"Octocat":{"Name":"Octocat","Image":"https://octodex.github.com/images/original.png"}}'
name: ${{ fromJson(steps.set-output.outputs.result).Octocat.Name }} # = 'Octocat'
run: |
$result = $env:result | ConvertFrom-Json
Write-Output $env:name
Write-Output $result.Octocat.Image
```


### Examples

#### Example 1: Run a GitHub PowerShell script
Expand Down
60 changes: 34 additions & 26 deletions scripts/main.ps1
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
[CmdletBinding()]
param()

$DebugPreference = $env:GITHUB_ACTION_INPUT_Debug -eq 'true' ? 'Continue' : 'SilentlyContinue'
$VerbosePreference = $env:GITHUB_ACTION_INPUT_Verbose -eq 'true' ? 'Continue' : 'SilentlyContinue'

'::group::Setting up GitHub PowerShell module'
$env:PSMODULE_GITHUB_SCRIPT = $true
Write-Host "┏━━━━━┫ GitHub-Script ┣━━━━━┓"
Write-Host '::group:: - Setup GitHub PowerShell'

$Name = 'GitHub'
$Version = [string]::IsNullOrEmpty($env:GITHUB_ACTION_INPUT_Version) ? $null : $env:GITHUB_ACTION_INPUT_Version
Expand All @@ -21,9 +19,8 @@ if ($Prerelease) {
$alreadyInstalled = $alreadyInstalled | Where-Object Prerelease -EQ $Prerelease
}
Write-Verbose 'Already installed:'
Write-Verbose ($alreadyInstalled | Format-Table | Out-String)
$alreadyInstalled | Format-Table
if (-not $alreadyInstalled) {
Write-Verbose "Installing module. Name: [$Name], Version: [$Version], Prerelease: [$Prerelease]"
$params = @{
Name = $Name
Repository = 'PSGallery'
Expand All @@ -38,36 +35,47 @@ if (-not $alreadyInstalled) {

$alreadyImported = Get-Module -Name $Name
Write-Verbose 'Already imported:'
Write-Verbose ($alreadyImported | Format-Table | Out-String)
$alreadyImported | Format-Table
if (-not $alreadyImported) {
Write-Verbose "Importing module: $Name"
Import-Module -Name $Name
}

Write-Output 'Installed modules:'
Get-InstalledPSResource | Select-Object Name, Version, Prerelease | Format-Table -AutoSize

Write-Output 'GitHub module configuration:'
Get-GitHubConfig | Select-Object Name, ID, RunEnv | Format-Table -AutoSize

'::endgroup::'

$providedToken = -not [string]::IsNullOrEmpty($env:GITHUB_ACTION_INPUT_Token)
$providedClientID = -not [string]::IsNullOrEmpty($env:GITHUB_ACTION_INPUT_ClientID)
$providedPrivateKey = -not [string]::IsNullOrEmpty($env:GITHUB_ACTION_INPUT_PrivateKey)
Write-Verbose 'Provided authentication info:'
Write-Verbose "Token: [$providedToken]"
Write-Verbose "ClientID: [$providedClientID]"
Write-Verbose "PrivateKey: [$providedPrivateKey]"
[pscustomobject]@{
Name = $Name
Version = [string]::IsNullOrEmpty($Version) ? 'latest' : $Version
Prerelease = $Prerelease
'Already installed' = $null -ne $alreadyInstalled
'Already imported' = $null -ne $alreadyImported
'Provided Token' = $providedToken
'Provided ClientID' = $providedClientID
'Provided PrivateKey' = $providedPrivateKey
} | Format-List
Write-Host '::endgroup::'

LogGroup ' - Installed modules' {
Get-InstalledPSResource | Select-Object Name, Version, Prerelease | Sort-Object -Property Name | Format-Table -AutoSize
}

if ($providedClientID -and $providedPrivateKey) {
LogGroup 'Connecting using provided GitHub App' {
LogGroup ' - GitHub connection' {
if ($providedClientID -and $providedPrivateKey) {
Write-Verbose 'Connected using provided GitHub App'
Connect-GitHub -ClientID $env:GITHUB_ACTION_INPUT_ClientID -PrivateKey $env:GITHUB_ACTION_INPUT_PrivateKey -Silent
Get-GitHubContext | Format-Table -AutoSize
}
} elseif ($providedToken) {
LogGroup 'Connecting using provided token' {
} elseif ($providedToken) {
Write-Verbose 'Connected using provided token'
Connect-GitHub -Token $env:GITHUB_ACTION_INPUT_Token -Silent
Get-GitHubContext | Format-Table -AutoSize
}
Get-GitHubContext | Format-List
}

LogGroup ' - Configuration' {
Get-GitHubConfig | Format-List
}

Write-Host '┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛'

$DebugPreference = $env:GITHUB_ACTION_INPUT_Debug -eq 'true' ? 'Continue' : 'SilentlyContinue'
$VerbosePreference = $env:GITHUB_ACTION_INPUT_Verbose -eq 'true' ? 'Continue' : 'SilentlyContinue'