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" "os"
"path/filepath" "path/filepath"
"github.com/bgentry/go-netrc/netrc" "github.com/git-lfs/go-netrc/netrc"
) )
type netrcfinder interface { type netrcfinder interface {

12
glide.lock generated

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

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

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

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

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

@ -259,6 +259,39 @@ begin_test "credentials from netrc"
) )
end_test 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" begin_test "credentials from netrc with bad password"
( (
set -e set -e
@ -274,7 +307,7 @@ begin_test "credentials from netrc with bad password"
reponame="netrctest" reponame="netrctest"
setup_remote_repo "$reponame" 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 # 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 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 weirdlogin login uname password pass#pass
machine google.com
login alice@google.com
not-a-keyword
password secure
also-not-a-keyword
default default
login anonymous login anonymous
password joe@example.com password joe@example.com

@ -24,6 +24,7 @@ const (
tkMacdef tkMacdef
tkComment tkComment
tkWhitespace tkWhitespace
tkUnknown
) )
var keywords = map[string]tkType{ var keywords = map[string]tkType{
@ -70,7 +71,7 @@ func (n *Netrc) MarshalText() (text []byte, err error) {
// TODO(bgentry): not safe for concurrency // TODO(bgentry): not safe for concurrency
for i := range n.tokens { for i := range n.tokens {
switch n.tokens[i].kind { 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...) text = append(text, n.tokens[i].rawkind...)
default: default:
if n.tokens[i].value != "" { // skip empty-value tokens 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) t, err = newToken(rawb)
if err != nil { if err != nil {
if currentMacro == 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 continue
} }

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