Skip to content

Commit 1c55a87

Browse files
committed
feat: extend the store to support OSSF Scorecard operations
1 parent 1ecd406 commit 1c55a87

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/store/index.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,22 @@ const getAllSSoftwareDesignTrainings = knex => async () => {
9595
return knex('software_design_training').select().returning('*')
9696
}
9797

98+
const getAllGithubRepositories = knex => async () => {
99+
debug('Getting all GitHub repositories...')
100+
return knex('github_repositories').select().returning('*')
101+
}
102+
103+
const upsertOSSFScorecard = knex => async (scorecard) => {
104+
// IMPORTANT: Check for repo_id and commit hash as multiple results can exist for the same repo
105+
const query = { github_repository_id: scorecard.github_repository_id, scorecard_commit: scorecard.scorecard_commit }
106+
const existingScorecard = await knex('ossf_scorecard_results').where(query).first()
107+
if (existingScorecard) {
108+
return knex('ossf_scorecard_results').where(query).update(scorecard).returning('*')
109+
} else {
110+
return knex('ossf_scorecard_results').insert(scorecard).returning('*')
111+
}
112+
}
113+
98114
const initializeStore = (knex) => {
99115
debug('Initializing store...')
100116
return {
@@ -111,7 +127,9 @@ const initializeStore = (knex) => {
111127
addAlert: addAlert(knex),
112128
addTask: addTask(knex),
113129
upsertComplianceCheckResult: upsertComplianceCheckResult(knex),
114-
getAllSSoftwareDesignTrainings: getAllSSoftwareDesignTrainings(knex)
130+
getAllSSoftwareDesignTrainings: getAllSSoftwareDesignTrainings(knex),
131+
getAllGithubRepositories: getAllGithubRepositories(knex),
132+
upsertOSSFScorecard: upsertOSSFScorecard(knex)
115133
}
116134
}
117135

0 commit comments

Comments
 (0)