Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
e511632
first commit
philspokas Mar 31, 2023
adf623f
Initial Import
Apr 18, 2023
02b843f
add Get-Processes; remove ShouldProcess for read-only functions
philspokas Apr 20, 2023
fdae059
Merge pull request #4 from AIZ-GT/3-get-process-list
assurantjevans Apr 21, 2023
cb25cf6
Remove un-needed elements from main project script and comments to Gr…
Apr 21, 2023
c362c1a
Update main project script and add wikis to modules
Apr 21, 2023
f70dc0d
Rename README_MIgration.md to README_Migration.md
assurantjevans Apr 21, 2023
8922a1f
Merge branch 'main' into assurant_elita_test_migration_configuration_…
Apr 21, 2023
1d8285a
Add help scripts and changes for various migration steps
Apr 27, 2023
90329d8
Merge pull request #5 from AIZ-GT/assurant_elita_test_migration_confi…
assurantjevans Apr 27, 2023
ed1e664
Update additional scripts and script updates for ADO migration
May 11, 2023
dba4536
Add scripts for policy, dashboard, service connection, service hooks,…
May 11, 2023
9918c1a
Update policy script to remove testing code
May 11, 2023
87b3abc
Merge pull request #6 from AIZ-GT/assurant_elita_test_migration_polic…
assurantjevans May 11, 2023
1c1bc66
Update artifacts script
May 17, 2023
b5f49a3
Update artifacts, dashboards, migration scripts
May 17, 2023
e9172f1
Add helper script that will output artifact feed package version info…
May 17, 2023
c98dd98
Remove un-needed whitespace
May 17, 2023
82e3048
Merge pull request #7 from AIZ-GT/assurant_elita_test_migration_artif…
assurantjevans May 18, 2023
d9fdb05
Update scripts and organize, updates to Arifacts and Dashboards scrip…
May 25, 2023
b720c4e
remove uneeded references to process ids
May 25, 2023
59b5466
Merge pull request #8 from AIZ-GT/assurant_elita_dashboard_migration_…
assurantjevans May 26, 2023
8ecf0a3
Update to not rely on paskaging and publishing the Migrate-ADO modules
May 26, 2023
a50bb82
Merge pull request #9 from AIZ-GT/assurant_updates_for_dry_run_prep
assurantjevans May 26, 2023
65a8bb0
Update to not rely on paskaging and publishing the Migrate-ADO modules2
May 26, 2023
de1d97d
Merge pull request #10 from AIZ-GT/assurant_updates_for_dry_run_prep2
assurantjevans May 26, 2023
44b998a
Update changes to scripts for dry run to work
May 27, 2023
08f8ebd
Merge pull request #11 from AIZ-GT/assurant_updates_for_dry_run_prep3
assurantjevans May 27, 2023
448c74e
Update changes to scripts for dry run to work
May 27, 2023
f50f7ed
Merge pull request #12 from AIZ-GT/assurant_updates_for_dry_run_prep4
assurantjevans May 27, 2023
1c57ff9
Assurant Update to add migrations scrips and process definition json …
May 30, 2023
602f0ac
Merge pull request #13 from AIZ-GT/assurant_updates_add_migration_ste…
assurantjevans May 30, 2023
6182a4b
Update to add step to migrate users at the organization level
Jun 1, 2023
eb1adc8
Update to add step to migrate users at the organization level change …
Jun 1, 2023
3bbd229
Update to add step to migrate users at the organization level default…
Jun 1, 2023
7780f78
Update to add step to migrate users at the organization level - undo …
Jun 1, 2023
161b973
Update to add step to migrate users at the organization level - reset…
Jun 1, 2023
8dc04ba
Merge pull request #14 from AIZ-GT/assurant_update_add_migrate_org_users
assurantjevans Jun 1, 2023
5a4b61c
Update to fix access to module ADO_User class
Jun 1, 2023
93bcbb6
Merge pull request #15 from AIZ-GT/assurant_update_add_migrate_org_us…
assurantjevans Jun 1, 2023
1c9d63d
Update to migrate ADO User script for better output
Jun 1, 2023
256da23
Merge pull request #16 from AIZ-GT/assurant_update_add_migrate_org_us…
assurantjevans Jun 1, 2023
fec6928
Update to fix issues with repos, dashboards, service connections and …
Jun 3, 2023
f537bf7
Merge pull request #17 from AIZ-GT/assurant_update_update_repo_dashbo…
assurantjevans Jun 8, 2023
ddba4bb
Update helper and migration scripts
Jun 8, 2023
eb4e841
Merge pull request #18 from AIZ-GT/assurant_update_add_helper_scripts…
assurantjevans Jun 9, 2023
8a7bb1d
Update to fix bug issues
Jun 13, 2023
864f608
Merge pull request #19 from AIZ-GT/assurant_update_bug_fixes_dryrun2
assurantjevans Jun 13, 2023
0a00eae
modules/Migrate-ADO-ServiceConnections.psm1
Jun 13, 2023
4e9b17c
Merge pull request #20 from AIZ-GT/assurant_update_bug_fixes_2_for_dr…
assurantjevans Jun 13, 2023
c1af956
Update to rename files and remove unused code blocks
Jun 14, 2023
7f1a44d
Create test-sample.yml
assurantjevans Jun 15, 2023
5c46c00
Create add-code-scanning.yml
assurantjevans Jun 15, 2023
5e80bb2
Rename powershell.yml to code-scanning.yml
assurantjevans Jun 15, 2023
5dadb58
Update to add readme and update step 3
Jun 15, 2023
0b760a8
Update Artifact migration changes
Jun 16, 2023
ea37d82
Merge pull request #21 from AIZ-GT/assurant_update_rename_files_add_f…
assurantjevans Jun 16, 2023
4010b48
Update to correct work item query and area and iteration issues (#22)
assurantjevans Jun 21, 2023
f357e58
Update changes for artifact migration script (#23)
assurantjevans Jul 7, 2023
c463089
Assurant migration issues cleanup script changes update (#24)
assurantjevans Aug 3, 2023
a954092
Assurant setup GitHub action workflow for ado migration process (#25)
assurantjevans Aug 3, 2023
a5b0899
Fix initial GitHub actions workflow for ado migration (#26)
assurantjevans Aug 3, 2023
f3aaf41
Assurant GitHub actions workflow ado migration testing (#27)
assurantjevans Aug 7, 2023
e3c16d8
Code cleanup and added files update (#28)
assurantjevans Aug 8, 2023
15aa683
Assurant migration process workflow update (#29)
assurantjevans Aug 10, 2023
ffa518a
Update to change the GitHub Action Workflows to tag runner by specifi…
assurantjevans Aug 10, 2023
fbc401a
Next migration test bug fixes when running in runner (#31)
assurantjevans Aug 11, 2023
6f2db9f
Assurant removed a needed config setting (#32)
assurantjevans Aug 16, 2023
0227591
Update to set a repository temp clone directory to fix file length is…
assurantjevans Aug 17, 2023
1e1e36f
update for cleaning artifact migration script (#34)
assurantjevans Aug 23, 2023
10373f8
Update GitHub workflow job timeout (#35)
assurantjevans Aug 25, 2023
8baaedc
Update artifact migation script to handle null case (#36)
assurantjevans Sep 15, 2023
16c7a03
Add files via upload (#38)
ClarkMcBrayer Sep 27, 2023
9598504
Updates to partial migration action workflow, Policy, Repository, Wor…
assurantjevans Oct 10, 2023
78d8531
Add workflow for targeting between dates for work items and add work …
assurantjevans Oct 12, 2023
d1bace0
update to correct issue with variable group delete script (#40)
assurantjevans Nov 1, 2023
c6913d9
update backfill workflow migration to fix zero based run (#41)
assurantjevans Nov 2, 2023
befb1a2
Update workflow to fix error (#42)
assurantjevans Nov 8, 2023
31f89c3
Update to test adding dynamic naming to partial migration workflow ru…
assurantjevans Nov 15, 2023
3c6e9d8
fixed queries spelling in partial migration yaml (#44)
Dec 17, 2024
7d533bb
Roy bug fix deprecation (#46)
Feb 12, 2025
17fc06d
Migration fixes (#95)
Jun 30, 2025
1231ab0
Migration fixes (#101)
Jun 30, 2025
c613ffe
Logging fixes
jenny-curry Aug 11, 2025
7ccefec
Merge pull request #105 from AIZ-GT/jcurry/updates
Aug 12, 2025
4a948d1
changed flag for migration of keyvault connected var groups only to f…
jenny-curry Aug 12, 2025
57298b0
Merge pull request #106 from AIZ-GT/jcurry/variable-groups-update
Aug 12, 2025
0fa56f1
Update Migrate-ADO-ServiceConnections.psm1
Amer-Uttamchandani Aug 13, 2025
b0548f7
Merge pull request #107 from AIZ-GT/au_dev_fixes
Amer-Uttamchandani Aug 13, 2025
b6352dc
Enhance task group migration logic with checks for source task groups…
Aug 27, 2025
a661ba5
Fix pipeline permission retrieval by updating function call to Get-Bu…
Aug 27, 2025
5837017
Merge pull request #108 from AIZ-GT/tk5480-bugfix827
Aug 28, 2025
ca46487
bring in recent changes
jenny-curry Feb 6, 2026
b6ce805
cleanup
jenny-curry Feb 6, 2026
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
23 changes: 12 additions & 11 deletions .github/workflows/ado-migration-process-full.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
name: Full ADO Project Migration
run-name: "${{ github.event.inputs.SourceOrganizationName }}/${{ github.event.inputs.SourceProjectName }}=>${{ github.event.inputs.TargetOrganizationName }}/${{ github.event.inputs.TargetProjectName }} [Full Migration]"

on:
workflow_dispatch:
inputs:
SourceOrganizationName:
description: "Name of the Source Organization"
required: true
default: ""
default: "AIZ-GL"
SourceProjectName:
description: "Name of the Source Project"
required: true
default: ""
default: "GL.CL-Elita"
TargetOrganizationName:
description: "Name of the Target Organization"
required: true
default: ""
default: "AIZ-Global"
TargetProjectName:
description: "Name of the Target Project"
required: true
default: ""
default: "GL.CL-Elita-migrated"
WhatIf:
type: boolean
description: "WhatIf: Simulated Run"
Expand All @@ -28,7 +29,7 @@ on:
jobs:
run-powershell-script:
name: Run PowerShell Script
runs-on: 'ubuntu-latest'
runs-on: 'AEC0WGEMP001'
timeout-minutes: 7200
env:
AZURE_DEVOPS_MIGRATION_PAT: ${{ secrets.AZURE_DEVOPS_MIGRATION_PAT }}
Expand All @@ -44,13 +45,13 @@ jobs:
az --version

- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Clean Azure DevOps Migration Tools Log and Attachments Directory
- name: Clean Azure DevOps Migration Tools Log Directory
shell: pwsh
run: |
Get-ChildItem "${{ vars.WorkItemMigratorDirectory }}/logs" -Recurse | Remove-Item -Recurse
Get-ChildItem "${{ vars.WorkItemMigratorDirectory }}\\WorkItemAttachmentWorkingFolder" -Recurse | Remove-Item -Recurse
Get-ChildItem "${{ vars.WORKITEMMIGRATORDIRECTORY_V16_0_9 }}/logs" -Recurse | Remove-Item -Recurse

- name: Set Migration Configuration
shell: pwsh
run: |
Expand All @@ -70,7 +71,7 @@ jobs:
$configuration.TargetProject.ProjectName = "${{ github.event.inputs.TargetProjectName }}"
$configuration.TargetProject.OrgName = "${{ github.event.inputs.TargetOrganizationName }}"
$configuration.ProjectDirectory = $projectDirectory
$configuration.WorkItemMigratorDirectory = "${{ vars.WorkItemMigratorDirectory }}"
$configuration.WorkItemMigratorDirectory = "${{ vars.WORKITEMMIGRATORDIRECTORY_V16_0_9 }}"
$configuration.RepositoryCloneTempDirectory = "${{ vars.RepositoryCloneTempDirectory }}"
$configuration.DevOpsMigrationToolConfigurationFile = "${{ vars.DevOpsMigrationToolConfigurationFile }}"
$configuration.ArtifactFeedPackageVersionLimit = ${{ vars.ArtifactFeedPackageVersionLimit }}
Expand All @@ -88,7 +89,7 @@ jobs:
& ./Step_0_Migrate_Project.ps1 -WhatIf $WhatIf

- name: Archive code coverage results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: migration-run-logs
path: "./Projects"
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/ado-migration-process-org-users.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ on:
SourceOrganizationName:
description: "Name of the Source Organization"
required: true
default: ""
default: "AIZ-GL"
TargetOrganizationName:
description: "Name of the Target Organization"
required: true
default: ""
default: "AIZ-Global"
WhatIf:
type: boolean
description: "WhatIf: Simulated Run"
Expand All @@ -21,7 +21,7 @@ on:
jobs:
run-powershell-script:
name: Run PowerShell Script
runs-on: 'ubuntu-latest'
runs-on: 'AEC0WGEMP001'
timeout-minutes: 7200
env:
AZURE_DEVOPS_MIGRATION_PAT: ${{ secrets.AZURE_DEVOPS_MIGRATION_PAT }}
Expand All @@ -37,12 +37,12 @@ jobs:
az --version

- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Clean Azure DevOps Migration Tools Log Directory
shell: pwsh
run: |
Get-ChildItem "${{ vars.WorkItemMigratorDirectory }}/logs" -Recurse | Remove-Item -Recurse
Get-ChildItem "${{ var.WORKITEMMIGRATORDIRECTORY_V16_0_9 }}/logs" -Recurse | Remove-Item -Recurse

- name: Set Migration Configuration
shell: pwsh
Expand All @@ -63,7 +63,7 @@ jobs:
$configuration.TargetProject.ProjectName = "${{ github.event.inputs.TargetOrganizationName }}"
$configuration.TargetProject.OrgName = "${{ github.event.inputs.TargetOrganizationName }}"
$configuration.ProjectDirectory = $projectDirectory
$configuration.WorkItemMigratorDirectory = "${{ vars.WorkItemMigratorDirectory }}"
$configuration.WorkItemMigratorDirectory = "${{ var.WORKITEMMIGRATORDIRECTORY_V16_0_9 }}"
$configuration.RepositoryCloneTempDirectory = "${{ vars.RepositoryCloneTempDirectory }}"
$configuration.DevOpsMigrationToolConfigurationFile = "${{ vars.DevOpsMigrationToolConfigurationFile }}"
$configuration.ArtifactFeedPackageVersionLimit = ${{ vars.ArtifactFeedPackageVersionLimit }}
Expand All @@ -81,14 +81,14 @@ jobs:
& ./Step_X_Migrate_Org_Level_Users.ps1 -WhatIf $WhatIf

- name: Archive DevOps-Enablement-ADO-to-ADO-migration results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: migration-run-logs
path: "./Projects"

- name: Archive Azure DevOps Migration Tools (Martin's Tools) results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: migration-tools-logs
path: "${{ vars.WorkItemMigratorDirectory }}/logs"
path: "${{ var.WORKITEMMIGRATORDIRECTORY_V16_0_9 }}/logs"

54 changes: 21 additions & 33 deletions .github/workflows/ado-migration-process-partial.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
name: Partial ADO Project Migration
run-name: "[${{ github.event.inputs.MigrationSelection }}] ${{ github.event.inputs.SourceOrganizationName }}/${{ github.event.inputs.SourceProjectName }}=>${{ github.event.inputs.TargetOrganizationName }}/${{ github.event.inputs.TargetProjectName }}"

on:
workflow_dispatch: # Allows manual triggering via the GitHub Actions UI
inputs:
SourceOrganizationName:
description: "Name of the Source Organization"
required: true
default: ""
default: "AIZ-Global"
SourceProjectName:
description: "Name of the Source Project"
required: true
default: ""
default: "GH.Lending-Digital"
TargetOrganizationName:
description: "Name of the Target Organization"
required: true
default: ""
default: "AIZ-SSP"
TargetProjectName:
description: "Name of the Target Project"
required: true
default: ""
default: "GH.AppDev-SSP-Backup-POC-V2"
MigrationSelection:
description: "Migration Selection"
required: true
Expand All @@ -28,7 +29,7 @@ on:
- Select an area to migrate
- Areas and Iterations
- Artifacts
- Build Pipelines
- Build Pipelines & Task Groups
- Build Queues & Build Environments
- Dashboards
- Delivery Plans
Expand All @@ -38,10 +39,9 @@ on:
- Repositories
- Service Connections
- Service Hooks
- Task Groups
- Teams
- Test Configurations
- Test Plans and Suites
- Test Plans, Suites, and Cases
- Test Variables
- Variable Groups
- Wikis
Expand All @@ -56,7 +56,7 @@ on:
jobs:
run-powershell-script:
name: Run PowerShell Script
runs-on: 'ubuntu-latest'
runs-on: 'AEC0WGEMP001'
timeout-minutes: 7200
env:
AZURE_DEVOPS_MIGRATION_PAT: ${{ secrets.AZURE_DEVOPS_MIGRATION_PAT }}
Expand All @@ -72,13 +72,12 @@ jobs:
az --version

- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Clean Azure DevOps Migration Tools Log and Attachments Directory
- name: Clean Azure DevOps Migration Tools Log Directory
shell: pwsh
run: |
Get-ChildItem "${{ vars.WorkItemMigratorDirectory }}/logs" -Recurse | Remove-Item -Recurse
Get-ChildItem "${{ vars.WorkItemMigratorDirectory }}\\WorkItemAttachmentWorkingFolder" -Recurse | Remove-Item -Recurse
Get-ChildItem "${{ vars.WORKITEMMIGRATORDIRECTORY_V16_0_9 }}/logs" -Recurse | Remove-Item -Recurse

- name: Set Migration Configuration
shell: pwsh
Expand All @@ -99,7 +98,7 @@ jobs:
$configuration.TargetProject.ProjectName = "${{ github.event.inputs.TargetProjectName }}"
$configuration.TargetProject.OrgName = "${{ github.event.inputs.TargetOrganizationName }}"
$configuration.ProjectDirectory = $projectDirectory
$configuration.WorkItemMigratorDirectory = "${{ vars.WorkItemMigratorDirectory }}"
$configuration.WorkItemMigratorDirectory = "${{ vars.WORKITEMMIGRATORDIRECTORY_V16_0_9 }}"
$configuration.RepositoryCloneTempDirectory = "${{ vars.RepositoryCloneTempDirectory }}"
$configuration.DevOpsMigrationToolConfigurationFile = "${{ vars.DevOpsMigrationToolConfigurationFile }}"
$configuration.ArtifactFeedPackageVersionLimit = ${{ vars.ArtifactFeedPackageVersionLimit }}
Expand All @@ -124,8 +123,8 @@ jobs:
{ & .\MigrateProject.ps1 -SkipMigrateTfsAreaAndIterations $WhatIf }
"Artifacts"
{ & .\MigrateProject.ps1 -SkipMigrateArtifacts $WhatIf }
"Build Pipelines"
{ & .\MigrateProject.ps1 -SkipMigrateBuildPipelines $WhatIf }
"Build Pipelines & Task Groups"
{ & .\MigrateProject.ps1 -SkipMigrateBuildPipelines $WhatIf }
"Build Queues & Build Environments"
{ & .\MigrateProject.ps1 -SkipMigrateBuildQueues $WhatIf }
"Dashboards"
Expand All @@ -135,46 +134,35 @@ jobs:
"Groups"
{ & .\MigrateProject.ps1 -SkipMigrateGroups $WhatIf }
"Policies"
{
& .\helper-scripts\ADODeletePolicies.ps1 -OrgName ${{ github.event.inputs.TargetOrganizationName }} -ProjectName ${{ github.event.inputs.TargetProjectName }} -PAT $env:AZURE_DEVOPS_MIGRATION_PAT -DoDelete (-not $WhatIf)
& .\MigrateProject.ps1 -SkipMigratePolicies $WhatIf
}
{ & .\MigrateProject.ps1 -SkipMigratePolicies $WhatIf }
"Release Pipelines"
{ & .\MigrateProject.ps1 -SkipMigrateReleasePipelines $WhatIf }
"Repositories"
{
& .\helper-scripts\ADODeleteRepos.ps1 -OrgName ${{ github.event.inputs.TargetOrganizationName }} -ProjectName ${{ github.event.inputs.TargetProjectName }} -PAT $env:AZURE_DEVOPS_MIGRATION_PAT -DoDelete (-not $WhatIf)
& .\MigrateProject.ps1 -SkipMigrateRepos $WhatIf
}
{ & .\MigrateProject.ps1 -SkipMigrateRepos $WhatIf }
"Service Connections"
{ & .\MigrateProject.ps1 -SkipMigrateServiceConnections $WhatIf }
"Service Hooks"
{ & .\MigrateProject.ps1 -SkipMigrateServiceHooks $WhatIf }
"Task Groups"
{ & .\MigrateProject.ps1 -SkipMigrateTaskGroups $WhatIf }
"Teams"
{ & .\MigrateProject.ps1 -SkipMigrateTeams $WhatIf }
"Test Configurations"
{ & .\MigrateProject.ps1 -SkipMigrateTestConfigurations $WhatIf }
"Test Plans and Suites"
{ & .\MigrateProject.ps1 -SkipMigrateTestPlansAndSuites $WhatIf }
"Test Plans, Suites, and Cases"
{ & .\MigrateProject.ps1 -SkipMigrateTestPlansAndSuites $WhatIf -SkipMigrateWorkItems $WhatIf -SkipAddReflectedWorkItemIdField $WhatIf -WorkItemQueryBit "SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = @TeamProject AND [System.WorkItemType] IN ('Test Case')"}
"Test Variables"
{ & .\MigrateProject.ps1 -SkipMigrateTestVariables $WhatIf }
"Variable Groups"
{
& .\helper-scripts\ADODeleteVariableGroups.ps1 -OrgName ${{ github.event.inputs.TargetOrganizationName }} -ProjectName ${{ github.event.inputs.TargetProjectName }} -PAT $env:AZURE_DEVOPS_MIGRATION_PAT -DoDelete (-not $WhatIf)
& .\MigrateProject.ps1 -SkipMigrateVariableGroups $WhatIf
}
{ & .\MigrateProject.ps1 -SkipMigrateVariableGroups $WhatIf }
"Wikis"
{ & .\MigrateProject.ps1 -SkipMigrateWikis $WhatIf }
"Work Item Queries"
"Work Item Queries"
{ & .\MigrateProject.ps1 -SkipMigrateWorkItemQuerys $WhatIf }
"Work-Items (Including 'Test Cases')"
{ & .\Step_3_Migrate_Project.ps1 -WhatIf $WhatIf}
}

- name: Archive code coverage results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: migration-run-logs
path: "./Projects"
Expand Down
Loading