1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-12 10:55:20 +02:00
sap-jenkins-library/pkg/sonar/sonar.go
2022-11-08 08:47:38 +01:00

37 lines
1.2 KiB
Go

package sonar
import (
"path/filepath"
"github.com/magiconair/properties"
"github.com/pkg/errors"
)
// TaskReportData encapsulates information about an executed Sonar scan task.
// https://pkg.go.dev/github.com/magiconair/properties@v1.8.0?tab=doc#Properties.Decode
type TaskReportData struct {
ProjectKey string `properties:"projectKey"`
TaskID string `properties:"ceTaskId"`
DashboardURL string `properties:"dashboardUrl"`
TaskURL string `properties:"ceTaskUrl"`
ServerURL string `properties:"serverUrl"`
ServerVersion string `properties:"serverVersion"`
}
// ReadTaskReport expects a file ".scannerwork/report-task.txt" to exist in the provided workspace directory,
// and parses its contents into the returned TaskReportData struct.
func ReadTaskReport(workspace string) (result TaskReportData, err error) {
reportFile := filepath.Join(workspace, ".scannerwork", "report-task.txt")
// read file content
reportContent, err := properties.LoadFile(reportFile, properties.UTF8)
if err != nil {
return
}
// read content into struct
err = reportContent.Decode(&result)
if err != nil {
err = errors.Wrapf(err, "decode %s", reportFile)
}
return
}