| 15 | |
| 16 | @attr.s() |
| 17 | class GoModule(object): |
| 18 | namespace = attr.ib(default=None) |
| 19 | name = attr.ib(default=None) |
| 20 | version = attr.ib(default=None) |
| 21 | module = attr.ib(default=None) |
| 22 | require = attr.ib(default=None) |
| 23 | exclude = attr.ib(default=None) |
| 24 | |
| 25 | def purl(self, include_version=True): |
| 26 | version = None |
| 27 | if include_version: |
| 28 | version = self.version |
| 29 | return PackageURL( |
| 30 | type='golang', |
| 31 | namespace=self.namespace, |
| 32 | name=self.name, |
| 33 | version=version |
| 34 | ).to_string() |
| 35 | |
| 36 | |
| 37 | # Regex expressions to parse different types of go.mod file dependency |
no outgoing calls
no test coverage detected