gocsaf / csaf

Tools to download or provide CSAF (Common Security Advisory Framework) documents.
https://csaf.io
40 stars 23 forks source link

Proposal: Extracting code from `main` packages into `server` and `client` packages #533

Open oxisto opened 7 months ago

oxisto commented 7 months ago

As mentioned in https://github.com/csaf-poc/csaf_distribution/issues/367, we are currently trying to integrate this repository into our Clouditor open-source cloud security solution (see https://github.com/clouditor/clouditor/issues/1414 for more information). Basically, we could make use of the csaf_provider (for testing) as well as the csaf_checker to perform and integrate conformance checks. However, currently, the majority of the code of both resides in the main package, making it impossible to use from an external source.

I would therefore propose to move everything except the main.go out of the respective main packages. This would then result in a folder structure similar to this:

cmd/csaf_provider
  main.go
csaf
  models.go
  ...
  server
    provider
      controller.go
      ...
    aggregator
      ...
  client
    checker
      processor.go
      rules.go
      ...
    downloader
      ...

What do you think?