All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
- Reclone name and description to reclone output
- GHORG_PRESERVE_SCM_HOSTNAME, to organize clones by a top level SCM hostname folder; thanks @rrrix
- GHORG_PRUNE_UNTOUCHED, to prune repos that users make no changes in; thanks @MaxG87
- GHORG_GITHUB_TOKEN_FROM_GITHUB_APP to handle github app tokens; thanks @PaarthShah
- Command reclone-server, to run ad hoc reclone commands via HTTP requests
- Command reclone-cron, to run periodic reclone commands on a timer
- Breaking Change: Self hosted gitlab clones will now include the top level domain in the default output directory
- GHORG_NO_DIR_SIZE flag to turn off directory size output which is now enabled by default
- GHORG_STATS_ENABLED flag to track clone data over time, set to false by default
- Added two new flags to the
ghorg ls
command:--long
and--total
, which provide additional information about the cloned directories. - GHORG_GITHUB_FILTER_LANGUAGE to filter clones by repo language
- GHORG_RECLONE_VERBOSE flag
- Bump code.gitea.io/sdk/gitea from 0.18.0 to 0.19.0 (#441)
- Bump github.com/xanzy/go-gitlab from 0.106.0 to 0.107.0 (#442)
- Bump rexml from 3.2.8 to 3.3.3 in /site (#443)
- Bump rexml from 3.3.3 to 3.3.6 in /site (#444)
- Bump golang.org/x/oauth2 from 0.21.0 to 0.22.0 (#447)
- Bump github.com/xanzy/go-gitlab from 0.107.0 to 0.108.0 (#446)
- GHORG_CLONE_SNIPPETS as a way to clone all snippets, gitlab only
- Commit count to clone output
- Refs to deprecated io/ioutil (#415); thanks @testwill
- Bitbucket clones without app password; thanks @SparklingAperioso
- Github user repo clone options to be configurable; thanks @anton-kotik, @alexcurtin
- Failing checkout when default branch changes on remote; thanks @zarthross
- Update go version to 1.22
- Updated go github from v41 to v62
- Bump rexml from 3.2.5 to 3.2.8 in /site (#414)
- Bump golang.org/x/oauth2 from 0.19.0 to 0.20.0 (#419)
- Bump github.com/bradleyfalzon/ghinstallation/v2 from 2.10.0 to 2.11.0 (#420)
- Bump github.com/fatih/color from 1.16.0 to 1.17.0 (#422)
- Bump github.com/xanzy/go-gitlab from 0.103.0 to 0.105.0 (#423)
- Bump github.com/ktrysmt/go-bitbucket from 0.9.79 to 0.9.80 (#421)
- Bump github.com/hashicorp/go-retryablehttp from 0.7.2 to 0.7.7 (#427)
- Bump golang.org/x/image from 0.10.0 to 0.18.0 (#428)
- Bump golang.org/x/oauth2 from 0.20.0 to 0.21.0 (#431)
- Bump github.com/spf13/viper from 1.18.2 to 1.19.0 (#432)
- Bump github.com/spf13/cobra from 1.8.0 to 1.8.1 (#433)
- Additional info to git commands when debug is enabled; thanks @fey
- GHORG_TARGET_REPOS_PATH now outputs target repos not found in the org
- ssh-client to docker image; thanks @fey
- GHORG_TARGET_REPOS_PATH working with GHORG_CLONE_WIKI; thanks @han911976
- Bump github.com/xanzy/go-gitlab from 0.101.0 to 0.103.0 (#405)
- Bump code.gitea.io/sdk/gitea from 0.17.1 to 0.18.0 (#403)
- Bump golang.org/x/oauth2 from 0.18.0 to 0.19.0 (#402)
- Bump github.com/ktrysmt/go-bitbucket from 0.9.77 to 0.9.79 (#404)
- GHORG_TARGET_REPOS_PATH
- GitLab group calls by id instead of by name; thanks @angelabad (#400)
- Bump golang.org/x/net from 0.22.0 to 0.23.0 (#401)
- Bump github.com/ktrysmt/go-bitbucket from 0.9.76 to 0.9.77 (#398)
- Bump github.com/xanzy/go-gitlab from 0.98.0 to 0.101.0 (#396) (9 days ago)
- Bump github.com/bradleyfalzon/ghinstallation/v2 from 2.9.0 to 2.10.0 (#397)
- Bump golang.org/x/oauth2 from 0.17.0 to 0.18.0 (#395)
- Bump google.golang.org/protobuf from 1.31.0 to 1.33.0 (#394)
- Bump golang.org/x/oauth2 from 0.16.0 to 0.17.0 (#392)
- Bump github.com/ktrysmt/go-bitbucket from 0.9.74 to 0.9.76 (#393)
- Bump github.com/xanzy/go-gitlab from 0.96.0 to 0.98.0 (#391)
- Bump github.com/xanzy/go-gitlab from 0.95.2 to 0.96.0 (#386)
- Bump github.com/ktrysmt/go-bitbucket from 0.9.73 to 0.9.74 (#387)
- Bump github.com/bradleyfalzon/ghinstallation/v2 from 2.8.0 to 2.9.0 (#388)
- Automated docker images (#354); thanks @afonsoc12
- Docker support for armv7 (#361); thanks @LuckyTurtleDev
- Allow using file paths in --token (#358); thanks @dvonessen
- Release version name; thanks @gbloquel
- Various dependency updates
- Examples command; thanks @vlcinsky
- Examples command; thanks @MaxG87
- GHORG_RECLONE_ENV_CONFIG_ONLY; thanks @vlcinsky
- Update go version to 1.20
- Bump github.com/ktrysmt/go-bitbucket from 0.9.60 to 0.9.63 (#329)
- Bump github.com/bradleyfalzon/ghinstallation/v2 from 2.5.0 to 2.6.0 (#327)
- Bump github.com/xanzy/go-gitlab from 0.86.0 to 0.89.0 (#326)
- Bump golang.org/x/image from 0.0.0-20220302094943-723b81ca9867 to 0.5.0 (#333)
- Reclone list flag
- Clone help text referencing old default config path; thanks @MaxG87
- Bump github.com/ktrysmt/go-bitbucket from 0.9.58 to 0.9.60 (#320)
- Bump github.com/bradleyfalzon/ghinstallation/v2 from 2.4.0 to 2.5.0 (#319)
- Bump golang.org/x/oauth2 from 0.8.0 to 0.9.0 (#318)
- Bump github.com/xanzy/go-gitlab from 0.83.0 to 0.86.0 (#317)
- GHORG_CLONE_DEPTH; thanks @elliot-wasem
- Bump github.com/spf13/viper from 1.15.0 to 1.16.0 (#314)
- Bump github.com/ktrysmt/go-bitbucket from 0.9.56 to 0.9.58 (#312)
- Bump golang.org/x/oauth2 from 0.7.0 to 0.8.0 (#311)
- GHORG_NO_TOKEN to allow cloning no token present; thanks @6543
- GitHub App authentication; thanks @duizabojul
- Gitea SCM x509: certificate signed by unknown authority (#307); thanks @oligot
- Bump github.com/ktrysmt/go-bitbucket from 0.9.55 to 0.9.56 (#305)
- Bump github.com/spf13/cobra from 1.6.1 to 1.7.0 (#303)
- Bump github.com/xanzy/go-gitlab from 0.81.0 to 0.83.0 (#302)
- Token length checks
- Gitea tokens from not being found in config.yaml; thanks @Antfere
- HTTPS GitHub clones with new GH fine grain tokens; thanks @verybadsoldier
- Bump github.com/spf13/viper from 1.14.0 to 1.15.0
- Bump github.com/fatih/color from 1.13.0 to 1.14.1
- Bump github.com/xanzy/go-gitlab from 0.77.0 to 0.79.1
- Bump golang.org/x/net from 0.4.0 to 0.7.0
- Bump golang.org/x/oauth2 from 0.3.0 to 0.5.0
- Bump github.com/xanzy/go-gitlab from 0.79.1 to 0.80.2
- Better examples for GitLab
- Better tests for local gitlab enterprise
- gitlab hash concurrency issues
- all-users command directory nesting
- ls command to work with output dirs
- gitlab groups and subgroup nesting; thanks @nudgegoonies
- Bump github.com/ktrysmt/go-bitbucket from 0.9.54 to 0.9.55
- Bump github.com/xanzy/go-gitlab from 0.76.0 to 0.77.0
- GitLab nested group names; thanks @MaxG87
- Ability to clone all users repos on hosted GitLab instances; thanks @mlaily
- Top level GitLab groups on hosted GitLab instances now fetch all groups; thanks @mlaily
- Bump github.com/xanzy/go-gitlab from 0.74.0 to 0.76.0
- Bump github.com/spf13/viper from 1.13.0 to 1.14.0
- GHORG_INSECURE_GITEA_CLIENT to be explicit when cloning from Gitea instances using http; thanks @zerrol
- Logging errors from security command
- GHORG_RECLONE_PATH from getting unset; thanks @afonsoc12
- Bump github.com/xanzy/go-gitlab from 0.73.1 to 0.74.0
- Bump github.com/spf13/cobra from 1.5.0 to 1.6.1
- 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_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 #65; thanks @liljenstolpe
- version number to 1.3.0; thanks @alexcurtin
- reset remote to not include apikey #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