1+ // // Aliases ////
2+
3+ #URL : =~ " ^https?://[^\\ s]+$ "
4+
5+ #Link : {
6+ url : #URL
7+ description : string
8+ }
9+
10+ #Justification : {
11+ description : string
12+ links ?: [...#Link ]
13+ }
14+
15+ #UnmetJustification : {
16+ description : string
17+ links : [...#Link ]
18+ }
19+
20+ #Criterion : {
21+ result : " met " | " unmet " | " unknown "
22+ if result == " unmet " {
23+ unmet_justification : #UnmetJustification
24+ }
25+ if result == " met " {
26+ met_justification ?: #MetJustification
27+ }
28+ }
29+
30+ #NullableCriterion {
31+ result : " met " | " unmet " | " unknown " | " na "
32+ if result == " unmet " {
33+ justification : #UnmetJustification
34+ }
35+ if result == " met " {
36+ justification ?: #Justification
37+ }
38+ if result == " na " {
39+ justification : #Justification
40+ }
41+ }
42+
43+ // // Schema ////
44+
45+ project_identification :
46+ name : string
47+ description : string
48+ url : #URL
49+ primary_repo_url : #URL
50+ primary_languages : [...string ]
51+ comment ?: string
52+ cpe ?: string
53+ disable_activity_reminder ?: bool
54+
55+ passing ?:
56+ Basics :
57+ description_good : #Criterion
58+ interact : #Criterion
59+ contribution : #Criterion
60+ contribution_requirements : #Criterion
61+ license_expression : string
62+ floss_license : #Criterion
63+ floss_license_osi : #Criterion
64+ license_location : #Criterion
65+ documentation_basics : #NullableCriterion
66+ documentation_interface : #NullableCriterion
67+ sites_https : #Criterion
68+ discussion : #Criterion
69+ english : #Criterion
70+ maintained : #Criterion
71+ ' Change Control ' :
72+ repo_public : #Criterion
73+ repo_track : #Criterion
74+ repo_interim : #Criterion
75+ repo_distributed : #Criterion
76+ version_unique : #Criterion
77+ version_semver : #Criterion
78+ version_tags : #Criterion
79+ release_notes : #NullableCriterion
80+ release_notes_vulns : #NullableCriterion
81+ Reporting :
82+ report_process : #Criterion
83+ report_tracker : #Criterion
84+ report_responses : #Criterion
85+ enhancement_responses : #Criterion
86+ report_archive : #Criterion
87+ vulnerability_report_process : #Criterion
88+ vulnerability_report_private : #NullableCriterion
89+ vulnerability_report_response : #NullableCriterion
90+ Quality :
91+ build : #NullableCriterion
92+ build_common_tools : #NullableCriterion
93+ build_floss_tools : #NullableCriterion
94+ test : #Criterion
95+ test_invocation : #Criterion
96+ test_most : #Criterion
97+ test_continuous_integration : #Criterion
98+ test_policy : #Criterion
99+ tests_are_added : #Criterion
100+ tests_documented_added : #Criterion
101+ warnings : #NullableCriterion
102+ warnings_fixed : #NullableCriterion
103+ warnings_strict : #NullableCriterion
104+ Security :
105+ know_secure_design : #Criterion
106+ know_common_errors : #Criterion
107+ crypography_used : bool
108+ if crypography_used {
109+ crypto_published : #Criterion
110+ crypto_call : #Criterion
111+ crypto_floss : #Criterion
112+ crypto_keylength : #Criterion
113+ crypto_working : #Criterion
114+ crypto_weaknesses : #Criterion
115+ crypto_pfs : #Criterion
116+ crypto_password_storage : #Criterion
117+ crypto_random : #Criterion
118+ }
119+ delivery_mitm : #Criterion
120+ delivery_unsigned : #Criterion
121+ vulnerabilities_fixed_60_days : #Criterion
122+ vulnerabilities_critical_fixed : #Criterion
123+ no_leaked_credentials : #Criterion
124+ Analysis :
125+ static_analysis : #NullableCriterion
126+ static_analysis_common_vulnerabilities : #NullableCriterion
127+ static_analysis_fixed : #NullableCriterion
128+ static_analysis_often : #NullableCriterion
129+ dynamic_analysis : #Criterion
130+ dynamic_analysis_unsafe : #NullableCriterion
131+ dynamic_analysis_enable_assertions : #Criterion
132+ dynamic_analysis_fixed : #NullableCriterion
133+ silver ?:
134+ Basics :
135+ achieve_passing :
136+ contribution_requirements :
137+ dco :
138+ governance :
139+ code_of_conduct :
140+ roles_responsibilities :
141+ access_continuity :
142+ bus_factor :
143+ documentation_roadmap :
144+ documentation_architecture :
145+ documentation_security :
146+ documentation_quick_start :
147+ documentation_current :
148+ documentation_achievements :
149+ accessibility_best_practices :
150+ internationalization :
151+ sites_password_security :
152+ ' Change Control ' :
153+ maintenance_or_update :
154+ Reporting :
155+ report_tracker :
156+ vulnerability_report_credit :
157+ vulnerability_response_process :
158+ Quality :
159+ coding_standards :
160+ coding_standards_enforced :
161+ build_standard_variables :
162+ build_preserve_debug :
163+ build_non_recursive :
164+ build_repeatable :
165+ that external parties be able to reproduce the results - merely
166+ build environment (s ), which can be harder to do - so we have
167+ installation_common :
168+ installation_standard_variables :
169+ installation_development_quick :
170+ external_dependencies :
171+ dependency_monitoring :
172+ updateable_reused_components :
173+ interfaces_current :
174+ automated_integration_testing :
175+ person integrates at least daily - leading to multiple integrations
176+ regression_tests_added50 :
177+ test_statement_coverage80 :
178+ test_policy_mandated :
179+ tests_documented_added :
180+ warnings_strict :
181+ Security :
182+ implement_secure_design :
183+ crypto_weaknesses :
184+ crypto_algorithm_agility :
185+ crypto_credential_agility :
186+ crypto_used_network :
187+ crypto_tls12 :
188+ crypto_certificate_verification :
189+ crypto_verification_private :
190+ signed_releases :
191+ version_tags_signed :
192+ input_validation :
193+ hardening :
194+ assurance_case :
195+ Analysis :
196+ static_analysis_common_vulnerabilities :
197+ dynamic_analysis_unsafe :
198+ gold ?:
199+ Basics :
200+ achieve_silver :
201+ bus_factor :
202+ contributors_unassociated :
203+ copyright_per_file :
204+ license_per_file :
205+ ' Change Control ' :
206+ repo_distributed :
207+ small_tasks :
208+ require_2FA :
209+ secure_2FA :
210+ Quality :
211+ code_review_standards :
212+ two_person_review :
213+ build_reproducible :
214+ test_invocation :
215+ test_continuous_integration :
216+ integration focused on the first part - the frequent
217+ integration - and not on its testing . However, over time the
218+ test_statement_coverage90 :
219+ test_branch_coverage80 :
220+ Security :
221+ crypto_used_network :
222+ crypto_tls12 :
223+ hardened_site : # After delivery_mitm ?
224+ security_review :
225+ hardening :
226+ Analysis :
227+ dynamic_analysis :
228+ dynamic_analysis_enable_assertions :
0 commit comments