Skip to content

Commit 69eb1cc

Browse files
Fix a bug in cron API data exporting (#2112)
Co-authored-by: Azeem Shaikh <[email protected]>
1 parent 89163cc commit 69eb1cc

File tree

4 files changed

+30
-25
lines changed

4 files changed

+30
-25
lines changed

cron/internal/config/config.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ type config struct {
7979
// Raw results.
8080
RawResultDataBucketURL string `yaml:"raw-result-data-bucket-url"`
8181
RawBigQueryTable string `yaml:"raw-bigquery-table"`
82-
ExportResultsBucketURL string `yaml:"export-results-bucket-url"`
82+
APIResultsBucketURL string `yaml:"api-results-bucket-url"`
8383
}
8484

8585
func getParsedConfigFromFile(byteValue []byte) (config, error) {
@@ -234,8 +234,8 @@ func GetMetricExporter() (string, error) {
234234
return getStringConfigValue(metricExporter, configYAML, "MetricExporter", "metric-exporter")
235235
}
236236

237-
// GetBQExportResultsBucketURL returns the bucket URL for storing cron job results.
238-
func GetBQExportResultsBucketURL() (string, error) {
237+
// GetAPIResultsBucketURL returns the bucket URL for storing cron job results.
238+
func GetAPIResultsBucketURL() (string, error) {
239239
return getStringConfigValue(apiResultsBucketURL, configYAML,
240-
"ExportResultsBucketURL", "export-results-bucket-url")
240+
"APIResultsBucketURL", "api-results-bucket-url")
241241
}

cron/internal/config/config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,5 @@ result-data-bucket-url: gs://ossf-scorecard-data2
2929
# Raw results.
3030
raw-result-data-bucket-url: gs://ossf-scorecard-rawdata
3131
raw-bigquery-table: scorecard-rawdata
32-
# export-bucket
33-
export-results-bucket-url: gs://ossf-scorecard-cron-releasetest-results
32+
# API results bucket
33+
api-results-bucket-url: gs://ossf-scorecard-cron-results

cron/internal/config/config_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ const (
3737
prodShardSize int = 10
3838
prodMetricExporter string = "stackdriver"
3939
// Raw results.
40-
prodRawBucket = "gs://ossf-scorecard-rawdata"
41-
prodRawBigQueryTable = "scorecard-rawdata"
42-
prodBigQueryExportsBucketURL = "gs://ossf-scorecard-cron-releasetest-results"
40+
prodRawBucket = "gs://ossf-scorecard-rawdata"
41+
prodRawBigQueryTable = "scorecard-rawdata"
42+
prodAPIBucketURL = "gs://ossf-scorecard-cron-results"
4343
)
4444

4545
func getByteValueFromFile(filename string) ([]byte, error) {
@@ -75,7 +75,7 @@ func TestYAMLParsing(t *testing.T) {
7575
MetricExporter: prodMetricExporter,
7676
RawResultDataBucketURL: prodRawBucket,
7777
RawBigQueryTable: prodRawBigQueryTable,
78-
ExportResultsBucketURL: prodBigQueryExportsBucketURL,
78+
APIResultsBucketURL: prodAPIBucketURL,
7979
},
8080
},
8181

@@ -348,16 +348,16 @@ func TestGetMetricExporter(t *testing.T) {
348348
}
349349

350350
//nolint:paralleltest // Since os.Setenv is used.
351-
func TestGetBigQueryExportsBucketURL(t *testing.T) {
351+
func TestGetAPIResultsBucketURL(t *testing.T) {
352352
t.Run("GetBigQueryExportsBucketURL", func(t *testing.T) {
353353
bigqueryExportsBucketURL := apiResultsBucketURL
354354
os.Unsetenv(bigqueryExportsBucketURL)
355-
bucket, err := GetBQExportResultsBucketURL()
355+
bucket, err := GetAPIResultsBucketURL()
356356
if err != nil {
357357
t.Errorf("failed to get production bucket URL from config: %v", err)
358358
}
359-
if bucket != prodBigQueryExportsBucketURL {
360-
t.Errorf("test failed: expected - %s, got = %s", prodBigQueryExportsBucketURL, bucket)
359+
if bucket != prodAPIBucketURL {
360+
t.Errorf("test failed: expected - %s, got = %s", prodAPIBucketURL, bucket)
361361
}
362362
})
363363
}

cron/internal/worker/main.go

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,17 @@ import (
4343
"github.com/ossf/scorecard/v4/stats"
4444
)
4545

46+
const (
47+
resultsFile = "results.json"
48+
rawResultsFile = "raw.json"
49+
)
50+
4651
var ignoreRuntimeErrors = flag.Bool("ignoreRuntimeErrors", false, "if set to true any runtime errors will be ignored")
4752

4853
// nolint: gocognit
4954
func processRequest(ctx context.Context,
5055
batchRequest *data.ScorecardBatchRequest,
51-
blacklistedChecks []string, bucketURL, rawBucketURL, exportBucketURL string,
56+
blacklistedChecks []string, bucketURL, rawBucketURL, apiBucketURL string,
5257
checkDocs docs.Doc,
5358
repoClient clients.RepoClient, ossFuzzRepoClient clients.RepoClient,
5459
ciiClient clients.CIIBestPracticesClient,
@@ -139,29 +144,29 @@ func processRequest(ctx context.Context,
139144
if err := format.AsRawJSON(&result, &exportRawBuffer); err != nil {
140145
return fmt.Errorf("error during result.AsRawJSON for export: %w", err)
141146
}
142-
exportPath := fmt.Sprintf("%s/result.json", repo.URI())
143-
exportCommitSHAPath := fmt.Sprintf("%s/%s/result.json", repo.URI(), result.Repo.CommitSHA)
144-
exportRawPath := fmt.Sprintf("%s/raw.json", repo.URI())
145-
exportRawCommitSHAPath := fmt.Sprintf("%s/%s/raw.json", repo.URI(), result.Repo.CommitSHA)
147+
exportPath := fmt.Sprintf("%s/%s", repo.URI(), resultsFile)
148+
exportCommitSHAPath := fmt.Sprintf("%s/%s/%s", repo.URI(), result.Repo.CommitSHA, resultsFile)
149+
exportRawPath := fmt.Sprintf("%s/%s", repo.URI(), rawResultsFile)
150+
exportRawCommitSHAPath := fmt.Sprintf("%s/%s/%s", repo.URI(), result.Repo.CommitSHA, rawResultsFile)
146151

147152
// Raw result.
148153
if err := format.AsRawJSON(&result, &rawBuffer); err != nil {
149154
return fmt.Errorf("error during result.AsRawJSON: %w", err)
150155
}
151156

152157
// These are results without the commit SHA which represents the latest commit.
153-
if err := data.WriteToBlobStore(ctx, exportBucketURL, exportPath, exportBuffer.Bytes()); err != nil {
158+
if err := data.WriteToBlobStore(ctx, apiBucketURL, exportPath, exportBuffer.Bytes()); err != nil {
154159
return fmt.Errorf("error during writing to exportBucketURL: %w", err)
155160
}
156161
// Export result based on commitSHA.
157-
if err := data.WriteToBlobStore(ctx, exportBucketURL, exportCommitSHAPath, exportBuffer.Bytes()); err != nil {
162+
if err := data.WriteToBlobStore(ctx, apiBucketURL, exportCommitSHAPath, exportBuffer.Bytes()); err != nil {
158163
return fmt.Errorf("error during exportBucketURL with commit SHA: %w", err)
159164
}
160165
// Export raw result.
161-
if err := data.WriteToBlobStore(ctx, exportBucketURL, exportRawPath, exportRawBuffer.Bytes()); err != nil {
166+
if err := data.WriteToBlobStore(ctx, apiBucketURL, exportRawPath, exportRawBuffer.Bytes()); err != nil {
162167
return fmt.Errorf("error during writing to exportBucketURL for raw results: %w", err)
163168
}
164-
if err := data.WriteToBlobStore(ctx, exportBucketURL, exportRawCommitSHAPath, exportRawBuffer.Bytes()); err != nil {
169+
if err := data.WriteToBlobStore(ctx, apiBucketURL, exportRawCommitSHAPath, exportRawBuffer.Bytes()); err != nil {
165170
return fmt.Errorf("error during exportBucketURL for raw results with commit SHA: %w", err)
166171
}
167172
}
@@ -238,7 +243,7 @@ func main() {
238243
panic(err)
239244
}
240245

241-
exportBucketURL, err := config.GetBQExportResultsBucketURL()
246+
apiBucketURL, err := config.GetAPIResultsBucketURL()
242247
if err != nil {
243248
panic(err)
244249
}
@@ -278,7 +283,7 @@ func main() {
278283
break
279284
}
280285
if err := processRequest(ctx, req, blacklistedChecks,
281-
bucketURL, rawBucketURL, exportBucketURL, checkDocs,
286+
bucketURL, rawBucketURL, apiBucketURL, checkDocs,
282287
repoClient, ossFuzzRepoClient, ciiClient, vulnsClient, logger); err != nil {
283288
// TODO(log): Previously Warn. Consider logging an error here.
284289
logger.Info(fmt.Sprintf("error processing request: %v", err))

0 commit comments

Comments
 (0)