You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
APPENG-3181: Feature Add C support to transitive tool (#104)
* feat: Add C/C++ support to transitive code search tool
- Add C language support and enhance function parsing capabilities
- Implement singleton pattern for RPMDependencyManager
- Add container source download for C/C++ dependencies
- Add C extended segmenter class with comprehensive testing
- Add new Function Name Locator tool with fuzzy matching
- Enhance transitive code search with assistant tool
- Add C/C++ function parsers and language support
- Add comprehensive test suite for C code analysis
- Improve function name extraction and parsing
- Add source RPM downloader for C/C++ dependencies
- Update configuration files for NIM and OpenAI endpoints
- Fix various bugs and improve code quality
- Add proper documentation and type hints
- Clean up imports and remove debug prints
This commit consolidates 39 individual commits that add comprehensive
C/C++ language support to the vulnerability analysis toolchain.
* update docs, kustomize service config, tests and rpm downloader support UT
* review fix move C_DEP_LIBS_NAME locaiton
* fixed review comments
* Add cache for std lib names for lang python,go,java,javascript
* Update src/vuln_analysis/utils/standard_library_cache.py
Co-authored-by: Zvi Grinberg <[email protected]>
* fix indentation
* add persistance to cache
* code review comments
* add comments and update docker for bsdtar app to be install in image
* update docfile
* small improvments
* handle invalid utf-8 files
---------
Co-authored-by: Zvi Grinberg <[email protected]>
Copy file name to clipboardExpand all lines: README.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -216,6 +216,15 @@ To run the workflow you need to obtain API keys for the following APIs. These wi
216
216
- Click on your account in the top right, select "Setup" from the dropdown.
217
217
- Click the "Generate Personal Key" option and then the "+ Generate Personal Key" button to create your API key.
218
218
- This will be used in the `NVIDIA_API_KEY` environment variable.
219
+
- REDHAT container registry (Recommended but not compulsory)
220
+
- To get source images from a Red Hat container registry using registry service account tokens. You will need to create a [registry service account](https://access.redhat.com/terms-based-registry/)
221
+
- Steps:
222
+
- Sign in to the registry service accout
223
+
- Press on New service Account Button
224
+
- Fill the Name (ex. 'test-case') and Description fields and Click the Create botton
225
+
- Token user name for example '11008101|test-case' for REGISTRY_REDHAT_USERNAME environment variable
226
+
- Token password a long string for REGISTRY_REDHAT_PASSWORD environment variable
227
+
219
228
220
229
The workflow can be configured to use other LLM services as well, see the [Customizing the LLM models](#customizing-the-llm-models) section for more info.
For C/C++ projects, you can enable container source download to extract RPM dependencies from Red Hat container registries. This feature uses skopeo to download container source layers and automatically extracts RPM packages, excluding the main application RPMs to focus on dependencies only.
2. Extracts RPM packages from the downloaded layers
60
+
3. Filters out main application RPMs (e.g., `postgresql-*` for PostgreSQL containers)
61
+
4. Copies dependency RPMs to the standard RPM cache directory
62
+
63
+
64
+
**Prerequisites:**
65
+
-`skopeo` must be installed on the system
66
+
- Valid Red Hat registry credentials
67
+
- Network access to `registry.redhat.io`
68
+
69
+
49
70
## Deploy And Run On OCP
50
71
51
-
1. Create a `base/secrets.env` file containing the API keys for external services `ExploitIQ` might use. Not all keys are mandatory. Refer to the main [README](../README.md) for details.
72
+
1. Create a `base/secrets.env` file containing the API keys for external services `ExploitIQ` might use. Not all keys are mandatory. Refer to the main [README](../README.md#obtain-api-keys) for details on how to create the Red Hat credentials and other API keys.
0 commit comments