Repository navigation
feat: replace Git LFS pushes with direct Batch API migration - #11
Merged
Merged
Conversation
…ng and state management - Added `runReporter` to track sync process, including error logging and summary generation. - Introduced tests for `runReporter` to ensure correct state persistence and error handling. - Refactored sync logic to utilize `runReporter` for reporting issues and summarizing results. - Implemented environment variable checks to secure sensitive information during sync. - Enhanced error handling in sync operations to continue past corrupt objects and log issues. - Created unit tests for repository syncing, including handling of valid and corrupt LFS objects.
- Updated the go-github dependency from v66 to v90 in api_test.go. - Introduced a new Summary struct in the worker pool to encapsulate processing results. - Replaced PrintSummary method with a Summary method in Stats struct to return a structured summary. - Enhanced the export package to utilize a new output renderer for better logging and status updates. - Refactored the migrate package to integrate the output renderer for consistent messaging. - Added JSON output support in the renderer for structured logging. - Improved error handling and reporting in the pull and sync packages. - Created a new output renderer to manage console output and error reporting more effectively. - Added tests for the new output renderer to ensure correct functionality and output formatting.
… and usage guidelines
…ing and error checks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replace
git lfs push-based synchronization with a direct Git LFS Batch API uploader.This avoids Git history traversal, uploads only objects missing from the destination, removes credentials from remote URLs, and provides an end-to-end
migratecommand.What changed
migrateorchestration for export → pull → sync.docs/.Behavior
syncno longer invokes Git or Git LFS. It scans the local LFS object store, negotiates each OID with the destination, uploads missing objects, and verifies destination state.It does not create or push commits, branches, or tags. Destination repositories and refs must already exist for normal migrations.
Reruns are idempotent: remotely present objects are negotiated and skipped.
Security
Validation
go vet, Staticcheck, and duplicate detection pass.The new multi-repository live workflow awaits its first post-merge run.