This file contains a brief summary of new features and dependency changes or releases, in reverse chronological order.

0.5.0 (2021-05-07)


  • Introduced ability to specify the maximum number of concurrent processes to use when syncing.


  • Reformat log entries to provide logs in a bit more readable format as well as process id (PID).

  • Changed additional groups of dependencies declared in so that develop is superset now for testing and docs.

  • Remove dependencies from develop group which are not necessary for developing the package.

  • Used single requirements.txt file to declare project dependencies. Additional dependencies from develop, testing and docs groups lives now in or tox.ini.

Bug Fixes

  • Added missed files to the package contents.

  • Don’t include tests package in wheel. Previously pip install gstore used to install a top-level package tests. This was fixed.

  • Fixed package description.

Trivial/Internal Changes

  • Replaced pytest-cov by coverage[toml] for code coverage measurement.

  • Bumped pygithub from 1.54.1 to 1.55.

0.4.0 (2021-02-19)


  • The gstore.env module was introduced to provide a convenient way to work with environment variables used by various functions within Gstore.

  • Added the following functions within gstore.env:

    • lookup_token() - lookup a personal access token in environment variables,

    • get_host() - get GitHub API hostname from environment variable,

    • get_target() - get base target to sync repos from environment variable.

Breaking Changes

  • Moved gstore.Client.TOKEN_NAMES to gstore.env.TOKEN_NAMES.

  • Moved gstore.args.get_token_from_env() to gstore.env.lookup_token().


  • Improved git.GitCommandError message formatting for more accurate logging.

  • The program now correctly handle Control-C keyboard event and gracefully terminates.

  • Gstore will exit with a status of one when its is called without any argument and there are not enough environment variables for normal operation.

  • Calling program with an invalid token and without --org option no longer leads to abnormal program termination.

Trivial/Internal Changes

  • gstore.Client.__init__() will raise now gstore.client.ValidationError when no token is provided.

  • gstore.Client.resolve_orgs() will raise now gstore.client.InvalidCredentialsError when provided token is invalid.

0.3.1 (2021-01-03)


  • Gstore will exit with a status of one if there are critical errors during synchronization.

  • Gstore will handle situations with invalid API token or organization name.

Improved Documentation

Bug Fixes

  • Fixed gstore.args.get_token_from_env() to properly get a token from environment variables or None if variables are not set.

Trivial/Internal Changes

  • gstore.Client.__init__(), as well as gstore.Client.resolve_orgs() will raise now gstore.exceptions.InvalidCredentialsError in case of incorrect credentials usage.

  • gstore.models.Repository now holds gstore.models.Organization.

  • Starting with v0.3.1 tests will be included in the PyPI package.

0.3.0 (2021-01-03)

Breaking Changes

  • Python < 3.7 is no longer supported.

  • Changed the way to get repositories from specific organizations. From now, to get repositories from specific organizations, list each of them on the command line using the argument --org.


  • Added -o as a short form of --org argument.

  • Added ability to limit sync to the specified repositories using -r, --repo option.


  • Improved logging and error reporting.

  • Improved local repo handling by checking the directory contents.

Bug Fixes

  • Corrected log level on --quiet mode.

  • Fixed invalid local repo handling.

0.2.0 (2020-12-27)


  • Added ability to specify host for Github Enterprise.


  • Show help message and exit when Gstore is called without any argument and there are not enough environment variables for normal operation.

0.1.1 (2020-12-27)


  • Added -V, --version arguments to print program’s version information.

  • Added -dumpversion argument to print the version of the program and don’t do anything else.

  • Added -q, --quiet arguments to silence any informational messages except error ones


  • Handling situations when the target for sync is a regular file or readonly.

0.1.0 (2020-12-26)


  • Provided ability to pass authentication token for API requests via environment variables.

  • Added -v argument support to enable verbose mode.

Breaking Changes

  • The GitHub username is no longer used upon obtaining organizations list.

Trivial/Internal Changes

  • Changed the way to communicate with GitHub API. requests library no longer used thanks to PyGithub.

0.0.5 (2020-12-25)


  • Added better logging subsystem

Trivial/Internal Changes

0.0.4 (2020-12-24)

Breaking Changes

  • Renamed GHS_DIR environment variable to GSTORE_DIR.

  • Renamed package name from ghs to gstore to avoid collision with the existing package with the same name.

0.0.3 (2020-12-24)


  • Added ability to use GHS_DIR as a sync base directory.

  • Added ability to omit target directory and use current working directory.

  • Added ability to fetch objects and refs from an existent repository.

0.0.2 (2020-12-24)

Breaking Changes

  • Renamed package name from ghsync to ghs to avoid collision with the existing package with the same name.

0.0.1 (2020-12-23)

  • Initial release.