modules/Definitions/GitHub.Entro.psm1
|
Set-StrictMode -Version Latest function Register-GitHubEntroDefinitions { Import-Module (Join-Path (Split-Path $PSScriptRoot -Parent) 'IW.EntroCatalog.psm1') -Force -WarningAction SilentlyContinue Register-IntegrationWizardDefinition @{ Id = 'github-entro' Platform = 'GitHub' Product = 'Entro' CoreSwitch = 'Entro' CliName = 'gh' Title = 'Entro GitHub integration' FolderName = 'Entro GitHub' AccessLevels = @() AdminRoles = @('GitHub Organization Owner') OutputsHelp = 'Install the Entro GitHub App on your organization or paste a Classic PAT into the Entro admin console.' Inputs = @( @{ Name = 'Organization'; Source = 'Supply'; Prompt = 'GitHub Organization name'; Purpose = 'Organization to connect to Entro'; Required = $true } @{ Name = 'Method'; Source = 'Supply'; Prompt = 'Integration method'; Purpose = 'GitHubApp or ClassicPAT'; Required = $true; ValidateSet = @('GitHubApp', 'ClassicPAT'); Default = 'GitHubApp' } @{ Name = 'OutputDirectory'; Source = 'Supply'; Prompt = 'Output directory'; Purpose = 'Wizard output directory'; Required = $false } ) Steps = { param($ctx) @( @{ Id = 'entro-github-onboard' Title = 'Install Entro GitHub App or configure PAT' Kind = 'Ensure' Probe = { param($c) 'Create' } Run = { param($c) Write-Step 'Entro GitHub Onboarding' $method = if ($c['Method']) { $c['Method'] } else { 'GitHubApp' } if ($method -eq 'GitHubApp') { Write-Info "Install the Entro GitHub App on organization '$($c['Organization'])'." Write-Info "In Entro UI -> Integrations -> GitHub -> install the app with permissions." } else { Write-Info "Generate a Classic PAT with repo and read:org scopes for organization '$($c['Organization'])'." Write-Info "Paste the token into the Entro admin console." } } BuildScript = { param($c) @" # Entro GitHub Integration Setup Write-Host "Configure Entro integration for GitHub organization '$($c['Organization'])'" "@ } } ) } OnRunComplete = { param($ctx) Write-Host '' Write-Host 'Entro handoff' -ForegroundColor Cyan Write-Host " Organization: $($ctx['Organization'])" Write-Host " Method: $($ctx['Method'])" Write-Host ' Registration: complete GitHub App installation or paste PAT in Entro UI' Write-Host '' } } } Export-ModuleMember -Function Register-GitHubEntroDefinitions |