Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FINAL: Git storage option feature #1279

Merged
merged 116 commits into from
Oct 31, 2024
Merged

Conversation

begonaguereca
Copy link
Collaborator

@begonaguereca begonaguereca commented Oct 8, 2024

Summary:

This PR introduces the ability for the GEI CLI to upload archives to GitHub-owned storage using multipart uploads. To enable this, a new CLI option, --use-github-storage, has been added. This option allows users to explicitly specify that their archives should be uploaded to GitHub's managed storage instead of their own.

Key Features:

Multipart Upload Support: Leveraging multipart upload for reliable and efficient large file uploads. This ensures the robustness of the uploads, minimizing the chances of failure during transmission. We're investigating libraries to handle multipart uploads, but for now, this feature is not rolled by hand unless necessary.

New Option: --use-github-storage:

This option is required to upload archives to GitHub-owned storage and will be hidden until GitHub-owned storage reaches general availability (GA).
By default, archives are still uploaded to user-specified storage locations unless the --use-github-storage flag is explicitly set.

Motivation:

As discussed during our EDR, we want to allow users to utilize GitHub-owned storage as an option without making it the default. This approach lets us roll out GitHub-managed storage in stages and gather feedback while providing an explicit way to opt-in to this feature.

Check in BBS MigrateRepoCommandArgs removed, relating to changes in this PR: #1057


Take it out for a 🚗 :

*** Remember to export env variables***

export GH_SOURCE_PAT=<<PAT>>
export GH_PAT=<<PAT>> 

Migrating from GitHub Enterprise Server:

dotnet run --project src/gei/gei.csproj -- migrate-repo --github-source-org valet-testing --source-repo integration-tests --github-target-org octoshift-staging --target-repo YOU_ADD_NEW_NAME --use-github-storage true --ghes-api-url https://octoshift-ghe.westus2.cloudapp.azure.com/api/v3 --verbose

Successful migration_id: RM_kgHaACRlZjNiMmExMy02ZTRkLTQ0NWYtOTc4Yy05YTk1MTQ5NzE2OTk

Migrating from GitHub Enterprise Server- Multi part upload:

dotnet run --project src/gei/gei.csproj -- migrate-repo --github-source-org github-owned-storage --source-repo large-1-gib --github-target-org import-testing --target-repo YOU_ADD_NEW_NAME --use-github-storage true --ghes-api-url https://octoshift-ghe.westus2.cloudapp.azure.com/api/v3 --verbose

Successful migration_id: RM_kgDaACQ0MzZmN2RjMS0wNjk4LTRlYjctYmMzNy0wMTAxNGRhOTQ3YTU


Migrating from BBS:

Get info how to set up from slack channel 👍🏽

dotnet run --project src/bbs2gh/bbs2gh.csproj -- migrate-repo --bbs-project IM --bbs-repo codeowners-test --ssh-user bbs --ssh-private-key /Users/begonaguereca/.ssh/id_rsa_bbs_octoshift --use-github-storage true --bbs-server-url https://test-bbs-o.githubapp.com --github-org octoshift-staging --github-repo ADD_NEW_NAME --verbose

Successful migration_id: RM_kgHaACRhODI4NWRmZS0yNWM3LTQ1YjEtYTJhOC1jYmZjNTkxZDE0Mjk


Closes: https://github.ghe.com/github/octoshift/issues/8969

  • Did you write/update appropriate tests
  • Release notes updated (if appropriate)
  • Appropriate logging output
  • Issue linked
  • Docs updated (or issue created)
  • New package licenses are added to ThirdPartyNotices.txt (if applicable)

@begonaguereca begonaguereca changed the title Git storage option Git storage option feature Oct 8, 2024
@begonaguereca begonaguereca changed the title Git storage option feature FINAL: Git storage option feature Oct 8, 2024
Copy link

github-actions bot commented Oct 8, 2024

Unit Test Results

825 tests   825 ✅  22s ⏱️
  1 suites    0 💤
  1 files      0 ❌

Results for commit 5aa0544.

♻️ This comment has been updated with latest results.

@begonaguereca begonaguereca marked this pull request as ready for review October 30, 2024 18:55
src/Octoshift/Services/ArchiveUploader.cs Dismissed Show dismissed Hide dismissed
src/Octoshift/Services/ArchiveUploader.cs Dismissed Show dismissed Hide dismissed
src/Octoshift/Services/ArchiveUploader.cs Dismissed Show dismissed Hide dismissed
src/Octoshift/Services/ArchiveUploader.cs Fixed Show fixed Hide fixed
src/Octoshift/Services/ArchiveUploader.cs Dismissed Show dismissed Hide dismissed
src/Octoshift/Services/ArchiveUploader.cs Dismissed Show dismissed Hide dismissed
Copy link
Collaborator

@ArinGhazarian ArinGhazarian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just looked at the integration tests and the reason they are failing is because the generate-script commands for gei and bbs2gh don't support the --use-github-storage option yet! What I recommend is to revert the INT test changes for now and add them back (in a separate PR) once we add the option to the generate-script commands.

src/OctoshiftCLI.IntegrationTests/BbsToGithub.cs Outdated Show resolved Hide resolved
src/OctoshiftCLI.IntegrationTests/BbsToGithub.cs Outdated Show resolved Hide resolved
src/OctoshiftCLI.IntegrationTests/GhesToGithub.cs Outdated Show resolved Hide resolved
@begonaguereca begonaguereca marked this pull request as draft October 31, 2024 16:03
@begonaguereca begonaguereca marked this pull request as ready for review October 31, 2024 17:12
Copy link
Collaborator

@ArinGhazarian ArinGhazarian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great 🎉 🥇

Also don't forget to update the RELEASENOTES.md with a brief description of changes. It will get published as the release notes.

@begonaguereca begonaguereca merged commit 2dee084 into main Oct 31, 2024
28 checks passed
@begonaguereca begonaguereca deleted the git-storage-option-feature branch October 31, 2024 19:20
Copy link

Code Coverage

Package Line Rate Branch Rate Complexity Health
gei 80% 71% 540
ado2gh 84% 78% 627
Octoshift 87% 76% 1298
bbs2gh 79% 74% 666
Summary 83% (7007 / 8394) 75% (1571 / 2090) 3131

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants