diff --git a/jfrog-applications/SUMMARY.md b/jfrog-applications/SUMMARY.md
index d716699..5c2f332 100644
--- a/jfrog-applications/SUMMARY.md
+++ b/jfrog-applications/SUMMARY.md
@@ -10,7 +10,6 @@
* [Usage](jfrog-cli/get-started/download-and-install/usage.md)
* [Configurations](jfrog-cli/get-started/configurations/README.md)
* [JFrog Platform Configuration](jfrog-cli/get-started/configurations/jfrog-platform-configuration.md)
- * [Setting up a CI Pipeline](jfrog-cli/get-started/configurations/setting-up-a-ci-pipeline.md)
* [Proxy Support](jfrog-cli/get-started/configurations/proxy-support.md)
* [CLI for JFrog Artifactory](jfrog-cli/cli-for-jfrog-artifactory/README.md)
* [Environment Variables](jfrog-cli/cli-for-jfrog-artifactory/environment-variables.md)
@@ -30,13 +29,17 @@
* [CLI for JFrog Security](jfrog-cli/cli-for-jfrog-security/README.md)
* [Authentication](jfrog-cli/cli-for-jfrog-security/authentication.md)
* [Scan your Source Code](jfrog-cli/cli-for-jfrog-security/scan-your-source-code.md)
- * [Scan your Binaries](jfrog-cli/cli-for-jfrog-security/scan-your-binaries.md)
+ * [cUrl Integration](jfrog-cli/cli-for-jfrog-security/curl-integration.md)
* [Scan Published Builds](jfrog-cli/cli-for-jfrog-security/scan-published-builds.md)
+ * [Scan your Binaries](jfrog-cli/cli-for-jfrog-security/scan-your-binaries.md)
+ * [Enrich your SBOM JSONs & XMLs](jfrog-cli/cli-for-jfrog-security/enrich-your-sbom.md)
* [Download Updates for Xray's Database](jfrog-cli/cli-for-jfrog-security/download-updates-for-xrays-database.md)
+ * [Count Contributing Developers](jfrog-applications/jfrog-cli/cli-for-jfrog-security/count-contributing-developers.md)
* [CLI for JFrog Curation](jfrog-cli/cli-for-jfrog-curation.md)
* [CLI for JFrog Distribution](jfrog-cli/cli-for-jfrog-distribution.md)
* [CLI for JFrog Pipelines](jfrog-cli/cli-for-jfrog-pipelines.md)
* [CLI for JFrog Cloud Transfer](jfrog-cli/cli-for-jfrog-cloud-transfer.md)
+ * [CLI Command Summaries](jfrog-cli/cli-command-summaries.md)
* [JFrog CLI Plugins](jfrog-cli/cli-plugins/README.md)
* [JFrog CLI Plugins Developer Guide](jfrog-cli/cli-plugins/developer-guide.md)
* [IDE](ide/README.md)
@@ -65,19 +68,24 @@
* [Supported Technologies](jfrog-applications/frogbot/supported-technologies.md)
* [Setup](frogbot/setup-frogbot.md)
* [Frogbot Configuration](frogbot/frogbot-configuration.md)
- * [Setup Frogbot Using GitHub Actions](frogbot/setup-frogbot-using-github-actions.md)
+ * [Setup Frogbot Using GitHub Actions](jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/README.md)
+ * [OIDC Authentication](jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/oidc-authentication.md)
+ * [Scan Git Repository Full Template](jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/scan-git-repository-full-template.md)
+ * [Scan Pull Request Full Template](jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/scan-pull-request-full-template.md)
* [Setup Frogbot Using Jenkins](frogbot/setup-frogbot-using-jenkins.md)
* [Setup Frogbot Using JFrog Pipelines](frogbot/setup-frogbot-using-jfrog-pipelines.md)
- * [Setup Frogbot Using GitLab CI](frogbot/setup-frogbot-using-gitlab-ci.md)
+ * [Setup Frogbot Using GitLab CI](jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/README.md)
+ * [GitLab Full Template](jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/gitlab-full-template.md)
* [Setup Frogbot Using Azure Pipelines](frogbot/setup-frogbot-using-azure-pipelines.md)
- * [Scan Pull Requests](jfrog-applications/frogbot/scan-pull-requests/README.md)
- * [Scan GitHub Pull Request](jfrog-applications/frogbot/scan-pull-requests/scan-github-pull-request.md)
- * [Scan Gitlab Pull Request](jfrog-applications/frogbot/scan-pull-requests/scan-gitlab-pull-request.md)
- * [Scan Azure Repos Pull Request](jfrog-applications/frogbot/scan-pull-requests/scan-azure-repos-pull-request.md)
- * [Scan Bitbucket Server Pull Request](jfrog-applications/frogbot/scan-pull-requests/scan-bitbucket-server-pull-request.md)
- * [Pull Request Scan Results](jfrog-applications/frogbot/scan-pull-requests/pull-request-scan-results.md)
- * [Scan Git Repositories](jfrog-applications/frogbot/scan-repositories/README.md)
- * [View Security Alerts on GitHub](jfrog-applications/frogbot/scan-repositories/view-security-alerts-on-github.md)
+ * [Scan Execution](jfrog-applications/frogbot/scan-execution/README.md)
+ * [Scan Git Repositories](jfrog-applications/frogbot/scan-execution/scan-repositories/README.md)
+ * [View Security Alerts on GitHub](jfrog-applications/frogbot/scan-execution/scan-repositories/view-security-alerts-on-github.md)
+ * [Scan Pull Requests](jfrog-applications/frogbot/scan-execution/scan-pull-requests/README.md)
+ * [Scan GitHub Pull Request](jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-github-pull-request.md)
+ * [Scan GitLab Pull Request](jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-gitlab-pull-request.md)
+ * [Scan Azure Repos Pull Request](jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-azure-repos-pull-request.md)
+ * [Scan Bitbucket Server Pull Request](jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-bitbucket-server-pull-request.md)
+ * [Pull Request Scan Results](jfrog-applications/frogbot/scan-execution/scan-pull-requests/pull-request-scan-results.md)
* [Frogbot Badge](frogbot/frogbot-badge.md)
## CI & SDKs
diff --git a/jfrog-applications/ci-and-sdks/ci-integrations/artifactory-gradle-plugin.md b/jfrog-applications/ci-and-sdks/ci-integrations/artifactory-gradle-plugin.md
index 2ce5346..42218e2 100644
--- a/jfrog-applications/ci-and-sdks/ci-integrations/artifactory-gradle-plugin.md
+++ b/jfrog-applications/ci-and-sdks/ci-integrations/artifactory-gradle-plugin.md
@@ -4,7 +4,7 @@
The Gradle Artifactory Plugin provides tight integration with Gradle. All that is needed is a simple modification of your `build.gradle` script file with a few configuration parameters, and you can deploy your build artifacts and build information to Artifactory.
-The plugin adds the `artifactoryPublish` task for each project, in the 'publishing' group. The task performs the following actions on the project and its submodules:
+The plugin adds the `artifactoryPublish` task for each project, in the `publishing` group. The task performs the following actions on the project and its submodules:
1. Extracting the [build-info](https://www.buildinfo.org/) file located in the root project. This file contains comprehensive information about the build, such as its configuration, dependencies, and other relevant details.
2. Deploying both the generated artifacts and the build-info file to your Artifactory repository. This ensures that the artifacts, which are the output of the build process, and the accompanying build-info file are stored and organized in your Artifactory repository for easy access and management.
diff --git a/jfrog-applications/ci-and-sdks/ci-integrations/github-actions.md b/jfrog-applications/ci-and-sdks/ci-integrations/github-actions.md
index 13e828e..4f509b8 100644
--- a/jfrog-applications/ci-and-sdks/ci-integrations/github-actions.md
+++ b/jfrog-applications/ci-and-sdks/ci-integrations/github-actions.md
@@ -1,212 +1,4 @@
# GitHub Actions
-Setup JFrog CLI
-
-This GitHub Action downloads, installs and configures JFrog CLI, so that it can be used as part of the workflow.
-
-In addition, the Action includes the following features, when using JFrog CLI to work with JFrog Platform.
-
-* The connection details of the JFrog platform used by JFrog CLI can be stored as secrets.
-* There's no need to add the _build name_ and _build number_ options and arguments to commands which accept them. All build related operations will be automatically recorded with the _Workflow Name_ as build name and _Run Number_ as build number.
-
-## Usage
-
-### General
-
-```yml
-- uses: jfrog/setup-jfrog-cli@v3
-- run: jf --version
-```
-
-### Storing JFrog connection details as secrets
-
-The connection details of the JFrog platform used by JFrog CLI can be stored as secrets. You can use one of the following two methods to define and store the JFrog Platform connection details as secrets.
-
-1. [Storing the connection details using separate environment variables](broken-reference).
-2. [Storing the connection details using single Config Token](broken-reference).
-
-#### Storing the connection details using separate environment variables
-
-You can set the connection details to your JFrog Platform by using one of the following environment variables combinations:
-
-1. JF\_URL (no authentication)
-2. JF\_URL + JF\_USER + JF\_PASSWORD (basic authentication)
-3. JF\_URL + JF\_ACCESS\_TOKEN (authentication using a JFrog Access Token)
-
-You can use these environment variables in your workflow as follows:
-
-```yml
-- uses: jfrog/setup-jfrog-cli@v3
- env:
- # JFrog platform url (for example: https://acme.jfrog.io)
- JF_URL: ${{ secrets.JF_URL }}
-
- # Basic authentication credentials
- JF_USER: ${{ secrets.JF_USER }}
- JF_PASSWORD: ${{ secrets.JF_PASSWORD }}
- or
- # JFrog Platform access token
- JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
-- run: |
- jf rt ping
-```
-
-| Important: If both Config Token(JF\_ENV\_\*) and separate environment variables(JF\_URL, ...) are provided, the default config will be the Config Token. To make the above separate environment variables as the default config use `jf c use setup-jfrog-cli-server` |
-|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-
-#### Storing the connection details using single Config Token
-
-1. Make sure JFrog CLI is installed on your local machine by running `jf -v`.
-2. Configure the details of the JFrog platform by running `jf c add`.
-3. Export the details of the JFrog platform you configured, using the server ID you chose. Do this by running `jf c export `.
-4. Copy the generated Config Token to the clipboard and save it as a secret on GitHub.
-
-To use the saved JFrog platform configuration in the workflow, all you need to do it to expose the secret to the workflow. The secret should be exposed as an environment variable with the _JF\_ENV\__ prefix. Here's how you do this:
-
-```yml
-- uses: jfrog/setup-jfrog-cli@v3
- env:
- JF_ENV_1: ${{ secrets.JF_SECRET_ENV_1 }}
-- run: |
- # Ping the server
- jf rt ping
-```
-
-As you can see in the example above, we created a secret named _JF\_SECRET\_ENV\_1_ and exposed it to the workflow as the _JF\_ENV\_1_ environment variable. That's it - the ping command will now ping the configured Artifactory server.
-
-If you have multiple Config Tokens as secrets, you can use all of them in the workflow as follows:
-
-```yml
-- uses: jfrog/setup-jfrog-cli@v3
- env:
- JF_ENV_1: ${{ secrets.JF_SECRET_ENV_1 }}
- JF_ENV_2: ${{ secrets.JF_SECRET_ENV_2 }}
-- run: |
- # Set the JFrog configuration to use by providing the server ID (configured by the 'jf c add' command).
- jf c use local-1
- # Ping local-1 Artifactory server
- jf rt ping
- # Now use the second sever configuration exposed to the Action.
- jf c use local-2
- # Ping local-2 Artifactory server
- jf rt ping
-```
-
-| Important: When exposing more than one JFrog configuration to the Action, you should always add the `jf c use` command to specify the server to use. |
-|------------------------------------------------------------------------------------------------------------------------------------------------------|
-
-### Setting the build name and build number when publishing build-info to Artifactory
-
-The Action automatically sets the following environment variables: _JFROG\_CLI\_BUILD\_NAME_ and _JFROG\_CLI\_BUILD\_NUMBER_ with the workflow name and run number respectively. You therefore don't need to specify the build name and build number on any of the build related JFrog CLI commands.
-
-In the following example, all downloaded files are registered as dependencies of the build and all uploaded files are registered as the build artifacts.
-
-```yml
-- run: |
- jf rt dl artifacts/
- jf rt u aether artifacts/
- jf rt bp
-```
-
-### Setting JFrog CLI version
-
-By default, the JFrog CLI version set in [action.yml](https://github.com/jfrog/setup-jfrog-cli/blob/master/action.yml) is used. To set a specific version, add the _version_ input as follows:
-
-```yml
-- uses: jfrog/setup-jfrog-cli@v3
- with:
- version: X.Y.Z
-```
-
-It is also possible to set the latest JFrog CLI version by adding the _version_ input as follows:
-
-```yml
-- uses: jfrog/setup-jfrog-cli@v3
- with:
- version: latest
-```
-
-### Downloading JFrog CLI from Artifactory
-
-If your agent has no Internet access, you can configure the workflow to download JFrog CLI from a [remote repository](https://www.jfrog.com/confluence/display/JFROG/Remote+Repositories) in your JFrog Artifactory, which is configured to proxy the official download URL.
-
-Here's how you do this:
-
-1. Create a remote repository in Artifactory. Name the repository jfrog-cli-remote and set its URL to https://releases.jfrog.io/artifactory/jfrog-cli/
-2. Set _download-repository_ input to jfrog-cli-remote:
-
- ```yml
- - uses: jfrog/setup-jfrog-cli@v3
- env:
- # JFrog platform url (for example: https://acme.jfrog.io)
- JF_URL: ${{ secrets.JF_URL }}
-
- # Basic authentication credentials
- JF_USER: ${{ secrets.JF_USER }}
- JF_PASSWORD: ${{ secrets.JF_PASSWORD }}
-
- # JFrog platform access token (if JF_USER and JF_PASSWORD are not provided)
- # JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
-
- # Same can be achieved with a Config Token using JF_ENV_1 environment variable
- # JF_ENV_1: ${{ secrets.JF_SECRET_ENV_1 }}
- with:
- download-repository: jfrog-cli-remote
- ```
-
-* See instructions for configuring the JFrog connection details under [Storing JFrog connection details as secrets](broken-reference).
-
-### Set up a FREE JFrog Environment in the Cloud
-
-Need a FREE JFrog environment in the cloud to use with this GitHub Action? Just run one of the following commands in your terminal. The commands will do the following:
-
-1. Install JFrog CLI on your machine.
-2. Create a FREE JFrog environment in the cloud for you.
-
-**MacOS and Linux using cUrl**
-
-```
-curl -fL "https://getcli.jfrog.io?setup" | sh
-```
-
-**Windows using PowerShell**
-
-```
-powershell "Start-Process -Wait -Verb RunAs powershell '-NoProfile iwr https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/[RELEASE]/jfrog-cli-windows-amd64/jf.exe -OutFile $env:SYSTEMROOT\system32\jf.exe'" ; jf setup
-```
-
-### Example projects
-
-To help you get started, you can use [these](https://github.com/jfrog/project-examples/tree/master/github-action-examples) sample projects on GitHub.
-
-## Developing the Action code
-
-### Build the code
-
-If you'd like to help us develop and enhance this Action, this section is for you.
-
-To build and run the Action tests, run
-
-```bash
-npm i && npm t
-```
-
-### Code contributions
-
-We welcome code contributions through pull requests.
-
-Please help us enhance and improve this Action.
-
-#### Pull requests guidelines
-
-* If the existing tests do not already cover your changes, please add tests.
-* Please run `npm run format` for formatting the code before submitting the pull request.
-
-## License
-
-This Action is licensed under the [Apache License 2.0](https://github.com/jfrog/setup-jfrog-cli/blob/master/LICENSE).
-
-## References
-
-* [JFrog CLI Documentation](https://www.jfrog.com/confluence/display/CLI/JFrog+CLI)
-* [GitHub Actions Documentation](https://help.github.com/en/categories/automating-your-workflow-with-github-actions)
+The **Setup JFrog CLI** GitHub Action automates the process of downloading, installing, and configuring the JFrog CLI, enabling its use within your GitHub workflow.
+For comprehensive documentation, visit the [GitHub Actions Marketplace](https://github.com/marketplace/actions/setup-jfrog-cli).
\ No newline at end of file
diff --git a/jfrog-applications/ci-and-sdks/ci-integrations/gitlab-templates-for-jfrog.md b/jfrog-applications/ci-and-sdks/ci-integrations/gitlab-templates-for-jfrog.md
index 04be35d..bcd577e 100644
--- a/jfrog-applications/ci-and-sdks/ci-integrations/gitlab-templates-for-jfrog.md
+++ b/jfrog-applications/ci-and-sdks/ci-integrations/gitlab-templates-for-jfrog.md
@@ -13,10 +13,10 @@ The script does the following:
### Installation
-1. Ensure you have the connection details for the JFrog Platform. Don't have a JFrog Platform? [Set up](broken-reference) a free JFrog Platform instance in the cloud now
-2. [Store](broken-reference) the JFrog Platform connection details on GitLab
+1. Ensure you have the connection details for the JFrog Platform.
+2. [Store](broken-reference/) the JFrog Platform connection details on GitLab
3. Optionally set the URL of your Artifactory Docker Registry as the value of the **JF\_DOCKER\_REGISTRY** variable
-4. [Add](broken-reference) the **setup-jfrog** pipeline script in your GitLab pipeline
+4. [Add](broken-reference/) the **setup-jfrog** pipeline script in your GitLab pipeline
#### Storing the JFrog Platform Connection Details
@@ -79,7 +79,7 @@ job:
If your GitLab environment is air-gapped, you would want your pipeline to avoid downloading the **setup-jfrog** script and also JFrog CLI from `https://releases.jfrog.io/artifactory`. Here's how you do this:
-As shown in the above [Including the Script](broken-reference) and [Referencing the Script](broken-reference) sections, you have the option of copying the **setup-jfrog** script into your pipeline, and thus avoiding its download. Since the **setup-jfrog** script downloads JFrog CLI from `https://releases.jfrog.io/artifactory`, you should also configure the script to download JFrog CLI from a remote repository in your JFrog Artifactory instance. Follow these steps to have JFrog CLI downloaded from your Artifactory instance:
+As shown in the above [Including the Script](broken-reference/) and [Referencing the Script](broken-reference/) sections, you have the option of copying the **setup-jfrog** script into your pipeline, and thus avoiding its download. Since the **setup-jfrog** script downloads JFrog CLI from `https://releases.jfrog.io/artifactory`, you should also configure the script to download JFrog CLI from a remote repository in your JFrog Artifactory instance. Follow these steps to have JFrog CLI downloaded from your Artifactory instance:
1. Create a remote generic repository in Artifactory pointing to `https://releases.jfrog.io/artifactory/`
2. Add the **JF\_RELEASES\_REPO** variable to GitLab with the name of the repository you created
@@ -164,24 +164,3 @@ $ jf mvn clean install
* Pip
* Pipenv
* Yarn Berry
-
-
-
-### Set Up a FREE JFrog Environment in the Cloud
-
-Need a FREE JFrog environment in the cloud to use with these templates? Just run one of the following commands in your terminal. The commands will do the following:
-
-1. Install JFrog CLI on your machine.
-2. Create a FREE JFrog environment in the cloud for you.
-
-**MacOS and Linux using cURL**
-
-```
-curl -fL "https://getcli.jfrog.io?setup" | sh
-```
-
-**Windows using PowerShell**
-
-```
-powershell "Start-Process -Wait -Verb RunAs powershell '-NoProfile iwr https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/[RELEASE]/jfrog-cli-windows-amd64/jf.exe -OutFile $env:SYSTEMROOT\system32\jf.exe'" ; jf setup
-```
diff --git a/jfrog-applications/frogbot/frogbot-configuration.md b/jfrog-applications/frogbot/frogbot-configuration.md
index 93f8d3b..5c0bf7b 100644
--- a/jfrog-applications/frogbot/frogbot-configuration.md
+++ b/jfrog-applications/frogbot/frogbot-configuration.md
@@ -30,7 +30,7 @@ Frogbot relies on the project's descriptor files, such as package.json and pom.x
- path/to/npm/project-2
```
-Here's another example. Notice that we specify a custom 'install' command here.
+Here's another example. Notice that we specify a custom `install` command here.
```yaml
- params:
diff --git a/jfrog-applications/frogbot/setup-frogbot-using-azure-pipelines.md b/jfrog-applications/frogbot/setup-frogbot-using-azure-pipelines.md
index 5cf69d0..3761a41 100644
--- a/jfrog-applications/frogbot/setup-frogbot-using-azure-pipelines.md
+++ b/jfrog-applications/frogbot/setup-frogbot-using-azure-pipelines.md
@@ -1,6 +1,6 @@
# Setup Frogbot Using Azure Pipelines
-**Important Notice**: For Scanning Pull Requests, it is advisable to refrain from setting up Frogbot using Azure Pipelines for open source projects. For further details, please refer to the [👮 Security Note for Pull Requests Scanning](../jfrog-applications/frogbot/scan-pull-requests/#security-note-for-pull-requests-scanning).
+**Important Notice**: For Scanning Pull Requests, it is advisable to refrain from setting up Frogbot using Azure Pipelines for open source projects. For further details, please refer to the [👮 Security Note for Pull Requests Scanning](../jfrog-applications/frogbot/scan-execution/scan-pull-requests/#security-note-for-pull-requests-scanning).
To install Frogbot on Azure Repos repositories, follow these steps.
@@ -320,7 +320,7 @@ jobs:
# JF_MIN_SEVERITY: ""
# [Optional]
- # List of comma separated email addresses to receive email notifications about secrets
+ # List of comma-separated(,) email addresses to receive email notifications about secrets
# detected during pull request scanning. The notification is also sent to the email set
# in the committer git profile regardless of whether this variable is set or not.
# JF_EMAIL_RECEIVERS: ""
diff --git a/jfrog-applications/frogbot/setup-frogbot-using-github-actions.md b/jfrog-applications/frogbot/setup-frogbot-using-github-actions.md
deleted file mode 100644
index 409c40a..0000000
--- a/jfrog-applications/frogbot/setup-frogbot-using-github-actions.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Setup Frogbot Using GitHub Actions
-
-### Github Prerequisites
-
-* Go to your repository's **settings** tab and save the JFrog connection details as repository secrets with the following names:
- * **JF\_URL** (JFrog Platform URL - Example: `https://acme.jfrog.io`)
- * **JF\_ACCESS\_TOKEN** (JFrog access token)
-
-> You can also use **JF\_XRAY\_URL** and **JF\_ARTIFACTORY\_URL** instead of **JF\_URL**, and **JF\_USER** + **JF\_PASSWORD** instead of **JF\_ACCESS\_TOKEN**
-
-![](../.gitbook/assets/github-repository-secrets.png)
-
-* Under **Actions** > **General**, check the **Allow GitHub Actions to create and approve pull requests** check box.
-
-![](../.gitbook/assets/github-pr-permissions.png)
-
-* For open-source projects: Create a new [GitHub environment](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#creating-an-environment) called **frogbot** and add people or public teams as reviewers. The chosen reviewers can trigger Frogbot scans on pull requests.
-
-![](../../../.gitbook/assets/github-environment.png)
-
-### Frogbot GitHub Action Templates
-
-1. Begin by cloning the GitHub repository to your local environment.
-
-2. Switch to the target branch where you'd like the pull requests to be scanned.
-
-3. Create a file named **frogbot-scan-pull-request.yml**. Fill it with the provided [template](templates/github-actions/frogbot-scan-pull-request.yml), and then push it into the **.github/workflows** directory at the root of your GitHub repository.
-
-4. Return to the default branch.
-
-5. Now, create a file named **frogbot-scan-repository.yml**. Again, populate it with the provided [template](templates/github-actions/frogbot-scan-repository.yml) and push it into the **.github/workflows** directory at the root of your GitHub repository.
diff --git a/jfrog-applications/frogbot/setup-frogbot-using-jenkins.md b/jfrog-applications/frogbot/setup-frogbot-using-jenkins.md
index 32931b4..f675498 100644
--- a/jfrog-applications/frogbot/setup-frogbot-using-jenkins.md
+++ b/jfrog-applications/frogbot/setup-frogbot-using-jenkins.md
@@ -1,6 +1,6 @@
# Setup Frogbot Using Jenkins
-**Important Notice**: For Scanning Pull Requests, it is advisable to refrain from setting up Frogbot using Jenkins for open source projects. For further details, please refer to the [👮 Security Note for Pull Requests Scanning](../jfrog-applications/frogbot/scan-pull-requests/#security-note-for-pull-requests-scanning).
+**Important Notice**: For Scanning Pull Requests, it is advisable to refrain from setting up Frogbot using Jenkins for open source projects. For further details, please refer to the [👮 Security Note for Pull Requests Scanning](../jfrog-applications/frogbot/scan-execution/scan-pull-requests/#security-note-for-pull-requests-scanning).
#### 🖥️ Follow these steps to install Frogbot on Jenkins
@@ -277,7 +277,7 @@
// JF_GIT_EMAIL_AUTHOR= ""
// [Optional]
- // List of comma separated email addresses to receive email notifications about secrets
+ // List of comma-separated(,) email addresses to receive email notifications about secrets
// detected during pull request scanning. The notification is also sent to the email set
// in the committer git profile regardless of whether this variable is set or not.
// JF_EMAIL_RECEIVERS= ""
diff --git a/jfrog-applications/frogbot/setup-frogbot-using-jfrog-pipelines.md b/jfrog-applications/frogbot/setup-frogbot-using-jfrog-pipelines.md
index 787c20c..4c020aa 100644
--- a/jfrog-applications/frogbot/setup-frogbot-using-jfrog-pipelines.md
+++ b/jfrog-applications/frogbot/setup-frogbot-using-jfrog-pipelines.md
@@ -1,6 +1,6 @@
# Setup Frogbot Using JFrog Pipelines
-**Important Notice**: For Scanning Pull Requests, it is advisable to refrain from setting up Frogbot using JFrog Pipelines for open source projects. For further details, please refer to the [👮 Security Note for Pull Requests Scanning](../jfrog-applications/frogbot/scan-pull-requests/#security-note-for-pull-requests-scanning).
+**Important Notice**: For Scanning Pull Requests, it is advisable to refrain from setting up Frogbot using JFrog Pipelines for open source projects. For further details, please refer to the [👮 Security Note for Pull Requests Scanning](../jfrog-applications/frogbot/scan-execution/scan-pull-requests/#security-note-for-pull-requests-scanning).
* Make sure you have the connection details of your JFrog Platform.
* Inside JFrog Pipelines, save the JFrog connection details as a [JFrog Platform Access Token Integration](https://www.jfrog.com/confluence/display/JFROG/JFrog+Platform+Access+Token+Integration) named **jfrogPlatform**.
diff --git a/jfrog-applications/frogbot/setup-frogbot.md b/jfrog-applications/frogbot/setup-frogbot.md
index ef129cd..7c76344 100644
--- a/jfrog-applications/frogbot/setup-frogbot.md
+++ b/jfrog-applications/frogbot/setup-frogbot.md
@@ -1,51 +1,22 @@
-# Setup Frogbot
+# Setup
#### What's needed for the setup?
* **JFrog Platform** server. (If you don't have a JFrog Platform, you can set up one for free)
-
* **CI server** to run the scan tasks.
#### Select your preferred CI server:
-- [GitHub Actions](./setup-frogbot-using-github-actions.md)
-- [Jenkins](./setup-frogbot-using-jenkins.md)
-- [JFrog Pipelines](./setup-frogbot-using-jfrog-pipelines.md)
-- [GitLab CI](./setup-frogbot-using-gitlab-ci.md)
-- [Azure Pipelines](./setup-frogbot-using-azure-pipelines.md)
-
-
-
-Optionally - set up a FREE JFrog Platform in the Cloud
-
-Frogbot requires a JFrog environment to scan your projects. If you don't have an environment, we can set up a free environment in the cloud for you. Just run one of the following commands in your terminal to set up an environment in less than a minute.
-
-The commands will do the following:
-
-1. Install [JFrog CLI](https://www.jfrog.com/confluence/display/CLI/JFrog+CLI) on your machine.
-2. Create a FREE JFrog environment in the cloud for you.
-
-**For macOS and Linux, use curl**
-
-```
-curl -fL "https://getcli.jfrog.io?setup" | sh
-```
-
-**For Windows, use PowerShell**
-
-```
-powershell "Start-Process -Wait -Verb RunAs powershell '-NoProfile iwr https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/[RELEASE]/jfrog-cli-windows-amd64/jf.exe -OutFile $env:SYSTEMROOT\system32\jf.exe'" ; jf setup
-```
-
-After the setup is complete, you'll receive an email with your JFrog environment connection details, which can be stored as secrets in Git.
-
-
+* [GitHub Actions](../jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/)
+* [Jenkins](setup-frogbot-using-jenkins.md)
+* [JFrog Pipelines](setup-frogbot-using-jfrog-pipelines.md)
+* [GitLab CI](../jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/)
+* [Azure Pipelines](setup-frogbot-using-azure-pipelines.md)
Advanced - Customize advanced settings with frogbot-config.yml
-* [Creating the frogbot-config.yml file](./frogbot-configuration.md)
+* [Creating the frogbot-config.yml file](frogbot-configuration.md)
-
diff --git a/jfrog-applications/frogbot/templates/github-actions/frogbot-scan-pull-request.yml b/jfrog-applications/frogbot/templates/github-actions/frogbot-scan-pull-request.yml
index eae619c..df77d39 100644
--- a/jfrog-applications/frogbot/templates/github-actions/frogbot-scan-pull-request.yml
+++ b/jfrog-applications/frogbot/templates/github-actions/frogbot-scan-pull-request.yml
@@ -5,6 +5,8 @@ on:
permissions:
pull-requests: write
contents: read
+ # [Mandatory If using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # id-token: write
jobs:
scan-pull-request:
runs-on: ubuntu-latest
@@ -16,7 +18,7 @@ jobs:
env:
# [Mandatory]
# JFrog platform URL
- JF_URL: ${{ secrets.JF_URL }}
+ JF_URL: ${{ vars.JF_URL }}
# [Mandatory if JF_USER and JF_PASSWORD are not provided]
# JFrog access token with 'read' permissions on Xray service
@@ -128,7 +130,7 @@ jobs:
# JF_MIN_SEVERITY: ""
# [Optional]
- # List of comma separated email addresses to receive email notifications about secrets
+ # List of comma-separated(,) email addresses to receive email notifications about secrets
# detected during pull request scanning. The notification is also sent to the email set
# in the committer git profile regardless of whether this variable is set or not.
# JF_EMAIL_RECEIVERS: ""
@@ -146,3 +148,8 @@ jobs:
# [Optional]
# Add a title to pull request comments generated by Frogbot.
# JF_PR_COMMENT_TITLE: ""
+
+ # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD
+ # with:
+ # oidc-provider-name: ""
diff --git a/jfrog-applications/frogbot/templates/github-actions/frogbot-scan-repository.yml b/jfrog-applications/frogbot/templates/github-actions/frogbot-scan-repository.yml
index 7d89f4a..1291bfc 100644
--- a/jfrog-applications/frogbot/templates/github-actions/frogbot-scan-repository.yml
+++ b/jfrog-applications/frogbot/templates/github-actions/frogbot-scan-repository.yml
@@ -8,6 +8,8 @@ permissions:
contents: write
pull-requests: write
security-events: write
+ # [Mandatory If using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # id-token: write
jobs:
scan-repository:
runs-on: ubuntu-latest
@@ -20,7 +22,7 @@ jobs:
env:
# [Mandatory]
# JFrog platform URL
- JF_URL: ${{ secrets.JF_URL }}
+ JF_URL: ${{ vars.JF_URL }}
# [Mandatory if JF_USER and JF_PASSWORD are not provided]
# JFrog access token with 'read' permissions on Xray service
@@ -140,3 +142,8 @@ jobs:
# [Optional]
# Add a title to pull request comments generated by Frogbot.
# JF_PR_COMMENT_TITLE: ""
+
+ # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD
+ # with:
+ # oidc-provider-name: ""
\ No newline at end of file
diff --git a/jfrog-applications/ide/jetbrains-ides/connect-the-jfrog-plugin-to-the-jfrog-platform.md b/jfrog-applications/ide/jetbrains-ides/connect-the-jfrog-plugin-to-the-jfrog-platform.md
index fff0e98..7ea0b8d 100644
--- a/jfrog-applications/ide/jetbrains-ides/connect-the-jfrog-plugin-to-the-jfrog-platform.md
+++ b/jfrog-applications/ide/jetbrains-ides/connect-the-jfrog-plugin-to-the-jfrog-platform.md
@@ -2,30 +2,6 @@
-Optionally set up a free JFrog Environment in the Cloud
-
-Need a free JFrog environment in the Cloud, so that JFrog IntelliJ IDEA Plugin can connect to it? Just run one of the following commands in your terminal. The commands will do the following:
-
-1. Install JFrog CLI on your machine.
-2. Create a FREE JFrog environment in the Cloud for you.
-3. Configure IntelliJ IDEA to connect to your new environment.
-
-**MacOS and Linux using cURL**
-
-```bash
-curl -fL https://getcli.jfrog.io?setup | sh
-```
-
-**Windows using PowerShell**
-
-```powershell
-powershell "Start-Process -Wait -Verb RunAs powershell '-NoProfile iwr https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/[RELEASE]/jfrog-cli-windows-amd64/jf.exe -OutFile $env:SYSTEMROOT\system32\jf.exe'" ; jf setup
-```
-
-
-
-
-
Connect the JFrog Plugin to an existing JFrog Environment
You can connect the plugin to your JFrog environment using one of the following methods:
@@ -34,13 +10,12 @@ You can connect the plugin to your JFrog environment using one of the following
Once the plugin is successfully installed, connect the plugin to your instance of the JFrog Platform:
-1. If your JFrog Platform instance is behind an HTTP proxy, configure the proxy settings as described [here](https://www.jetbrains.com/help/idea/settings-http-proxy.html).
- Manual proxy configuration is supported since version 1.3.0 of the JFrog IntelliJ IDEA Plugin. Auto-detect proxy settings is supported since version 1.7.0.
+1. If your JFrog Platform instance is behind an HTTP proxy, configure the proxy settings as described [here](https://www.jetbrains.com/help/idea/settings-http-proxy.html). Manual proxy configuration is supported since version 1.3.0 of the JFrog IntelliJ IDEA Plugin. Auto-detect proxy settings is supported since version 1.7.0.
2. Under **Settings (Preferences)** | **Other Settings**, click **JFrog Global Configuration**.
3. Set your JFrog Platform URL and login credentials.
4. Test your connection to Xray using the Test Connection button.
-
-![](../../.gitbook/assets/connect-idea-to-jfrog.png)
+
+
**Using Environment Variables**
@@ -51,12 +26,12 @@ The plugin also supports connecting to your JFrog environment using environment
You may provide basic auth credentials or access token as follows:
-> **_NOTE:_** For security reasons, it is recommended to unset the environment variables after launching the IDE.
+_**NOTE:**_ For security reasons, it is recommended to unset the environment variables after launching the IDE.
-- `JFROG_IDE_PLATFORM_URL` - JFrog Platform URL
-- `JFROG_IDE_USERNAME` - JFrog Platform username
-- `JFROG_IDE_PASSWORD` - JFrog Platform password
-- `JFROG_IDE_ACCESS_TOKEN` - JFrog Platform access token
+* `JFROG_IDE_PLATFORM_URL` - JFrog Platform URL
+* `JFROG_IDE_USERNAME` - JFrog Platform username
+* `JFROG_IDE_PASSWORD` - JFrog Platform password
+* `JFROG_IDE_ACCESS_TOKEN` - JFrog Platform access token
diff --git a/jfrog-applications/ide/jetbrains-ides/plugin-configuration.md b/jfrog-applications/ide/jetbrains-ides/plugin-configuration.md
index d4af831..e3e53a0 100644
--- a/jfrog-applications/ide/jetbrains-ides/plugin-configuration.md
+++ b/jfrog-applications/ide/jetbrains-ides/plugin-configuration.md
@@ -14,15 +14,15 @@ By default, the JFrog IDEA Plugin downloads the resources it requires from
![ExternalResourcesThroughArtifactoryPart1](../../.gitbook/assets/externalResourcesThroughArtifactoryPart1.png)
- - Under the 'Advanced' tab:
- - Uncheck the 'Store Artifacts Locally' option
+ - Under the `Advanced` tab:
+ - Uncheck the `Store Artifacts Locally` option
![ExternalResourcesThroughArtifactoryPart2](../../.gitbook/assets/externalResourcesThroughArtifactoryPart2.png)
diff --git a/jfrog-applications/ide/visual-studio-code/connect-vs-code-to-the-jfrog-platform.md b/jfrog-applications/ide/visual-studio-code/connect-vs-code-to-the-jfrog-platform.md
index b2ee5ce..73b8d5f 100644
--- a/jfrog-applications/ide/visual-studio-code/connect-vs-code-to-the-jfrog-platform.md
+++ b/jfrog-applications/ide/visual-studio-code/connect-vs-code-to-the-jfrog-platform.md
@@ -1,31 +1,5 @@
# Connect VS Code to the JFrog Platform
-
-
-If you don't have a JFrog Platform instance, create a free instance in the cloud by running one of the following commands in your terminal.
-
-**MacOS and Linux using cUrl**
-
-```
-curl -fL "https://getcli.jfrog.io?setup" | sh
-```
-
-**Windows using PowerShell**
-
-```
-powershell "Start-Process -Wait -Verb RunAs powershell '-NoProfile iwr https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/[RELEASE]/jfrog-cli-windows-amd64/jf.exe -OutFile $env:SYSTEMROOT\system32\jf.exe'" ; jf setup
-```
-
-The commands will do the following:
-
-1. Install JFrog CLI on your machine.
-2. Create a FREE JFrog environment in the cloud for you.
-3. Configure VS Code to connect to your new environment.
-
-
-
-\\
-
Once the JFrog Extension is installed in VS Code, click on the JFrog tab:
![jfrogTab](../../.gitbook/assets/vscode/jfrogTab.png)
@@ -36,7 +10,7 @@ This will open the Sign in page:
Fill in your connection details and click on the `Sign In` button to start using the extension
-**Note**: If you would like to use custom URLs for Artifactory or Xray, click on 'Advanced'.
+**Note**: If you would like to use custom URLs for Artifactory or Xray, click on `Advanced`.
You can also choose other option to authenticate with your JFrog Platform instance:
diff --git a/jfrog-applications/ide/visual-studio-code/extension-settings.md b/jfrog-applications/ide/visual-studio-code/extension-settings.md
index d3cef6d..1365fd5 100644
--- a/jfrog-applications/ide/visual-studio-code/extension-settings.md
+++ b/jfrog-applications/ide/visual-studio-code/extension-settings.md
@@ -13,8 +13,8 @@ By default, paths containing the words `.git`, `test`, `venv` and `node_modules`
If your JFrog environment is behind an HTTP/S proxy, follow these steps to configure the proxy server:
1. Go to Preferences --> Settings --> Application --> Proxy
-2. Set the proxy URL under 'Proxy'.
-3. Make sure 'Proxy Support' is 'override' or 'on'.
+2. Set the proxy URL under `Proxy`.
+3. Make sure 'Proxy Support' is `override` or `on`.
* Alternatively, you can use the HTTP\_PROXY and HTTPS\_PROXY environment variables.
@@ -26,14 +26,14 @@ By default, the JFrog VS Code extension downloads the resources it requires from
1. Login to the JFrog Platform UI, with a user who has admin permissions.
2. Create a Remote Repository with the following properties set:
- * Under the 'Basic' tab:
+ * Under the `Basic` tab:
* Package Type: Generic
* Repository Key: jfrog-releases-repository
* URL:
![ExternalResourcesThroughArtifactoryPart1](../../.gitbook/assets/externalResourcesThroughArtifactoryPart1.png)
- * Under the 'Advanced' tab:
+ * Under the `Advanced` tab:
* Uncheck the 'Store Artifacts Locally' option
![ExternalResourcesThroughArtifactoryPart2](../../.gitbook/assets/externalResourcesThroughArtifactoryPart2.png)
@@ -82,4 +82,4 @@ settings.json:
### Troubleshooting
-Change the log level to 'debug', 'info', 'warn', or 'err' in the [Extension Settings](extension-settings.md).
+Change the log level to `debug`, `info`, `warn`, or `err` in the [Extension Settings](extension-settings.md).
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-execution/README.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/README.md
new file mode 100644
index 0000000..f26f45e
--- /dev/null
+++ b/jfrog-applications/jfrog-applications/frogbot/scan-execution/README.md
@@ -0,0 +1,2 @@
+# Scan Execution
+
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/README.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/README.md
similarity index 100%
rename from jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/README.md
rename to jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/README.md
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/pull-request-scan-results.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/pull-request-scan-results.md
similarity index 78%
rename from jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/pull-request-scan-results.md
rename to jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/pull-request-scan-results.md
index 4f855a8..f250e5b 100644
--- a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/pull-request-scan-results.md
+++ b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/pull-request-scan-results.md
@@ -20,11 +20,11 @@ If new vulnerabilities are found, Frogbot adds them as a comment on the pull req
**VULNERABLE DEPENDENCIES**
-| SEVERITY | CONTEXTUAL ANALYSIS | DIRECT DEPENDENCIES | IMPACTED DEPENDENCY | FIXED VERSIONS |
-| :---------------------------------------------------------------------------------------------------------------------------------: | :-----------------: | :-----------------: | :-----------------: | :-----------------------: |
-|
Critical
| Not Applicable | minimist:1.2.5 | minimist:1.2.5 |
| Not Applicable | lodash:4.17.19 | lodash:4.17.19 | \[4.17.21] |
**Vulnerability Contextual Analysis**
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-azure-repos-pull-request.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-azure-repos-pull-request.md
similarity index 100%
rename from jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-azure-repos-pull-request.md
rename to jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-azure-repos-pull-request.md
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-bitbucket-server-pull-request.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-bitbucket-server-pull-request.md
similarity index 72%
rename from jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-bitbucket-server-pull-request.md
rename to jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-bitbucket-server-pull-request.md
index 537b4d2..9f7e52f 100644
--- a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-bitbucket-server-pull-request.md
+++ b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-bitbucket-server-pull-request.md
@@ -2,7 +2,7 @@
After you create a new pull request, Frogbot will automatically scan it.
-_**NOTE:**_ The scan output will include only new vulnerabilities added by the pull request. Vulnerabilities that aren't new, and existed in the code before the pull request was created, will not be included in the report. In order to include all of the vulnerabilities in the report, including older ones that weren't added by this PR, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.
+_**NOTE:**_ The scan output will include only new vulnerabilities added by the pull request. Vulnerabilities that aren't new, and existed in the code before the pull request was created, will not be included in the report. In order to include all the vulnerabilities in the report, including older ones that weren't added by this PR, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.
The Frogbot scan on Bitbucket Server workflow:
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-github-pull-request.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-github-pull-request.md
similarity index 81%
rename from jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-github-pull-request.md
rename to jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-github-pull-request.md
index 09ba8df..88d34d8 100644
--- a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-github-pull-request.md
+++ b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-github-pull-request.md
@@ -1,8 +1,8 @@
-# Scan Github Pull Request
+# Scan GitHub Pull Request
After you create a new pull request, the maintainer of the Git repository can trigger Frogbot to scan the pull request from the pull request UI.
-_**NOTE:**_ The scan output will include only new vulnerabilities added by the pull request. Vulnerabilities that aren't new, and existed in the code before the pull request was created, will not be included in the report. In order to include all of the vulnerabilities in the report, including older ones that weren't added by this PR, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.
+_**NOTE:**_ The scan output will include only new vulnerabilities added by the pull request. Vulnerabilities that aren't new, and existed in the code before the pull request was created, will not be included in the report. In order to include all the vulnerabilities in the report, including older ones that weren't added by this PR, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.
The Frogbot GitHub scan workflow is:
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-gitlab-pull-request.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-gitlab-pull-request.md
similarity index 79%
rename from jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-gitlab-pull-request.md
rename to jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-gitlab-pull-request.md
index 798bdfb..1ff2c24 100644
--- a/jfrog-applications/jfrog-applications/frogbot/scan-pull-requests/scan-gitlab-pull-request.md
+++ b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-pull-requests/scan-gitlab-pull-request.md
@@ -2,7 +2,7 @@
After you create a new merge request, the maintainer of the Git repository can trigger Frogbot to scan the merge request from the merge request UI.
-_**NOTE:**_ The scan output will include only new vulnerabilities added by the merge request. Vulnerabilities that aren't new, and existed in the code before the merge request was created, will not be included in the report. In order to include all of the vulnerabilities in the report, including older ones that weren't added by this merge request, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.
+_**NOTE:**_ The scan output will include only new vulnerabilities added by the merge request. Vulnerabilities that aren't new, and existed in the code before the merge request was created, will not be included in the report. In order to include all the vulnerabilities in the report, including older ones that weren't added by this merge request, use the includeAllVulnerabilities parameter in the frogbot-config.yml file.
The Frogbot GitLab flow is as follows:
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-repositories/README.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-repositories/README.md
similarity index 87%
rename from jfrog-applications/jfrog-applications/frogbot/scan-repositories/README.md
rename to jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-repositories/README.md
index 576a4fc..b226cc3 100644
--- a/jfrog-applications/jfrog-applications/frogbot/scan-repositories/README.md
+++ b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-repositories/README.md
@@ -2,8 +2,6 @@
Frogbot scans your Git repositories periodically and automatically creates pull requests for upgrading vulnerable dependencies to a version with a fix.
-![](../../../.gitbook/assets/fix-pr.png)
+![](../../../../.gitbook/assets/fix-pr.png)
_**NOTE:**_ The pull request fix is presently unavailable for older NuGet projects that use the package.config file instead of the PackageReference syntax.
-
-####
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-repositories/view-security-alerts-on-github.md b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-repositories/view-security-alerts-on-github.md
new file mode 100644
index 0000000..5fb828a
--- /dev/null
+++ b/jfrog-applications/jfrog-applications/frogbot/scan-execution/scan-repositories/view-security-alerts-on-github.md
@@ -0,0 +1,29 @@
+# View Security Alerts on GitHub
+
+For GitHub repositories, issues that are found during Frogbot's repository scans are also added to the [Security Alerts](https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository) view in the UI.
+
+![](../../../../.gitbook/assets/github-code-scanning.png)
+
+The following alert types are supported:
+
+**1. CVEs on vulnerable dependencies**
+
+![](../../../../.gitbook/assets/github-code-scanning-content.png)
+
+**2. Secrets that are exposed in the code**
+
+![](../../../../.gitbook/assets/github-code-scanning-secrets-content.png)
+
+**3. Infrastructure as Code (Iac) issues on Terraform packages**
+
+![](../../../../.gitbook/assets/github-code-scanning-iac-content.png)
+
+**4. Static Application Security Testing (Sast) vulnerabilities**
+
+![](../../../../.gitbook/assets/github-code-scanning-sast-content.png)
+
+**5. Validate Allowed Licenses**
+
+When Frogbot scans the repository periodically, it checks the licenses of any project dependencies. If Frogbot identifies licenses that are not listed in a predefined set of approved licenses, it adds an alert. The list of allowed licenses is set up as a variable within the Frogbot workflow.
+
+![](../../../../.gitbook/assets/github-code-scanning-license-violation-content.png)
diff --git a/jfrog-applications/jfrog-applications/frogbot/scan-repositories/view-security-alerts-on-github.md b/jfrog-applications/jfrog-applications/frogbot/scan-repositories/view-security-alerts-on-github.md
deleted file mode 100644
index 115597f..0000000
--- a/jfrog-applications/jfrog-applications/frogbot/scan-repositories/view-security-alerts-on-github.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# View Security Alerts on Github
-
-For GitHub repositories, issues that are found during Frogbot's periodic scans are also added to the [Security Alerts](https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository) view in the UI.
-
-![](../../../.gitbook/assets/github-code-scanning.png)
-
-The following alert types are supported:
-
-**1. CVEs on vulnerable dependencies**
-
-![](../../../.gitbook/assets/github-code-scanning-content.png)
-
-**2. Secrets that are exposed in the code**
-
-![](../../../.gitbook/assets/github-code-scanning-secrets-content.png)
-
-**3. Infrastructure as Code (Iac) issues on Terraform packages**
-
-![](../../../.gitbook/assets/github-code-scanning-iac-content.png)
-
-**4. Static Application Security Testing (Sast) vulnerabilities**
-
-![](../../../.gitbook/assets/github-code-scanning-sast-content.png)
-
-**5. Validate Allowed Licenses**
-
-When Frogbot scans the repository periodically, it checks the licenses of any project dependencies. If Frogbot identifies licenses that are not listed in a predefined set of approved licenses, it adds an alert. The list of allowed licenses is set up as a variable within the Frogbot workflow.
-
-![](../../../.gitbook/assets/github-code-scanning-license-violation-content.png)
diff --git a/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/README.md b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/README.md
new file mode 100644
index 0000000..11fc275
--- /dev/null
+++ b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/README.md
@@ -0,0 +1,202 @@
+---
+description: Install Frogbot on GitHub using GitHub Actions
+---
+
+# Setup Frogbot Using GitHub Actions
+
+## Prepare GitHub to work with Frogbot
+
+Perform the following steps to allow GitHub and Frogbot to work together:
+
+### Step 1: Provide connection details
+
+
+
+Set Frogbot's connection details as GitHub secrets
+
+Go to your repository's **settings** tab and save the JFrog connection details as repository secrets with the following names:
+
+1. **JF\_URL** (JFrog Platform URL)\
+ Example: `https://acme.jfrog.io`\
+ You can also use **JF\_XRAY\_URL** and **JF\_ARTIFACTORY\_URL** instead of **JF\_URL.**
+2. **JF\_ACCESS\_TOKEN** (JFrog access token)\
+ You can also use **JF\_USER** + **JF\_PASSWORD** instead of **JF\_ACCESS\_TOKEN**.\
+ Instead of using **JF\_ACCESS\_TOKEN** and providing an access token as a GitHub secret, you can utilize the [GitHub OpenID Connect (OIDC)](oidc-authentication.md) authentication protocol.
+3. **JF\_GIT\_TOKEN** (GitHub token)\
+ You can utilize [$\{{secrets.GITHUB\_TOKEN\}}](https://docs.github.com/en/actions/security-guides/automatic-token-authentication) for **JF\_GIT\_TOKEN**, which is an automatically generated token by GitHub. However, this option comes with a limitation: a workflow, such as Frogbot itself, cannot trigger another workflow. Consequently, if you have additional workflows intended to activate upon the creation of a new pull request, they might not be initiated. To resolve this issue, you can generate a [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) and use it as JF\_GIT\_TOKEN.
+
+
+
+
+
+### Step 2: Allow Frogbot to open Pull Requests
+
+
+
+Allow Pull Requests
+
+Under **Actions** > **General**, check the **Allow GitHub Actions to create and approve pull requests** check box.
+
+
+
+
+
+### Step 3: Create execution Environment (open source projects only)
+
+
+
+Create a dedicated execution environment for Frogbot
+
+Create a new [GitHub environment](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#creating-an-environment) called **frogbot** and add people or public teams as reviewers. \
+The chosen reviewers can trigger Frogbot scans on pull requests.
+
+![](<../../../../.gitbook/assets/image (1).png>)
+
+
+
+## Create the required GitHub Actions templates
+
+### Step 1: Navigate to the project you wish to scan
+
+Clone the GitHub repository you wish to scan to your local environment:
+
+```shell-session
+> git clone
+> cd
+```
+
+Switch to the branch you'd like to scan with Frogbot:
+
+```shell-session
+> git checkout
+```
+
+### Step 2: Set up Repository Scan
+
+In the branch you'd like to scan, create a file named `frogbot-scan-repository.yml`. Fill it with the provided [template](./#basic-frogbot-scan-repository.yml-template) and push it into the `.github/workflows` directory at the root of your GitHub repository.\
+You can see more advanced options in the [full scan repository template](scan-git-repository-full-template.md).
+
+
+
+frogbot-scan-repository.yml template
+
+```yaml
+name: "Frogbot Scan Repository"
+on:
+ workflow_dispatch:
+ schedule:
+ # The repository will be scanned once a day at 00:00 GMT.
+ - cron: "0 0 * * *"
+permissions:
+ contents: write
+ pull-requests: write
+ security-events: write
+ # [Mandatory If using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # id-token: write
+jobs:
+ scan-repository:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ # The repository scanning will be triggered periodically on the following branches.
+ branch: ["dev"]
+ steps:
+ - uses: jfrog/frogbot@v2
+ env:
+ # [Mandatory]
+ # JFrog platform URL
+ JF_URL: ${{ secrets.JF_URL }}
+
+ # [Mandatory if JF_USER and JF_PASSWORD are not provided]
+ # JFrog access token with 'read' permissions on Xray service
+ JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog username with 'read' permissions for Xray. Must be provided with JF_PASSWORD
+ # JF_USER: ${{ secrets.JF_USER }}
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog password. Must be provided with JF_USER
+ # JF_PASSWORD: ${{ secrets.JF_PASSWORD }}
+
+ # [Mandatory]
+ # The GitHub token is automatically generated for the job
+ JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ # [Mandatory]
+ # The name of the branch on which Frogbot will perform the scan
+ JF_GIT_BASE_BRANCH: ${{ matrix.branch }}
+
+ # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD
+ # with:
+ # oidc-provider-name: ""
+```
+
+
+
+### Step 3: Set up Pull Request Scan
+
+Create a file named `frogbot-scan-pull-request.yml`. Fill it with the provided [template](./#basic-frogbot-scan-pull-request.yml-template), and then push it into the `.github/workflows` directory at the root of your GitHub repository.\
+You can see more advanced options in the [full scan pull request template](scan-pull-request-full-template.md).
+
+
+
+frogbot-scan-pull-request.yml template
+
+{% code fullWidth="true" %}
+```yaml
+name: "Frogbot Scan Repository"
+on:
+ workflow_dispatch:
+ schedule:
+ # The repository will be scanned once a day at 00:00 GMT.
+ - cron: "0 0 * * *"
+permissions:
+ contents: write
+ pull-requests: write
+ security-events: write
+ # [Mandatory If using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # id-token: write
+jobs:
+ scan-repository:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ # The repository scanning will be triggered periodically on the following branches.
+ branch: ["dev"]
+ steps:
+ - uses: jfrog/frogbot@v2
+ env:
+ # [Mandatory]
+ # JFrog platform URL
+ JF_URL: ${{ secrets.JF_URL }}
+
+ # [Mandatory if JF_USER and JF_PASSWORD are not provided]
+ # JFrog access token with 'read' permissions on Xray service
+ JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog username with 'read' permissions for Xray. Must be provided with JF_PASSWORD
+ # JF_USER: ${{ secrets.JF_USER }}
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog password. Must be provided with JF_USER
+ # JF_PASSWORD: ${{ secrets.JF_PASSWORD }}
+
+ # [Mandatory]
+ # The GitHub token is automatically generated for the job
+ JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ # [Mandatory]
+ # The name of the branch on which Frogbot will perform the scan
+ JF_GIT_BASE_BRANCH: ${{ matrix.branch }}
+
+ # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD
+ # with:
+ # oidc-provider-name: ""
+```
+{% endcode %}
+
+
diff --git a/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/oidc-authentication.md b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/oidc-authentication.md
new file mode 100644
index 0000000..0620780
--- /dev/null
+++ b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/oidc-authentication.md
@@ -0,0 +1,66 @@
+---
+description: Authenticating using OpenID Connect (OIDC)
+---
+
+# OIDC Authentication
+
+## **General**
+
+The sensitive connection details, such as the access token used by JFrog Frogbot, can be automatically generated by the action instead of storing it as a secret in GitHub. This is made possible by leveraging the OpenID-Connect (OIDC) protocol. This protocol can authenticate the workflow issuer and supply a valid access token. Learn more about this integration in [this](https://jfrog.com/blog/secure-access-development-jfrog-github-oidc) blog post. To utilize the OIDC protocol, follow these steps:
+
+## **JFrog Platform configuration**
+
+1. **Configure an OIDC Integration**: This phase sets an integration between GitHub Actions to the JFrog platform.
+ 1. Navigate to the Administration tab In the JFrog Platform UI
+ 2. Click `General` | `Manage Integrations`
+ 3. Click `New Integration` | `OpenID Connect`:\
+ ![](../../../../.gitbook/assets/oidc-new-integration.png)
+ 4. Configure the OIDC integration:\
+ ![](../../../../.gitbook/assets/oidc-configure-integration.png)
+
+{% hint style="info" %}
+The 'Provider Name' value should be used as the 'oidc-provider-name' input in Workflow Configuration step 2 below.
+
+The 'Audience' field does NOT represent the 'aud' claim that can be added to identity-mapping configured in the 'Claims JSON' (shown below). Only claims that are included in the 'Claims Json' created during step 2 will be validated.
+{% endhint %}
+
+2. **Configure an identity mapping**: This phase sets an integration between a particular GitHub repository to the JFrog platform.
+
+ An identity mapping is a configuration object utilized by the JFrog Platform to associate incoming OIDC claims with particular selected fields. These fields might include `repository`, `actor`, `workflow`, and others. To configure the identity mapping, click on the identity mapping created in section 1 and then click on `Add Identity Mapping`. In the 'priority' field insert the value '1' and fill in the rest of the required fields:\
+ ![](../../../../.gitbook/assets/oidc-identity-mapping.png)
+
+ You have the flexibility to define any valid list of claims required for request authentication. You can check a list of the possible claims [here](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#understanding-the-oidc-token). Example Claims JSON:
+
+ ```json
+ {
+ "repository": "repository-owner/my-repository"
+ }
+ ```
+
+## Workflow configuration
+
+1. **Set required permissions**: In the course of the protocol's execution, it's imperative to acquire a JSON Web Token (JWT) from GitHub's OIDC provider. To request this token, it's essential to configure the specified permission in the workflow file:
+
+ ```yml
+ permissions:
+ id-token: write
+ ```
+2. **Pass the 'oidc-provider-name' input to the Action (Required)**: The 'oidc-provider-name' parameter designates the OIDC configuration whose one of its identity mapping should align with the generated JWT claims. This input needs to align with the 'Provider Name' value established within the OIDC configuration in the JFrog Platform.
+3. **Pass the 'oidc-audience' input to the Action (Optional)**: The 'oidc-audience' input defines the intended recipients of an ID token (JWT), ensuring access is restricted to authorized recipients for the JFrog Platform. By default, it contains the URL of the GitHub repository owner. It enforces a condition, allowing only workflows within the designated repository/organization to request an access token. Read more about it [here](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#customizing-the-audience-value).
+
+## Example for OpenID Connect Usage
+
+```
+- uses: jfrog/frogbot@v2
+ env:
+ JF_URL: ${{ vars.JF_URL }}
+ JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ oidc-provider-name: frogbot-integration
+```
+
+## **Troubleshooting**
+
+### Scan failures due to token expiration
+
+When using OIDC integration, you might encounter failures in Xray scans or JFrog Advanced Security scans due to token expiration. If this occurs, try extending the 'Token Expiration Time' in the 'Identity Mapping Configuration' phase to ensure the token remains valid until all scanners are triggered, which may vary depending on the project's size.
diff --git a/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/scan-git-repository-full-template.md b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/scan-git-repository-full-template.md
new file mode 100644
index 0000000..c009623
--- /dev/null
+++ b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/scan-git-repository-full-template.md
@@ -0,0 +1,155 @@
+# Scan Git Repository Full Template
+
+Here you can find the full template for Frogbot repository scan workflow:
+
+```yaml
+name: "Frogbot Scan Repository"
+on:
+ workflow_dispatch:
+ schedule:
+ # The repository will be scanned once a day at 00:00 GMT.
+ - cron: "0 0 * * *"
+permissions:
+ contents: write
+ pull-requests: write
+ security-events: write
+ # [Mandatory If using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # id-token: write
+jobs:
+ scan-repository:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ # The repository scanning will be triggered periodically on the following branches.
+ branch: ["dev"]
+ steps:
+ - uses: jfrog/frogbot@v2
+ env:
+ # [Mandatory]
+ # JFrog platform URL
+ JF_URL: ${{ secrets.JF_URL }}
+
+ # [Mandatory if JF_USER and JF_PASSWORD are not provided]
+ # JFrog access token with 'read' permissions on Xray service
+ JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog username with 'read' permissions for Xray. Must be provided with JF_PASSWORD
+ # JF_USER: ${{ secrets.JF_USER }}
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog password. Must be provided with JF_USER
+ # JF_PASSWORD: ${{ secrets.JF_PASSWORD }}
+
+ # [Mandatory]
+ # The GitHub token is automatically generated for the job
+ JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ # [Mandatory]
+ # The name of the branch on which Frogbot will perform the scan
+ JF_GIT_BASE_BRANCH: ${{ matrix.branch }}
+
+ # [Optional, default: https://api.github.com]
+ # API endpoint to GitHub
+ # JF_GIT_API_ENDPOINT: https://github.example.com
+
+ # [Optional]
+ # By default, the Frogbot workflows download the Frogbot executable as well as other tools
+ # needed from https://releases.jfrog.io
+ # If the machine that runs Frogbot has no access to the internet, follow these steps to allow the
+ # executable to be downloaded from an Artifactory instance, which the machine has access to:
+ #
+ # 1. Login to the Artifactory UI, with a user who has admin credentials.
+ # 2. Create a Remote Repository with the following properties set.
+ # Under the 'Basic' tab:
+ # Package Type: Generic
+ # URL: https://releases.jfrog.io
+ # Under the 'Advanced' tab:
+ # Uncheck the 'Store Artifacts Locally' option
+ # 3. Set the value of the 'JF_RELEASES_REPO' variable with the Repository Key you created.
+ # JF_RELEASES_REPO: ""
+
+ ##########################################################################
+ ## If your project uses a 'frogbot-config.yml' file, you can define ##
+ ## the following variables inside the file, instead of here. ##
+ ##########################################################################
+
+ # [Optional, default: "."]
+ # Relative path to the root of the project in the Git repository. If left empty (without providing "." yourself as default), a recursive scan is triggered from the root directory of the project.
+ # JF_WORKING_DIR: path/to/project/dir
+
+ # [Default: "*git*;*node_modules*;*target*;*venv*;*test*"]
+ # List of exclusion patterns (utilizing wildcards) for excluding paths in the source code of the Git repository during SCA scans.
+ # JF_PATH_EXCLUSIONS: "*git*;*node_modules*;*target*;*venv*;*test*"
+
+ # [Optional]
+ # Xray Watches. Learn more about them here: https://www.jfrog.com/confluence/display/JFROG/Configuring+Xray+Watches
+ # JF_WATCHES: ,...
+
+ # [Optional]
+ # JFrog project. Learn more about it here: https://www.jfrog.com/confluence/display/JFROG/Projects
+ # JF_PROJECT:
+
+ # [Optional, default: "TRUE"]
+ # Fails the Frogbot task if any security issue is found.
+ # JF_FAIL: "FALSE"
+
+ # [Optional]
+ # Frogbot will download the project dependencies, if they're not cached locally. To download the
+ # dependencies from a virtual repository in Artifactory, set the name of the repository. There's no
+ # need to set this value, if it is set in the frogbot-config.yml file.
+ # JF_DEPS_REPO: ""
+
+ # [Optional]
+ # Template for the branch name generated by Frogbot when creating pull requests with fixes.
+ # The template must include {BRANCH_NAME_HASH}, to ensure that the generated branch name is unique.
+ # The template can optionally include the {IMPACTED_PACKAGE} and {FIX_VERSION} variables.
+ # JF_BRANCH_NAME_TEMPLATE: "frogbot-{IMPACTED_PACKAGE}-{BRANCH_NAME_HASH}"
+
+ # [Optional]
+ # Template for the commit message generated by Frogbot when creating pull requests with fixes
+ # The template can optionally include the {IMPACTED_PACKAGE} and {FIX_VERSION} variables.
+ # JF_COMMIT_MESSAGE_TEMPLATE: "Upgrade {IMPACTED_PACKAGE} to {FIX_VERSION}"
+
+ # [Optional]
+ # Template for the pull request title generated by Frogbot when creating pull requests with fixes.
+ # The template can optionally include the {IMPACTED_PACKAGE} and {FIX_VERSION} variables.
+ # JF_PULL_REQUEST_TITLE_TEMPLATE: "[🐸 Frogbot] Upgrade {IMPACTED_PACKAGE} to {FIX_VERSION}"
+
+ # [Optional, Default: "FALSE"]
+ # If TRUE, Frogbot creates a single pull request with all the fixes.
+ # If FALSE, Frogbot creates a separate pull request for each fix.
+ # JF_GIT_AGGREGATE_FIXES: "FALSE"
+
+ # [Optional, Default: "FALSE"]
+ # Handle vulnerabilities with fix versions only
+ # JF_FIXABLE_ONLY: "TRUE"
+
+ # [Optional]
+ # Set the minimum severity for vulnerabilities that should be fixed and commented on in pull requests
+ # The following values are accepted: Low, Medium, High or Critical
+ # JF_MIN_SEVERITY: ""
+
+ # [Optional, Default: eco-system+frogbot@jfrog.com]
+ # Set the email of the commit author
+ # JF_GIT_EMAIL_AUTHOR: ""
+
+ # [Optional]
+ # Set the list of allowed licenses
+ # The full list of licenses can be found in:
+ # https://github.com/jfrog/frogbot/blob/master/docs/licenses.md
+ # JF_ALLOWED_LICENSES: "MIT, Apache-2.0"
+
+ # [Optional]
+ # Avoid adding extra info to pull request comments. that isn't related to the scan findings.
+ # JF_AVOID_EXTRA_MESSAGES: "TRUE"
+
+ # [Optional]
+ # Add a title to pull request comments generated by Frogbot.
+ # JF_PR_COMMENT_TITLE: ""
+
+ # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD
+ # with:
+ # oidc-provider-name: ""
+```
diff --git a/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/scan-pull-request-full-template.md b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/scan-pull-request-full-template.md
new file mode 100644
index 0000000..d6669b1
--- /dev/null
+++ b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-github-actions/scan-pull-request-full-template.md
@@ -0,0 +1,161 @@
+# Scan Pull Request Full Template
+
+Here you can find the full template for Frogbot pull request scan workflow:
+
+```yaml
+name: "Frogbot Scan Pull Request"
+on:
+ pull_request_target:
+ types: [opened, synchronize]
+permissions:
+ pull-requests: write
+ contents: read
+ # [Mandatory If using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # id-token: write
+jobs:
+ scan-pull-request:
+ runs-on: ubuntu-latest
+ # A pull request needs to be approved before Frogbot scans it. Any GitHub user who is associated with the
+ # "frogbot" GitHub environment can approve the pull request to be scanned.
+ environment: frogbot
+ steps:
+ - uses: jfrog/frogbot@v2
+ env:
+ # [Mandatory]
+ # JFrog platform URL
+ JF_URL: ${{ secrets.JF_URL }}
+
+ # [Mandatory if JF_USER and JF_PASSWORD are not provided]
+ # JFrog access token with 'read' permissions on Xray service
+ JF_ACCESS_TOKEN: ${{ secrets.JF_ACCESS_TOKEN }}
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog username with 'read' permissions for Xray. Must be provided with JF_PASSWORD
+ # JF_USER: ${{ secrets.JF_USER }}
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog password. Must be provided with JF_USER
+ # JF_PASSWORD: ${{ secrets.JF_PASSWORD }}
+
+ # [Mandatory]
+ # The GitHub token is automatically generated for the job
+ JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ # [Optional, default: https://api.github.com]
+ # API endpoint to GitHub
+ # JF_GIT_API_ENDPOINT: https://github.example.com
+
+ # [Optional]
+ # By default, the Frogbot workflows download the Frogbot executable as well as other tools
+ # needed from https://releases.jfrog.io
+ # If the machine that runs Frogbot has no access to the internet, follow these steps to allow the
+ # executable to be downloaded from an Artifactory instance, which the machine has access to:
+ #
+ # 1. Login to the Artifactory UI, with a user who has admin credentials.
+ # 2. Create a Remote Repository with the following properties set.
+ # Under the 'Basic' tab:
+ # Package Type: Generic
+ # URL: https://releases.jfrog.io
+ # Under the 'Advanced' tab:
+ # Uncheck the 'Store Artifacts Locally' option
+ # 3. Set the value of the 'JF_RELEASES_REPO' variable with the Repository Key you created.
+ # JF_RELEASES_REPO: ""
+
+ # [Optional]
+ # Configure the SMTP server to enable Frogbot to send emails with detected secrets in pull request scans.
+ # SMTP server URL including should the relevant port: (Example: smtp.server.com:8080)
+ # JF_SMTP_SERVER: ""
+
+ # [Mandatory if JF_SMTP_SERVER is set]
+ # The username required for authenticating with the SMTP server.
+ # JF_SMTP_USER: ""
+
+ # [Mandatory if JF_SMTP_SERVER is set]
+ # The password associated with the username required for authentication with the SMTP server.
+ # JF_SMTP_PASSWORD: ""
+
+ ##########################################################################
+ ## If your project uses a 'frogbot-config.yml' file, you can define ##
+ ## the following variables inside the file, instead of here. ##
+ ##########################################################################
+
+ # [Mandatory if the two conditions below are met]
+ # 1. The project uses yarn 2, NuGet or .NET Core to download its dependencies
+ # 2. The `installCommand` variable isn't set in your frogbot-config.yml file.
+ #
+ # The command that installs the project dependencies (e.g "nuget restore")
+ # JF_INSTALL_DEPS_CMD: ""
+
+ # [Optional, default: "."]
+ # Relative path to the root of the project in the Git repository. If left empty (without providing "." yourself as default), a recursive scan is triggered from the root directory of the project.
+ # JF_WORKING_DIR: path/to/project/dir
+
+ # [Default: "*git*;*node_modules*;*target*;*venv*;*test*"]
+ # List of exclusion patterns (utilizing wildcards) for excluding paths in the source code of the Git repository during SCA scans.
+ # JF_PATH_EXCLUSIONS: "*git*;*node_modules*;*target*;*venv*;*test*"
+
+ # [Optional]
+ # Xray Watches. Learn more about them here: https://www.jfrog.com/confluence/display/JFROG/Configuring+Xray+Watches
+ # JF_WATCHES: ,...
+
+ # [Optional]
+ # JFrog project. Learn more about it here: https://www.jfrog.com/confluence/display/JFROG/Projects
+ # JF_PROJECT:
+
+ # [Optional, default: "FALSE"]
+ # Displays all existing vulnerabilities, including the ones that were added by the pull request.
+ # JF_INCLUDE_ALL_VULNERABILITIES: "TRUE"
+
+ # [Optional, default: "FALSE"]
+ # When adding new comments on pull requests, keep old comments that were added by previous scans.
+ # JF_AVOID_PREVIOUS_PR_COMMENTS_DELETION: "TRUE"
+
+ # [Optional, default: "TRUE"]
+ # Fails the Frogbot task if any security issue is found.
+ # JF_FAIL: "FALSE"
+
+ # [Optional]
+ # Frogbot will download the project dependencies if they're not cached locally. To download the
+ # dependencies from a virtual repository in Artifactory, set the name of the repository. There's no
+ # need to set this value, if it is set in the frogbot-config.yml file.
+ # JF_DEPS_REPO: ""
+
+ # [Optional, Default: "FALSE"]
+ # If TRUE, Frogbot creates a single pull request with all the fixes.
+ # If false, Frogbot creates a separate pull request for each fix.
+ # JF_GIT_AGGREGATE_FIXES: "FALSE"
+
+ # [Optional, Default: "FALSE"]
+ # Handle vulnerabilities with fix versions only
+ # JF_FIXABLE_ONLY: "TRUE"
+
+ # [Optional]
+ # Set the minimum severity for vulnerabilities that should be fixed and commented on in pull requests
+ # The following values are accepted: Low, Medium, High or Critical
+ # JF_MIN_SEVERITY: ""
+
+ # [Optional]
+ # List of comma-separated(,) email addresses to receive email notifications about secrets
+ # detected during pull request scanning. The notification is also sent to the email set
+ # in the committer git profile regardless of whether this variable is set or not.
+ # JF_EMAIL_RECEIVERS: ""
+
+ # [Optional]
+ # Set the list of allowed licenses
+ # The full list of licenses can be found in:
+ # https://github.com/jfrog/frogbot/blob/master/docs/licenses.md
+ # JF_ALLOWED_LICENSES: "MIT, Apache-2.0"
+
+ # [Optional]
+ # Avoid adding extra info to pull request comments. that isn't related to the scan findings.
+ # JF_AVOID_EXTRA_MESSAGES: "TRUE"
+
+ # [Optional]
+ # Add a title to pull request comments generated by Frogbot.
+ # JF_PR_COMMENT_TITLE: ""
+
+ # [Mandatory if using OIDC authentication protocol instead of JF_ACCESS_TOKEN]
+ # Insert to oidc-provider-name the 'Provider Name' defined in the OIDC integration configured in the JPD
+ # with:
+ # oidc-provider-name: ""
+```
diff --git a/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/README.md b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/README.md
new file mode 100644
index 0000000..9d932fa
--- /dev/null
+++ b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/README.md
@@ -0,0 +1,91 @@
+---
+description: Install Frogbot on GitLab repositories using GitLab CI
+---
+
+# Setup Frogbot Using GitLab CI
+
+## Prepare GitLab to work with Frogbot
+
+1. Make sure you have the connection details of your JFrog environment.
+2. Go to your GitLab repository settings page and save the JFrog connection details as repository secrets with the following names - **JF\_URL**, **JF\_USER**, and **JF\_PASSWORD.**
+
+> _**NOTE:**_
+>
+> * You can use **JF\_XRAY\_URL** and **JF\_ARTIFACTORY\_URL** instead of **JF\_URL**.
+> * You can use **JF\_ACCESS\_TOKEN** instead of **JF\_USER** and **JF\_PASSWORD**.
+> * Ensure not set these tokens as **protected** in Gitlab.
+
+3. Add a job named **frogbot-scan** to your `.gitlab-ci.yml` file in your GitLab repository. Use the following for execution:
+
+
+
+Frogbot template to scan Repository and Pull Request
+
+```yml
+frogbot-scan:
+ rules:
+ - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+ when: manual
+ variables:
+ FROGBOT_CMD: "scan-pull-request"
+ JF_GIT_BASE_BRANCH: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
+ # Repository scanning is triggered by any push to the default branch.
+ # If you'd like a different branch to be scanned, replace $CI_DEFAULT_BRANCH in the line below with the name of the branch, wrapped with quotes (").
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_PIPELINE_SOURCE == "schedule"
+ variables:
+ FROGBOT_CMD: "scan-repository"
+ JF_GIT_BASE_BRANCH: $CI_COMMIT_BRANCH
+ variables:
+ # [Mandatory]
+ # JFrog platform URL (This functionality requires version 3.29.0 or above of Xray)
+ JF_URL: $JF_URL
+
+ # [Mandatory if JF_USER and JF_PASSWORD are not provided]
+ # JFrog access token with 'read' permissions for Xray
+ JF_ACCESS_TOKEN: $JF_ACCESS_TOKEN
+
+ # [Mandatory if JF_ACCESS_TOKEN is not provided]
+ # JFrog user and password with 'read' permissions for Xray
+ # JF_USER: $JF_USER
+ # JF_PASSWORD: $JF_PASSWORD
+
+ # [Mandatory]
+ # GitLab access token. Ensure the token has the following permissions, depedending on your GiLab deployment type:
+ # Self hosted: api, read_api, read_user, read_repository.
+ # Cloud: api, read_api, read_repository
+ JF_GIT_TOKEN: $USER_TOKEN
+
+ # Predefined GitLab variables. There's no need to set them.
+ JF_GIT_PROVIDER: gitlab
+ JF_GIT_OWNER: $CI_PROJECT_NAMESPACE
+ JF_GIT_REPO: $CI_PROJECT_NAME
+ JF_GIT_PULL_REQUEST_ID: $CI_MERGE_REQUEST_IID
+
+ # [Mandatory if the two conditions below are met]
+ # 1. The project uses yarn 2, NuGet, or .NET to download its dependencies
+ # 2. The `installCommand` variable isn't set in your frogbot-config.yml file.
+ #
+ # The command that installs the project dependencies (e.g "nuget restore")
+ JF_INSTALL_DEPS_CMD: ""
+
+ script:
+ # For Linux / MacOS runner:
+ - |
+ getFrogbotScriptPath=$(if [ -z "$JF_RELEASES_REPO" ]; then echo "https://releases.jfrog.io"; else echo "${JF_URL}/artifactory/${JF_RELEASES_REPO}"; fi)
+ curl -fLg "$getFrogbotScriptPath/artifactory/frogbot/v2/[RELEASE]/getFrogbot.sh" | sh
+ ./frogbot ${FROGBOT_CMD}
+
+ # For Windows runner:
+ #
+ # - $getFrogbotScriptPath = $(if ([string]::IsNullOrEmpty($env:JF_RELEASES_REPO)) { "https://releases.jfrog.io" } else { "$($env:JF_URL)/artifactory/$($env:JF_RELEASES_REPO)" })
+ # - Invoke-WebRequest -Uri "$getFrogbotScriptPath/artifactory/frogbot/v2/[RELEASE]/getFrogbot.sh" -UseBasicParsing | ForEach-Object { & $_.Content }
+ # - .\frogbot ${FROGBOT_CMD}
+```
+
+
+
+{% hint style="info" %}
+In the `gitlab-ci.yml` file, Make sure that either **JF\_USER** and **JF\_PASSWORD** or **JF\_ACCESS\_TOKEN** are set, **but not both**.
+
+For more advanced configuration, use [GitLab full template](gitlab-full-template.md) to see all available options.
+{% endhint %}
diff --git a/jfrog-applications/frogbot/setup-frogbot-using-gitlab-ci.md b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/gitlab-full-template.md
similarity index 90%
rename from jfrog-applications/frogbot/setup-frogbot-using-gitlab-ci.md
rename to jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/gitlab-full-template.md
index 11cc15f..eb60253 100644
--- a/jfrog-applications/frogbot/setup-frogbot-using-gitlab-ci.md
+++ b/jfrog-applications/jfrog-applications/frogbot/setup-frogbot/setup-frogbot-using-gitlab-ci/gitlab-full-template.md
@@ -1,22 +1,8 @@
-# Setup Frogbot Using GitLab CI
+# GitLab Full Template
-To install Frogbot on GitLab repositories using GitLab CI:
+Here you can find the full template for Frogbot:
-1. Make sure you have the connection details of your JFrog environment.
-2. Go to your GitLab repository settings page and save the JFrog connection details as repository secrets with the following names - **JF\_URL**, **JF\_USER**, and **JF\_PASSWORD**
-
-> _**NOTE:**_
-> * You can use **JF\_XRAY\_URL** and **JF\_ARTIFACTORY\_URL** instead of **JF\_URL**.
-> * You can use **JF\_ACCESS\_TOKEN** instead of **JF\_USER** and **JF\_PASSWORD**.
-> * Ensure not set these tokens as **protected** in Gitlab.
-
-3. Add a job named **frogbot-scan** to your **.gitlab-ci.yml** file in your GitLab repository using the code block below.
-
-**Important**
-
-* Make sure that either **JF\_USER** and **JF\_PASSWORD** or **JF\_ACCESS\_TOKEN** are set, **but not both**.
-
-```yml
+```yaml
frogbot-scan:
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
@@ -178,7 +164,7 @@ frogbot-scan:
# JF_GIT_EMAIL_AUTHOR: ""
# [Optional]
- # List of comma separated email addresses to receive email notifications about secrets
+ # List of comma-separated(,) email addresses to receive email notifications about secrets
# detected during pull request scanning. The notification is also sent to the email set
# in the committer git profile regardless of whether this variable is set or not.
# JF_EMAIL_RECEIVERS: ""
diff --git a/jfrog-applications/jfrog-applications/frogbot/supported-technologies.md b/jfrog-applications/jfrog-applications/frogbot/supported-technologies.md
index bf67427..d3a74a7 100644
--- a/jfrog-applications/jfrog-applications/frogbot/supported-technologies.md
+++ b/jfrog-applications/jfrog-applications/frogbot/supported-technologies.md
@@ -1,3 +1,3 @@
# Supported Technologies
-
diff --git a/jfrog-applications/jfrog-applications/jfrog-cli/cli-for-jfrog-security/count-contributing-developers.md b/jfrog-applications/jfrog-applications/jfrog-cli/cli-for-jfrog-security/count-contributing-developers.md
new file mode 100644
index 0000000..182ea6c
--- /dev/null
+++ b/jfrog-applications/jfrog-applications/jfrog-cli/cli-for-jfrog-security/count-contributing-developers.md
@@ -0,0 +1,221 @@
+# Count Contributing Developers
+
+{% hint style="info" %}
+This feature is supported in JFrog CLI version 2.60.0
+{% endhint %}
+
+The `git count-contributors` command allows JFrog users to easily determine the number of Git developers contributing to their code. The counts indicate the number of contributing developers to the **default branch**.
+
+The command counts the contributing developers for all commits performed within a specified time range. The results are based on email addresses, thus giving you a specific number of unique developers.
+
+We provide several options to obtain the developer count:
+
+* **A single repository**: Analyze a single Git repository by providing the repository name.
+* **Across a project/group**: Analyze multiple repositories organized under a project/group by providing the owner command option.
+* **Across multiple Git servers**: Analyze repositories across various Git servers by providing a YAML file as an input file with the required parameters outlined below.
+
+This information can be helpful when purchasing an Advanced Security subscription, as the number of developers is often a key factor in pricing.
+
+Supported Git providers:
+
+* GitHub
+* GitLab
+* Bitbucket
+
+{% hint style="info" %}
+The CLI outputs may include an estimation of the contributing developers based on the input provided by the user. They may be based on third-party resources and databases and JFrog does not guarantee that the CLI outputs are accurate and/or complete. The CLI outputs are not legal advice and you are solely responsible for your use of it. CLI outputs are provided "as is" and any representation or warranty of or concerning any third-party technology is strictly between the user and the third-party owner or distributor of the third-party technology.
+{% endhint %}
+
+### Usage
+
+The `git count-contributors` command can be run from the JFrog CLI with the following syntax:
+
+```
+git count-contributors [command options]
+```
+
+| Command Option | Description |
+| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| --scm-type |
(optional) The type of SCM to use for the analysis.
(optional) The base URL of the SCM system's API endpoint.
Format: The full URL, including the protocol Example: --scm-api-url=https://api.github.com
|
+| --token | (optional) The authentication token required to access the SCM system's API. In the absence of a flag, tokens should be passed in the JF\_GIT\_TOKEN environment variable, or the corresponding environment variables 'JFROG\_CLI\_GITLAB\_TOKEN, JFROG\_CLI\_GITHUB\_TOKEN or JFROG\_CLI\_BITBUCKET\_TOKEN' Example: `--token:your_access_token` |
+| --owner | (optional) The owner or organization of the repositories to be analyzed. Format: Depending on the Git provider. On GitHub and GitLab, the owner is typically an individual or an organization, On Bitbucket, the owner can also be a project. In the case of a private instance on Bitbucket, the individual or organization name should be prefixed with '\~'. When using this option without a specific repository name, all repositories will be analyzed at the group/project level. Example: `owner=your-organization` |
+| --months | (optional) The number of months to analyze for developer activity. Default: `1` Example: `--months=6` |
+| --detailed-summary | (optional) Generates a more detailed summary of the contributors. Default: `false` Example: `--detailed-summary=true` |
+| --repo-name | (optional) List of semicolon-separated(;) repositories names to analyze, If not provided all repositories related to the provided owner will be analyzed. Example: --repo-name=repo1;repo2 |
+| --input-file | (optional) The path to an input file in YAML format that contains multiple git providers. Example: `--input-file="/Users/path/to/file/input.yaml"` |
+| --verbose |
(optional)
Enables verbose output, providing more detailed information.
+
+[^1]:
+
+[^2]:
+
+[^3]:
+
+[^4]:
+
+[^5]:
+
+[^6]:
+
+[^7]:
+
+[^8]:
diff --git a/jfrog-applications/jfrog-cli/cli-command-summaries.md b/jfrog-applications/jfrog-cli/cli-command-summaries.md
new file mode 100644
index 0000000..69331cf
--- /dev/null
+++ b/jfrog-applications/jfrog-cli/cli-command-summaries.md
@@ -0,0 +1,144 @@
+# CLI Command Summaries
+
+## Overview
+
+The **Command Summaries** feature enables the recording of JFrog CLI command outputs into the local file system.
+This functionality can be used to generate a summary in the context of an entire workflow
+(a sequence of JFrog CLI commands) and not only in the scope of a specific command.
+
+An instance of how **Command Summaries** are utilized can be observed in the [setup-cli GitHub action](https://github.com/jfrog/setup-jfrog-cli/blob/master/README.md#JFrog-Job-Summary).
+This action employs the compiled markdown to generate a comprehensive summary of the entire workflow.
+
+### Currently supported commands:
+`jf rt build-publish`
+
+![rt-upload-summary-example](../.gitbook/assets/build-info-summary.png)
+
+`jf rt upload`
+
+![rt-upload-summary-example](../.gitbook/assets/rt-upload-summary.png)
+
+`jf scan `
+
+![jf-scan-example](../.gitbook/assets/jf-scan-summary.png)
+
+
+`jf build-scan `
+
+![jf-scan-example](../.gitbook/assets/jf-build-scan-summary.png)
+
+
+## Notes for Developers
+
+Each command execution that incorporates this feature can save data files into the file system.
+These files are then used to create an aggregated summary in Markdown format.
+
+Saving data to the filesystem is essential because CLI command executes in separate contexts.
+Consequently, each command that records new data should also incorporate any existing data into the aggregated markdown.
+This is required because the CLI cannot determine when a command will be the last one executed in a sequence of commands.
+
+### ⚠️ Attention: Files Remain After CLI Execution
+The CLI does not automatically remove the files as they are designed to remain beyond a single execution.
+As a result, it is your responsibility to you to manage your pipelines and delete files as necessary.
+You can clear the entire directory
+of `JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR` that you have configured to activate this feature.
+
+
+To use the **Command Summaries**, you'll need to set the `JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR` environment variable.
+This variable designates the directory where the data files and markdown files will be stored.
+
+
+### How to Implement?
+
+If you wish to contribute a new CLI command summary to the existing ones,
+you can submit a pull request once you've followed these implementation guidelines:
+
+
+1. Implement the CommandSummaryInterface
+2. Record data during runtime
+
+#### Implement the CommandSummaryInterface
+ ```go
+type CommandSummaryInterface interface {
+ GenerateMarkdownFromFiles(dataFilePaths []string) (finalMarkdown string, err error)
+}
+ ```
+
+#### Record Data During Runtime
+```go
+// Initialize your implementation
+myNewCommandSummary, err := commandsummary.New(&MyCommandStruct{}, "myNewCommandSummary")
+if err != nil {
+ return
+}
+// Record
+return myNewCommandSummary.Record(data)
+ ```
+
+The `GenerateMarkdownFromFiles` function needs to process multiple data files, which are the results of previous command executions, and generate a single markdown string content. As each CLI command has its own context, we need to regenerate the entire markdown with the newly added results each time.
+
+### Example Implementation
+
+
+```go
+// Step 1. Implement the CommandSummaryInterface
+type CommandStruct struct{}
+
+type singleRecordedObject struct {
+ Name string
+}
+
+func (cs *CommandStruct) GenerateMarkdownFromFiles(dataFilePaths []string) (markdown string, err error) {
+ // Aggregate all the results into a slice
+ var recordedObjects []*singleRecordedObject
+ for _, path := range dataFilePaths {
+ var singleObject singleRecordedObject
+ if err = commandsummary.UnmarshalFromFilePath(path, &singleObject); err != nil {
+ return
+ }
+ recordedObjects = append(recordedObjects, &singleObject)
+ }
+
+ // Create markdown
+ markdown = results.String()
+ return
+}
+
+// Step 2. Record data during runtime
+func recordCommandSummary(data any) (err error) {
+ if !commandsummary.ShouldRecordSummary() {
+ return
+ }
+
+ commandSummaryImplementation, err := commandsummary.New(&CommandStruct{}, "CommandName")
+ if err != nil {
+ return
+ }
+
+ return commandSummaryImplementation.Record(data)
+}
+
+ ```
+
+### How Does It Work?
+
+Each command that implements the `CommandSummaryInterface` will have its own subdirectory inside the `JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR/JFROG_COMMAND_SUMMARY` directory.
+
+Every subdirectory will house data files, each one corresponding to a command recording,
+along with a markdown file that has been created from all the data files.
+The function implemented by the user is responsible
+for processing all the data files within its respective subdirectory and generating a markdown string.
+
+```
+JFROG_CLI_COMMAND_SUMMARY_OUTPUT_DIR/JFROG_COMMAND_SUMMARY
+│
+└─── Command1
+│ datafile1.txt
+│ datafile2.txt
+│ markdown.txt
+│
+└─── Command2
+ datafile1.txt
+ datafile2.txt
+ markdown.txt
+```
diff --git a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/authentication.md b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/authentication.md
index 22f7f3d..61175e9 100644
--- a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/authentication.md
+++ b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/authentication.md
@@ -8,9 +8,9 @@ To authenticate yourself using your JFrog login credentials, either configure yo
| Command option | Description |
|----------------|-----------------------------------------------------------------------|
-| --url | JFrog Artifactory API endpoint URL. It usually ends with /artifactory |
-| --user | JFrog username |
-| --password | JFrog password or API key |
+| `--url` | JFrog Artifactory API endpoint URL. It usually ends with /artifactory |
+| `--user` | JFrog username |
+| `--password` | JFrog password or API key |
For enhanced security, when JFrog CLI is configured to use a username and password / API key, it automatically generates an access token to authenticate with Artifactory. The generated access token is valid for one hour only. JFrog CLI automatically refreshed the token before it expires. The **jf c add** command allows disabling this functionality. This feature is currently not supported by commands which use external tools or package managers or work with JFrog Distribution.
@@ -18,10 +18,10 @@ For enhanced security, when JFrog CLI is configured to use a username and passwo
To authenticate yourself using an Artifactory Access Token, either configure your Access Token once using the **jf c add** command or provide the following option to each command.
-| Command option | Description |
-|----------------|-----------------------------------------------------------------------|
-| --url | JFrog Artifactory API endpoint URL. It usually ends with /artifactory |
-| --access-token | JFrog access token |
+| Command option | Description |
+|------------------|-----------------------------------------------------------------------|
+| `--url` | JFrog Artifactory API endpoint URL. It usually ends with /artifactory |
+| `--access-token` | JFrog access token |
## Authenticating with RSA Keys
diff --git a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration.md b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration.md
index 259cc07..4db7d4f 100644
--- a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration.md
+++ b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/build-integration.md
@@ -38,19 +38,23 @@ This command is used to collect environment variables and attach them to a build
Environment variables are collected using the `build-collect-env` (`bce`) command.
+#### Usage
+
+```jf rt bce ```
+
#### Commands Params
The following table lists the command arguments and flags:
-| | |
-|-------------------|---------------------------------------------|
-| Command name | rt build-collect-env |
-| Abbreviation | rt bce |
-| Command options | |
-| --project |
[Optional]
JFrog project key.
|
-| Command arguments | The command accepts two arguments. |
-| Build name | Build name. |
-| Build number | Build number. |
+| | |
+|------------------------|-----------------------------------------|
+| Command name | rt build-collect-env |
+| Abbreviation | rt bce |
+| **Command arguments:** | The command accepts two arguments. |
+| Build name | Build name. |
+| Build number | Build number. |
+| **Command options:** | |
+| `--project` |
[Optional] JFrog project key.
|
#### Examples
##### Example 1
@@ -73,22 +77,26 @@ jf rt bce frogger-build 17
The `build-add-git` (bag) command collects the Git revision and URL from the local .git directory and adds it to the build-info. It can also collect the list of tracked project issues (for example, issues stored in JIRA or other bug tracking systems) and add them to the build-info. The issues are collected by reading the git commit messages from the local git log. Each commit message is matched against a pre-configured regular expression, which retrieves the issue ID and issue summary. The information required for collecting the issues is retrieved from a yaml configuration file provided to the command.
+#### Usage
+
+```jf rt bag [command options] [Path To .git]```
+
#### Commands Params
The following table lists the command arguments and flags:
-| | |
-|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Command name | rt build-add-git |
-| Abbreviation | rt bag |
-| Command options | |
-| --config |
[Optional]
Path to a yaml configuration file, used for collecting tracked project issues and adding them to the build-info.
|
-| --server-id |
[Optional]
Server ID configured using the 'jf config' command. This is the server to which the build-info will be later published, using the jf rt build-publish command. This option, if provided, overrides the serverID value in this command's yaml configuration. If both values are not provided, the default server, configured by the 'jf config' command, is used.
|
-| --project |
[Optional]
JFrog project key.
|
-| Command arguments | The command accepts three arguments. |
-| Build name | Build name. |
-| Build number | Build number. |
-| .git path | Optional - Path to a directory containing the .git directory. If not specific, the .git directory is assumed to be in the current directory or in one of the parent directories. |
+| | |
+|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Command name | rt build-add-git |
+| Abbreviation | rt bag |
+| **Command arguments:** | The command accepts three arguments. |
+| Build name | Build name. |
+| Build number | Build number. |
+| .git path | Optional - Path to a directory containing the .git directory. If not specific, the .git directory is assumed to be in the current directory or in one of the parent directories. |
+| **Command options:** | |
+| `--config` |
[Optional] Path to a yaml configuration file, used for collecting tracked project issues and adding them to the build-info.
|
+| `--server-id` |
[Optional] Server ID configured using the 'jf config' command. This is the server to which the build-info will be later published, using the jf rt build-publish command. This option, if provided, overrides the serverID value in this command's yaml configuration. If both values are not provided, the default server, configured by the 'jf config' command, is used.
|
+| `--project` |
[Optional] JFrog project key.
|
#### Configuration file properties
@@ -136,26 +144,31 @@ The download command, as well as other commands which download dependencies from
By default, the command collects the files from the local file system. If you'd like the files to be collected from Artifactory however, add the **--from-rt** option to the command.
+#### Usage
+
+```jf rt bad [command options] ```
+```jf rt bad --spec= [command options] ```
+
#### Commands Params
-| | |
-|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Command name | rt build-add-dependencies |
-| Abbreviation | rt bad |
-| Command options |
Warning
When using the * or ; characters in the command options or arguments, make sure to wrap the whole options or arguments string in quotes (") to make sure the * or ; characters are not interpreted as literals.
|
-| --from-rt |
[Default: false]
Set to true to search the files in Artifactory, rather than on the local file system. The --regexp option is not supported when --from-rt is set to true.
|
-| --server-id |
[Optional]
Server ID configured using the config command.
|
-| --spec |
[Optional]
Path to a File Spec.
|
-| --spec-vars |
[Optional]
List of variables in the form of "key1=value1;key2=value2;..." to be replaced in the File Spec. In the File Spec, the variables should be used as follows: ${key1}.
|
-| --recursive |
[Default: true]
When false, artifacts inside sub-folders in Artifactory will not be affected.
|
-| --regexp |
[Optional: false]
[Default: false] Set to true to use a regular expression instead of wildcards expression to collect files to be added to the build info.This option is not supported when --from-rt is set to true.
|
-| --dry-run |
[Default: false]
Set to true to only get a summery of the dependencies that will be added to the build info.
|
-| --module |
[Optional]
Optional module name in the build-info for adding the dependency.
|
-| --exclusions | A list of Semicolon-separated exclude patterns. Allows using wildcards or a regular expression according to the value of the 'regexp' option. |
-| Command arguments | The command takes three arguments. |
-| Build name | The build name to add the dependencies to |
-| Build number | The build number to add the dependencies to |
-| Pattern | Specifies the local file system path to dependencies which should be added to the build info. You can specify multiple dependencies by using wildcards or a regular expression as designated by the --regexp command option. If you have specified that you are using regular expressions, then the first one used in the argument must be enclosed in parenthesis. |
+| | |
+|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Command name | rt build-add-dependencies |
+| Abbreviation | rt bad |
+| **Command arguments:** | The command takes three arguments. |
+| Build name | The build name to add the dependencies to |
+| Build number | The build number to add the dependencies to |
+| Pattern | Specifies the local file system path to dependencies which should be added to the build info. You can specify multiple dependencies by using wildcards or a regular expression as designated by the --regexp command option. If you have specified that you are using regular expressions, then the first one used in the argument must be enclosed in parenthesis. |
+| **Command options:** |
When using the * or ; characters in the command options or arguments, make sure to wrap the whole options or arguments string in quotes (") to make sure the * or ; characters are not interpreted as literals.
|
+| `--from-rt` |
[Default: false] Set to true to search the files in Artifactory, rather than on the local file system. The --regexp option is not supported when --from-rt is set to true.
|
+| `--server-id` |
[Optional] Server ID configured using the 'jf config' command.
|
+| `--spec` |
[Optional] Path to a File Spec.
|
+| `--spec-vars` |
[Optional] List of semicolon-separated(;) variables in the form of "key1=value1;key2=value2;..." to be replaced in the File Spec. In the File Spec, the variables should be used as follows: ${key1}.
|
+| `--recursive` |
[Default: true] When false, artifacts inside sub-folders in Artifactory will not be affected.
|
+| `--regexp` |
[Optional: false] [Default: false] Set to true to use a regular expression instead of wildcards expression to collect files to be added to the build info.This option is not supported when --from-rt is set to true.
|
+| `--dry-run` |
[Default: false] Set to true to only get a summery of the dependencies that will be added to the build info.
|
+| `--module` |
[Optional] Optional module name in the build-info for adding the dependency.
|
+| `--exclusions` | A list of semicolon-separated(;) exclude patterns. Allows using wildcards or a regular expression according to the value of the `regexp` option. |
#### Examples
##### Example 1
@@ -187,27 +200,28 @@ jf rt bad my-build-name 7 "path/to/build/dependencies/dir/" --module m1
This command is used to publish build info to Artifactory. To publish the accumulated build-info for a build to Artifactory, use the **build-publish** command.
For example, the following command publishes all the build-info collected for build **my-build-name** with build number 18:
-```
-jf rt bp my-build-name 18
-```
+### Usage
+
+```jf rt bp [command options] ```
+
### Commands Params
-| | |
-|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Command name | rt build-publish |
-| Abbreviation | rt bp |
-| Command options | |
-| --server-id |
[Optional]
Server ID configured using the config command. If not specified, the default configured Artifactory server is used.
|
-| --project |
[Optional]
JFrog project key.
|
-| --build-url |
[Optional]
Can be used for setting the CI server build URL in the build-info.
|
-| --env-include |
[Default: *]
List of patterns in the form of "value1;value2;..." Only environment variables that match those patterns will be included in the build info.
|
-| --env-exclude |
[Default: *password*;*secret*;*key*]
List of case insensitive patterns in the form of "value1;value2;..." environment variables match those patterns will be excluded.
|
-| --dry-run |
[Default: false]
Set to true to disable communication with Artifactory.
|
-| --insecure-tls |
[Default: false]
Set to true to skip TLS certificates verification.
|
-| Command arguments | The command accepts two arguments. |
-| Build name | Build name to be published. |
-| Build number | Build number to be published. |
+| | |
+|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Command name | rt build-publish |
+| Abbreviation | rt bp |
+| **Command arguments:** | The command accepts two arguments. |
+| Build name | Build name to be published. |
+| Build number | Build number to be published. |
+| **Command options:** | |
+| `--server-id` |
[Optional] Server ID configured using the 'jf config' command. If not specified, the default configured Artifactory server is used.
|
+| `--project` |
[Optional] JFrog project key.
|
+| `--build-url` |
[Optional] Can be used for setting the CI server build URL in the build-info.
|
+| `--env-include` |
[Default: *] List of semicolon-separated(;) patterns in the form of "value1;value2;..." Only environment variables that match those patterns will be included in the build info.
|
+| `--env-exclude` |
[Default: *password*;*secret*;*key*] List of semicolon-separated(;) case insensitive patterns in the form of "value1;value2;..." environment variables match those patterns will be excluded.
|
+| `--dry-run` |
[Default: false] Set to true to disable communication with Artifactory.
|
+| `--insecure-tls` |
[Default: false] Set to true to skip TLS certificates verification.
| |
### Example
@@ -253,16 +267,23 @@ The way to do this is by using the **build-append** command. Running this comman
Now, when downloading the artifacts of the "master" build, you'll actually be downloading the artifacts of all of its referenced builds. The examples below demonstrates this,
+### Usage
+
+```jf rt ba ```
+
+### Commands Params
+
| | |
|------------------------|-----------------------------------------------------------|
| Command name | rt build-append |
| Abbreviation | rt ba |
-| Command options | This command has no options. |
-| Command arguments | The command accepts four arguments. |
+| **Command arguments:** | The command accepts four arguments. |
| Build name | The current (not yet published) build name. |
| Build number | The current (not yet published) build number, |
| build name to append | The published build name to append to the current build |
| build number to append | The published build number to append to the current build |
+| **Command options:** | This command has no options. |
+
**Requirements**
@@ -296,27 +317,31 @@ jf rt download --build aggregating-build/10
This command is used to [promote build](https://jfrog.com/knowledge-base/how-does-build-promotion-work/) in Artifactory.
+### Usage
+
+```jf rt bpr [command options] ```
+
### Commands Params
-| | |
-|------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
-| Command name | rt build-promote |
-| Abbreviation | rt bpr |
-| Command options | |
-| --server-id |
[Optional]
Server ID configured using the config command. If not specified, the default configured Artifactory server is used.
|
-| --project |
[Optional]
JFrog project key.
|
-| --status |
[Optional]
Build promotion status.
|
-| --comment |
[Optional]
Build promotion comment.
|
-| --source-repo |
[Optional]
Build promotion source repository.
|
-| --include-dependencies |
[Default: false]
If set to true, the build dependencies are also promoted.
|
-| --copy |
[Default: false]
If set true, the build artifacts and dependencies are copied to the target repository, otherwise they are moved.
|
-| --props |
[Optional]
List of properties in the form of "key1=value1;key2=value2,...". to attach to the build artifacts.
|
-| --dry-run |
[Default: false]
If true, promotion is only simulated. The build is not promoted.
|
-| --insecure-tls |
[Default: false]
Set to true to skip TLS certificates verification.
|
-| Command arguments | The command accepts three arguments. |
-| Build name | Build name to be promoted. |
-| Build number | Build number to be promoted. |
-| Target repository | Build promotion target repository. |
+| | |
+|--------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
+| Command name | rt build-promote |
+| Abbreviation | rt bpr |
+| **Command arguments:** | The command accepts three arguments. |
+| Build name | Build name to be promoted. |
+| Build number | Build number to be promoted. |
+| Target repository | Build promotion target repository. |
+| **Command options:** | |
+| `--server-id` |
[Optional] Server ID configured using the 'jf config' command. If not specified, the default configured Artifactory server is used.
|
+| `--project` |
[Optional] JFrog project key.
|
+| `--status` |
[Optional] Build promotion status.
|
+| `--comment` |
[Optional] Build promotion comment.
|
+| `--source-repo` |
[Optional] Build promotion source repository.
|
+| `--include-dependencies` |
[Default: false] If set to true, the build dependencies are also promoted.
|
+| `--copy` |
[Default: false] If set true, the build artifacts and dependencies are copied to the target repository, otherwise they are moved.
|
+| `--props` |
[Optional] List of semicolon-separated(;) properties in the form of "key1=value1;key2=value2,...". to attach to the build artifacts.
|
+| `--dry-run` |
[Default: false] If true, promotion is only simulated. The build is not promoted.
|
+| `--insecure-tls` |
[Default: false] Set to true to skip TLS certificates verification.
| |
### Example
@@ -330,18 +355,22 @@ jf rt bpr my-build-name 18 target-repository
Build-info is accumulated by the CLI according to the commands you apply until you publish the build-info to Artifactory. If, for any reason, you wish to "reset" the build-info and cleanup (i.e. delete) any information accumulated so far, you can use the `build-clean` (`bc`) command.
+### Usage
+
+```jf rt bc ```
+
### Commands Params
The following table lists the command arguments and flags:
-| | |
-|-------------------|------------------------------------|
-| Command name | rt build-clean |
-| Abbreviation | rt bc |
-| Command options | The command has no options. |
-| Command arguments | The command accepts two arguments. |
-| Build name | Build name. |
-| Build number | Build number. |
+| | |
+|------------------------|------------------------------------|
+| Command name | rt build-clean |
+| Abbreviation | rt bc |
+| **Command arguments:** | The command accepts two arguments. |
+| Build name | Build name. |
+| Build number | Build number. |
+| **Command options:** | The command has no options. |
### Example
@@ -356,24 +385,28 @@ jf rt bc my-build-name 18
This command is used to discard builds previously published to Artifactory using the [build-publish](https://docs.jfrog-applications.jfrog.io/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory#publishing-build-info) command.
+### Usage
+
+```jf rt bdi [command options] ```
+
### Commands Params
The following table lists the command arguments and flags:
-| | |
-|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
-| Command name | rt build-discard |
-| Abbreviation | rt bdi |
-| Command options | |
-| --server-id |
[Optional]
Server ID configured using the config command. If not specified, the default configured Artifactory server is used.
|
-| --max-days |
[Optional]
The maximum number of days to keep builds in Artifactory.
|
-| --max-builds |
[Optional]
The maximum number of builds to store in Artifactory.
|
-| --exclude-builds |
[Optional]
List of build numbers in the form of "value1,value2,...", that should not be removed from Artifactory.
|
-| --delete-artifacts |
[Default: false]
If set to true, automatically removes build artifacts stored in Artifactory.
|
-| --async |
[Default: false]
If set to true, build discard will run asynchronously and will not wait for response.
|
-| Command arguments | The command accepts one argument. |
-| Build name | Build name. |
-
+| | |
+|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
+| Command name | rt build-discard |
+| Abbreviation | rt bdi |
+| **Command arguments:** | The command accepts one argument. |
+| Build name | Build name. |
+| **Command options:** | |
+| `--server-id` |
[Optional] Server ID configured using the 'jf config' command. If not specified, the default configured Artifactory server is used.
|
+| `--max-days` |
[Optional] The maximum number of days to keep builds in Artifactory.
|
+| `--max-builds` |
[Optional] The maximum number of builds to store in Artifactory.
|
+| `--exclude-builds` |
[Optional] List of comma-separated(,) build numbers in the form of "build1,build2,...", that should not be removed from Artifactory.
|
+| `--delete-artifacts` |
[Default: false] If set to true, automatically removes build artifacts stored in Artifactory.
|
+| `--async` |
[Default: false] If set to true, build discard will run asynchronously and will not wait for response.
|
+
### Examples
#### Example 1
diff --git a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/curl-integration.md b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/curl-integration.md
index 352f122..f255c59 100644
--- a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/curl-integration.md
+++ b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/curl-integration.md
@@ -11,9 +11,9 @@ Execute a cUrl command, using the configured Artifactory details. The command ex
|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| Command name | rt curl | |
| Abbreviation | rt cl | |
-| Command options | | |
-| --server-id |
[Optional]
Server ID configured using the jf c add command. If not specified, the default configured server is used.
The same list of arguments and flags passed to cUrl, except for the following changes:
1. The full Artifactory URL should not be passed. Instead, the REST endpoint URI should be sent. 2. The login credentials should not be passed. Instead, the --server-id should be used.
| |
Currently only servers configured with username and password / API key are supported.
diff --git a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/environment-variables.md b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/environment-variables.md
index 425bd93..5bebd86 100644
--- a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/environment-variables.md
+++ b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/environment-variables.md
@@ -3,21 +3,21 @@
Some of the Artifactory commands make use of the following environment variable:
-| | |
-|----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **Variable Name** | **Description** |
-| **JFROG\_CLI\_MIN\_CHECKSUM\_DEPLOY\_SIZE\_KB** |
[Default: 10]
Minimum file size in KB for which JFrog CLI performs checksum deploy optimization.
|
-| **JFROG\_CLI\_RELEASES\_REPO** |
Configured Artifactory repository name to download the jar needed by the mvn/gradle command. This environment variable's value format should be <server ID configured by the 'jf c add' command>/<repo name>. The repository should proxy https://releases.jfrog.io. This environment variable is used by the 'jf mvn' and 'jf gradle' commands, and also by the 'jf audit' command, when used for maven or gradle projects.
|
-| **JFROG\_CLI\_DEPENDENCIES\_DIR** |
[Default: $JFROG_CLI_HOME_DIR/dependencies]
Defines the directory to which JFrog CLI's internal dependencies are downloaded.
|
-| **JFROG\_CLI\_REPORT\_USAGE** |
[Default: true]
Set to false to block JFrog CLI from sending usage statistics to Artifactory.
|
-| **JFROG\_CLI\_SERVER\_ID** | Server ID configured using the config command, unless sent as a command argument or option. |
-| **JFROG\_CLI\_BUILD\_NAME** | Build name to be used by commands which expect a build name, unless sent as a command argument or option. |
-| **JFROG\_CLI\_BUILD\_NUMBER** | Build number to be used by commands which expect a build number, unless sent as a command argument or option. |
-| **JFROG\_CLI\_BUILD\_PROJECT** | JFrog project key to be used by commands that expect build name and build number. Determines the project of the published build. |
-| **JFROG\_CLI\_BUILD\_URL** | Sets the CI server build URL in the build-info. The "jf rt build-publish" command uses the value of this environment variable unless the --build-url command option is sent. |
-| **JFROG\_CLI\_ENV\_EXCLUDE** |
[Default: *password*;*secret*;*key*;*token*]
List of case insensitive patterns in the form of "value1;value2;...". Environment variables match those patterns will be excluded. This environment variable is used by the "jf rt build-publish" command, in case the --env-exclude command option is not sent.
Used by the "jf rt download" command. Set to true to download artifacts also from remote repositories. This feature is experimental and available on Artifactory version 7.17.0 or higher.
|
-| **JFROG\_CLI\_UPLOAD\_EMPTY\_ARCHIVE** |
[Default: false]
Used by the "jf rt upload" command. Set to true if you'd like to upload an empty archive when '--archive' is set but all files were excluded by exclusions pattern.
[Default: 10] Minimum file size in KB for which JFrog CLI performs checksum deploy optimization.
|
+| **JFROG\_CLI\_RELEASES\_REPO** |
Configured Artifactory repository name to download the jar needed by the mvn/gradle command. This environment variable's value format should be server ID configured by the 'jf c add' command. The repository should proxy https://releases.jfrog.io. This environment variable is used by the 'jf mvn' and 'jf gradle' commands, and also by the 'jf audit' command, when used for maven or gradle projects.
|
+| **JFROG\_CLI\_DEPENDENCIES\_DIR** |
[Default: $JFROG_CLI_HOME_DIR/dependencies] Defines the directory to which JFrog CLI's internal dependencies are downloaded.
|
+| **JFROG\_CLI\_REPORT\_USAGE** |
[Default: true] Set to false to block JFrog CLI from sending usage statistics to Artifactory.
|
+| **JFROG\_CLI\_SERVER\_ID** | Server ID configured using the 'jf config' command, unless sent as a command argument or option. |
+| **JFROG\_CLI\_BUILD\_NAME** | Build name to be used by commands which expect a build name, unless sent as a command argument or option. |
+| **JFROG\_CLI\_BUILD\_NUMBER** | Build number to be used by commands which expect a build number, unless sent as a command argument or option. |
+| **JFROG\_CLI\_BUILD\_PROJECT** | JFrog project key to be used by commands that expect build name and build number. Determines the project of the published build. |
+| **JFROG\_CLI\_BUILD\_URL** | Sets the CI server build URL in the build-info. The "jf rt build-publish" command uses the value of this environment variable unless the --build-url command option is sent. |
+| **JFROG\_CLI\_ENV\_EXCLUDE** |
[Default: *password*;*secret*;*key*;*token*] List of semicolon-separated(;) case insensitive patterns in the form of "value1;value2;...". Environment variables match those patterns will be excluded. This environment variable is used by the "jf rt build-publish" command, in case the --env-exclude command option is not sent.
|
+| **JFROG\_CLI\_TRANSITIVE\_DOWNLOAD** |
[Default: false] Set this option to true to include remote repositories in artifact searches when using the 'rt download' command. The search will target the first five remote repositories within the virtual repository. This feature is available starting from Artifactory version 7.17.0. **NOTE:** Enabling this option may increase the load on Artifactory instances that are proxied by multiple remote repositories..
|
+| **JFROG\_CLI\_UPLOAD\_EMPTY\_ARCHIVE** |
[Default: false] Used by the "jf rt upload" command. Set to true if you'd like to upload an empty archive when '--archive' is set but all files were excluded by exclusions pattern.
|
***
diff --git a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/generic-files.md b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/generic-files.md
index fa355e1..8021c9b 100644
--- a/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/generic-files.md
+++ b/jfrog-applications/jfrog-cli/cli-for-jfrog-artifactory/generic-files.md
@@ -4,45 +4,51 @@
This command is used to upload files to Artifactory.
+### Usage
+
+```jf rt u [command options]