Code updates
- Generated shell scripts have wider support by using
/bin/shinstead of/bin/bash. - All shell scripts pass shellcheck.
CLONEABLE_OWNERnow used in both askpass and jar arguments. It was only available in askpass script.--owneroption is now optional with some arguments as opposed to always being required.
New options to simplify documentation:
--print-bash-completioncreates a bash completion script.--print-cli-scriptcreates a wrapper shell script for cloneable.jar.--print-clone-scriptenables easier cloning of orgs.--print-update-scriptenables easier updating of already cloned backups.
New feature:
- HTTP cloning is now supported for basic
GITHUB_TOKENin addition to GitHub app authentication.
Bug fixes:
- Added
GITHUB_API_URLfor GitHub Enterprise app authentication. - New option
--owner-is-userwill request API tokens for app installed for users rather than GitHub organization.
- Support for GitHub App Authentication.
- Support for cloning over HTTP with GitHub App auth via
GIT_ASKPASS. - Expanded and documented support for environment variables.
java -jar cloneable.jar --helpincludes examples.- New options:
--github-app-idorCLONEABLE_GITHUB_APP_IDenv var for GitHub app auth.--github-app-keyorCLONEABLE_GITHUB_APP_KEYenv var for app auth.--httpprints HTTP clone URLs. Similar to--url.--print-askpass-scriptused forGIT_ASKPASSinstallation for app auth.--print-update-scriptused for updating HTTP cloned repositories usingGIT_ASKPASSfor app auth.--print-auth-tokenprints API token generated by GitHub app. This is meant to be used byGIT_ASKPASS.
- Bugfix: not listing repositories owned by another user or org in which the user associated with the API token does not have ownership access.
- Bugfix: Fix by rebuilding with OpenJDK 11 compatibility on Ubuntu 20.04 and newer. Upgraded to Groovy 3.0.9.
- Support for self-hosted GitHub Enterprise. See README for details.
- New option:
--containsor-Ffor short. Match any repository containing any file at the repository root. - New option:
--exclude-repos-withor-Eoption for short. Skips repositories which contain any listed files. - New option:
--branchor-Bfor short. When using-For-Eoptions, choose the branch name to search for files. It will use default branch if none specified. - New option:
--before. Find all repositories contributed before some timeframe ago. For example,--before 1yfinds all repositories pushed more than 1 year ago. - New option:
--after. Find all repositories contributed after some timeframe ago. For example, the following options will find all repositories contributed within the past 30 days.--after 1m,--after 30d, or--after 30. - README update: Bash completion options now available.
- New option:
--inverse-searchor-ifor short. Will invert the skip logic and instead treat it as criteria to print the repository. Providing multiple skip options will mean that a repository need only match one of the multiple skip conditions. - New option:
--skip-emptyor-efor short. Will skip repositories which do not contain any Git commits. - New option:
--skip-archivedor-ffor short. Will skip archived repositories.
- New option:
--skip-forked-reposor-ffor short. If a repository is a fork from another user or organization, then it will be skipped. - New option:
--skip-source-reposor-sfor short. If a repository is not a fork from another user or organization, then it will be skipped. - New option:
--skip-private-reposor-pfor short. If a repository is private, then it will be skipped. - New option:
--skip-public-reposor-Pfor short. If a repository is public, then it will be skipped.
- New option:
--match-topicsor-mfor short will now filter for repositories that only contain the matching topic. The list of topics is treated as a match for any topic. This option can be specified multiple times. - Errors now include the exception simple name. This is necessary because when
a
UnknownHostExceptionoccurred it would only show the domain of the unknown host but didn't explain the issue. With the exception name, the error becomes more clear. - Now development snapshots versions are supported. When a user calls
--versionand the jar was built from a development snapshot, the version information will include the git hash from the build.
- Version from gradle is the version used in CLI.
- Bugfix: when using option
--skip-local-bare-reposa blank line would be printed if a paginated GraphQL query returned repositories which all had local bare repositories existing. It no longer will print a blank line per GraphQL page.
- Optimized Jar includes minimum groovy parts.
Initial release features:
- Ability to choose user or organization to render a list of repositories.
- Option to skip local bare repositories when rendering GitHub repository list.
- Debug option to show stack traces for development.
- Optionally print clone URL instead of repository name.
- Credentials can be loaded as an option, from a file, or from an environment
variable
GITHUB_TOKEN. Note: file should have600permissions for security purposes.