util/safepath/safepath.go (14 lines): - line 88: //IsDir() bool // TODO: add this to allow a File to become a Path? - line 99: //IsDir() bool // TODO: add this to allow a Dir to become a Path? - line 111: //IsAbs() bool // TODO: add this to allow an Abs to become a Path? - line 121: //IsAbs() bool // TODO: add this to allow a Rel to become a Path? - line 178: // TODO: add tests - line 194: // TODO: test with "" - line 214: // TODO: add tests - line 321: // TODO: test with "" - line 345: // TODO: test with "" - line 447: // TODO: test with "" - line 465: // TODO: add tests - line 571: // TODO: test with "" - line 590: // TODO: test with "" and "/" - line 822: // TODO: add tests! interfaces/interfaces.go (12 lines): - line 52: Umask = 0770 // TODO: what should this be? - line 63: // TODO: this API might change. - line 87: // TODO: this API might change. - line 154: // TODO: this API might change. - line 175: // TODO: this API might change. - line 179: // TODO: implement a new iterator that simply passes the root dir off to a - line 185: // TODO: this API might change. - line 189: // TODO: add a backend that lets you seek through data yourself in case of very - line 194: // TODO: this API might change. - line 195: // TODO: should this be io.Reader or io.ReaderAt, or io.Seeker instead? - line 225: // TODO: is it okay to support storing multiple results? - line 249: if obj.Confidence != result.Confidence { // TODO: epsilon? iterator/fs.go (10 lines): - line 54: // TODO: This iterator could learn how to identify go.mod files, python, java, - line 56: // TODO: This iterator could grow a Copy option to copy the files into a new - line 111: // TODO: check if path exists? - line 164: // TODO: Replace this with a parallel walk for performance - line 165: // TODO: Maybe add a separate flag/switch for it in the options? - line 166: // TODO: Make sure result aggregation and skipdir support still works! - line 167: // TODO: Replace this with a walk that accepts safepath types instead. - line 258: // TODO: this could happen in init() if we wanted to optimize perf a bit - line 300: obj.Logf(format, v...) // TODO: add a prefix? - line 308: //submodule.Branch // TODO: use this? cmd/yesiscan/main.go (9 lines): - line 75: // TODO: replace the *cli.Context with a more general context that can be used - line 96: // TODO: add more --flags to specify which parser/backends to use... - line 154: backendWeights[licenseClassifierBackend] = 1.0 // TODO: adjust as needed - line 165: backendWeights[spdxBackend] = 2.0 // TODO: adjust as needed - line 176: // backendWeights[exampleBackend] = 99.0 // TODO: adjust as needed - line 185: Iterators: iterators, // TODO: should this be passed into Run instead? - line 212: debug := false // TODO: hardcoded for now - line 226: // FIXME: We discard output from lib's that use `log` package directly. - line 229: err := CLI(program, debug, logf) // TODO: put these args in an input struct lib/lib.go (9 lines): - line 47: Iterators []interfaces.Iterator // TODO: should this be passed into Run instead? - line 52: // TODO: remove if unused - line 131: // TODO: capture err and return it. - line 256: if !ok1 && !ok2 { // TODO: remove this when we implement them! - line 274: // TODO: we could switch and avoid doing this if we knew that - line 282: return err // TODO: errwrap? - line 301: // TODO: add a counting semaphore if it's desired - line 355: // TODO: we could use a different mutex - line 427: return obj.results, nil // TODO: should we pass the Recurse errors here? iterator/git.go (7 lines): - line 72: // TODO: If someone wanted to scan *every* commit, or a range of commits, rather - line 75: // TODO: concurrent use of this lib: https://github.com/go-git/go-git/issues/285 - line 94: // TODO: consider doing some clever parsing of well-known paths like - line 96: // TODO: this could be implemented with a layered iterator that's github - line 174: // TODO: can we validate ref somehow? - line 300: // TODO: update with https://github.com/go-git/go-git/issues/289 - line 406: obj.Logf(format, v...) // TODO: add a prefix? backend/licenseclassifier.go (5 lines): - line 22: // TODO: should this be a subpackage? - line 162: // TODO: populate other fields here (eg: found license text) - line 164: // FIXME: If license is not in SPDX, add a custom entry. - line 165: // FIXME: https://github.com/google/licenseclassifier/issues/31 - line 172: // TODO: populate other fields here (eg: found license text) backend/spdxclassifier.go (4 lines): - line 22: // TODO: should this be a subpackage? - line 132: // TODO: populate other fields here? - line 147: // TODO: populate other fields here (eg: found license text) - line 156: Confidence: 1.0, // TODO: what should we put here? util/licenses/licenses.go (3 lines): - line 62: // TODO: import the exceptions if we ever decide we want to look at those. - line 156: return fmt.Sprintf("%s(unknown)", obj.Custom) // TODO: display this differently? - line 159: // TODO: replace with a different short name if one exists parser/parser.go (2 lines): - line 92: // TODO: for now, just assume it can only be a git iterator... - line 99: URL: u.String(), // TODO: pass a *net.URL instead? util/util.go (2 lines): - line 44: // TODO: the different helper functions that are called within could be provided - line 94: // TODO: add support for line number ranges, eg: #L13-L42 or just #L42 lib/results.go (1 line): - line 64: for uri, m := range results { // FIXME: sort and process properly iterator/iterator.go (1 line): - line 84: // TODO: This could be built with a list of rules that we pass into the