Commit Graph

10 Commits

Author SHA1 Message Date
Sunny 68a3ea2e4d Add tests for libgit2 remote callbacks
- Adds tests for the libgit2 remote callbacks
- Adds tests for CheckoutStrategyForImplementation with context timeout
  and verify timeout is respected by both the git implementations.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2021-11-04 16:17:23 +05:30
Sunny 10d262032c libgit2: handle EOF in parseKnownHosts()
parseKnownHosts() uses golang.org/x/crypto/ssh's ParseKnownHosts() for
parsing known hosts. It returns EOF error when the input is not a host
public key, but a valid known_hosts content, like a comment line.

With this fix, lines causing EOF error are skipped and the parsing of
the known_hosts file continues. But invalid lines still cause parsing
failure.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2021-10-28 17:35:46 +05:30
Hidde Beydals 7a5d8b116d git: styling nitpicks
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-10-27 00:43:31 +05:30
Hidde Beydals 0cf0d4e756 git: refactor AuthStrategy into AuthOptions
This commit moves the previous `AuthStrategy` wiring to a more generic
`AuthOptions`, breaking free from implementation specific details in
the `git` package.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-10-27 00:43:31 +05:30
Somtochi Onyekwere d3d1917e5e Add tests for libgit2
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2021-04-12 16:31:42 +01:00
Philip Laine 73301df023 Add md5 test and check priority of hash types
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2021-02-12 11:16:16 +01:00
Philip Laine 6b3d96ef3b Check hostkey type when validating hostkey
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2021-02-11 23:04:46 +01:00
Hidde Beydals b2f6639c01 libgit2: use provided host to validate public key
The callback from libgit2 only provides a hostname (without the port),
but the `known_hosts` file indexes the public keys based on the full
host (e.g. `[localhost]:123` for a host behind a specific port).

As a result, it was unable to find the correct public key for the
hostname when it was added to the `known_hosts` file with the port.

To work around this, we add the user provided host that includes the
port to the `PublicKeyAuth` strategy, and use this to find the right
entry in the `known_hosts` file, after having validated that the
hostname provided to the callback matches the hostname of the host
provided by the user.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-11 12:52:55 +01:00
Hidde Beydals fac1afa2a8 Move `git/common` to `git`
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-08 14:05:05 +01:00
Hidde Beydals 7e63ef841c Rename Git packages to implementations
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-08 13:55:23 +01:00