(requires []config.RefSpec, remoteRefs storer.ReferenceStorer)
| 1507 | } |
| 1508 | |
| 1509 | func (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 | } |
no test coverage detected