Skip to content

x/vuln: default govulncheck output is very long #71415

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
julieqiu opened this issue Jan 24, 2025 · 2 comments
Open

x/vuln: default govulncheck output is very long #71415

julieqiu opened this issue Jan 24, 2025 · 2 comments
Assignees
Labels
vulncheck or vulndb Issues for the x/vuln or x/vulndb repo

Comments

@julieqiu
Copy link
Member

govulncheck version

Go: go1.23.4
Scanner: [email protected]
DB: https://vuln.go.dev
DB updated: 2025-01-17 21:48:34 +0000 UTC

Does this issue reproduce at the latest version of golang.org/x/vuln?

Yes

Output of go env in your module/workspace:

GO111MODULE='on'
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/julieqiu/Library/Caches/go-build'
GOENV='/Users/julieqiu/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/julieqiu/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/julieqiu/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/Users/julieqiu/bin/homebrew/Cellar/go/1.23.4/libexec'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='local'
GOTOOLDIR='/Users/julieqiu/bin/homebrew/Cellar/go/1.23.4/libexec/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.23.4'
GODEBUG=''
GOTELEMETRY='off'
GOTELEMETRYDIR='/Users/julieqiu/Library/Application Support/go/telemetry'
GCCGO='gccgo'
GOARM64='v8.0'
AR='ar'
CC='cc'
CXX='c++'
CGO_ENABLED='1'
GOMOD='/Users/julieqiu/code/googleapis/generator/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/_j/n7nk6w3x6t3f0xjc0nz2chr80000gn/T/go-build2644197326=/tmp/go-build -gno-record-gcc-switches -fno-common'

What did you do?

Ran govulncheck ./... on https://github.com/googleapis/generator at commit b242d1e499f3d874ac95ad5b5aabc75a690bcf91

What did you see happen?

=== Symbol Results ===

Vulnerability #1: GO-2025-3368
    Argument Injection via the URL field in github.com/go-git/go-git
  More info: https://pkg.go.dev/vuln/GO-2025-3368
  Module: github.com/go-git/go-git/v5
    Found in: github.com/go-git/go-git/[email protected]
    Fixed in: github.com/go-git/go-git/[email protected]
    Example traces found:
      #1: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls binary.Read
      #2: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls binary.ReadHash
      #3: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls binary.ReadUint16
      #4: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls binary.ReadUint32
      #5: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls binary.ReadUntil
      #6: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls binary.ReadVariableWidthInt
      #7: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls binary.Write
      #8: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls binary.WriteUint32
      #9: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls binary.WriteUint64
      #10: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which calls binary.init
      #11: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls cache.BufferLRU.Get
      #12: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls cache.BufferLRU.Put
      #13: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls cache.NewBufferLRUDefault
      #14: internal/gitrepo/gitrepo.go:86:28: gitrepo.Open calls git.PlainOpen, which eventually calls cache.NewObjectLRUDefault
      #15: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls cache.ObjectLRU.Get
      #16: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls cache.ObjectLRU.Put
      #17: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls cache.init
      #18: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls capability.Capability.String
      #19: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.DefaultAgent
      #20: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.List.Decode
      #21: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.List.Delete
      #22: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.List.Get
      #23: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.List.IsEmpty
      #24: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.List.Set
      #25: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.List.String
      #26: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.List.Supports
      #27: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls capability.NewList
      #28: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls capability.init
      #29: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls client.NewClient
      #30: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls client.init
      #31: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which eventually calls color.init
      #32: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls common.DecodeUploadPackResponse
      #33: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls common.NewClient
      #34: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls common.client.NewUploadPackSession
      #35: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls common.init
      #36: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls common.session.AdvertisedReferencesContext
      #37: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls common.session.Close
      #38: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls common.session.UploadPack
      #39: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls common.session.onError
      #40: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.Branch.Validate
      #41: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.Config.Marshal
      #42: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.Config.Section
      #43: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.Config.Validate
      #44: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls config.Decoder.Decode
      #45: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.Encoder.Encode
      #46: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls config.LoadConfig
      #47: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls config.Modules.Unmarshal
      #48: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls config.New
      #49: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls config.NewConfig
      #50: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls config.NewDecoder
      #51: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.NewEncoder
      #52: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls config.NewModules
      #53: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls config.Options.Get
      #54: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls config.Options.GetAll
      #55: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls config.ReadConfig
      #56: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.RefSpec.Dst
      #57: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.RefSpec.IsExactSHA1
      #58: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.RefSpec.IsForceUpdate
      #59: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.RefSpec.IsWildcard
      #60: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.RefSpec.Match
      #61: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.RefSpec.Reverse
      #62: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls config.RefSpec.Src
      #63: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.RefSpec.Validate
      #64: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.RemoteConfig.Validate
      #65: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.Section.SetOption
      #66: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls config.Subsection.Option
      #67: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.Subsection.RemoveOption
      #68: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls config.Subsection.SetOption
      #69: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls config.init
      #70: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls config.init
      #71: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which calls diff.init
      #72: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which calls diff.init
      #73: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.DotGit.AddAlternate
      #74: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.DotGit.Alternates
      #75: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.DotGit.Config
      #76: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.DotGit.ConfigWriter
      #77: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.DotGit.Fs
      #78: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.DotGit.Index
      #79: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls dotgit.DotGit.IndexWriter
      #80: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.DotGit.Initialize
      #81: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls dotgit.DotGit.Module
      #82: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.DotGit.NewObject
      #83: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.DotGit.NewObjectPack
      #84: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.DotGit.Object
      #85: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.DotGit.ObjectPack
      #86: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.DotGit.ObjectPackIdx
      #87: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.DotGit.ObjectPacks
      #88: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.DotGit.Ref
      #89: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.DotGit.Refs
      #90: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.DotGit.RemoveRef
      #91: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.DotGit.SetRef
      #92: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.DotGit.Shallow
      #93: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.DotGit.ShallowWriter
      #94: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.EncodedObject.Hash
      #95: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.EncodedObject.Reader
      #96: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.EncodedObject.SetSize
      #97: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.EncodedObject.SetType
      #98: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.EncodedObject.Size
      #99: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.EncodedObject.Type
      #100: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.EncodedObject.Writer
      #101: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.NewEncodedObject
      #102: internal/gitrepo/gitrepo.go:86:28: gitrepo.Open calls git.PlainOpen, which eventually calls dotgit.NewRepositoryFilesystem
      #103: internal/gitrepo/gitrepo.go:86:28: gitrepo.Open calls git.PlainOpen, which eventually calls dotgit.NewWithOptions
      #104: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.ObjectWriter.Close
      #105: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.PackWriter.Close
      #106: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.PackWriter.Write
      #107: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.RepositoryFilesystem.Open
      #108: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls dotgit.RepositoryFilesystem.Root
      #109: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls dotgit.init
      #110: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls dotgit.syncedReader.Read
      #111: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls dotgit.syncedReader.Seek
      #112: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls file.command.Close
      #113: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls file.command.Kill
      #114: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls file.command.Start
      #115: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls file.command.StderrPipe
      #116: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls file.command.StdinPipe
      #117: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls file.command.StdoutPipe
      #118: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls file.init
      #119: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls file.runner.Command
      #120: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filemode.FileMode.Bytes
      #121: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls filemode.FileMode.IsRegular
      #122: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls filemode.FileMode.String
      #123: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filemode.FileMode.ToOSFileMode
      #124: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filemode.New
      #125: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls filemode.NewFromOSFileMode
      #126: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which calls filemode.init
      #127: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls filesystem.ConfigStorage.Config
      #128: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.ConfigStorage.SetConfig
      #129: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which calls filesystem.IndexStorage.Index
      #130: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls filesystem.IndexStorage.SetIndex
      #131: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filesystem.ModuleStorage.Module
      #132: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filesystem.NewRootNode
      #133: internal/gitrepo/gitrepo.go:86:28: gitrepo.Open calls git.PlainOpen, which eventually calls filesystem.NewStorage
      #134: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls filesystem.ObjectStorage.EncodedObject
      #135: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls filesystem.ObjectStorage.HasEncodedObject
      #136: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls filesystem.ObjectStorage.NewEncodedObject
      #137: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.ObjectStorage.PackfileWriter
      #138: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls filesystem.ObjectStorage.SetEncodedObject
      #139: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls filesystem.PackfileWriter
      #140: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.ReferenceStorage.CheckAndSetReference
      #141: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.ReferenceStorage.IterReferences
      #142: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls filesystem.ReferenceStorage.Reference
      #143: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.ReferenceStorage.RemoveReference
      #144: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls filesystem.ReferenceStorage.SetReference
      #145: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.ShallowStorage.SetShallow
      #146: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.ShallowStorage.Shallow
      #147: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.Storage.AddAlternate
      #148: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.Storage.Filesystem
      #149: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls filesystem.Storage.Init
      #150: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls filesystem.deltaObject.ActualSize
      #151: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls filesystem.init
      #152: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls filesystem.init
      #153: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls filesystem.init
      #154: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filesystem.node.Children
      #155: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filesystem.node.Hash
      #156: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filesystem.node.IsDir
      #157: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filesystem.node.Name
      #158: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filesystem.node.NumChildren
      #159: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls filesystem.node.Skip
      #160: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls frame.Frame.Drop
      #161: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls frame.Frame.First
      #162: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls frame.Frame.Len
      #163: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls frame.New
      #164: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls frame.byName.Len
      #165: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls frame.byName.Less
      #166: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls frame.byName.Swap
      #167: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which eventually calls frame.init
      #168: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls git.NoMatchingRefSpecError.Error
      #169: internal/gitrepo/gitrepo.go:22:2: gitrepo.init calls os.init, which eventually calls git.NoMatchingRefSpecError.Is
      #170: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone
      #171: internal/gitrepo/gitrepo.go:86:28: gitrepo.Open calls git.PlainOpen
      #172: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject
      #173: internal/gitrepo/gitrepo.go:145:37: gitrepo.PrintStatus calls git.Repository.Worktree
      #174: internal/gitrepo/gitrepo.go:155:19: gitrepo.PrintStatus calls git.Status.IsClean
      #175: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions
      #176: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit
      #177: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status
      #178: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls git.command.Close
      #179: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls git.command.Start
      #180: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls git.command.StderrPipe
      #181: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls git.command.StdinPipe
      #182: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls git.command.StdoutPipe
      #183: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls git.init
      #184: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init
      #185: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls git.runner.Command
      #186: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which eventually calls git.sortableEntries.Len
      #187: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which eventually calls git.sortableEntries.Less
      #188: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which eventually calls git.sortableEntries.Swap
      #189: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls gitignore.NewMatcher
      #190: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls gitignore.ReadPatterns
      #191: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls gitignore.init
      #192: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls gitignore.matcher.Match
      #193: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls hash.New
      #194: internal/gitrepo/gitrepo.go:27:2: gitrepo.init calls plumbing.init, which calls hash.init
      #195: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls http.Err.Error
      #196: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls http.client.NewUploadPackSession
      #197: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls http.init
      #198: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls http.upSession.AdvertisedReferencesContext
      #199: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls http.upSession.Close
      #200: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls http.upSession.UploadPack
      #201: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls idxfile.Decoder.Decode
      #202: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls idxfile.Encoder.Encode
      #203: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls idxfile.MemoryIndex.FindHash
      #204: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls idxfile.MemoryIndex.FindOffset
      #205: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls idxfile.NewDecoder
      #206: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls idxfile.NewEncoder
      #207: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls idxfile.NewMemoryIndex
      #208: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls idxfile.Writer.Finished
      #209: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls idxfile.Writer.Index
      #210: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls idxfile.Writer.OnFooter
      #211: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls idxfile.Writer.OnHeader
      #212: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls idxfile.Writer.OnInflatedObjectContent
      #213: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls idxfile.Writer.OnInflatedObjectHeader
      #214: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls idxfile.init
      #215: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls idxfile.objects.Len
      #216: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls idxfile.objects.Less
      #217: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls idxfile.objects.Swap
      #218: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls index.Decoder.Decode
      #219: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls index.Encoder.Encode
      #220: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls index.Index.Add
      #221: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls index.Index.Entry
      #222: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls index.Index.Remove
      #223: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls index.Index.SkipUnless
      #224: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls index.NewDecoder
      #225: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls index.NewEncoder
      #226: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls index.NewRootNode
      #227: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls index.byName.Len
      #228: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls index.byName.Less
      #229: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls index.byName.Swap
      #230: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls index.init
      #231: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls index.init
      #232: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls index.node.Children
      #233: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls index.node.Hash
      #234: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls index.node.IsDir
      #235: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls index.node.Name
      #236: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls index.node.NumChildren
      #237: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls index.node.Skip
      #238: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls ioutil.CheckClose
      #239: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls ioutil.NewContextReader
      #240: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls ioutil.NewContextWriteCloser
      #241: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls ioutil.NewReadCloser
      #242: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls ioutil.NewReadCloserWithCloser
      #243: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls ioutil.NewReaderOnError
      #244: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls ioutil.NewReaderUsingReaderAt
      #245: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls ioutil.NewWriteCloserOnError
      #246: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls ioutil.NonEmptyReader
      #247: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls ioutil.WriteNopCloser
      #248: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which calls ioutil.init
      #249: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls ioutil.readCloserCloser.Close
      #250: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls ioutil.readerAtAsReader.Read
      #251: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls ioutil.readerOnError.Read
      #252: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls ioutil.writeCloser.Close
      #253: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls ioutil.writerOnError.Write
      #254: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls memory.ConfigStorage.Config
      #255: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls memory.ConfigStorage.SetConfig
      #256: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which calls memory.IndexStorage.Index
      #257: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls memory.IndexStorage.SetIndex
      #258: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls memory.ModuleStorage.Module
      #259: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls memory.ObjectStorage.AddAlternate
      #260: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls memory.ObjectStorage.EncodedObject
      #261: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls memory.ObjectStorage.HasEncodedObject
      #262: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls memory.ObjectStorage.NewEncodedObject
      #263: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls memory.ObjectStorage.SetEncodedObject
      #264: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls memory.ReferenceStorage.CheckAndSetReference
      #265: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls memory.ReferenceStorage.IterReferences
      #266: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls memory.ReferenceStorage.Reference
      #267: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls memory.ReferenceStorage.RemoveReference
      #268: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls memory.ReferenceStorage.SetReference
      #269: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls memory.ShallowStorage.SetShallow
      #270: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls memory.ShallowStorage.Shallow
      #271: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls memory.init
      #272: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls merkletrie.Action.String
      #273: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls merkletrie.Change.Action
      #274: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls merkletrie.DiffTree
      #275: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which calls merkletrie.init
      #276: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls noder.Path.Children
      #277: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls noder.Path.Compare
      #278: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls noder.Path.Hash
      #279: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls noder.Path.IsDir
      #280: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls noder.Path.NumChildren
      #281: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls noder.Path.Skip
      #282: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls noder.Path.String
      #283: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init, which calls noder.init
      #284: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.Blob.Reader
      #285: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.Blob.Type
      #286: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls object.Commit.Encode
      #287: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls object.Commit.EncodeWithoutSignature
      #288: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls object.Commit.String
      #289: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls object.Commit.Tree
      #290: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.Commit.Type
      #291: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.DecodeObject
      #292: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.DecodeTag
      #293: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which calls object.GetCommit
      #294: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.NewCommitPreorderIter
      #295: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls object.NewTreeRootNode
      #296: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.Tag.Type
      #297: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls object.Tree.Encode
      #298: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.Tree.File
      #299: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.Tree.FindEntry
      #300: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.Tree.Type
      #301: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls object.commitPreIterator.ForEach
      #302: internal/gitrepo/gitrepo.go:28:2: gitrepo.init calls object.init
      #303: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls object.treeNoder.Children
      #304: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls object.treeNoder.Hash
      #305: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls object.treeNoder.IsDir
      #306: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls object.treeNoder.Name
      #307: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls object.treeNoder.NumChildren
      #308: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls object.treeNoder.Skip
      #309: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls objfile.NewReader
      #310: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls objfile.NewWriter
      #311: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls objfile.Reader.Close
      #312: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls objfile.Reader.Header
      #313: internal/gitrepo/gitrepo.go:86:28: gitrepo.Open calls git.PlainOpen, which eventually calls objfile.Reader.Read
      #314: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls objfile.Writer.Close
      #315: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls objfile.Writer.Hash
      #316: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls objfile.Writer.Write
      #317: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls objfile.Writer.WriteHeader
      #318: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls objfile.init
      #319: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.Error.AddDetails
      #320: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls packfile.Error.Error
      #321: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.FSObject.Hash
      #322: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.FSObject.Reader
      #323: internal/gitrepo/gitrepo.go:150:32: gitrepo.PrintStatus calls git.Worktree.Status, which eventually calls packfile.FSObject.Size
      #324: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.FSObject.Type
      #325: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.NewPackfile
      #326: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.NewPackfileWithCache
      #327: internal/gitrepo/gitrepo.go:70:20: gitrepo.Clone calls os.Getenv, which eventually calls packfile.ObjectsToPack
      #328: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packfile.Packfile.Close
      #329: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.Packfile.GetByOffset
      #330: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.Packfile.Scanner
      #331: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.Scanner.NextObject
      #332: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls packfile.Scanner.SeekObjectHeader
      #333: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packfile.UpdateObjectStorage
      #334: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packfile.asyncReader
      #335: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packfile.byTypeAndSize.Len
      #336: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packfile.byTypeAndSize.Less
      #337: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packfile.byTypeAndSize.Swap
      #338: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls packfile.init
      #339: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packfile.offsetWriter.Write
      #340: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packfile.scannerReader.Read
      #341: internal/gitrepo/gitrepo.go:86:28: gitrepo.Open calls git.PlainOpen, which eventually calls packfile.scannerReader.ReadByte
      #342: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.AdvRefs.AllReferences
      #343: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.AdvRefs.Decode
      #344: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.AdvRefs.IsEmpty
      #345: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.DepthCommits.IsZero
      #346: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.DepthReference.IsZero
      #347: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.DepthSince.IsZero
      #348: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls packp.ErrUnexpectedData.Error
      #349: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.GitProtoRequest.Encode
      #350: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.NewAdvRefs
      #351: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.NewUploadPackRequestFromCapabilities
      #352: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.NewUploadPackResponse
      #353: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.UploadHaves.Encode
      #354: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.UploadPackRequest.IsEmpty
      #355: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packp.UploadPackResponse.Close
      #356: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.UploadPackResponse.Decode
      #357: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls packp.UploadPackResponse.Read
      #358: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.UploadRequest.Encode
      #359: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.UploadRequest.Validate
      #360: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls packp.init
      #361: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls packp.resolveHead
      #362: internal/gitrepo/gitrepo.go:86:28: gitrepo.Open calls git.PlainOpen, which eventually calls path_util.ReplaceTildeWithHome
      #363: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which calls path_util.init
      #364: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls pktline.Encoder.Encode
      #365: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls pktline.Encoder.EncodeString
      #366: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls pktline.Encoder.Encodef
      #367: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls pktline.Encoder.Flush
      #368: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls pktline.ErrorLine.Error
      #369: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls pktline.NewEncoder
      #370: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls pktline.NewScanner
      #371: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls pktline.Scanner.Bytes
      #372: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls pktline.Scanner.Err
      #373: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls pktline.Scanner.Scan
      #374: internal/gitrepo/gitrepo.go:26:2: gitrepo.init calls git.init, which eventually calls pktline.init
      #375: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.Hash.IsZero
      #376: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.Hash.String
      #377: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.HashSlice.Len
      #378: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.HashSlice.Less
      #379: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.HashSlice.Swap
      #380: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.Hasher.Sum
      #381: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls plumbing.HashesSort
      #382: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls plumbing.IsHash
      #383: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.MemoryObject.Close
      #384: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.MemoryObject.Hash
      #385: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.MemoryObject.Reader
      #386: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls plumbing.MemoryObject.SetSize
      #387: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls plumbing.MemoryObject.SetType
      #388: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.MemoryObject.Size
      #389: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls plumbing.MemoryObject.Type
      #390: internal/generator/generator.go:53:14: generator.parseArgs calls fmt.Fprintf, which calls plumbing.MemoryObject.Write
      #391: internal/gitrepo/gitrepo.go:101:31: gitrepo.AddAll calls git.Worktree.AddWithOptions, which eventually calls plumbing.MemoryObject.Writer
      #392: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls plumbing.NewBranchReferenceName
      #393: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls plumbing.NewHash
      #394: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.NewHashReference
      #395: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.NewHasher
      #396: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls plumbing.NewPermanentError
      #397: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.NewReferenceFromStrings
      #398: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls plumbing.NewRemoteHEADReferenceName
      #399: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls plumbing.NewSymbolicReference
      #400: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls plumbing.NewUnexpectedError
      #401: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.ObjectType.Bytes
      #402: internal/gitrepo/gitrepo.go:74:29: gitrepo.Clone calls git.PlainClone, which eventually calls plumbing.ObjectType.IsDelta
      #403: internal/gitrepo/gitrepo.go:139:23: gitrepo.Commit calls fmt.Sprint, which eventually calls plumbing.ObjectType.String
      #404: internal/gitrepo/gitrepo.go:122:32: gitrepo.Commit calls git.Worktree.Commit, which eventually calls plumbing.ObjectType.Valid
      #405: internal/gitrepo/gitrepo.go:135:37: gitrepo.Commit calls git.Repository.CommitObject, which eventually calls plumbing.ParseObjectType
...

The output exceeded the 65536 character limit on this field, but you can reproduce with git clone https://github.com/googleapis/generator.git and git checkout b242d1e499f3d874ac95ad5b5aabc75a690bcf91.

What did you expect to see?

The output was very long, even though the final action I took was just go get github.com/go-git/go-git/[email protected] && go mod tidy. I think it would be more helpful if:

  1. The output were grouped by module at the top level, as modules are the primary unit of upgrades.
  2. The number of traces displayed by default were limited.
@julieqiu julieqiu added the vulncheck or vulndb Issues for the x/vuln or x/vulndb repo label Jan 24, 2025
@gopherbot gopherbot modified the milestones: Unreleased, vuln/unplanned Jan 24, 2025
@julieqiu julieqiu changed the title x/vuln: issue title x/vuln: default govulncheck output is very long Jan 24, 2025
@findleyr
Copy link
Member

Hi @julieqiu!

I agree, and thanks for the suggestion.

@zpavlinovic
Copy link
Contributor

zpavlinovic commented Jan 24, 2025

Thanks @julieqiu !

For posterity, the db has all symbols of the module as vulnerable, so we have a trace for each such symbol.

I think 2. is the right way here because we actually already do this for binary analysis. Users can still inspect all the traces with -show traces option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vulncheck or vulndb Issues for the x/vuln or x/vulndb repo
Projects
None yet
Development

No branches or pull requests

4 participants