MCPcopy
hub / github.com/go-git/go-git / checkRequireRemoteRefs

Method checkRequireRemoteRefs

remote.go:1509–1537  ·  view source on GitHub ↗
(requires []config.RefSpec, remoteRefs storer.ReferenceStorer)

Source from the content-addressed store, hash-verified

1507}
1508
1509func (r *Remote) checkRequireRemoteRefs(requires []config.RefSpec, remoteRefs storer.ReferenceStorer) error {
1510 for _, require := range requires {
1511 if require.IsWildcard() {
1512 return fmt.Errorf("wildcards not supported in RequireRemoteRefs, got %s", require.String())
1513 }
1514
1515 name := require.Dst("")
1516 remote, err := remoteRefs.Reference(name)
1517 if err != nil {
1518 return fmt.Errorf("remote ref %s required to be %s but is absent", name.String(), require.Src())
1519 }
1520
1521 var requireHash string
1522 if require.IsExactSHA1() {
1523 requireHash = require.Src()
1524 } else {
1525 target, err := storer.ResolveReference(remoteRefs, plumbing.ReferenceName(require.Src()))
1526 if err != nil {
1527 return fmt.Errorf("could not resolve ref %s in RequireRemoteRefs", require.Src())
1528 }
1529 requireHash = target.Hash().String()
1530 }
1531
1532 if remote.Hash().String() != requireHash {
1533 return fmt.Errorf("remote ref %s required to be %s but is %s", name.String(), requireHash, remote.Hash().String())
1534 }
1535 }
1536 return nil
1537}

Callers 1

PushContextMethod · 0.95

Calls 9

ResolveReferenceFunction · 0.92
ReferenceNameTypeAlias · 0.92
IsWildcardMethod · 0.80
DstMethod · 0.80
SrcMethod · 0.80
IsExactSHA1Method · 0.80
StringMethod · 0.65
ReferenceMethod · 0.65
HashMethod · 0.65

Tested by

no test coverage detected