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 <jcarr@wit.com>
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.)
* 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 <psteinhardt@gitlab.com>
This change introduces the file deprecated.go, which contains any
constants, functions, and types that are slated to be deprecated in the
next major release.
These symbols are deprecated because they refer to old spellings in
pre-1.0 libgit2. This also makes the build be done with the
`-DDEPRECATE_HARD` flag to avoid regressions.
This, together with
[gorelease](https://godoc.org/golang.org/x/exp/cmd/gorelease)[1] should
make releases safer going forward.
1: More information about how that works at
https://go.googlesource.com/exp/+/refs/heads/master/apidiff/README.md
We were incorectly reporting `C.GIT_REBASE_NO_OPERATION` as an error code when
it is none. We should instead return it as the value. The compiler doesn't seem
to actually look at the sizes so instead we must recreate the value ourselves
with `^uint(0)`.
The error return is kept for API compatibility but should go away eventually.