All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
- Logging errors from security command
- GHORG_RECLONE_PATH from getting unset
- Filename length limit on gitlab repos with name collisions
- SCM providers prompting for credentials
- Default behavior of gitlab repo naming collisions to append namespace'd path to repo name instead of auto adding preserve dir behavior; thanks @sding3
- GHORG_GIT_FILTER flag to clone command; thanks @ryanaross
- GHORG_INCLUDE_SUBMODULES flag to clone command; thanks @Antfere
- repo name collisions with gitlab clones not using --preserve-dir
- gitlab cloud clones with --preserve-dir creating nested output dirs; thanks @llama0815
- GHORG_RECLONE_VERBOSE flag
- GHORG_RECLONE_QUIET flag
- reclone logging format
- Updated to go 1.18
- Updated dependencies
- Reclone command
- Gitea token check
- Simplified token check
- Exit 1 when any issue messages are produced; thanks @i3v
- GHORG_EXIT_CODE_ON_CLONE_INFOS to allow for control of exit code when any info messages are produced
- GHORG_EXIT_CODE_ON_CLONE_ISSUES to allow for control of exit code when any issue messages are produced
- Remotes updated count to clone stats
- Backup flag not working with prune; thanks @i3v
- Clone wiki flag with prune; thanks @i3v
- Cloning of Gitlab subgroups with prune; thanks @i3v
- GHORG_PRUNE setting which allows a user to have Ghorg automatically remove items from their local org clone which have been removed (or archived, if GHORG_SKIP_ARCHIVED is set) upstream; thanks @toothbrush
- GHORG_PRUNE_NO_CONFIRM which disables the interactive yes/no prompt for every item to be deleted when pruning; thanks @toothbrush
- CodeQL security analysis action
- Security policy
- Ghorg version in run details output
- Upgrade all dependencies, including gopkg.in/yaml.v3 to 3.0.0
- User cloning self on github now finds all public/private repos; thanks @iDoka
- Dockerfile
- Ability to set GHORG_IGNORE_PATH; thanks @jeffreylo
- Ability to set configuration file as
ghorg.yaml
at root of repo; thanks @jeffreylo - GHORG_QUIET mode; thanks @jeffreylo
- Automatic env setting for viper to allow for overriding env vars; thanks @hojerst
- Exclude gitlab groups by regex match; thanks @schelhorn
- Configuration env var; thanks @Rabattkarte
- Bitbucket base url support
- Deprecated bitbucket api calls; thanks @Riduidel
- GitLab
--preserve-dir
flag not being respected; thanks @attachmentgenie
- Filtering repos by topics for gitlab; thanks @dschafhauser
- Exclude filtering for prefix and regex; thanks @dschafhauser
- goreleaser
- GHORG_BITBUCKET_OAUTH_TOKEN to support oauth tokens for bitbucket; thanks @ skupjoe
- Gitlab token length requirements; thanks @dschafhauser
- Appending trailing slashes on urls and filepaths; thanks @dschafhauser
- GHORG_DRY_RUN to do dry runs on clones
- GHORG_FETCH_ALL to run fetch all on each repo
- output for long running repo fetches
- support for cloning github enterprise repos
- log repos cloned vs pulled at end of run
- go-github versions v32 -> v41
- Setting new gitlab token check from config file; thanks @vegas1880
- GHORG_CLONE_WIKI to clone wiki pages of repos; thanks @ahmadalli
- Setting new gitlab token check from config file; thanks @vegas1880
- GHORG_INSECURE_GITLAB_CLIENT to to skip verification of ssl certificates for hosted gitlab servers
- Gitlab token length validation; thanks @vegas1880
- GHORG_NO_CLEAN only clones new repos and does not perform a git clean on existing repos; thanks @harmathy
- all-groups for cloning all groups on a hosted gitlab instance
- go version in go.mod to 1.17 and updated all dependencies
- Pagination with gitlab cloud; thanks @brenwhyte
Big thanks to @cugu and @Code0x58
- integration tests on windows, ubuntu, and mac for github
- GHORG_MATCH_REGEX to filter cloning repos by regex; thanks @petomalina
- initial clone will try to checkout a branch if specified; thanks @dword-design
- default clone directory to $HOME/ghorg
- users/orgs directory no longer appends "_ghorg" or forces underscores
- make $HOME/.config/ghorg/conf.yaml optional
- color is off by default
- color flag configuration options are enabled/disabled
- file pathing to be windows compatible
- how github users clone their own repos thanks @dword-design
- ghorg clone me to clone all of your own private repos from github
- error messages for ls command
- GHORG_BRANCH if not set, will first look for the repos default branch, if no default branch is found on repo will fall back to using master as default
- gitea support; thanks @6543
- skip forks flag; thanks @6543
- ls command
- scm package
- go-gitlab version 0.33.0 -> 0.38.2
- dry'd scm user/org filter; thanks @6543
- github example
- GHORG_GITHUB_TOPICS to filter cloning repos matching specified topics; thanks @ryanaross
- GHORG_MATCH_PREFIX to filter cloning repos by prefix
- example commands directory
- base-url to github for self hosted github instances
- github client mocks
- GHORG_GITLAB_DEFAULT_NAMESPACE
- Bug with trailing slash env vars; thanks @ryanaross
- ascii time output when users use ghorgignore
- ascii time output when users use output-dir flag
- default GHORG_ABSOLUTE_PATH_TO_CLONE_TO to $HOME/Desktop/ghorg
- auto downcase of ghorg clone folder name; thanks @zamariola
- auto underscore of ghorg clone folder name
- vendoring of dependencies
- go modules
- easter egg
- ghorg configuration location to $HOME/.config/ghorg or $XDG_CONFIG_HOME gabrie30#65; thanks @liljenstolpe
- version number to 1.3.0; thanks @alexcurtin
- reset remote to not include apikey gabrie30#64; thanks @mcinerney
- GitLab client; thanks @awesomebytes
- Gitlab https clone url to include oauth2 https://stackoverflow.com/questions/25409700/using-gitlab-token-to-clone-without-authentication
- auto add trailing slash to path to clone to if not supplied by user
- add token to https clone urls
- add concurrency flag to limit goroutines while cloning
- perserve dir flag for gitlab
- color flag to toggle colorful output
- scm base url flag for gitlab
- ghorgignore to ignore specific repos
- skip archived repos flag
- how to fix ulmits in readme
- dedicated backup flag
- Config output for clone
- version for homebrew
- setting all envs from conf
- Tests for configs
- Error messages
- token verification
- flag documentation
- readme
- flag documentation
- readme
- flags for certain commands
- gitlab support
- bitbucket support
- readme
- ghorg conf file env's being overwritten
- viper/cobra for more robust cli commands and flags
- readme
- .ghorg to $HOME/ghorg/conf.yaml
- changelog
- when no org is found default to search for username instead
- clone protocol to .ghorg to allow for https or ssh cloning
- readme
- initial version of
ghorg