Skip to content

Review dependencies and extensibility #1503

@pjbgf

Description

@pjbgf

Across go-git the pattern of dependency inversion can be observed, enabling users to swap implementations of Storage, Filesystem and Hash implementations.

For v6, we should aim to double down on that principle to support a leaner go-git core which has minimal dependencies. Some of the dependencies that could be provided via a opt-in sensible defaults, but removed from the core go-git:

  • github.com/pjbgf/sha1cd
  • github.com/kevinburke/ssh_config
  • github.com/xanzy/ssh-agent
  • github.com/skeema/knownhosts

The SSH related dependencies may require a change in the API to enable that extensibility. For project that only clone public repositories via HTTPS, should not be forced on depending on those dependencies.

Similarly, as sha256 arrives for v6, users that may be solely working against sha256 repositories may not be forced to depend on sha1cd.

Metadata

Metadata

Assignees

No one assigned

    Labels

    breakingdependenciesPull requests that update a dependency file

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions