summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-02-14using /opt/libgit2 for test buildsHEADv0.1.4v0.1.3maindevelJeff Carr
2025-01-05try build against 1.8.xv0.1.2Jeff Carr
Signed-off-by: Jeff Carr <[email protected]>
2024-12-17lamev0.1.1Jeff Carr
Signed-off-by: Jeff Carr <[email protected]>
2024-12-17Merge branch 'devel'Jeff Carr
2024-12-17rename as libgit2v0.1.0Jeff Carr
2024-12-17better gitpbv0.0.35Jeff Carr
2024-12-16update to libgit2 version 1.8.4. dump old github and vendor stuffJeff Carr
go install go.wit.com/apps/go-clone@latest go install go.wit.com/apps/go-mod-clean@latest go-clone --recusive go.wit.com/lib/git2go Signed-off-by: Jeff Carr <[email protected]>
2022-12-09Replace golang.org/x/crypto/openpgp with github.com/ProtonMail/go-cryptoRoland Shoemaker
The golang.org/x/crypto/openpgp library has been deprecated for over a year now (see golang.org/issue/44226, and the deprecation notice in the package documentation). The library is unmaintained and has a number of API and usability issues. ProtonMail maintains a community fork which is actively maintained, and for most cases is a drop-in replacement. This change switches usages of golang.org/x/crypto/openpgp/... with github.com/ProtonMail/go-crypto/openpgp/..., the only other code changes are adding a nil packet.Config to a openpgp.CheckArmoredDetachedSignature call. (This change is part of a wider effort by the Go Security team to remove usages of golang.org/x/crypto/openpgp from the Go ecosystem.)
2022-10-04Fix the `github-tag-action` workflow (#932)lhchavez
This has been failing for a while because of some changes in `git`.
2022-10-04libgit2 v1.5.0 #major (#929)Sanskar Jaiswal
Update libgit2 to v1.5.0. Replace `SmartProxyOptions()` with `SmartRemoteConnectOptions()`. Fixes: https://github.com/libgit2/git2go/issues/899 Signed-off-by: Sanskar Jaiswal <[email protected]> Co-authored-by: lhchavez <[email protected]>
2022-07-13Set BasicAuth in http.go only if username and password are not empty (#914)Calin
This prevents error "read/write on closed pipe". Go's http.client::send() always closes req.Body, so if the first request attempt is unsuccessful, any subsequent requests after calling the `CredentialsCallback` will attempt to read/write on a closed pipe.
2022-04-14Uprev libgit to v1.3.1 (#911)lhchavez
🔒 This is a security release to provide compatibility with git's changes to address [CVE 2022-24765](https://github.blog/2022-04-12-git-security-vulnerability-announced/). libgit2 (and by extension git2go) are not directly affected by this vulnerability, because libgit2 does not directly invoke any executable. But we are providing these changes as a security release for any users that use libgit2 for repository discovery and then also use git on that repository. In this release, we will now validate that the user opening the repository is the same user that owns the on-disk repository. This is to match git's behavior. In addition, we are providing several correctness fixes where invalid input can lead to a crash. These may prevent possible denial of service attacks. At this time there are not known exploits to these issues.
2022-02-24Add refspec bindings (#898)William Bain
This add support for the parse, access, and transform functions for refspec objects.
2022-02-24rebase: Add wrapper for `git_rebase_inmemory_index()` (#900)Patrick Steinhardt
* rebase: Fix missing initialization of the repo pointer While the `Rebase` structure has a pointer to the repository the rebase is creatde in, this pointer isn't ever initialized. Fix this. * rebase: Add wrapper for `git_rebase_inmemory_index()` Add a new wrapper for `git_rebase_inmemory_index()`, which can be used to retrieve the index for an in-memory rebase. Co-authored-by: Patrick Steinhardt <[email protected]>
2022-01-22readme: link to godoc for current main branch (#886)Dylan Richardson
The GoDoc link currently refers to the initial version of this package, but usually folks are looking for whatever matches the current main branch. This should be updated whenever the package version changes.
2022-01-17Add ProxyOptions for push operations (#872)Aurélien
Analog to #623 but for push operations rather than fetch.
2022-01-17Add EnableFsyncGitDir to enable synchronized writes to the gitdir (#874)James Fargher
This adds support for the GIT_OPT_ENABLE_FSYNC_GITDIR option in libgit2. Co-authored-by: James Fargher <[email protected]>
2021-11-08Generate stringer files automatically (#841)Kirill
Added `stringer` annotations to `git.go` for `ErrorClass` and `ErrorCode`. Added `generate` rule for `Makefile` to generate string representations for these types (first building cgo files in `_obj` dir to get C constants). Finally, updated `ci` actions workflow to check that generated files are up to date. Fixes: #543
2021-11-08Fix replace statement example in README.md (#859)Ignacio Taranto
2021-11-07Make ssh commands used in the git smart transport compatible with libgit2 (#852)Sunny
* Fix ssh commands used in go SmartSubtransport Before the fix, the commands sent were of the form: ``` git-upload-pack "/bar/test-reponame" ``` This resulted in the git server returning error: `error parsing command: invalid git command` This change replaces the double quotes with single quotes: ``` git-upload-pack '/bar/test-reponame' ``` * Update ssh.go Co-authored-by: lhchavez <[email protected]>
2021-10-23bugfix: HTTPS Clone fails with remote pointer not found using Go transport ↵Yashodhan Ghadge
(#836) (#842) Fixes: #836 Changes: * adding a weak bool param for Remote * create a new remote in the smartTransportCallback incase one is not found
2021-10-14libgit2 v1.3.0 #major (#840)lhchavez
This commit introduces libgit2 v1.3.0 to git2go, which brings a large number of [bugfixes and features](https://github.com/libgit2/libgit2/releases/tag/v1.3.0). This also marks the start of the v33 release.
2021-09-30Allow skipping an entry expansion in `tree.Walk()` (#838)lhchavez
It is now possible to skip expanding an entry in `tree.Walk()` by returning `TreeWalkSkip`, in addition to stopping altogether by returning a non-nil error. Fixes: #837
2021-09-06Allow building libgit2 with Chromium zlib (#831)lhchavez
This change allows the caller to set the `USE_CHROMIUM_ZLIB=ON` environment variable to use the Chromium implementation of zlib when building libgit2.
2021-09-05Add support for Repository.ReachableFromAny() (#826)lhchavez
This change exposes the binding for `git_graph_reachable_from_any()`.
2021-09-05Add support for Odb.MultiPackIndex() (#819)lhchavez
This change exposes the binding for `git_odb_write_multi_pack_index()`.
2021-09-05Expose the ssh.PublicKey into the CertificateCheckCallback (#818)lhchavez
This change exposes the raw SSH hostkey and the ssh.PublicKey into the CertificateCheckCallback, so that callers can do better validations.
2021-09-05libgit2 v1.2.0 #majorlhchavez
This commit introduces libgit2 v1.2.0 to git2go, which brings a large number of [bugfixes and features](https://github.com/libgit2/libgit2/releases/tag/v1.2.0). This also marks the start of the v32 release.
2021-09-05Make all Options objects consistentlhchavez
This change makes all Options objects have child Option fields as values (instead of pointers) to mirror the libgit2 interface. It also names them Options instead of Opts to match the current libgit2 nomenclature and removes the Version fields.
2021-09-05The big Callback type adjustment of 2020lhchavez
This change makes all callbacks that can fail return an `error`. This makes things a lot more idiomatic.
2021-09-05Add support for managed SSH transport #minor (#814)lhchavez
This change drops the (hard) dependency on libssh2 and instead uses Go's implementation of SSH when libgit2 is not built with it.
2021-09-05Add support for managed HTTP/S transports (#810)lhchavez
This change uses the newly-exposed Transport interface to use Go's implementation of http.Client instead of httpclient via libgit2.
2021-09-05Add support for custom smart transports (#806)lhchavez
This change adds support for git smart transports. This will be then used to implement http, https, and ssh transports that don't rely on the libgit2 library.
2021-09-05Make all non-user-creatable structures non-comparable (#802)lhchavez
This change makes all non-user-creatable structures non-comparable. This makes it easier to add changes later that don't introduce breaking changes from the go compatibility guarantees perspective. This, of course, implies that this change _is_ a breaking change, but since these structures are not intended to be created by users (or de-referenced), it should be okay.
2021-09-04Declare forward-compatibility with libgit2 v1.2.0 #minor (#800)lhchavez
We can't yet ship a fully libgit2 v1.2.0-compatible library due to a missing public symbol, but we can allow the v1.1.0-era codebase to link against libgit2 v1.2.0 in the meantime.
2021-09-04Prepare for the v1.2.0 release (#796)lhchavez
This change adds a few more deprecation messages just before we remove them.
2021-09-04Add DiffIgnoreWitespaceEol and deprecate DiffIgnoreWitespaceEol (#774)Gustav Westling
DiffIgnoreWitespaceEol contains a typo and does not have the same name as it's libgit2 counterpart. Fixes #773
2021-09-04Add `CreateCommitWithSignature` (#782)lhchavez
This change adds the wrapper for `git_commit_create_with_signature`.
2021-09-04Rename the default branch to `main` (#786)lhchavez
We've renamed the default branch from `master` to `main`, so we need to change a bunch of references to that.
2021-09-04Add `Repository.CreateCommitBuffer` (#781)lhchavez
This commit adds the Go binding for `git_commit_create_buffer`. This will be used to support the 1.2.0 commit create callback.
2021-09-03Remove the legacy builders (#776)lhchavez
These builds are no longer working because some of the dependencies now require newer versions of Go. Seems like the ecosystem has moved to Go 1.11+, so we are now forced to follow suit.
2021-04-03add wrapper for git_config_open_default (#758)Vladimir Buzuev
2021-04-03fix buldled static build on Windows/MinGW (#761)Vladimir Buzuev
seems like need more libraries in LDFLAGS: * ws2_32 for socket, connect, htonl, etc * ole32 for CoInitializeEx * rpcrt4 for UuidCreate * crypt32 for CertFreeCertificateContext
2021-04-03Git repository item path (#757)Vladimir Buzuev
add wrapper for `git_repository_item_path`
2021-02-15Make index time fields public (#750)michael boulton
From gorelease: ``` Compatible changes: - IndexTime.Nanoseconds: added - IndexTime.Seconds: added ``` There are no extra tests because there isn't really anything to test closes #304
2021-02-15fix: Use `err` instead of error as a variable name for errors (#746)Suhaib Mujahid
fix #745
2021-02-03Implement git_repository_set_config (#735)Byoungchan Lee
Closes #732
2021-02-03Support git_remote_create_with_opts (#733)Byoungchan Lee
Closes #645
2021-02-02Support git_repository_message, git_repository_message_remove (#734)Byoungchan Lee
Closes #646
2020-12-13Rename the build files (#724)lhchavez
This change renames the build files so they come lexicographically before any source files. This makes the compile errors (due to mismatched libgit2 versions) easier to understand, since the `Build_*.go` files will be tried before the rest, and the `#error` in those files will kick in, leading to a much better experience. This unfortunately goes a bit against the defacto standard of using only lowercase characters in filenames, but the better developer experience (and better self-diagnosis when things go wrong instead of having to open a new issue) is worth the deviation. Fixes: #711 Fixes: #617