forked from toolshed/abra
chore: bump deps
This commit is contained in:
56
vendor/github.com/go-git/go-git/v5/options.go
generated
vendored
56
vendor/github.com/go-git/go-git/v5/options.go
generated
vendored
@ -8,6 +8,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/ProtonMail/go-crypto/openpgp"
|
||||
|
||||
"github.com/go-git/go-git/v5/config"
|
||||
"github.com/go-git/go-git/v5/plumbing"
|
||||
formatcfg "github.com/go-git/go-git/v5/plumbing/format/config"
|
||||
@ -72,9 +73,16 @@ type CloneOptions struct {
|
||||
// Tags describe how the tags will be fetched from the remote repository,
|
||||
// by default is AllTags.
|
||||
Tags TagMode
|
||||
// InsecureSkipTLS skips ssl verify if protocol is https
|
||||
// InsecureSkipTLS skips SSL verification if protocol is HTTPS.
|
||||
InsecureSkipTLS bool
|
||||
// CABundle specify additional ca bundle with system cert pool
|
||||
// ClientCert is the client certificate to use for mutual TLS authentication
|
||||
// over the HTTPS protocol.
|
||||
ClientCert []byte
|
||||
// ClientKey is the client key to use for mutual TLS authentication over
|
||||
// the HTTPS protocol.
|
||||
ClientKey []byte
|
||||
// CABundle specifies an additional CA bundle to use together with the
|
||||
// system cert pool.
|
||||
CABundle []byte
|
||||
// ProxyOptions provides info required for connecting to a proxy.
|
||||
ProxyOptions transport.ProxyOptions
|
||||
@ -153,9 +161,16 @@ type PullOptions struct {
|
||||
// Force allows the pull to update a local branch even when the remote
|
||||
// branch does not descend from it.
|
||||
Force bool
|
||||
// InsecureSkipTLS skips ssl verify if protocol is https
|
||||
// InsecureSkipTLS skips SSL verification if protocol is HTTPS.
|
||||
InsecureSkipTLS bool
|
||||
// CABundle specify additional ca bundle with system cert pool
|
||||
// ClientCert is the client certificate to use for mutual TLS authentication
|
||||
// over the HTTPS protocol.
|
||||
ClientCert []byte
|
||||
// ClientKey is the client key to use for mutual TLS authentication over
|
||||
// the HTTPS protocol.
|
||||
ClientKey []byte
|
||||
// CABundle specifies an additional CA bundle to use together with the
|
||||
// system cert pool.
|
||||
CABundle []byte
|
||||
// ProxyOptions provides info required for connecting to a proxy.
|
||||
ProxyOptions transport.ProxyOptions
|
||||
@ -211,9 +226,16 @@ type FetchOptions struct {
|
||||
// Force allows the fetch to update a local branch even when the remote
|
||||
// branch does not descend from it.
|
||||
Force bool
|
||||
// InsecureSkipTLS skips ssl verify if protocol is https
|
||||
// InsecureSkipTLS skips SSL verification if protocol is HTTPS.
|
||||
InsecureSkipTLS bool
|
||||
// CABundle specify additional ca bundle with system cert pool
|
||||
// ClientCert is the client certificate to use for mutual TLS authentication
|
||||
// over the HTTPS protocol.
|
||||
ClientCert []byte
|
||||
// ClientKey is the client key to use for mutual TLS authentication over
|
||||
// the HTTPS protocol.
|
||||
ClientKey []byte
|
||||
// CABundle specifies an additional CA bundle to use together with the
|
||||
// system cert pool.
|
||||
CABundle []byte
|
||||
// ProxyOptions provides info required for connecting to a proxy.
|
||||
ProxyOptions transport.ProxyOptions
|
||||
@ -267,9 +289,16 @@ type PushOptions struct {
|
||||
// Force allows the push to update a remote branch even when the local
|
||||
// branch does not descend from it.
|
||||
Force bool
|
||||
// InsecureSkipTLS skips ssl verify if protocol is https
|
||||
// InsecureSkipTLS skips SSL verification if protocol is HTTPS.
|
||||
InsecureSkipTLS bool
|
||||
// CABundle specify additional ca bundle with system cert pool
|
||||
// ClientCert is the client certificate to use for mutual TLS authentication
|
||||
// over the HTTPS protocol.
|
||||
ClientCert []byte
|
||||
// ClientKey is the client key to use for mutual TLS authentication over
|
||||
// the HTTPS protocol.
|
||||
ClientKey []byte
|
||||
// CABundle specifies an additional CA bundle to use together with the
|
||||
// system cert pool.
|
||||
CABundle []byte
|
||||
// RequireRemoteRefs only allows a remote ref to be updated if its current
|
||||
// value is the one specified here.
|
||||
@ -693,9 +722,16 @@ func (o *CreateTagOptions) loadConfigTagger(r *Repository) error {
|
||||
type ListOptions struct {
|
||||
// Auth credentials, if required, to use with the remote repository.
|
||||
Auth transport.AuthMethod
|
||||
// InsecureSkipTLS skips ssl verify if protocol is https
|
||||
// InsecureSkipTLS skips SSL verification if protocol is HTTPS.
|
||||
InsecureSkipTLS bool
|
||||
// CABundle specify additional ca bundle with system cert pool
|
||||
// ClientCert is the client certificate to use for mutual TLS authentication
|
||||
// over the HTTPS protocol.
|
||||
ClientCert []byte
|
||||
// ClientKey is the client key to use for mutual TLS authentication over
|
||||
// the HTTPS protocol.
|
||||
ClientKey []byte
|
||||
// CABundle specifies an additional CA bundle to use together with the
|
||||
// system cert pool.
|
||||
CABundle []byte
|
||||
// PeelingOption defines how peeled objects are handled during a
|
||||
// remote list.
|
||||
|
12
vendor/github.com/go-git/go-git/v5/plumbing/transport/common.go
generated
vendored
12
vendor/github.com/go-git/go-git/v5/plumbing/transport/common.go
generated
vendored
@ -113,9 +113,17 @@ type Endpoint struct {
|
||||
Port int
|
||||
// Path is the repository path.
|
||||
Path string
|
||||
// InsecureSkipTLS skips ssl verify if protocol is https
|
||||
// InsecureSkipTLS skips SSL verification if Protocol is HTTPS.
|
||||
InsecureSkipTLS bool
|
||||
// CaBundle specify additional ca bundle with system cert pool
|
||||
// ClientCert specifies an optional client certificate to use for mutual
|
||||
// TLS authentication if Protocol is HTTPS.
|
||||
ClientCert []byte
|
||||
// ClientKey specifies an optional client key to use for mutual TLS
|
||||
// authentication if Protocol is HTTPS.
|
||||
ClientKey []byte
|
||||
// CaBundle specifies an optional CA bundle to use for SSL verification
|
||||
// if Protocol is HTTPS. The bundle is added in addition to the system
|
||||
// CA bundle.
|
||||
CaBundle []byte
|
||||
// Proxy provides info required for connecting to a proxy.
|
||||
Proxy ProxyOptions
|
||||
|
32
vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.go
generated
vendored
32
vendor/github.com/go-git/go-git/v5/plumbing/transport/http/common.go
generated
vendored
@ -15,12 +15,13 @@ import (
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/golang/groupcache/lru"
|
||||
|
||||
"github.com/go-git/go-git/v5/plumbing"
|
||||
"github.com/go-git/go-git/v5/plumbing/protocol/packp"
|
||||
"github.com/go-git/go-git/v5/plumbing/protocol/packp/capability"
|
||||
"github.com/go-git/go-git/v5/plumbing/transport"
|
||||
"github.com/go-git/go-git/v5/utils/ioutil"
|
||||
"github.com/golang/groupcache/lru"
|
||||
)
|
||||
|
||||
// it requires a bytes.Buffer, because we need to know the length
|
||||
@ -185,6 +186,18 @@ func transportWithInsecureTLS(transport *http.Transport) {
|
||||
transport.TLSClientConfig.InsecureSkipVerify = true
|
||||
}
|
||||
|
||||
func transportWithClientCert(transport *http.Transport, cert, key []byte) error {
|
||||
keyPair, err := tls.X509KeyPair(cert, key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if transport.TLSClientConfig == nil {
|
||||
transport.TLSClientConfig = &tls.Config{}
|
||||
}
|
||||
transport.TLSClientConfig.Certificates = []tls.Certificate{keyPair}
|
||||
return nil
|
||||
}
|
||||
|
||||
func transportWithCABundle(transport *http.Transport, caBundle []byte) error {
|
||||
rootCAs, err := x509.SystemCertPool()
|
||||
if err != nil {
|
||||
@ -206,6 +219,11 @@ func transportWithProxy(transport *http.Transport, proxyURL *url.URL) {
|
||||
}
|
||||
|
||||
func configureTransport(transport *http.Transport, ep *transport.Endpoint) error {
|
||||
if len(ep.ClientCert) > 0 && len(ep.ClientKey) > 0 {
|
||||
if err := transportWithClientCert(transport, ep.ClientCert, ep.ClientKey); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if len(ep.CaBundle) > 0 {
|
||||
if err := transportWithCABundle(transport, ep.CaBundle); err != nil {
|
||||
return err
|
||||
@ -230,7 +248,7 @@ func newSession(c *client, ep *transport.Endpoint, auth transport.AuthMethod) (*
|
||||
|
||||
// We need to configure the http transport if there are transport specific
|
||||
// options present in the endpoint.
|
||||
if len(ep.CaBundle) > 0 || ep.InsecureSkipTLS || ep.Proxy.URL != "" {
|
||||
if len(ep.ClientKey) > 0 || len(ep.ClientCert) > 0 || len(ep.CaBundle) > 0 || ep.InsecureSkipTLS || ep.Proxy.URL != "" {
|
||||
var transport *http.Transport
|
||||
// if the client wasn't configured to have a cache for transports then just configure
|
||||
// the transport and use it directly, otherwise try to use the cache.
|
||||
@ -242,9 +260,13 @@ func newSession(c *client, ep *transport.Endpoint, auth transport.AuthMethod) (*
|
||||
}
|
||||
|
||||
transport = tr.Clone()
|
||||
configureTransport(transport, ep)
|
||||
if err := configureTransport(transport, ep); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
transportOpts := transportOptions{
|
||||
clientCert: string(ep.ClientCert),
|
||||
clientKey: string(ep.ClientKey),
|
||||
caBundle: string(ep.CaBundle),
|
||||
insecureSkipTLS: ep.InsecureSkipTLS,
|
||||
}
|
||||
@ -260,7 +282,9 @@ func newSession(c *client, ep *transport.Endpoint, auth transport.AuthMethod) (*
|
||||
|
||||
if !found {
|
||||
transport = c.client.Transport.(*http.Transport).Clone()
|
||||
configureTransport(transport, ep)
|
||||
if err := configureTransport(transport, ep); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c.addTransport(transportOpts, transport)
|
||||
}
|
||||
}
|
||||
|
6
vendor/github.com/go-git/go-git/v5/plumbing/transport/http/transport.go
generated
vendored
6
vendor/github.com/go-git/go-git/v5/plumbing/transport/http/transport.go
generated
vendored
@ -9,8 +9,10 @@ import (
|
||||
type transportOptions struct {
|
||||
insecureSkipTLS bool
|
||||
// []byte is not comparable.
|
||||
caBundle string
|
||||
proxyURL url.URL
|
||||
clientCert string
|
||||
clientKey string
|
||||
caBundle string
|
||||
proxyURL url.URL
|
||||
}
|
||||
|
||||
func (c *client) addTransport(opts transportOptions, transport *http.Transport) {
|
||||
|
76
vendor/github.com/go-git/go-git/v5/plumbing/transport/ssh/auth_method.go
generated
vendored
76
vendor/github.com/go-git/go-git/v5/plumbing/transport/ssh/auth_method.go
generated
vendored
@ -54,7 +54,7 @@ func (a *KeyboardInteractive) String() string {
|
||||
}
|
||||
|
||||
func (a *KeyboardInteractive) ClientConfig() (*ssh.ClientConfig, error) {
|
||||
return a.SetHostKeyCallback(&ssh.ClientConfig{
|
||||
return a.SetHostKeyCallbackAndAlgorithms(&ssh.ClientConfig{
|
||||
User: a.User,
|
||||
Auth: []ssh.AuthMethod{
|
||||
a.Challenge,
|
||||
@ -78,7 +78,7 @@ func (a *Password) String() string {
|
||||
}
|
||||
|
||||
func (a *Password) ClientConfig() (*ssh.ClientConfig, error) {
|
||||
return a.SetHostKeyCallback(&ssh.ClientConfig{
|
||||
return a.SetHostKeyCallbackAndAlgorithms(&ssh.ClientConfig{
|
||||
User: a.User,
|
||||
Auth: []ssh.AuthMethod{ssh.Password(a.Password)},
|
||||
})
|
||||
@ -101,7 +101,7 @@ func (a *PasswordCallback) String() string {
|
||||
}
|
||||
|
||||
func (a *PasswordCallback) ClientConfig() (*ssh.ClientConfig, error) {
|
||||
return a.SetHostKeyCallback(&ssh.ClientConfig{
|
||||
return a.SetHostKeyCallbackAndAlgorithms(&ssh.ClientConfig{
|
||||
User: a.User,
|
||||
Auth: []ssh.AuthMethod{ssh.PasswordCallback(a.Callback)},
|
||||
})
|
||||
@ -150,7 +150,7 @@ func (a *PublicKeys) String() string {
|
||||
}
|
||||
|
||||
func (a *PublicKeys) ClientConfig() (*ssh.ClientConfig, error) {
|
||||
return a.SetHostKeyCallback(&ssh.ClientConfig{
|
||||
return a.SetHostKeyCallbackAndAlgorithms(&ssh.ClientConfig{
|
||||
User: a.User,
|
||||
Auth: []ssh.AuthMethod{ssh.PublicKeys(a.Signer)},
|
||||
})
|
||||
@ -211,7 +211,7 @@ func (a *PublicKeysCallback) String() string {
|
||||
}
|
||||
|
||||
func (a *PublicKeysCallback) ClientConfig() (*ssh.ClientConfig, error) {
|
||||
return a.SetHostKeyCallback(&ssh.ClientConfig{
|
||||
return a.SetHostKeyCallbackAndAlgorithms(&ssh.ClientConfig{
|
||||
User: a.User,
|
||||
Auth: []ssh.AuthMethod{ssh.PublicKeysCallback(a.Callback)},
|
||||
})
|
||||
@ -230,11 +230,26 @@ func (a *PublicKeysCallback) ClientConfig() (*ssh.ClientConfig, error) {
|
||||
// ~/.ssh/known_hosts
|
||||
// /etc/ssh/ssh_known_hosts
|
||||
func NewKnownHostsCallback(files ...string) (ssh.HostKeyCallback, error) {
|
||||
kh, err := newKnownHosts(files...)
|
||||
return ssh.HostKeyCallback(kh), err
|
||||
kh, err := NewKnownHostsDb(files...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return kh.HostKeyCallback(), nil
|
||||
}
|
||||
|
||||
func newKnownHosts(files ...string) (knownhosts.HostKeyCallback, error) {
|
||||
// NewKnownHostsDb returns knownhosts.HostKeyDB based on a file based on a
|
||||
// known_hosts file. http://man.openbsd.org/sshd#SSH_KNOWN_HOSTS_FILE_FORMAT
|
||||
//
|
||||
// If list of files is empty, then it will be read from the SSH_KNOWN_HOSTS
|
||||
// environment variable, example:
|
||||
//
|
||||
// /home/foo/custom_known_hosts_file:/etc/custom_known/hosts_file
|
||||
//
|
||||
// If SSH_KNOWN_HOSTS is not set the following file locations will be used:
|
||||
//
|
||||
// ~/.ssh/known_hosts
|
||||
// /etc/ssh/ssh_known_hosts
|
||||
func NewKnownHostsDb(files ...string) (*knownhosts.HostKeyDB, error) {
|
||||
var err error
|
||||
|
||||
if len(files) == 0 {
|
||||
@ -247,7 +262,7 @@ func newKnownHosts(files ...string) (knownhosts.HostKeyCallback, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return knownhosts.New(files...)
|
||||
return knownhosts.NewDB(files...)
|
||||
}
|
||||
|
||||
func getDefaultKnownHostsFiles() ([]string, error) {
|
||||
@ -289,25 +304,50 @@ func filterKnownHostsFiles(files ...string) ([]string, error) {
|
||||
}
|
||||
|
||||
// HostKeyCallbackHelper is a helper that provides common functionality to
|
||||
// configure HostKeyCallback into a ssh.ClientConfig.
|
||||
// configure HostKeyCallback and HostKeyAlgorithms into a ssh.ClientConfig.
|
||||
type HostKeyCallbackHelper struct {
|
||||
// HostKeyCallback is the function type used for verifying server keys.
|
||||
// If nil default callback will be create using NewKnownHostsCallback
|
||||
// If nil, a default callback will be created using NewKnownHostsDb
|
||||
// without argument.
|
||||
HostKeyCallback ssh.HostKeyCallback
|
||||
|
||||
// HostKeyAlgorithms is a list of supported host key algorithms that will
|
||||
// be used for host key verification.
|
||||
HostKeyAlgorithms []string
|
||||
|
||||
// fallback allows for injecting the fallback call, which is called
|
||||
// when a HostKeyCallback is not set.
|
||||
fallback func(files ...string) (ssh.HostKeyCallback, error)
|
||||
}
|
||||
|
||||
// SetHostKeyCallback sets the field HostKeyCallback in the given cfg. If
|
||||
// HostKeyCallback is empty a default callback is created using
|
||||
// NewKnownHostsCallback.
|
||||
func (m *HostKeyCallbackHelper) SetHostKeyCallback(cfg *ssh.ClientConfig) (*ssh.ClientConfig, error) {
|
||||
var err error
|
||||
// SetHostKeyCallbackAndAlgorithms sets the field HostKeyCallback and HostKeyAlgorithms in the given cfg.
|
||||
// If the host key callback or algorithms is empty it is left empty. It will be handled by the dial method,
|
||||
// falling back to knownhosts.
|
||||
func (m *HostKeyCallbackHelper) SetHostKeyCallbackAndAlgorithms(cfg *ssh.ClientConfig) (*ssh.ClientConfig, error) {
|
||||
if cfg == nil {
|
||||
cfg = &ssh.ClientConfig{}
|
||||
}
|
||||
|
||||
if m.HostKeyCallback == nil {
|
||||
if m.HostKeyCallback, err = NewKnownHostsCallback(); err != nil {
|
||||
return cfg, err
|
||||
if m.fallback == nil {
|
||||
m.fallback = NewKnownHostsCallback
|
||||
}
|
||||
|
||||
hkcb, err := m.fallback()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot create known hosts callback: %w", err)
|
||||
}
|
||||
|
||||
cfg.HostKeyCallback = hkcb
|
||||
cfg.HostKeyAlgorithms = m.HostKeyAlgorithms
|
||||
return cfg, err
|
||||
}
|
||||
|
||||
cfg.HostKeyCallback = m.HostKeyCallback
|
||||
cfg.HostKeyAlgorithms = m.HostKeyAlgorithms
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
func (m *HostKeyCallbackHelper) SetHostKeyCallback(cfg *ssh.ClientConfig) (*ssh.ClientConfig, error) {
|
||||
return m.SetHostKeyCallbackAndAlgorithms(cfg)
|
||||
}
|
||||
|
17
vendor/github.com/go-git/go-git/v5/plumbing/transport/ssh/common.go
generated
vendored
17
vendor/github.com/go-git/go-git/v5/plumbing/transport/ssh/common.go
generated
vendored
@ -11,7 +11,6 @@ import (
|
||||
|
||||
"github.com/go-git/go-git/v5/plumbing/transport"
|
||||
"github.com/go-git/go-git/v5/plumbing/transport/internal/common"
|
||||
"github.com/skeema/knownhosts"
|
||||
|
||||
"github.com/kevinburke/ssh_config"
|
||||
"golang.org/x/crypto/ssh"
|
||||
@ -127,17 +126,17 @@ func (c *command) connect() error {
|
||||
}
|
||||
hostWithPort := c.getHostWithPort()
|
||||
if config.HostKeyCallback == nil {
|
||||
kh, err := newKnownHosts()
|
||||
db, err := NewKnownHostsDb()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
config.HostKeyCallback = kh.HostKeyCallback()
|
||||
config.HostKeyAlgorithms = kh.HostKeyAlgorithms(hostWithPort)
|
||||
} else if len(config.HostKeyAlgorithms) == 0 {
|
||||
// Set the HostKeyAlgorithms based on HostKeyCallback.
|
||||
// For background see https://github.com/go-git/go-git/issues/411 as well as
|
||||
// https://github.com/golang/go/issues/29286 for root cause.
|
||||
config.HostKeyAlgorithms = knownhosts.HostKeyAlgorithms(config.HostKeyCallback, hostWithPort)
|
||||
config.HostKeyCallback = db.HostKeyCallback()
|
||||
config.HostKeyAlgorithms = db.HostKeyAlgorithms(hostWithPort)
|
||||
} else {
|
||||
// If the user gave a custom HostKeyCallback, we do not try to detect host key algorithms
|
||||
// based on knownhosts functionality, as the user may be requesting a FixedKey or using a
|
||||
// different key approval strategy. In that case, the user is responsible for populating
|
||||
// HostKeyAlgorithms appropriately
|
||||
}
|
||||
|
||||
overrideConfig(c.config, config)
|
||||
|
20
vendor/github.com/go-git/go-git/v5/remote.go
generated
vendored
20
vendor/github.com/go-git/go-git/v5/remote.go
generated
vendored
@ -114,7 +114,7 @@ func (r *Remote) PushContext(ctx context.Context, o *PushOptions) (err error) {
|
||||
o.RemoteURL = r.c.URLs[len(r.c.URLs)-1]
|
||||
}
|
||||
|
||||
s, err := newSendPackSession(o.RemoteURL, o.Auth, o.InsecureSkipTLS, o.CABundle, o.ProxyOptions)
|
||||
s, err := newSendPackSession(o.RemoteURL, o.Auth, o.InsecureSkipTLS, o.ClientCert, o.ClientKey, o.CABundle, o.ProxyOptions)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -416,7 +416,7 @@ func (r *Remote) fetch(ctx context.Context, o *FetchOptions) (sto storer.Referen
|
||||
o.RemoteURL = r.c.URLs[0]
|
||||
}
|
||||
|
||||
s, err := newUploadPackSession(o.RemoteURL, o.Auth, o.InsecureSkipTLS, o.CABundle, o.ProxyOptions)
|
||||
s, err := newUploadPackSession(o.RemoteURL, o.Auth, o.InsecureSkipTLS, o.ClientCert, o.ClientKey, o.CABundle, o.ProxyOptions)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -532,8 +532,8 @@ func depthChanged(before []plumbing.Hash, s storage.Storer) (bool, error) {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
func newUploadPackSession(url string, auth transport.AuthMethod, insecure bool, cabundle []byte, proxyOpts transport.ProxyOptions) (transport.UploadPackSession, error) {
|
||||
c, ep, err := newClient(url, insecure, cabundle, proxyOpts)
|
||||
func newUploadPackSession(url string, auth transport.AuthMethod, insecure bool, clientCert, clientKey, caBundle []byte, proxyOpts transport.ProxyOptions) (transport.UploadPackSession, error) {
|
||||
c, ep, err := newClient(url, insecure, clientCert, clientKey, caBundle, proxyOpts)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -541,8 +541,8 @@ func newUploadPackSession(url string, auth transport.AuthMethod, insecure bool,
|
||||
return c.NewUploadPackSession(ep, auth)
|
||||
}
|
||||
|
||||
func newSendPackSession(url string, auth transport.AuthMethod, insecure bool, cabundle []byte, proxyOpts transport.ProxyOptions) (transport.ReceivePackSession, error) {
|
||||
c, ep, err := newClient(url, insecure, cabundle, proxyOpts)
|
||||
func newSendPackSession(url string, auth transport.AuthMethod, insecure bool, clientCert, clientKey, caBundle []byte, proxyOpts transport.ProxyOptions) (transport.ReceivePackSession, error) {
|
||||
c, ep, err := newClient(url, insecure, clientCert, clientKey, caBundle, proxyOpts)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -550,13 +550,15 @@ func newSendPackSession(url string, auth transport.AuthMethod, insecure bool, ca
|
||||
return c.NewReceivePackSession(ep, auth)
|
||||
}
|
||||
|
||||
func newClient(url string, insecure bool, cabundle []byte, proxyOpts transport.ProxyOptions) (transport.Transport, *transport.Endpoint, error) {
|
||||
func newClient(url string, insecure bool, clientCert, clientKey, caBundle []byte, proxyOpts transport.ProxyOptions) (transport.Transport, *transport.Endpoint, error) {
|
||||
ep, err := transport.NewEndpoint(url)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
ep.InsecureSkipTLS = insecure
|
||||
ep.CaBundle = cabundle
|
||||
ep.ClientCert = clientCert
|
||||
ep.ClientKey = clientKey
|
||||
ep.CaBundle = caBundle
|
||||
ep.Proxy = proxyOpts
|
||||
|
||||
c, err := client.NewClient(ep)
|
||||
@ -1356,7 +1358,7 @@ func (r *Remote) list(ctx context.Context, o *ListOptions) (rfs []*plumbing.Refe
|
||||
return nil, ErrEmptyUrls
|
||||
}
|
||||
|
||||
s, err := newUploadPackSession(r.c.URLs[0], o.Auth, o.InsecureSkipTLS, o.CABundle, o.ProxyOptions)
|
||||
s, err := newUploadPackSession(r.c.URLs[0], o.Auth, o.InsecureSkipTLS, o.ClientCert, o.ClientKey, o.CABundle, o.ProxyOptions)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
3
vendor/github.com/go-git/go-git/v5/repository.go
generated
vendored
3
vendor/github.com/go-git/go-git/v5/repository.go
generated
vendored
@ -19,6 +19,7 @@ import (
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"github.com/go-git/go-billy/v5/osfs"
|
||||
"github.com/go-git/go-billy/v5/util"
|
||||
|
||||
"github.com/go-git/go-git/v5/config"
|
||||
"github.com/go-git/go-git/v5/internal/path_util"
|
||||
"github.com/go-git/go-git/v5/internal/revision"
|
||||
@ -930,6 +931,8 @@ func (r *Repository) clone(ctx context.Context, o *CloneOptions) error {
|
||||
Tags: o.Tags,
|
||||
RemoteName: o.RemoteName,
|
||||
InsecureSkipTLS: o.InsecureSkipTLS,
|
||||
ClientCert: o.ClientCert,
|
||||
ClientKey: o.ClientKey,
|
||||
CABundle: o.CABundle,
|
||||
ProxyOptions: o.ProxyOptions,
|
||||
}, o.ReferenceName)
|
||||
|
6
vendor/github.com/go-git/go-git/v5/utils/merkletrie/change.go
generated
vendored
6
vendor/github.com/go-git/go-git/v5/utils/merkletrie/change.go
generated
vendored
@ -131,7 +131,9 @@ func (l *Changes) addRecursive(root noder.Path, ctor noderToChangeFn) error {
|
||||
}
|
||||
|
||||
if !root.IsDir() {
|
||||
l.Add(ctor(root))
|
||||
if !root.Skip() {
|
||||
l.Add(ctor(root))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -148,7 +150,7 @@ func (l *Changes) addRecursive(root noder.Path, ctor noderToChangeFn) error {
|
||||
}
|
||||
return err
|
||||
}
|
||||
if current.IsDir() {
|
||||
if current.IsDir() || current.Skip() {
|
||||
continue
|
||||
}
|
||||
l.Add(ctor(current))
|
||||
|
43
vendor/github.com/go-git/go-git/v5/utils/merkletrie/difftree.go
generated
vendored
43
vendor/github.com/go-git/go-git/v5/utils/merkletrie/difftree.go
generated
vendored
@ -297,18 +297,16 @@ func DiffTreeContext(ctx context.Context, fromTree, toTree noder.Noder,
|
||||
case noMoreNoders:
|
||||
return ret, nil
|
||||
case onlyFromRemains:
|
||||
if err = ret.AddRecursiveDelete(from); err != nil {
|
||||
return nil, err
|
||||
if !from.Skip() {
|
||||
if err = ret.AddRecursiveDelete(from); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if err = ii.nextFrom(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
case onlyToRemains:
|
||||
if to.Skip() {
|
||||
if err = ret.AddRecursiveDelete(to); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
if !to.Skip() {
|
||||
if err = ret.AddRecursiveInsert(to); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -317,26 +315,25 @@ func DiffTreeContext(ctx context.Context, fromTree, toTree noder.Noder,
|
||||
return nil, err
|
||||
}
|
||||
case bothHaveNodes:
|
||||
if from.Skip() {
|
||||
if err = ret.AddRecursiveDelete(from); err != nil {
|
||||
return nil, err
|
||||
var err error
|
||||
switch {
|
||||
case from.Skip():
|
||||
if from.Name() == to.Name() {
|
||||
err = ii.nextBoth()
|
||||
} else {
|
||||
err = ii.nextFrom()
|
||||
}
|
||||
if err := ii.nextBoth(); err != nil {
|
||||
return nil, err
|
||||
case to.Skip():
|
||||
if from.Name() == to.Name() {
|
||||
err = ii.nextBoth()
|
||||
} else {
|
||||
err = ii.nextTo()
|
||||
}
|
||||
break
|
||||
}
|
||||
if to.Skip() {
|
||||
if err = ret.AddRecursiveDelete(to); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := ii.nextBoth(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
break
|
||||
default:
|
||||
err = diffNodes(&ret, ii)
|
||||
}
|
||||
|
||||
if err = diffNodes(&ret, ii); err != nil {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
default:
|
||||
|
10
vendor/github.com/go-git/go-git/v5/utils/merkletrie/index/node.go
generated
vendored
10
vendor/github.com/go-git/go-git/v5/utils/merkletrie/index/node.go
generated
vendored
@ -36,7 +36,15 @@ func NewRootNode(idx *index.Index) noder.Noder {
|
||||
parent := fullpath
|
||||
fullpath = path.Join(fullpath, part)
|
||||
|
||||
if _, ok := m[fullpath]; ok {
|
||||
// It's possible that the first occurrence of subdirectory is skipped.
|
||||
// The parent node can be created with SkipWorktree set to true, but
|
||||
// if any future children do not skip their subtree, the entire lineage
|
||||
// of the tree needs to have this value set to false so that subdirectories
|
||||
// are not ignored.
|
||||
if parentNode, ok := m[fullpath]; ok {
|
||||
if e.SkipWorktree == false {
|
||||
parentNode.skip = false
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
|
3
vendor/github.com/go-git/go-git/v5/worktree.go
generated
vendored
3
vendor/github.com/go-git/go-git/v5/worktree.go
generated
vendored
@ -12,6 +12,7 @@ import (
|
||||
|
||||
"github.com/go-git/go-billy/v5"
|
||||
"github.com/go-git/go-billy/v5/util"
|
||||
|
||||
"github.com/go-git/go-git/v5/config"
|
||||
"github.com/go-git/go-git/v5/plumbing"
|
||||
"github.com/go-git/go-git/v5/plumbing/filemode"
|
||||
@ -79,6 +80,8 @@ func (w *Worktree) PullContext(ctx context.Context, o *PullOptions) error {
|
||||
Progress: o.Progress,
|
||||
Force: o.Force,
|
||||
InsecureSkipTLS: o.InsecureSkipTLS,
|
||||
ClientCert: o.ClientCert,
|
||||
ClientKey: o.ClientKey,
|
||||
CABundle: o.CABundle,
|
||||
ProxyOptions: o.ProxyOptions,
|
||||
})
|
||||
|
Reference in New Issue
Block a user