@@ -95,6 +95,22 @@ const getAllSSoftwareDesignTrainings = knex => async () => {
95
95
return knex ( 'software_design_training' ) . select ( ) . returning ( '*' )
96
96
}
97
97
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
+
98
114
const initializeStore = ( knex ) => {
99
115
debug ( 'Initializing store...' )
100
116
return {
@@ -111,7 +127,9 @@ const initializeStore = (knex) => {
111
127
addAlert : addAlert ( knex ) ,
112
128
addTask : addTask ( knex ) ,
113
129
upsertComplianceCheckResult : upsertComplianceCheckResult ( knex ) ,
114
- getAllSSoftwareDesignTrainings : getAllSSoftwareDesignTrainings ( knex )
130
+ getAllSSoftwareDesignTrainings : getAllSSoftwareDesignTrainings ( knex ) ,
131
+ getAllGithubRepositories : getAllGithubRepositories ( knex ) ,
132
+ upsertOSSFScorecard : upsertOSSFScorecard ( knex )
115
133
}
116
134
}
117
135
0 commit comments