* feat: add --batch-size flag to push refs in batches
Add support for pushing refs in smaller batches to avoid server-side
limits and timeouts when syncing large repositories with many tags/branches.
- Add --batch-size flag (default 0 = no batching, original behavior)
- Add References() method to GitRepository interface
- Implement collectRefs() and pushRefsInBatches() helpers
- Add MinBatchSize validation (must be 0 or >= 10)
This addresses issues where repositories with 1000+ refs fail to sync
to GHES with 'command error on refs/heads/<branch>: failed' errors.
* test: add tests for batch-size flag and push batching functionality
* fix: pin tool dependencies to versions compatible with Go 1.21
* ci: fix docker compose v2 syntax and update setup-ruby action
* refactor: address PR review feedback
- Remove unused RefInfo struct from git.go
- Remove redundant pushedAny variable tracking in pushRefsInBatches
- Remove incomplete TestPushRefsInBatches_PartialUpToDate test (already covered by existing test case)
* docs: add --batch-size flag to README
It's handy to have comments in the list file so that you describe to
other teams that may have different destination repos where to put
actions to sync.
closes#106
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
* Produce a better error message when the destination org doesn't exist.
* Support pushing to the authenticated user's account
**Before**
`error creating github repository `synced-actions/setup-node`: error creating repository: POST http://my-ghes-hostname/api/v3/orgs/synced-actions/repos: 404 Not Found []`
**After**
`error creating github repository `synced-actions/setup-node`: Organization `synced-actions` doesn't exist at http://my-ghes-hostname. You must create it first.`
https://github.com/actions/actions-sync/issues/1