Merge pull request #3027 from git-lfs/fork-go-netrc

*: use patched version of bgetnry/go-netrc
This commit is contained in:
Taylor Blau 2018-05-25 13:32:15 -07:00 committed by GitHub
commit 67a5c2dfb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 60 additions and 17 deletions

@ -4,7 +4,7 @@ import (
"os"
"path/filepath"
"github.com/bgentry/go-netrc/netrc"
"github.com/git-lfs/go-netrc/netrc"
)
type netrcfinder interface {

12
glide.lock generated

@ -1,18 +1,18 @@
hash: bad2138ca7787101a7a23af2464319cc580f4285e90c07d11eb9f90ad3bb9604
updated: 2018-02-27T14:39:39.133796-08:00
hash: 5d2fbd8be4931b982d29c6ac8df833f139b28ffdb44ca062948a2386e2096a4d
updated: 2018-05-25T13:01:03.220513-07:00
imports:
- name: github.com/alexbrainman/sspi
version: 4729b3d4d8581b2db83864d1018926e4154f9406
subpackages:
- ntlm
- name: github.com/bgentry/go-netrc
version: 9fd32a8b3d3d3f9d43c341bfe098430e07609480
subpackages:
- netrc
- name: github.com/davecgh/go-spew
version: 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d
subpackages:
- spew
- name: github.com/git-lfs/go-netrc
version: e0e9ca483a183481412e6f5a700ff20a36177503
subpackages:
- netrc
- name: github.com/git-lfs/wildmatch
version: 8a0518641565a619e62a2738c7d4498fc345daf6
- name: github.com/inconshreveable/mousetrap

@ -1,7 +1,7 @@
package: github.com/git-lfs/git-lfs
import:
- package: github.com/bgentry/go-netrc
version: 9fd32a8b3d3d3f9d43c341bfe098430e07609480
- package: github.com/git-lfs/go-netrc
version: e0e9ca483a183481412e6f5a700ff20a36177503
subpackages:
- netrc
- package: github.com/kr/pty

@ -9,8 +9,8 @@ import (
"os"
"strings"
"github.com/bgentry/go-netrc/netrc"
"github.com/git-lfs/git-lfs/errors"
"github.com/git-lfs/go-netrc/netrc"
"github.com/rubyist/tracerx"
)

@ -4,8 +4,8 @@ import (
"os"
"path/filepath"
"github.com/bgentry/go-netrc/netrc"
"github.com/git-lfs/git-lfs/config"
"github.com/git-lfs/go-netrc/netrc"
)
type NetrcFinder interface {

@ -6,7 +6,7 @@ import (
"strings"
"testing"
"github.com/bgentry/go-netrc/netrc"
"github.com/git-lfs/go-netrc/netrc"
)
func TestNetrcWithHostAndPort(t *testing.T) {

@ -259,6 +259,39 @@ begin_test "credentials from netrc"
)
end_test
begin_test "credentials from netrc with unknown keyword"
(
set -e
printf "machine localhost\nlogin netrcuser\nnot-a-key something\npassword netrcpass\n" >> "$NETRCFILE"
echo $HOME
echo "GITSERVER $GITSERVER"
cat $NETRCFILE
# prevent prompts on Windows particularly
export SSH_ASKPASS=
reponame="netrctest"
setup_remote_repo "$reponame"
clone_repo "$reponame" repo2
# Need a remote named "localhost" or 127.0.0.1 in netrc will interfere with the other auth
git remote add "netrc" "$(echo $GITSERVER | sed s/127.0.0.1/localhost/)/netrctest"
git lfs env
git lfs track "*.dat"
echo "push a" > a.dat
git add .gitattributes a.dat
git commit -m "add a.dat"
GIT_TRACE=1 git lfs push netrc master 2>&1 | tee push.log
grep "Uploading LFS objects: 100% (1/1), 7 B" push.log
echo "any git credential calls:"
[ "0" -eq "$(cat push.log | grep "git credential" | wc -l)" ]
)
end_test
begin_test "credentials from netrc with bad password"
(
set -e
@ -274,7 +307,7 @@ begin_test "credentials from netrc with bad password"
reponame="netrctest"
setup_remote_repo "$reponame"
clone_repo "$reponame" repo2
clone_repo "$reponame" repo3
# Need a remote named "localhost" or 127.0.0.1 in netrc will interfere with the other auth
git remote add "netrc" "$(echo $GITSERVER | sed s/127.0.0.1/localhost/)/netrctest"

@ -16,6 +16,12 @@ machine ray login demo password mypassword
machine weirdlogin login uname password pass#pass
machine google.com
login alice@google.com
not-a-keyword
password secure
also-not-a-keyword
default
login anonymous
password joe@example.com

@ -24,6 +24,7 @@ const (
tkMacdef
tkComment
tkWhitespace
tkUnknown
)
var keywords = map[string]tkType{
@ -70,7 +71,7 @@ func (n *Netrc) MarshalText() (text []byte, err error) {
// TODO(bgentry): not safe for concurrency
for i := range n.tokens {
switch n.tokens[i].kind {
case tkComment, tkDefault, tkWhitespace: // always append these types
case tkComment, tkDefault, tkWhitespace, tkUnknown: // always append these types
text = append(text, n.tokens[i].rawkind...)
default:
if n.tokens[i].value != "" { // skip empty-value tokens
@ -391,9 +392,11 @@ func parse(r io.Reader, pos int) (*Netrc, error) {
t, err = newToken(rawb)
if err != nil {
if currentMacro == nil {
return nil, &Error{pos, err.Error()}
t.kind = tkUnknown
nrc.tokens = append(nrc.tokens, t)
} else {
currentMacro.rawvalue = append(currentMacro.rawvalue, rawb...)
}
currentMacro.rawvalue = append(currentMacro.rawvalue, rawb...)
continue
}

@ -18,6 +18,7 @@ var expectedMachines = []*Machine{
&Machine{Name: "mail.google.com", Login: "joe@gmail.com", Password: "somethingSecret", Account: "justagmail"},
&Machine{Name: "ray", Login: "demo", Password: "mypassword", Account: ""},
&Machine{Name: "weirdlogin", Login: "uname", Password: "pass#pass", Account: ""},
&Machine{Name: "google.com", Login: "alice@google.com", Password: "secure"},
&Machine{Name: "", Login: "anonymous", Password: "joe@example.com", Account: ""},
}
var expectedMacros = Macros{
@ -146,7 +147,7 @@ func TestFindMachine(t *testing.T) {
if err != nil {
t.Fatal(err)
}
if !eqMachine(m, expectedMachines[3]) {
if !eqMachine(m, expectedMachines[4]) {
t.Errorf("bad machine; expected %v, got %v\n", expectedMachines[3], m)
}
if !m.IsDefault() {