CopyGitHubRepo
0.4.0
PowerShell module for safely copying and migrating GitHub repositories with clean Snapshot or history-preserving FullHistory modes.
Minimum PowerShell version
7.4
Installation Options
Owners
Copyright
(c) 2026 infoconex. Licensed under the MIT License.
Package Details
Author(s)
- infoconex
Tags
GitHub Git Repository Copy Migration Automation DevOps PowerShell Windows Linux MacOS
Functions
Copy-GitHubRepository Get-GitHubRepository Start-CopyGitHubRepositoryWizard Test-GitHubRepositoryMigration
PSEditions
Dependencies
This module has no dependencies.
Release Notes
### Added
- Added opt-in GitHub Pages configuration restoration with `-RestorePages`, binding execution to immutable reviewed Pages evidence captured during planning and revalidating relevant source state before destination mutation.
- Added restoration and independent verification for supported GitHub-side Pages configuration, including Actions-based publishing and representable branch/path publishing without treating copied site or workflow files as proof that Pages configuration was preserved.
- Added controlled Pages activation behavior so copied Pages workflows do not silently become authoritative migration evidence or enable unsupported GitHub-side state outside the reviewed restoration path.
- Added same-name and archive-and-replace custom-domain handoff with fail-closed repository identity safeguards, deliberate archive release/replacement claim ordering, independent readback, and durable recovery/provenance evidence for partial handoff failures.
- Added guided-wizard support, command/reference documentation, operational guidance, contract tests, and controlled GitHub end-to-end coverage for the supported Pages migration paths.
### Changed
- Clarified that external DNS records, DNS ownership-verification records, secret values, account/organization domain ownership, certificate provisioning, and externally dependent HTTPS readiness are outside the migration contract and are reported rather than assumed complete.
- Clarified branch/path representability and failure behavior: CopyGitHubRepo does not invent substitute publishing branches or paths when the reviewed source Pages configuration cannot be represented safely at the destination.
- Extended migration verification and recovery reporting to distinguish migrated GitHub-side Pages state from externally observed DNS, domain-verification, certificate, and HTTPS readiness state.
FileList
- CopyGitHubRepo.nuspec
- Private\Migration\Write-CgrMigrationPlanReport.ps1
- Private\Wizard\Read-CgrWizardInput.ps1
- Private\GitHub\Assert-CgrDestinationPagesReadBack.ps1
- CopyGitHubRepo.psd1
- Private\Migration\Copy-CgrRepositorySnapshot.ps1
- Private\Wizard\Test-CgrConsoleStylingAvailable.ps1
- Private\GitHub\Restore-CgrGitHubPagesConfiguration.ps1
- CopyGitHubRepo.format.ps1xml
- Private\Migration\Invoke-CgrNewDestinationFullHistory.ps1
- Private\Wizard\Format-CgrWizardText.ps1
- Private\GitHub\Rename-CgrGitHubRepository.ps1
- CopyGitHubRepo.psm1
- Private\Migration\Invoke-CgrRepositorySnapshotVerification.ps1
- Private\Wizard\Invoke-CgrActivityStage.ps1
- Private\GitHub\Invoke-CgrGitHubApiMutation.ps1
- Public\Get-GitHubRepository.ps1
- Private\Migration\Invoke-CgrApprovedSnapshotReleaseVerification.ps1
- Private\Wizard\Invoke-CgrRepositoryCopyWizard.ps1
- Private\GitHub\Copy-CgrApprovedGitHubRelease.ps1
- Public\Start-CopyGitHubRepositoryWizard.ps1
- Private\Migration\Get-CgrSnapshotReleasePreservationEvidence.ps1
- Private\Wizard\Resolve-CgrWizardDestinationRepository.ps1
- Private\GitHub\Get-CgrGitHubPagesPlanEvidence.ps1
- Public\Copy-GitHubRepository.ps1
- Private\Migration\Write-CgrMigrationExecutionReport.ps1
- Private\Repository\Get-CgrRepository.ps1
- Private\GitHub\Invoke-CgrGitHubApiReadRequest.ps1
- Public\Test-GitHubRepositoryMigration.ps1
- Private\Wizard\Write-CgrWizardCompletionSummary.ps1
- Private\Repository\Get-CgrPrerequisiteStatus.ps1
- Private\GitHub\Assert-CgrDestinationPagesSource.ps1
- Private\Git\Invoke-CgrGitCommand.ps1
- Private\Wizard\Select-CgrWizardRepository.ps1
- Private\Repository\ConvertTo-CgrRepositoryName.ps1
- Private\GitHub\Enable-CgrPagesWorkflowActivationAfterRestore.ps1
- Private\Git\Get-CgrGitCommitIdentity.ps1
- Private\Wizard\Invoke-CgrWithActivitySink.ps1
- Private\Repository\Get-CgrApprovedSourceState.ps1
- Private\GitHub\Test-CgrGitHubReleaseMigration.ps1
- Private\Git\Invoke-CgrNativeCommand.ps1
- Private\Wizard\New-CgrWizardActivitySink.ps1
- Private\Repository\Assert-CgrSupportedHostName.ps1
- Private\GitHub\Get-CgrGitHubApi.ps1
- Private\Git\Copy-CgrGitLfsObject.ps1
- Private\Wizard\Get-CgrActivityCompletionMessage.ps1
- Private\Repository\Get-CgrRepositoryDefaultBranchTree.ps1
- Private\GitHub\Test-CgrGitHubRepositoryExistence.ps1
- Private\Git\Resolve-CgrNativeCommand.ps1
- Private\Wizard\Resolve-CgrWizardNavigationInput.ps1
- Private\Repository\Set-CgrRepositoryProtectionConfiguration.ps1
- Private\GitHub\Get-CgrGitHubAuthenticationStatus.ps1
- Private\Migration\Invoke-CgrApprovedMigrationPlan.ps1
- Private\Wizard\Send-CgrActivityEvent.ps1
- Private\Repository\Get-CgrSnapshotHistory.ps1
- Private\GitHub\Test-CgrGitHubPagesMigration.ps1
- Private\Migration\Assert-CgrFullHistoryWorkspaceState.ps1
- Private\Wizard\Read-CgrWizardChoice.ps1
- Private\Repository\ConvertTo-CgrRepository.ps1
- Private\Replacement\Invoke-CgrSameNameFullHistoryReplacement.ps1
- Private\Migration\Invoke-CgrApprovedFullHistoryVerification.ps1
- Private\Wizard\Read-CgrWizardTextValue.ps1
- Private\Repository\Get-CgrRepositoryFullHistoryIdentity.ps1
- Private\Replacement\Get-CgrDefaultArchiveRepositoryName.ps1
- Private\Migration\New-CgrSnapshotReleaseCheckpointPlan.ps1
- Private\Wizard\Format-CgrConsoleStatus.ps1
- Private\Repository\Assert-CgrLocalResourcePreflight.ps1
- Private\Replacement\Invoke-CgrSameNameSnapshotReplacement.ps1
- Private\Migration\Format-CgrMigrationExecutionResult.ps1
- Private\Wizard\Test-CgrInteractiveTerminal.ps1
- Private\Repository\Get-CgrRepositoryProtectionConfiguration.ps1
- Private\Replacement\Assert-CgrExistingDestinationReplacementConfirmation.ps1
- Private\Migration\Copy-CgrRepositoryFullHistory.ps1
- Private\Wizard\Show-CgrWizardHelp.ps1
- Private\Repository\Assert-CgrApprovedSourceState.ps1
- Private\Replacement\Assert-CgrSameNameReplacementConfirmation.ps1
- Private\Migration\Invoke-CgrRepositoryFullHistoryVerification.ps1
- Private\Wizard\Write-CgrWizardMessage.ps1
- Private\GitHub\Assert-CgrGitHubPagesPlanEvidence.ps1
- Private\Replacement\Invoke-CgrExistingDestinationReplacement.ps1
- Private\Migration\Format-CgrMigrationPlan.ps1
- Private\Wizard\Write-CgrWizardActivityEvent.ps1
- Private\GitHub\New-CgrGitHubRepository.ps1
- Private\Replacement\Write-CgrExistingDestinationRecoveryReport.ps1
- Private\Migration\Invoke-CgrNewDestinationSnapshot.ps1
- Private\Wizard\Test-CgrExpectedWizardApplicationError.ps1
- Private\GitHub\Get-CgrGitHubReleaseSelection.ps1
- Private\Replacement\Write-CgrSameNameRecoveryReport.ps1
- Private\Migration\New-CgrMigrationPlan.ps1
- Private\Wizard\Read-CgrWizardRepositoryName.ps1
- Private\GitHub\Get-CgrGitHubApiOptional.ps1
- Private\Replacement\Assert-CgrReplacementRepositoryIdentity.ps1
- Private\Migration\Write-CgrMigrationRecoveryReport.ps1
- Private\Wizard\Get-CgrActivityTerminalState.ps1
- Private\GitHub\Test-CgrGitHubPagesDriftEvidenceMatch.ps1
- Private\Utility\Get-CgrObjectProperty.ps1
- Private\Migration\Invoke-CgrPostVerificationConfigurationRestore.ps1
- Private\Wizard\ConvertTo-CgrWizardNavigationResult.ps1
- Private\GitHub\Set-CgrGitHubRepositorySetting.ps1
- Private\Utility\Protect-CgrDiagnosticText.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.4.0 (current version) | 12 | 9/3/2026 |
| 0.3.0 | 8 | 9/1/2026 |
| 0.2.0 | 6 | 8/31/2026 |
| 0.1.1 | 11 | 8/26/2026 |
| 0.1.0 | 11 | 8/23/2026 |