|
| 1 | +===================================================== |
| 2 | +Enhance Compliance Mechanisms and CI Provider Support |
| 3 | +===================================================== |
| 4 | + |
| 5 | + |
| 6 | +**Organization:** `AboutCode <https://aboutcode.org>`_ |
| 7 | + |
| 8 | + |
| 9 | +**Projects:** `Scancode.io <https://github.com/aboutcode-org/scancode.io>`_ and `Scancode-action <https://github.com/aboutcode-org/scancode-action>`_ |
| 10 | + |
| 11 | + |
| 12 | +**Mentee:** `Manit Singh (NucleonGodX) <https://github.com/NucleonGodX>`_ |
| 13 | + |
| 14 | + |
| 15 | +**Mentors:** |
| 16 | + |
| 17 | + |
| 18 | +- `Thomas Druez <https://github.com/tdruez>`_ |
| 19 | +- `Dennis Clark <https://github.com/DennisClark>`_ |
| 20 | +- `Pranay Das <https://github.com/404-geek>`_ |
| 21 | +- `Avishrant Sharma <https://github.com/avishrantsSh/>`_ |
| 22 | + |
| 23 | + |
| 24 | +Overview |
| 25 | +-------- |
| 26 | +ScanCode.io previously supported compliance mechanisms only based on license policies, |
| 27 | +which limited the comprehensive assessment of software projects for organizations |
| 28 | +with diverse compliance requirements. |
| 29 | + |
| 30 | + |
| 31 | +This project enhanced ScanCode.io to support additional compliance mechanisms beyond |
| 32 | +license policies, including license clarity scores, vulnerability levels, and scorecard scores. |
| 33 | +Additionally, the project expanded scancode-action support to multiple CI providers beyond |
| 34 | +GitHub Actions, including Azure Pipelines and Jenkins CI. |
| 35 | + |
| 36 | + |
| 37 | +-------------------------------------------------------------------------------- |
| 38 | + |
| 39 | + |
| 40 | +Implementation |
| 41 | +-------------- |
| 42 | +- **Independent Compliance Mechanisms:** |
| 43 | + |
| 44 | + - Developed an independent mechanism for compliance based on scorecard scores |
| 45 | + and license clarity scores. |
| 46 | + - Integrated these mechanisms into the database's project extra_data field, API endpoints, |
| 47 | + check compliance command, and UI project view. |
| 48 | + - Created a unified threshold mechanism for both license clarity and scorecard compliance, |
| 49 | + reducing code duplication and improving maintainability. |
| 50 | + |
| 51 | + |
| 52 | +- **Unified Script Structure:** |
| 53 | + |
| 54 | + - Implemented a unified Python script structure that generates bash code for use across |
| 55 | + different CI providers including GitHub Actions, Azure Pipelines, and Jenkins CI. |
| 56 | + - This approach significantly reduces redundancy in CI provider implementations and |
| 57 | + ensures consistent behavior across platforms. |
| 58 | + |
| 59 | + |
| 60 | +- **CI Provider Expansion:** |
| 61 | + |
| 62 | + - Added comprehensive support for Azure Pipelines with proper configuration templates |
| 63 | + and integration workflows. |
| 64 | + - Added PR for using scancode-action with Jenkins. |
| 65 | + - Ensured all CI providers utilize the same core scanning functionality through |
| 66 | + the unified script approach. |
| 67 | + |
| 68 | + |
| 69 | +- **Policy Validation Improvements:** |
| 70 | + |
| 71 | + - Fixed policy validation logic to properly handle different compliance mechanisms |
| 72 | + without requiring license_policies for all policy files. |
| 73 | + - Enhanced error handling and validation messages for better user experience. |
| 74 | + |
| 75 | + |
| 76 | +Linked Pull Requests |
| 77 | +-------------------- |
| 78 | + |
| 79 | + |
| 80 | +.. list-table:: |
| 81 | + :widths: 10 60 30 10 |
| 82 | + :header-rows: 1 |
| 83 | + |
| 84 | + |
| 85 | + * - Sr. no |
| 86 | + - Name |
| 87 | + - Link |
| 88 | + - Status |
| 89 | + * - 1 |
| 90 | + - Introduce Independent License Clarity Thresholds Mechanism |
| 91 | + - `scancode.io#1689 |
| 92 | + <https://github.com/aboutcode-org/scancode.io/pull/1689>`_ |
| 93 | + - Merged |
| 94 | + * - 2 |
| 95 | + - Integration of Clarity compliance mechanism |
| 96 | + - `scancode.io#1705 |
| 97 | + <https://github.com/aboutcode-org/scancode.io/pull/1705>`_ |
| 98 | + - Merged |
| 99 | + * - 3 |
| 100 | + - Refactor a common threshold mechanism for both license clarity and scorecard score |
| 101 | + - `scancode.io#1799 |
| 102 | + <https://github.com/aboutcode-org/scancode.io/pull/1799>`_ |
| 103 | + - Merged |
| 104 | + * - 4 |
| 105 | + - Add compliance support based on OpenSSF Scorecard score |
| 106 | + - `scancode.io#1800 |
| 107 | + <https://github.com/aboutcode-org/scancode.io/pull/1800>`_ |
| 108 | + - Merged |
| 109 | + * - 5 |
| 110 | + - Fix policies validation |
| 111 | + - `scancode.io#1814 |
| 112 | + <https://github.com/aboutcode-org/scancode.io/pull/1814>`_ |
| 113 | + - Merged |
| 114 | + * - 6 |
| 115 | + - Add Azure pipelines support |
| 116 | + - `scancode-action#19 |
| 117 | + <https://github.com/aboutcode-org/scancode-action/pull/19>`_ |
| 118 | + - Open |
| 119 | + * - 7 |
| 120 | + - Add support for jenkins-ci |
| 121 | + - `scancode-action#21 |
| 122 | + <https://github.com/aboutcode-org/scancode-action/pull/21>`_ |
| 123 | + - Open |
| 124 | + * - 8 |
| 125 | + - Add support for python script for ci providers |
| 126 | + - `scancode-action#23 |
| 127 | + <https://github.com/aboutcode-org/scancode-action/pull/23>`_ |
| 128 | + - Open |
| 129 | + |
| 130 | + |
| 131 | +Related Issues |
| 132 | +-------------- |
| 133 | + |
| 134 | + |
| 135 | +.. list-table:: |
| 136 | + :widths: 10 60 30 |
| 137 | + :header-rows: 1 |
| 138 | + |
| 139 | + |
| 140 | + * - Sr. no |
| 141 | + - Name |
| 142 | + - Link |
| 143 | + * - 1 |
| 144 | + - Add license clarity score-based Compliance support |
| 145 | + - `#1678 |
| 146 | + <https://github.com/aboutcode-org/scancode.io/issues/1678>`_ |
| 147 | + * - 2 |
| 148 | + - Add Vulnerability Severity-Based Compliance Support |
| 149 | + - `#1679 |
| 150 | + <https://github.com/aboutcode-org/scancode.io/issues/1679>`_ |
| 151 | + * - 3 |
| 152 | + - Add support for Azure pipelines |
| 153 | + - `#18 |
| 154 | + <https://github.com/aboutcode-org/scancode-action/issues/18>`_ |
| 155 | + * - 4 |
| 156 | + - Add support for Jenkins |
| 157 | + - `#20 |
| 158 | + <https://github.com/aboutcode-org/scancode-action/issues/20>`_ |
| 159 | + * - 5 |
| 160 | + - Add scorecard based compliance support |
| 161 | + - `#1794 |
| 162 | + <https://github.com/aboutcode-org/scancode.io/issues/1794>`_ |
| 163 | + * - 6 |
| 164 | + - Add a mechanism to eliminate redundant Bash code across CI providers |
| 165 | + - `#22 |
| 166 | + <https://github.com/aboutcode-org/scancode-action/issues/22>`_ |
| 167 | + * - 7 |
| 168 | + - Refactor License Clarity and Scorecard Compliance Thresholds into Unified Module |
| 169 | + - `#1797 |
| 170 | + <https://github.com/aboutcode-org/scancode.io/issues/1797>`_ |
| 171 | + * - 8 |
| 172 | + - Policies validation incorrectly requires license_policies for all policy files |
| 173 | + - `#1813 |
| 174 | + <https://github.com/aboutcode-org/scancode.io/issues/1813>`_ |
| 175 | + |
| 176 | + |
| 177 | +Pre GSoC Work |
| 178 | +------------- |
| 179 | + |
| 180 | + |
| 181 | +Here are some of the PRs I submitted before GSoC: |
| 182 | + |
| 183 | + |
| 184 | +- `Enhanced package detection and improved license detection accuracy |
| 185 | + <https://github.com/aboutcode-org/scancode-toolkit/pull/4031>`_ |
| 186 | +- `Fixed vulnerability data processing issues |
| 187 | + <https://github.com/aboutcode-org/vulnerablecode/pull/1744>`_ |
| 188 | +- `Improved license classification and detection mechanisms |
| 189 | + <https://github.com/aboutcode-org/scancode-toolkit/pull/4138>`_ |
| 190 | +- `Enhanced vulnerability database integration |
| 191 | + <https://github.com/aboutcode-org/vulnerablecode/pull/1758>`_ |
| 192 | + |
| 193 | + |
| 194 | +Post GSoC |
| 195 | +--------- |
| 196 | + |
| 197 | + |
| 198 | +I plan to continue contributing by: |
| 199 | + |
| 200 | + |
| 201 | +- Completing the Pull requests of integrating other CI providers in scancode-action |
| 202 | + |
| 203 | +Links |
| 204 | +----- |
| 205 | + |
| 206 | + |
| 207 | +* `Project Idea |
| 208 | + <https://github.com/aboutcode-org/vulnerablecode/pull/1758>`_ |
| 209 | + |
| 210 | + |
| 211 | +* `Official GSoC project page |
| 212 | + <https://summerofcode.withgoogle.com/programs/2025/projects/DsDoR5eF>`_ |
| 213 | + |
| 214 | + |
| 215 | +* `GSoC Proposal |
| 216 | + <https://docs.google.com/document/d/1cmDTq3aq2J9iFNOo37V6C7ahy_ofbGRRtvtwDvW_Rrc/edit?tab=t.0>`_ |
| 217 | + |
| 218 | + |
| 219 | +* `Project Board <https://github.com/orgs/aboutcode-org/projects/27>`_ |
| 220 | + |
| 221 | + |
| 222 | +Acknowledgements |
| 223 | +---------------- |
| 224 | + |
| 225 | + |
| 226 | +I would like to thank my mentors: |
| 227 | + |
| 228 | + |
| 229 | +- `Thomas Druez <https://github.com/tdruez>`_ |
| 230 | +- `Dennis Clark <https://github.com/DennisClark>`_ |
| 231 | +- `Pranay Das <https://github.com/404-geek>`_ |
| 232 | +- `Avishrant Sharma <https://github.com/avishrantsSh/>`_ |
| 233 | + |
| 234 | + |
| 235 | +Their guidance was instrumental throughout the project development. The regular feedback sessions |
| 236 | +helped me navigate complex architectural decisions, especially when designing the unified |
| 237 | +compliance mechanism. |
0 commit comments