Skip to content

Commit 0da9b4e

Browse files
authored
Add JFrog Artifactory and Sonatype Nexus integrations documentation (#1970)
* Add JFrog Artifactory integration documentation Signed-off-by: tdruez <tdruez@aboutcode.org> * Add Sonatype Nexus integration documentation Signed-off-by: tdruez <tdruez@aboutcode.org> --------- Signed-off-by: tdruez <tdruez@aboutcode.org>
1 parent b9c3e86 commit 0da9b4e

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed

docs/faq.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,13 @@ ScanCode.io supports **multiple input types** for your projects:
117117
- **Git Repository**: Clone a Git repository using its HTTPS URL.
118118
See :ref:`inputs_git_repository`.
119119

120+
- **JFrog Artifactory**: Fetch artifacts from on-premise or cloud Artifactory
121+
repositories.
122+
See :ref:`inputs_artifactory`.
123+
124+
- **Sonatype Nexus**: Fetch artifacts from Nexus Repository Manager instances.
125+
See :ref:`inputs_nexus`.
126+
120127
For complete details on all input methods, refer to the :ref:`inputs` documentation.
121128

122129
What is the difference between scan_codebase and scan_single_package pipelines?

docs/inputs.rst

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,3 +220,76 @@ for details on:
220220
- :ref:`HTTP request headers <scancodeio_settings_fetch_headers>` (e.g., for GitHub tokens)
221221
- :ref:`.netrc file <scancodeio_settings_netrc_location>`
222222
- :ref:`Docker private registries <scancodeio_settings_skopeo_credentials>`
223+
224+
.. _inputs_artifactory:
225+
226+
JFrog Artifactory
227+
-----------------
228+
229+
ScanCode.io can fetch artifacts from **JFrog Artifactory** repositories using
230+
standard download URLs.
231+
232+
The URL format follows Artifactory's REST API pattern::
233+
234+
https://<artifactory-host>/artifactory/<repo-key>/<artifact-path>
235+
236+
Example::
237+
238+
https://mycompany.jfrog.io/artifactory/libs-release/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar
239+
240+
For **authentication**, configure credentials in your ``.env`` file using one of
241+
these methods:
242+
243+
Using Basic Authentication::
244+
245+
SCANCODEIO_FETCH_BASIC_AUTH="mycompany.jfrog.io=username,password"
246+
247+
Using API Key (via headers)::
248+
249+
SCANCODEIO_FETCH_HEADERS="mycompany.jfrog.io=X-JFrog-Art-Api=<YOUR_API_KEY>"
250+
251+
Using Access Token::
252+
253+
SCANCODEIO_FETCH_HEADERS="mycompany.jfrog.io=Authorization=Bearer <YOUR_TOKEN>"
254+
255+
.. tip::
256+
You can also use a :ref:`.netrc file <scancodeio_settings_netrc_location>` for
257+
authentication if your organization already maintains one.
258+
259+
.. _inputs_nexus:
260+
261+
Sonatype Nexus
262+
--------------
263+
264+
ScanCode.io can fetch artifacts from **Sonatype Nexus Repository** (versions 2 and 3)
265+
using standard download URLs.
266+
267+
For **Nexus 3**, the URL format follows the repository path pattern::
268+
269+
https://<nexus-host>/repository/<repo-name>/<path-to-artifact>
270+
271+
Example for a Maven artifact::
272+
273+
https://nexus.mycompany.com/repository/maven-central/ch/qos/logback/logback-core/1.4.0/logback-core-1.4.0.jar
274+
275+
Example for a PyPI package::
276+
277+
https://nexus.mycompany.com/repository/pypi-proxy/packages/urllib3/1.26.7/urllib3-1.26.7-py2.py3-none-any.whl
278+
279+
Example for an npm package::
280+
281+
https://nexus.mycompany.com/repository/npm-proxy/redis/-/redis-2.8.0.tgz
282+
283+
For **authentication**, configure credentials in your ``.env`` file:
284+
285+
Using Basic Authentication::
286+
287+
SCANCODEIO_FETCH_BASIC_AUTH="nexus.mycompany.com=username,password"
288+
289+
Using a Bearer Token::
290+
291+
SCANCODEIO_FETCH_HEADERS="nexus.mycompany.com=Authorization=Bearer <YOUR_TOKEN>"
292+
293+
.. tip::
294+
You can also use a :ref:`.netrc file <scancodeio_settings_netrc_location>` for
295+
authentication if your organization already maintains one.

0 commit comments

Comments
 (0)