Skip to content
Permalink
main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Nov 3, 2022

  1. Remove hidden from migrate org command (#719)

    Fixes: #710
    
    - [ ] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [ ] Appropriate logging output
    - [X] Issue linked
    - [x] Docs updated (or issue created)
    https://docs.github.com/en/early-access/enterprise-importer/migrating-organizations-with-github-enterprise-importer/migrating-organizations-from-githubcom-to-github-enterprise-cloud
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    juanmrad committed Nov 3, 2022
  2. added --bbs-project-key arg to generate-script command (#721)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Closes #718 
    
    Adds `--bbs-project-key` to `bbs2gh generate-script` command.
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Nov 3, 2022

Commits on Nov 2, 2022

  1. Adding migration of GitHub Secret Scanning Alerts (#592)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created) (#715 )
    
    This is the first pass on the requirements to migrate secret scanning
    remediations between two repositories, provides the functionality for
    #536.
    
    This is being opened to start a code review and then complete the
    support of this command line and service. There are some necessary
    manual steps required as part of the larger migration in that the repo
    is migrated and secret scanning has been reactivated (and the backfill
    scan completed) before this command line makes sense to execute.
    
    Created a new issue to add an integration test to cover this
    functionality in the future: #717
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    
    Co-authored-by: Peter Murray <peter-murray@users.noreply.github.com>
    Co-authored-by: Arin Ghazarian <aringhazarian@github.com>
    Co-authored-by: Dylan Smith <dylanfromwinnipeg@gmail.com>
    4 people committed Nov 2, 2022
  2. adding bbs secrets to integration-tests.yml (#712)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Forgot to update integration-tests.yml in the [BBS integration tests
    PR](#696).
    
    Issue #553 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Nov 2, 2022

Commits on Nov 1, 2022

  1. BBS Integration tests (#696)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Stood up a BBS server in our shared Azure Subscription
    (e2e-bbs-8-5-0-linux-2204.eastus.cloudapp.azure.com). It's running the
    latest version of BBS (8.5.0) and Ubuntu 22.04.
    
    Manually created 2 projects and 2 repos in BBS (in the future we may
    automate this like we have for ADO/GH), and added a new integration test
    to migrate BBS->GH.
    
    Included asserts to check if the GH repo exists and is initialized.
    
    The default SSH cert that Azure generates didn't seem to work when using
    Ubuntu 22.04 (didn't work with our SSH.Net nuget library, but did work
    when directly using SSH in a terminal). I found a [workaround in an
    issue](sshnet/SSH.NET#825 (comment))
    from the SSH.Net repo that I applied in this PR. I don't fully
    understand exactly what it's doing, but it looks like it's updating the
    signature on the key in-memory before using it. Whatever it's doing, it
    makes keys that previously didn't work now work. So it seems like a good
    thing to me.
    
    Closes #553 
    
    Future work:
    - automate the creation of BBS test data (like we do for ADO/GH)
    - Include downloading the migration logs (and asserting that they exist)
    - Add BBS windows server (once we support SMB)
    - Add AWS
    - Add another BBS server with the oldest version we support (5.14 I
    think)
    
    Checklist
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Nov 1, 2022

Commits on Oct 26, 2022

  1. Output information about the progress of org-to-org migrations as rep…

    …os are migrated (#700)
    
    When waiting for an organization-to-organization migration with the
    `wait-for-migration` command, the only feedback that the CLI provides on
    the progress of the migration is its `state`.
    
    Org-to-org migrations potentially stay in the `REPO_MIGRATION` `state`
    for a long time if there are many repos to be migrated, and this can be
    a worrying time - as a user, you are likely to wonder "is my migration
    actually moving forward"?.
    
    The `node` query for `OrganizationMigration`s allows you to fetch the
    `remainingRepositoriesCount` and `totalRepositoriesCount` for the
    migration.
    
    This commit starts grabbing that data and logging a progress indicator
    (`1/10 repos migrated`) to the console.
    
    Note that the GraphQL API currently returns `0` for the two count fields
    if the number of repos has not yet been completed. There is an
    outstanding bug to fix this and return `null` instead. This code is
    future-proof, able to handle both values.
    
    Fixes #699.
    
    _I don't intend to make it a habit to make code changes, but I wanted to
    see this enhancement added before org-to-org ships, and I wanted to get
    familiar with the codebase 😊 _
    
    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    timrogers committed Oct 26, 2022

Commits on Oct 24, 2022

  1. Add retry logic to GQL get api calls (#686)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Closes #668 
    
    Our normal retry on failed GET's logic doesn't apply to GQL queries,
    because technically they aren't doing a HTTP GET but rather a POST to
    the GQL endpoint, so our retry logic doesn't kick in. They also aren't
    always getting a normal HTTP error, instead they often are failing with
    a HTTP 200 but with a GQL error message in the response body.
    
    There are 9 places in `GithubApi` where we do a read-only query via GQL.
    2 of those places are actually dead code that isn't used anywhere and I
    deleted it:
    - `GetOrganizationMigrationState`
    - `GetMigrationStates`
    
    6 instances where I updated the code to inspect the GQL response body
    and check for any errors, and if so apply our normal retry logic:
    - `GetOrganizationId`
    - `GetEnterpriseId`
    - `GetOrganizationMigration`
    - `GetMigration`
    - `GetMigrationLogUrl`
    - `GetMannequins`
    
    Then there was 1 instance where doing the retry logic will be a bit
    trickier - `GetUserId` - because it assumes a GQL error means the user
    doesn't exist and has some specific behavior in that scenario that
    relies on it returning null instead of an exception. For this one I
    didn't tackle it in this PR and created a new issue for us to tackle it
    at some point in the future: #687
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Oct 24, 2022

Commits on Oct 17, 2022

  1. Add Kerberos support (#684)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Issue #678 
    
    Added support for kerberos authentication when calling BBS API's. To do
    this all we need to do is configure our HttpClient to have
    `UseDefaultCredentials = true` and NOT set the normal Authorization
    header that we set. This needs to be set at the time we construct the
    HttpClient. Similar to how we did the NoSSL support, I added a couple
    different named HttpClient's into our DI container ("Default" and
    "Kerberos") configured appropriately. Then I added a new
    `CreateKerberos()` function to `BbsApiFactory` that doesn't require a
    username/password. Finally I added a 2nd constructor to `BbsApi` that
    doesn't require a username/password and doesn't attempt to set the
    Authorization header.
    
    I added a `--kerberos` flag to both `bbs2gh generate-script` and `bbs2gh
    migrate-repo`. For now this is a hidden option.
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Oct 17, 2022

Commits on Oct 15, 2022

  1. Correct the readme instructions to reflect the fact that ado2gh is …

    …now a GitHub CLI extension (`gh ado2gh`) (#681)
    timrogers committed Oct 15, 2022

Commits on Oct 14, 2022

  1. Move GHES archive-downloading logic out of AzureApi (#679)

    When we shipped #653, we missed a case where omitting
    `--azure-storage-connection-string` causes the app to crash, because
    `AzureApiFactory.Create` was running anyway. After a bit of digging, I
    discovered that we were using `AzureApi` to make unauthenticated HTTP
    GETs to download the archives off of the GHES instance. This PR moves
    `AzureApi.DownloadArchive` into its own class, so that we can
    encapsulate making unauthenticated HTTP GETs.
    
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [ ] Issue linked
    - [ ] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    tambling committed Oct 14, 2022

Commits on Oct 12, 2022

  1. Move factory code out of Handlers into Commands (#664)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Changed hte last of hte commands to use the new patterns, with factories
    no longer appearing in the Handlers.
    
    Issue #639 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Oct 12, 2022

Commits on Oct 11, 2022

Commits on Oct 7, 2022

  1. Update RELEASENOTES.md

    dylan-smith committed Oct 7, 2022
  2. Support uploading archives to AWS S3 buckets (#653)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Closes #594.
    Related to github/releases#2532.
    
    - [ ] Did you write/update appropriate tests
    - [ ] Release notes updated (if appropriate)
    - [ ] Appropriate logging output
    - [ ] Issue linked
    - [ ] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    
    Co-authored-by: Dean Tambling <tambling@github.com>
    Co-authored-by: Arin Ghazarian <aringhazarian@github.com>
    3 people committed Oct 7, 2022

Commits on Oct 4, 2022

  1. Show Failure Reason for Org migrations (#667)

    Fixes: github/octoshift#5627
    
    This PR retrieves and displays the failure reason for org migrations
    which is now available in the graphql query.
    Minor header related changes have also been made since we no longer
    require the `internal` header.
    
    
    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    teja-nanduri committed Oct 4, 2022

Commits on Sep 30, 2022

  1. Add GHES support to Grant/Revoke Migrator Role commands (#665)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    Closes #600 
    
    This PR adds the ability to specify a GHES API Url to the
    `GrantMigratorRole` and `RevokeMigratorRole` commands via the
    `--ghes-api-url` flag.
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    
    Co-authored-by: Arin Ghazarian <aringhazarian@github.com>
    xiaonile and ArinGhazarian committed Sep 30, 2022

Commits on Sep 24, 2022

  1. BBS new command binding (#663)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    The final refactoring for bbs2gh. Changed the way we construct commands
    and the dependency graph to the final state.
    
    More PR's to follow for the other projects.
    
    Issue #639
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 24, 2022
  2. Speed up unit tests (#662)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Improved unit test performance from 2.4 minutes to 26 seconds.
    
    We had a bunch of unit tests that we're doing retries with up to 10
    seconds wait times between retries. I changed it to be 0 wait time where
    possible, and 1 second wait in a couple places where 0 wouldn't work.
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 24, 2022
  3. update ado2gh generate-script to use gh ado2gh (#661)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Fixes #657 
    
    When we switched to shipping `ado2gh` as a `gh` extension a couple
    releases ago we didn't update `ado2gh generate-script`, so the migration
    script it was generating was still trying to run the stand-alone
    `ado2gh` instead of the `gh` extension.
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 24, 2022

Commits on Sep 23, 2022

  1. Split commands/handlers in bbs2gh (#660)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Split out a CommandHandler class for all the shared commands in
    Octoshift. This is in preparation for the next step in the refactor
    where we will change how we wire up the command/handlers using some new
    binding/reflection code.
    
    Issue #638 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 23, 2022
  2. CommandLine plumbing infrastructure (#652)

    Related to #639
    
    This is all the required infrastructure changes in form of some
    extension method to do the plumbing for the new CommandLine. Here is a
    [sample
    branch](https://github.com/github/gh-gei/tree/upgrade-bbs2gh-to-new-command-line)
    that applies these changes to `bbs2gh`.
    I went ahead and simplified it even more by creating an extension to add
    all commands to the `rootCommand`. Here is how it's supposed to be used:
    
    ```c#
    public static async Task<int> Main(string[] args) // note that Main now returns a Task<int> instead of Task
    {
        Logger.LogDebug("Execution Started");
     
        var serviceCollection = new ServiceCollection();
        ... // service registrations
        var serviceProvider = serviceCollection.BuildServiceProvider();
    
        var rootCommand = new RootCommand("Automate end-to-end Bitbucket Server to GitHub migrations.")
              .AddCommands(serviceProvider);
    
        ...
    }
    ```
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    Co-authored-by: Dylan Smith <dylan-smith@github.com>
    Co-authored-by: Dylan Smith <dylanfromwinnipeg@gmail.com>
    3 people committed Sep 23, 2022
  3. split tests into command test and handler tests (#655)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Split the unit tests into separate files for CommandTests and
    CommandHandlerTests.
    
    Closes #638 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 23, 2022

Commits on Sep 22, 2022

  1. Refactor separate CommandHandler classes for the shared commands (#654)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Split out a CommandHandler class for all the shared commands in
    Octoshift. This is in preparation for the next step in the refactor
    where we will change how we wire up the command/handlers using some new
    binding/reflection code.
    
    Issue #638 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 22, 2022
  2. Split command and handler in gei commands (#651)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Split out a CommandHandler class for all the gei commands. This is in
    preparation for the next step in the refactor where we will change how
    we wire up the command/handlers using some new binding/reflection code.
    
    There will be more PR's to follow with the rest of the commands.
    
    Issue #638 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 22, 2022
  3. Obfuscate secrets from args in the logs (#630)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    When you use an environment variable to pass a secret in (as is
    recommended) we are properly scrubbing them from the logs
    (EnvironmentVariableProvider is calling OctoLogger.RegisterSecret).
    However, if a secret comes in via a command-line arg (e.g.
    `--github-pat`) we aren't registering it as a secret with the logger,
    and it will show up in the log files.
    
    This PR updates every command that accepts secrets to call
    RegisterSecret for each one.
    
    Closes #618 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 22, 2022

Commits on Sep 21, 2022

  1. Refactor separate CommandHandler classes in ado2gh (#646)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    
    Split out a CommandHandler class for all the ado2gh commands. This is in
    preparation for the next step in the refactor where we will change how
    we wire up the command/handlers using some new binding/reflection code.
    
    There will be more PR's to follow with the rest of the commands.
    
    Issue #638 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 21, 2022

Commits on Sep 20, 2022

  1. Introduced CommandArgs classes for all gei and Octoshift commands (#643)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    Refactored all remaining commands in Octoshift/gei/ado2gh to use Args
    classes. Didn't touch bbs2gh yet.
    
    For gei commands that inherit from an Octoshift shared command class
    then change an arg name, we had duplicate the Args class, and do a bit
    of mapping code in the sub-classed command. This bit of cruft will go
    away with the last step of this refactor when we change how we map
    command-line options to the Args class using a custom binder.
    
    Part of #637 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 20, 2022

Commits on Sep 19, 2022

  1. Add CommandArg classes for all ado2gh commands (#642)

    <!--
    For the checkboxes below you must check each one to indicate that you
    either did the relevant task, or considered it and decided there was
    nothing that needed doing
    -->
    This is part of the refactor to upgrade System.CommandLine. This is step
    1 of the incremental refactor plan: getting all our commands to
    consistently use an Args class to capture all arguments.
    
    This applies the refactoring to all the ado2gh commands (but not the
    common commands from Octoshift).
    
    Part of #637 
    
    - [x] Did you write/update appropriate tests
    - [x] Release notes updated (if appropriate)
    - [x] Appropriate logging output
    - [x] Issue linked
    - [x] Docs updated (or issue created)
    
    <!--
    For docs we should review the docs at:
    
    https://docs.github.com/en/early-access/github/migrating-with-github-enterprise-importer
    and the README.md in this repo
    
    If a doc update is required based on the changes in this PR, it is
    sufficient to create an issue and link to it here. The doc update can be
    made later/separately.
    
    The process to update the docs can be found here:
    https://github.com/github/docs-early-access#opening-prs
    
    The markdown files are here: 
    
    https://github.com/github/docs-early-access/tree/main/content/github/migrating-with-github-enterprise-importer
    -->
    dylan-smith committed Sep 19, 2022
Older