- 03 Sep, 2023 1 commit
-
-
The error handling in the ssh certificate callback is straightforward. There's no error messages from an external library that need to be saved, we populate the error message ourselves. Since there's nothing custom here, it does not need to use the error saving mechanism.
Edward Thomson committed
-
- 30 Aug, 2023 2 commits
-
-
We may want to support SSH but with a different provider that is not libssh2. Add GIT_SSH to indicate that we have some inbuilt SSH support and GIT_SSH_LIBSSH2 to indicate that support is via libssh2. This is similar to how we support GIT_HTTPS and GIT_OPENSSL, for example.
Edward Thomson committed -
Edward Thomson committed
-
- 18 Jul, 2023 1 commit
-
-
steven9724 committed
-
- 13 May, 2023 1 commit
-
-
The `gitno` buffer interface is another layer on top of socket reads. Abstract it a bit into a "static string" that has `git_str` like semantics but without heap allocation which moves the actual reading logic into the socket / stream code, and allows for easier future usage of a static / stack-allocated `git_str`-like interface.
Edward Thomson committed
-
- 27 Feb, 2023 1 commit
-
-
This reverts commit f68b40c0.
Edward Thomson committed
-
- 24 Feb, 2023 2 commits
-
-
Co-authored-by: Stefan Karpinski <stefan@karpinski.org>
Francois-Xavier Coudert committed -
Edward Thomson committed
-
- 22 Feb, 2023 1 commit
-
-
Fixes https://github.com/libgit2/libgit2/issues/3866 Has been applied in all Julia builds since 2017: https://github.com/JuliaLang/julia/pull/17459 Authored-by: Keno Fischer <kfischer@college.harvard.edu>
Francois-Xavier Coudert committed
-
- 09 Feb, 2023 3 commits
-
-
Eric Huss committed
-
I spent an hour banging my head against this, when it was because the remote didn't trust my key.
Edward Thomson committed -
Use `git_sysdir_find_homedir_file` to identify the path to the home directory's `.ssh/known_hosts`; this takes Windows paths into account by preferring `HOME`, then falling back to `HOMEPATH` and `USERPROFILE` directories.
Edward Thomson committed
-
- 04 Nov, 2022 1 commit
-
-
The server and client negotiate a single hostkey, but the "best" cipher may not be the one for which we have an entry in `known_hosts`. This can lead to us not finding the key in known_hosts even though we should be connecting. Instead here we look up the hostname with a nonsense key to perform a lookup in the known hosts and set that. This is roughly what the OpenSSH client does as well.
Carlos Martín Nieto committed
-
- 02 Nov, 2022 1 commit
-
-
It turns out this has been available in libssh2 for a long time and we should have been verifying this the whole time.
Carlos Martín Nieto committed
-
- 23 Feb, 2022 1 commit
-
-
Edward Thomson committed
-
- 18 Jan, 2022 2 commits
-
-
Instead of trying to figure out a repo's path from a URL by hand, parse a URL using the parsing functionality.
Edward Thomson committed -
Provide a mechanism for parsing scp-style paths (eg `git@github.com:libgit2/libgit2` into the url form `ssh://git@github.com/libgit2/libgit2`.)
Edward Thomson committed
-
- 06 Jan, 2022 1 commit
-
-
The existing mechanism for providing options to remote fetch/push calls, and subsequently to transports, is unsatisfactory. It requires an options structure to avoid breaking the API and callback signatures. 1. Introduce `git_remote_connect_options` to satisfy those needs. 2. Add a new remote connection API, `git_remote_connect_ext` that will take this new options structure. Existing `git_remote_connect` calls will proxy to that. `git_remote_fetch` and `git_remote_push` will proxy their fetch/push options to that as well. 3. Define the interaction between `git_remote_connect` and fetch/push. Connect _may_ be called before fetch/push, but _need not_ be. The semantics of which options would be used for these operations was not specified if you specify options for both connect _and_ fetch. Now these are defined that the fetch or push options will be used _if_ they were specified. Otherwise, the connect options will be used if they were specified. Otherwise, the library's defaults will be used. 4. Update the transports to understand `git_remote_connect_options`. This is a breaking change to the systems API.
Edward Thomson committed
-
- 05 Jan, 2022 1 commit
-
-
Dimitris Apostolou committed
-
- 17 Oct, 2021 1 commit
-
-
libgit2 has two distinct requirements that were previously solved by `git_buf`. We require: 1. A general purpose string class that provides a number of utility APIs for manipulating data (eg, concatenating, truncating, etc). 2. A structure that we can use to return strings to callers that they can take ownership of. By using a single class (`git_buf`) for both of these purposes, we have confused the API to the point that refactorings are difficult and reasoning about correctness is also difficult. Move the utility class `git_buf` to be called `git_str`: this represents its general purpose, as an internal string buffer class. The name also is an homage to Junio Hamano ("gitstr"). The public API remains `git_buf`, and has a much smaller footprint. It is generally only used as an "out" param with strict requirements that follow the documentation. (Exceptions exist for some legacy APIs to avoid breaking callers unnecessarily.) Utility functions exist to convert a user-specified `git_buf` to a `git_str` so that we can call internal functions, then converting it back again.
Edward Thomson committed
-
- 09 Sep, 2021 1 commit
-
-
Make some syntax change to follow coding style.
punkymaniac committed
-
- 22 Dec, 2020 2 commits
-
-
This allows the library to be built using a pre-1.9.0 version of libssh2.
Miguel Arroz committed -
Specifically: ECDSA_256, ECDSA_384, ECDSA_521 and ED25519.
Miguel Arroz committed
-
- 27 Nov, 2020 2 commits
-
-
`git_cert_x509` has the raw encoded certificate. Let's do the same for the SSH certificate for symmetry.
lhchavez committed -
Edward Thomson committed
-
- 11 Oct, 2020 1 commit
-
-
Provide a mechanism for system components to register for initialization and shutdown of the libgit2 runtime.
Edward Thomson committed
-
- 07 Feb, 2020 1 commit
-
-
When the failure is clearly an auth failure (as opposed to possibly an auth failure), use the error code GIT_EAUTH instead of GIT_ERROR. While we're here, fix a typo and improve an error message. Fixes #5389.
Josh Bleecher Snyder committed
-
- 26 Jan, 2020 1 commit
-
-
We avoid abbreviations where possible; rename git_cred to git_credential. In addition, we have standardized on a trailing `_t` for enum types, instead of using "type" in the name. So `git_credtype_t` has become `git_credential_t` and its members have become `GIT_CREDENTIAL` instead of `GIT_CREDTYPE`. Finally, the source and header files have been renamed to `credential` instead of `cred`. Keep previous name and values as deprecated, and include the new header files from the previous ones.
Edward Thomson committed
-
- 13 Dec, 2019 1 commit
-
-
kas committed
-
- 20 Nov, 2019 1 commit
-
-
Anders Borum committed
-
- 16 Nov, 2019 1 commit
-
-
kas committed
-
- 13 Sep, 2019 1 commit
-
-
Etienne Samson committed
-
- 10 Jun, 2019 1 commit
-
-
"Connection data" is an imprecise and largely incorrect name; these structures are actually parsed URLs. Provide a parser that takes a URL string and produces a URL structure (if it is valid). Separate the HTTP redirect handling logic from URL parsing, keeping a `gitno_connection_data_handle_redirect` whose only job is redirect handling logic and does not parse URLs itself.
Edward Thomson committed
-
- 16 Apr, 2019 1 commit
-
-
Etienne Samson committed
-
- 22 Jan, 2019 1 commit
-
-
Move to the `git_error` name in the internal API for error-related functions.
Edward Thomson committed
-
- 21 Nov, 2018 1 commit
-
-
Allow credential and certificate checking callbacks to return GIT_PASSTHROUGH, indicating that they do not want to act. Introduce this to support in both the http and ssh callbacks. Additionally, enable the same mechanism for certificate validation. This is most useful to disambiguate any meaning in the publicly exposed credential and certificate functions (`git_transport_smart_credentials` and `git_transport_smart_certificate_check`) but it may be more generally useful for callers to be able to defer back to libgit2.
Edward Thomson committed
-
- 10 Jun, 2018 1 commit
-
-
Patrick Steinhardt committed
-
- 27 Mar, 2018 2 commits
-
-
The function `libssh2_session_startup` has been deprecated since libssh2 version 1.2.8 in favor of `libssh2_session_handshake` introduced in the same version. libssh2 1.2.8 was released in April 2011, so it is already seven years old. It is available in Debian Wheezy, Ubuntu Trusty and CentOS 7.4, so the most important and conservative distros already have it available. As such, it seems safe to just use the new function.
Patrick Steinhardt committed -
The function `ssh_stream_free` takes over the responsibility of closing channels and streams just before freeing their memory, but it does not do so for the session. In fact, we never disconnect the session ourselves at all, as libssh2 will not do so itself upon freeing the structure. Quoting the documentation of `libssh2_session_free`: > Frees all resources associated with a session instance. Typically > called after libssh2_session_disconnect_ex, The missing disconnect probably stems from a misunderstanding what it actually does. As we are already closing the TCP socket ourselves, the assumption was that no additional disconnect is required. But calling `libssh2_session_disconnect` will notify the server that we are cleanly closing the connection, such that the server can free his own resources. Add a call to `libssh2_session_disconnect` to fix that issue. [1]: https://www.libssh2.org/libssh2_session_free.html
Patrick Steinhardt committed
-
- 19 Mar, 2018 1 commit
-
-
Use `git_buf_decode_percent` so that we can avoid allocating a temporary buffer.
Edward Thomson committed
-