├── native ├── 15 │ ├── libnative-platform-linux-amd64.so.lock │ ├── libnative-platform-curses-linux-amd64.so.lock │ ├── libnative-platform-linux-amd64.so │ └── libnative-platform-curses-linux-amd64.so └── jna │ └── linux-amd64 │ └── libjnidispatch.so ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .github ├── ISSUE_TEMPLATE │ ├── question.md │ ├── bug_report.md │ ├── feature_request.md │ ├── maven_bug_report.md │ └── gradle_bug_report.md ├── PULL_REQUEST_TEMPLATE.md ├── release.yml └── workflows │ ├── cla.yml │ ├── frogbot-scan-pr-gradle.yml │ ├── monitorIssues.yml │ ├── gradle.yml │ └── integrationTests.yml ├── release ├── specs │ ├── dev-rbc-filespec.json │ └── prod-rbc-filespec.json ├── pipelines.resources.yml ├── pipelines.snapshot.yml └── pipelines.release.yml ├── .jfrog └── jfrog-apps-config.yml ├── .gitignore ├── settings.gradle ├── gradlew.bat ├── README.md ├── gradlew ├── LICENSE └── RELEASE.md /native/15/libnative-platform-linux-amd64.so.lock: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /native/15/libnative-platform-curses-linux-amd64.so.lock: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | build-info-version=2.43.x-SNAPSHOT 2 | build-info-extractor-gradle-version=4.35.5-SNAPSHOT 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfrog/build-info/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /native/jna/linux-amd64/libjnidispatch.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfrog/build-info/HEAD/native/jna/linux-amd64/libjnidispatch.so -------------------------------------------------------------------------------- /native/15/libnative-platform-linux-amd64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfrog/build-info/HEAD/native/15/libnative-platform-linux-amd64.so -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Question 3 | about: Ask a question 4 | title: '' 5 | labels: question 6 | assignees: '' 7 | 8 | --- 9 | -------------------------------------------------------------------------------- /native/15/libnative-platform-curses-linux-amd64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jfrog/build-info/HEAD/native/15/libnative-platform-curses-linux-amd64.so -------------------------------------------------------------------------------- /release/specs/dev-rbc-filespec.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | { 4 | "pattern": "ecosys-oss-snapshot-local/(org/jfrog/buildinfo/*/*/build-info-*)", 5 | "target": "oss-snapshot-local/{1}" 6 | } 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | - [ ] All [tests](https://github.com/jfrog/build-info/actions/workflows/integrationTests.yml) have passed. If this feature is not already covered by the tests, new tests have been added. 2 | ----- 3 | -------------------------------------------------------------------------------- /.jfrog/jfrog-apps-config.yml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | modules: 3 | - exclude_patterns: 4 | - "**/.git/**" 5 | - "**/build/**" 6 | - "**/target/**" 7 | - "**/.vscode/**" 8 | - "**/.idea/**" 9 | exclude_scanners: 10 | - "iac" 11 | # Temporarily disabling secrets scanner - the scanner removes essential Gradle files 12 | - "secrets" 13 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | # Versions 7+ fail to build: Failed to apply plugin 'com.gradle.plugin-publish' 4 | # As of 2022-12-13 the team has decided to stay on Gradle 5 for now 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /release/pipelines.resources.yml: -------------------------------------------------------------------------------- 1 | resources: 2 | - name: biSnapshotGit 3 | type: GitRepo 4 | configuration: 5 | path: jfrog/build-info 6 | gitProvider: il_automation 7 | branches: 8 | include: master 9 | 10 | - name: biReleaseGit 11 | type: GitRepo 12 | configuration: 13 | path: jfrog/build-info 14 | gitProvider: il_automation 15 | buildOn: 16 | commit: false 17 | branches: 18 | include: master 19 | -------------------------------------------------------------------------------- /.github/release.yml: -------------------------------------------------------------------------------- 1 | changelog: 2 | exclude: 3 | labels: 4 | - ignore for release 5 | categories: 6 | - title: Breaking Changes 🚨 7 | labels: 8 | - breaking change 9 | - title: Exciting New Features 🎉 10 | labels: 11 | - new feature 12 | - title: Improvements 🌱 13 | labels: 14 | - improvement 15 | - title: Bug Fixes 🛠 16 | labels: 17 | - bug 18 | - title: Other Changes 📚 19 | labels: 20 | - "*" -------------------------------------------------------------------------------- /release/specs/prod-rbc-filespec.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | { 4 | "pattern": "ecosys-oss-release-local/(org/jfrog/buildinfo/*/${version}/build-info-*)", 5 | "target": "oss-release-local/{1}", 6 | "exclusions": ["*build-info-extractor-gradle*"] 7 | }, 8 | { 9 | "pattern": "ecosys-oss-release-local/(org/jfrog/buildinfo/build-info-extractor-gradle/${gradleVersion}/build-info-extractor-gradle-*)", 10 | "target": "oss-release-local/{1}" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Build info extractors bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior 15 | 16 | **Expected behavior** 17 | A clear and concise description of what you expected to happen. 18 | 19 | **Screenshots** 20 | If applicable, add screenshots to help explain your problem. 21 | 22 | **Versions** 23 | - Extractor version: 24 | - Operating system: 25 | - Artifactory Version: 26 | 27 | **Additional context** 28 | Add any other context about the problem here. 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .gradle 3 | *.iml 4 | /out 5 | /build 6 | /*/build 7 | /*/out 8 | /build-info-extractor-gradle/src/examples/multiproject/build 9 | /build-info-extractor-gradle/src/examples/multiproject/*/build 10 | /build-info-extractor-gradle/src/examples/multiproject/*/*/build 11 | /build-info-extractor-gradle/src/examples/publishTestProject/build 12 | /build-info-extractor-gradle/src/examples/publishTestProject/*/build 13 | /build-info-extractor-gradle/src/examples/publishTestProject/*/*/build 14 | build-info.ipr 15 | build-info.iws 16 | atlassian-*.xml 17 | /.nb-gradle/private/ 18 | /itest/src/test/resources/org/jfrog/build/cache 19 | /build-info-extractor/src/test/resources/artifactory-bi.properties 20 | local.properties 21 | target -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: feature request 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like to see** 14 | A clear and concise description of the new feature. 15 | 16 | **Describe alternatives you've considered** 17 | If applicable, a clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/maven_bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Maven Artifactory plugin bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: maven bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior 15 | 16 | **Expected behavior** 17 | A clear and concise description of what you expected to happen. 18 | 19 | **Screenshots** 20 | If applicable, add screenshots to help explain your problem. 21 | 22 | **Versions** 23 | - Maven Artifactory plugin version: 24 | - Operating system: 25 | - Artifactory Version: 26 | 27 | **Additional context** 28 | Add any other context about the problem here. 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/gradle_bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Gradle Artifactory plugin bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: gradle bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior 15 | 16 | **Expected behavior** 17 | A clear and concise description of what you expected to happen. 18 | 19 | **Screenshots** 20 | If applicable, add screenshots to help explain your problem. 21 | 22 | **Versions** 23 | - Gradle Artifactory plugin version: 24 | - Operating system: 25 | - Artifactory Version: 26 | 27 | **Additional context** 28 | Add any other context about the problem here. 29 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 JFrog Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | include 'build-info-api' 18 | include 'build-info-client' 19 | include 'build-info-extractor' 20 | include 'build-info-vcs' 21 | include 'build-info-extractor-gradle' 22 | include 'build-info-extractor-ivy' 23 | include 'build-info-extractor-maven3' 24 | include 'build-info-extractor-npm' 25 | include 'build-info-extractor-go' 26 | include 'build-info-extractor-pip' 27 | include 'build-info-extractor-nuget' 28 | include 'build-info-extractor-docker' 29 | 30 | rootProject.name = 'build-info' 31 | -------------------------------------------------------------------------------- /.github/workflows/cla.yml: -------------------------------------------------------------------------------- 1 | name: "CLA Assistant" 2 | on: 3 | # issue_comment triggers this action on each comment on issues and pull requests 4 | issue_comment: 5 | types: [created] 6 | pull_request_target: 7 | types: [opened,synchronize] 8 | 9 | jobs: 10 | CLAssistant: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions-ecosystem/action-regex-match@v2 14 | id: sign-or-recheck 15 | with: 16 | text: ${{ github.event.comment.body }} 17 | regex: '\s*(I have read the CLA Document and I hereby sign the CLA)|(recheckcla)\s*' 18 | 19 | - name: "CLA Assistant" 20 | if: ${{ steps.sign-or-recheck.outputs.match != '' || github.event_name == 'pull_request_target' }} 21 | # Alpha Release 22 | uses: cla-assistant/github-action@v2.1.1-beta 23 | env: 24 | # Generated and maintained by github 25 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 26 | # JFrog organization secret 27 | PERSONAL_ACCESS_TOKEN : ${{ secrets.CLA_SIGN_TOKEN }} 28 | with: 29 | path-to-signatures: 'signed_clas.json' 30 | path-to-document: 'https://jfrog.com/cla/' 31 | remote-organization-name: 'jfrog' 32 | remote-repository-name: 'jfrog-signed-clas' 33 | # branch should not be protected 34 | branch: 'master' 35 | allowlist: bot* 36 | -------------------------------------------------------------------------------- /.github/workflows/frogbot-scan-pr-gradle.yml: -------------------------------------------------------------------------------- 1 | name: "Frogbot Scan Pull Request" 2 | on: 3 | pull_request_target: 4 | types: [opened, synchronize] 5 | permissions: 6 | pull-requests: write 7 | contents: read 8 | jobs: 9 | scan-pull-request: 10 | runs-on: ubuntu-latest 11 | # A pull request needs to be approved, before Frogbot scans it. Any GitHub user who is associated with the 12 | # "frogbot" GitHub environment can approve the pull request to be scanned. 13 | environment: frogbot 14 | steps: 15 | - uses: actions/checkout@v2 16 | with: 17 | ref: ${{ github.event.pull_request.head.sha }} 18 | 19 | # Install prerequisites 20 | - name: Set up Java 21 | uses: actions/setup-java@v3 22 | with: 23 | java-version: "8" 24 | distribution: "zulu" 25 | # Setup Gradle is needed only in case that Gradle wrapper isn't used. 26 | # - name: Setup Gradle 27 | # uses: gradle/gradle-build-action@v2 28 | 29 | - uses: jfrog/frogbot@v2 30 | env: 31 | # [Mandatory] 32 | # JFrog platform URL (This functionality requires version 3.29.0 or above of Xray) 33 | JF_URL: ${{ secrets.FROGBOT_URL }} 34 | 35 | # [Mandatory if JF_USER and JF_PASSWORD are not provided] 36 | # JFrog access token with 'read' permissions on Xray service 37 | JF_ACCESS_TOKEN: ${{ secrets.FROGBOT_ACCESS_TOKEN }} 38 | 39 | # [Mandatory] 40 | # The GitHub token automatically generated for the job 41 | JF_GIT_TOKEN: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /.github/workflows/monitorIssues.yml: -------------------------------------------------------------------------------- 1 | name: Monitor Issues 2 | on: 3 | workflow_dispatch: 4 | inputs: 5 | operations-per-run: 6 | description: 'Number of operations per run' 7 | required: false 8 | default: '30' 9 | schedule: 10 | - cron: "0 0 * * *" # Runs once a day at midnight 11 | jobs: 12 | monitor-issues: 13 | runs-on: ubuntu-latest 14 | permissions: 15 | issues: write 16 | steps: 17 | - uses: actions/stale@v9 18 | with: 19 | # Ignore issues with these labels 20 | exempt-issue-labels: 'feature request,question' 21 | # Days of inactivity before marking an issue as stale 22 | days-before-issue-stale: 180 23 | # Days of inactivity before closing an issue 24 | days-before-issue-close: 7 25 | # Name of the stale label 26 | stale-issue-label: "stale" 27 | stale-issue-message: "This issue has been marked as stale due to 6 months of inactivity. As part of our effort to address every issue properly, please feel free to remove the stale label or keep this issue active by leaving a comment. Otherwise, it will be closed in 7 days" 28 | close-issue-message: "This issue was closed due to 7 days of inactivity after being marked as stale. Feel free to reopen it if it remains relevant." 29 | # Ignore pull requests 30 | days-before-pr-close: false 31 | days-before-pr-stale: false 32 | ascending: true 33 | # Get from input or resolve to default 34 | operations-per-run: ${{ github.event.inputs.operations-per-run || '30' }} 35 | repo-token: ${{ secrets.GITHUB_TOKEN }} -------------------------------------------------------------------------------- /release/pipelines.snapshot.yml: -------------------------------------------------------------------------------- 1 | pipelines: 2 | # Global configuration 3 | - name: create_build_info_snapshot 4 | configuration: 5 | runtime: 6 | type: image 7 | image: 8 | auto: 9 | language: java 10 | versions: 11 | - "8" 12 | 13 | steps: 14 | - name: Snapshot 15 | type: Bash 16 | configuration: 17 | inputResources: 18 | - name: biSnapshotGit 19 | integrations: 20 | - name: ecosys_entplus_deployer 21 | execution: 22 | onStart: 23 | # Save gradle cache 24 | - restore_cache_files gradle_cache $res_biSnapshotGit_resourcePath/.gradle 25 | onExecute: 26 | - cd $res_biSnapshotGit_resourcePath 27 | 28 | # Set env 29 | - export CI=true 30 | - export JFROG_BUILD_STATUS=PASS 31 | - export JFROG_CLI_BUILD_NAME=ecosystem-build-info-dev 32 | - export JFROG_CLI_BUILD_NUMBER=$run_number 33 | - export JFROG_CLI_BUILD_PROJECT=ecosys 34 | 35 | # Configure JFrog CLI 36 | - curl -fL https://install-cli.jfrog.io | sh 37 | - jf c rm --quiet 38 | - jf c add internal --url=$int_ecosys_entplus_deployer_url --user=$int_ecosys_entplus_deployer_user --password=$int_ecosys_entplus_deployer_apikey 39 | - jf gradlec --use-wrapper --uses-plugin --repo-resolve ecosys-maven-remote --repo-deploy ecosys-oss-snapshot-local 40 | 41 | # Run audit 42 | - jf audit --fail=false 43 | 44 | # Delete former snapshots to make sure the release bundle will not contain the same artifacts 45 | - jf rt del "ecosys-oss-snapshot-local/org/jfrog/buildinfo/*" --quiet 46 | 47 | # Run install and publish 48 | - > 49 | env -i PATH=$PATH HOME=$HOME 50 | JFROG_CLI_BUILD_NAME=$JFROG_CLI_BUILD_NAME 51 | JFROG_CLI_BUILD_NUMBER=$JFROG_CLI_BUILD_NUMBER 52 | JFROG_CLI_BUILD_PROJECT=$JFROG_CLI_BUILD_PROJECT 53 | jf gradle clean aP -x test 54 | - jf rt bag && jf rt bce 55 | - jf rt bp 56 | 57 | # Distribute release bundle 58 | - jf ds rbc ecosystem-build-info-snapshot $run_number --spec=./release/specs/dev-rbc-filespec.json --sign 59 | - jf ds rbd ecosystem-build-info-snapshot $run_number --site="releases.jfrog.io" --sync 60 | 61 | onComplete: 62 | # Save gradle cache 63 | - add_cache_files $res_biSnapshotGit_resourcePath/.gradle gradle_cache 64 | -------------------------------------------------------------------------------- /.github/workflows/gradle.yml: -------------------------------------------------------------------------------- 1 | name: "Publish to Gradle Gallery" 2 | # During the build-info release, the build-info JARs upload to the Maven Central repository. 3 | # The upload is asynchronous and may take few hours. 4 | # Since the Gradle plugin depends on the build-info JARs, we should publish it to the Gradle Gallery only after we make 5 | # sure the upload to Maven Central completed successfully. 6 | # To solve this out, this workflow runs every 4 hours to check if the Gradle plugin should be published to the Gradle 7 | # Gallery and publish the Gradle plugin if needed. 8 | on: 9 | schedule: 10 | # Once per 4 hours 11 | - cron: "0 */4 * * *" 12 | jobs: 13 | Publish_if_needed: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: "Get Maven Central Latest Version" 17 | run: | 18 | export LATEST_MVN_CENTRAL_VERSION=`curl -s https://search.maven.org/solrsearch/select\?q\=g:"org.jfrog.buildinfo"+AND+a:"build-info-extractor-gradle" | jq -r '.response.docs[0].latestVersion'` 19 | echo "LATEST_MVN_CENTRAL_VERSION=$LATEST_MVN_CENTRAL_VERSION" >> $GITHUB_ENV 20 | - name: "Convert Version to Regex" 21 | uses: actions-ecosystem/action-regex-match@v2 22 | id: check-version 23 | with: 24 | text: ${{ env.LATEST_MVN_CENTRAL_VERSION }} 25 | regex: "[0-9]+.[0-9]+.[0-9]+" 26 | - name: "Test Resolved Version" 27 | run: | 28 | echo "Illegal version: $LATEST_MVN_CENTRAL_VERSION" 29 | exit 1 30 | if: ${{ steps.check-version.outputs.match == '' }} 31 | - name: "Check Version in Gradle Gallery" 32 | run: | 33 | if curl -fL https://plugins.gradle.org/m2/org.jfrog.buildinfo/build-info-extractor-gradle/${{ steps.check-version.outputs.match }}; then 34 | echo "SHOULD_NOT_PUBLISH=TRUE" >> $GITHUB_ENV 35 | fi 36 | - name: "Log if Already Exist" 37 | run: echo "::warning::Version $LATEST_MVN_CENTRAL_VERSION already exist in the Gradle Gallery." 38 | if: ${{ env.SHOULD_NOT_PUBLISH == 'TRUE'}} 39 | - uses: actions/checkout@v2 40 | with: 41 | ref: refs/tags/build-info-gradle-extractor-${{ env.LATEST_MVN_CENTRAL_VERSION }} 42 | if: ${{ env.SHOULD_NOT_PUBLISH != 'TRUE'}} 43 | - uses: actions/setup-java@v2 44 | with: 45 | distribution: "adopt" 46 | java-version: "8" 47 | if: ${{ env.SHOULD_NOT_PUBLISH != 'TRUE'}} 48 | - name: "Publish to Gradle Gallery" 49 | run: ./gradlew clean build -x test publishPlugins 50 | if: ${{ env.SHOULD_NOT_PUBLISH != 'TRUE'}} 51 | env: 52 | GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} 53 | GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} 54 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega 90 | -------------------------------------------------------------------------------- /release/pipelines.release.yml: -------------------------------------------------------------------------------- 1 | pipelines: 2 | - name: release_build_info 3 | configuration: 4 | runtime: 5 | type: image 6 | image: 7 | auto: 8 | language: java 9 | versions: 10 | - "8" 11 | environmentVariables: 12 | readOnly: 13 | NEXT_VERSION: 2.0.0 14 | NEXT_DEVELOPMENT_VERSION: 2.0.x-SNAPSHOT 15 | NEXT_GRADLE_VERSION: 4.0.0 16 | NEXT_GRADLE_DEVELOPMENT_VERSION: 4.0.x-SNAPSHOT 17 | SKIP_AUDIT_CHECK: "false" 18 | 19 | steps: 20 | - name: Release 21 | type: Bash 22 | configuration: 23 | inputResources: 24 | - name: biReleaseGit 25 | integrations: 26 | - name: il_automation 27 | - name: ecosys_entplus_deployer 28 | - name: mvn_central 29 | execution: 30 | onExecute: 31 | - cd $res_biReleaseGit_resourcePath 32 | 33 | # Set env 34 | - export CI=true 35 | - export JFROG_BUILD_STATUS=PASS 36 | - export JFROG_CLI_BUILD_NAME=ecosystem-build-info-release 37 | - export JFROG_CLI_BUILD_NUMBER=$run_number 38 | - export JFROG_CLI_BUILD_PROJECT=ecosys 39 | 40 | # Configure git 41 | - git checkout master 42 | - git remote set-url origin https://$int_il_automation_token@github.com/jfrog/build-info.git 43 | 44 | # Make sure versions provided 45 | - echo "Checking variables" 46 | - test -n "$NEXT_VERSION" -a "$NEXT_VERSION" != "2.0.0" 47 | - test -n "$NEXT_GRADLE_VERSION" -a "$NEXT_GRADLE_VERSION" != "4.0.0" 48 | - test -n "$NEXT_DEVELOPMENT_VERSION" -a "$NEXT_DEVELOPMENT_VERSION" != "2.0.x-SNAPSHOT" 49 | - test -n "$NEXT_GRADLE_DEVELOPMENT_VERSION" -a "$NEXT_GRADLE_DEVELOPMENT_VERSION" != "4.0.x-SNAPSHOT" 50 | 51 | # Configure JFrog CLI 52 | - curl -fL https://install-cli.jfrog.io | sh 53 | - jf c rm --quiet 54 | - jf c add internal --url=$int_ecosys_entplus_deployer_url --user=$int_ecosys_entplus_deployer_user --password=$int_ecosys_entplus_deployer_apikey 55 | - jf gradlec --use-wrapper --uses-plugin --repo-resolve ecosys-maven-remote --repo-deploy ecosys-oss-release-local 56 | 57 | # Run audit 58 | - | 59 | if [[ $SKIP_AUDIT_CHECK == "true" ]]; then 60 | echo "Skipping audit check" 61 | else 62 | echo "Running audit check" 63 | jf audit --fail=false 64 | fi 65 | 66 | 67 | # Update version 68 | - sed -i -e "/build-info-version=/ s/=.*/=$NEXT_VERSION/" -e "/build-info-extractor-gradle-version=/ s/=.*/=$NEXT_GRADLE_VERSION/" gradle.properties 69 | - git commit -am "[artifactory-release] Release version ${NEXT_VERSION} [skipRun]" --allow-empty 70 | - git tag build-info-extractor-${NEXT_VERSION} 71 | - git tag build-info-gradle-extractor-${NEXT_GRADLE_VERSION} 72 | - git push 73 | - git push --tags 74 | 75 | # Run install and publish 76 | - > 77 | ORG_GRADLE_PROJECT_signingKey=$(echo $int_mvn_central_signingKey | base64 -d) 78 | ORG_GRADLE_PROJECT_signingPassword=$int_mvn_central_signingPassword 79 | jf gradle clean aP -x test -Psign 80 | - jf rt bag && jf rt bce 81 | - jf rt bp 82 | 83 | # Distribute release bundle 84 | - jf ds rbc ecosystem-build-info $NEXT_VERSION --spec=./release/specs/prod-rbc-filespec.json --spec-vars="version=$NEXT_VERSION;gradleVersion=$NEXT_GRADLE_VERSION" --sign 85 | - jf ds rbd ecosystem-build-info $NEXT_VERSION --site="releases.jfrog.io" --sync 86 | 87 | # Publish to Maven Central 88 | - > 89 | ORG_GRADLE_PROJECT_sonatypeUsername=$int_mvn_central_user 90 | ORG_GRADLE_PROJECT_sonatypePassword=$int_mvn_central_password 91 | ORG_GRADLE_PROJECT_signingKey=$(echo $int_mvn_central_signingKey | base64 -d) 92 | ORG_GRADLE_PROJECT_signingPassword=$int_mvn_central_signingPassword 93 | ./gradlew clean build publishToSonatype closeAndReleaseSonatypeStagingRepository -x test -Psign 94 | 95 | # Update next development version 96 | - sed -i -e "/build-info-version=/ s/=.*/=$NEXT_DEVELOPMENT_VERSION/" -e "/build-info-extractor-gradle-version=/ s/=.*/=$NEXT_GRADLE_DEVELOPMENT_VERSION/" gradle.properties 97 | - git commit -am "[artifactory-release] Next development version [skipRun]" 98 | 99 | # Push changes 100 | - git push 101 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Build-Info 2 | 3 | [![Build Info Extractor plugin](https://img.shields.io/maven-central/v/org.jfrog.buildinfo/build-info-extractor?label=build-info-extractor&style=for-the-badge)](https://search.maven.org/artifact/org.jfrog.buildinfo/build-info-extractor) [![Gradle plugin](https://img.shields.io/gradle-plugin-portal/v/com.jfrog.artifactory?label=Gradle%20Artifactory%20plugin&style=for-the-badge)](https://plugins.gradle.org/plugin/com.jfrog.artifactory) 4 | 5 | [![Scanned by Frogbot](https://raw.github.com/jfrog/frogbot/master/images/frogbot-badge.svg)](https://github.com/jfrog/frogbot#readme) [![Tests](https://github.com/jfrog/build-info/actions/workflows/integrationTests.yml/badge.svg)](https://github.com/jfrog/build-info/actions/workflows/integrationTests.yml) 6 | 7 | ## Overview 8 | 9 | Build Info is Artifactory's open integration layer for the CI servers and build tools. The build information is sent to Artifactory in json format. 10 | 11 | ## Building and testing the sources 12 | 13 | * The code is built using Gradle and includes integration tests.
14 | * It must run using JDK 8 and Gradle 5.6.2. If you are using different gradle version you can use the provided gradle wrapper.
15 | * In order to run tests the following environment variables must be set: 16 | ```bash 17 | export BITESTS_PLATFORM_URL='http://localhost:8081' 18 | export BITESTS_PLATFORM_USERNAME=admin 19 | export BITESTS_PLATFORM_ADMIN_TOKEN=admin-access-token 20 | export BITESTS_ARTIFACTORY_PIP_ENV=/Users/user/venv-test/bin 21 | ``` 22 | See [here](https://www.jfrog.com/confluence/display/JFROG/Access+Tokens#AccessTokens-GeneratingAdminTokens) how to generate an admin token for the above environment variable. 23 | 24 | ### Building 25 | When running the following commands to build the code, the entire testing suite is also executed. See the *Testing* section for configuration instructions prior to running the tests. 26 | 27 | To build the code using the gradle wrapper in Unix run: 28 | ```bash 29 | ./gradlew clean build 30 | ``` 31 | To build the code using the gradle wrapper in Windows run: 32 | ```bash 33 | gradlew clean build 34 | ``` 35 | To build the code using the environment gradle run: 36 | ```bash 37 | gradle clean build 38 | ``` 39 | To build the code without running the tests, add to the "clean build" command the "-x test" option, for example: 40 | ```bash 41 | ./gradlew clean build -x test 42 | ``` 43 | 44 | ### Testing 45 | To run *all* tests: 46 | ```bash 47 | ./gradlew clean test 48 | ``` 49 | 50 | #### Extractor tests 51 | ```bash 52 | ./gradlew clean build-info-api:test build-info-client:test build-info-extractor:test build-info-vcs:test 53 | ``` 54 | 55 | #### Maven tests 56 | ```bash 57 | ./gradlew clean build-info-extractor-maven3:test 58 | ``` 59 | 60 | #### Gradle tests 61 | ```bash 62 | ./gradlew clean build-info-extractor-gradle:test 63 | ``` 64 | 65 | #### npm tests 66 | * Add npm executable to the system search path (PATH environment variable). 67 | * npm 7.7 or above is required. 68 | ```bash 69 | ./gradlew clean build-info-extractor-npm:test 70 | ``` 71 | 72 | #### Go tests 73 | * Add Go executable to the system search path (PATH environment variable). 74 | * Go v1.14 or above is required. 75 | ```bash 76 | ./gradlew clean build-info-extractor-go:test 77 | ``` 78 | 79 | #### Pip tests 80 | * Add Python and pip executables to the system search path (PATH environment variable). 81 | * Pip tests must run inside a clean pip-environment. Create a virtual environment and provide its path using the 'BITESTS_ARTIFACTORY_PIP_ENV' variable. 82 | When running on a Windows machine, provide the path to the 'Scripts' directory. 83 | When running on a unix machine, provide the path to the 'bin' directory. 84 | ```bash 85 | python -m venv buildinfo-tests-env 86 | export BITESTS_ARTIFACTORY_PIP_ENV=/Users/user/buildinfo-tests-env/bin 87 | ./gradlew clean build-info-extractor-pip:test 88 | ``` 89 | 90 | #### NuGet tests 91 | * Add Nuget & Dotnet executable to the system search path (PATH environment variable). 92 | ```bash 93 | ./gradlew clean build-info-extractor-nuget:test 94 | ``` 95 | 96 | #### Docker tests 97 | * Docker tests run only on Linux/mac. 98 | * In addition to the general environment variables required for running the tests, you must set the following environment variables, required for the docker tests: 99 | ```bash 100 | export BITESTS_PLATFORM_CONTAINER_REGISTRY=127.0.0.1:8081 101 | export BITESTS_ARTIFACTORY_DOCKER_HOST=tcp://127.0.0.1:1234 102 | ``` 103 | * For OSX agents, run a Socat container: 104 | ```bash 105 | docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:1234:1234 bobrik/socat TCP-LISTEN:1234,fork UNIX-CONNECT:/var/run/docker.sock 106 | ``` 107 | * Run tests: 108 | ```bash 109 | ./gradlew clean build-info-extractor-docker:test 110 | ``` 111 | 112 | ## More about build-info 113 | Read more about build-info in the [Build Integration documentation](https://www.jfrog.com/confluence/display/JFROG/Build+Integration). 114 | 115 | ## Release notes 116 | The release notes are available [here](https://github.com/jfrog/build-info/releases). 117 | -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # 4 | # Copyright 2015 the original author or authors. 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # https://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | # 18 | 19 | ############################################################################## 20 | ## 21 | ## Gradle start up script for UN*X 22 | ## 23 | ############################################################################## 24 | 25 | # Attempt to set APP_HOME 26 | # Resolve links: $0 may be a link 27 | PRG="$0" 28 | # Need this for relative symlinks. 29 | while [ -h "$PRG" ] ; do 30 | ls=`ls -ld "$PRG"` 31 | link=`expr "$ls" : '.*-> \(.*\)$'` 32 | if expr "$link" : '/.*' > /dev/null; then 33 | PRG="$link" 34 | else 35 | PRG=`dirname "$PRG"`"/$link" 36 | fi 37 | done 38 | SAVED="`pwd`" 39 | cd "`dirname \"$PRG\"`/" >/dev/null 40 | APP_HOME="`pwd -P`" 41 | cd "$SAVED" >/dev/null 42 | 43 | APP_NAME="Gradle" 44 | APP_BASE_NAME=`basename "$0"` 45 | 46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' 48 | 49 | # Use the maximum available, or set MAX_FD != -1 to use that value. 50 | MAX_FD="maximum" 51 | 52 | warn () { 53 | echo "$*" 54 | } 55 | 56 | die () { 57 | echo 58 | echo "$*" 59 | echo 60 | exit 1 61 | } 62 | 63 | # OS specific support (must be 'true' or 'false'). 64 | cygwin=false 65 | msys=false 66 | darwin=false 67 | nonstop=false 68 | case "`uname`" in 69 | CYGWIN* ) 70 | cygwin=true 71 | ;; 72 | Darwin* ) 73 | darwin=true 74 | ;; 75 | MINGW* ) 76 | msys=true 77 | ;; 78 | NONSTOP* ) 79 | nonstop=true 80 | ;; 81 | esac 82 | 83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 84 | 85 | 86 | # Determine the Java command to use to start the JVM. 87 | if [ -n "$JAVA_HOME" ] ; then 88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 89 | # IBM's JDK on AIX uses strange locations for the executables 90 | JAVACMD="$JAVA_HOME/jre/sh/java" 91 | else 92 | JAVACMD="$JAVA_HOME/bin/java" 93 | fi 94 | if [ ! -x "$JAVACMD" ] ; then 95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 96 | 97 | Please set the JAVA_HOME variable in your environment to match the 98 | location of your Java installation." 99 | fi 100 | else 101 | JAVACMD="java" 102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 103 | 104 | Please set the JAVA_HOME variable in your environment to match the 105 | location of your Java installation." 106 | fi 107 | 108 | # Increase the maximum file descriptors if we can. 109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 110 | MAX_FD_LIMIT=`ulimit -H -n` 111 | if [ $? -eq 0 ] ; then 112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 113 | MAX_FD="$MAX_FD_LIMIT" 114 | fi 115 | ulimit -n $MAX_FD 116 | if [ $? -ne 0 ] ; then 117 | warn "Could not set maximum file descriptor limit: $MAX_FD" 118 | fi 119 | else 120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 121 | fi 122 | fi 123 | 124 | # For Darwin, add options to specify how the application appears in the dock 125 | if $darwin; then 126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 127 | fi 128 | 129 | # For Cygwin or MSYS, switch paths to Windows format before running java 130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then 131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 133 | 134 | JAVACMD=`cygpath --unix "$JAVACMD"` 135 | 136 | # We build the pattern for arguments to be converted via cygpath 137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 138 | SEP="" 139 | for dir in $ROOTDIRSRAW ; do 140 | ROOTDIRS="$ROOTDIRS$SEP$dir" 141 | SEP="|" 142 | done 143 | OURCYGPATTERN="(^($ROOTDIRS))" 144 | # Add a user-defined pattern to the cygpath arguments 145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 147 | fi 148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 149 | i=0 150 | for arg in "$@" ; do 151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 153 | 154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 156 | else 157 | eval `echo args$i`="\"$arg\"" 158 | fi 159 | i=`expr $i + 1` 160 | done 161 | case $i in 162 | 0) set -- ;; 163 | 1) set -- "$args0" ;; 164 | 2) set -- "$args0" "$args1" ;; 165 | 3) set -- "$args0" "$args1" "$args2" ;; 166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;; 167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 172 | esac 173 | fi 174 | 175 | # Escape application args 176 | save () { 177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 178 | echo " " 179 | } 180 | APP_ARGS=`save "$@"` 181 | 182 | # Collect all arguments for the java command, following the shell quoting and substitution rules 183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 184 | 185 | exec "$JAVACMD" "$@" 186 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /.github/workflows/integrationTests.yml: -------------------------------------------------------------------------------- 1 | name: Integration Tests 2 | on: 3 | push: 4 | # Triggers the workflow on labeled PRs only. 5 | pull_request_target: 6 | types: [ labeled ] 7 | # Ensures that only the latest commit is running for each PR at a time. 8 | concurrency: 9 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.ref }} 10 | cancel-in-progress: true 11 | jobs: 12 | Pretest: 13 | if: contains(github.event.pull_request.labels.*.name, 'safe to test') || github.event_name == 'push' 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Unlabel 'safe to test' 17 | uses: actions-ecosystem/action-remove-labels@v1 18 | if: ${{github.event_name != 'push' }} 19 | with: 20 | labels: 'safe to test' 21 | Distribution: 22 | needs: Pretest 23 | name: Distribution (${{ matrix.os }}) 24 | strategy: 25 | fail-fast: false 26 | matrix: 27 | os: [ ubuntu-latest, macos-latest, windows-latest ] 28 | runs-on: ${{ matrix.os }} 29 | steps: 30 | - name: Checkout code 31 | uses: actions/checkout@v3 32 | with: 33 | ref: ${{ github.event.pull_request.head.sha }} 34 | 35 | - name: Install Java 36 | uses: actions/setup-java@v3 37 | with: 38 | java-version: "8" 39 | distribution: "zulu" 40 | 41 | - name: Cache local Maven repository 42 | uses: actions/cache@v3 43 | with: 44 | path: ~/.m2/repository 45 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 46 | restore-keys: | 47 | ${{ runner.os }}-maven- 48 | 49 | # Run tests 50 | - name: Run Tests 51 | uses: gradle/gradle-build-action@v2 52 | with: 53 | arguments: clean build-info-extractor:test --tests *DistributionManagerTest* 54 | env: 55 | BITESTS_PLATFORM_URL: ${{ secrets.PLATFORM_URL }} 56 | BITESTS_PLATFORM_USERNAME: ${{ secrets.PLATFORM_USER }} 57 | BITESTS_PLATFORM_ADMIN_TOKEN: ${{ secrets.PLATFORM_ADMIN_TOKEN }} 58 | 59 | Extractor: 60 | needs: Pretest 61 | name: Extractor (${{ matrix.os }}) 62 | strategy: 63 | fail-fast: false 64 | matrix: 65 | os: [ ubuntu-latest, macos-latest, windows-latest ] 66 | runs-on: ${{ matrix.os }} 67 | steps: 68 | - name: Checkout code 69 | uses: actions/checkout@v3 70 | with: 71 | ref: ${{ github.event.pull_request.head.sha }} 72 | 73 | - name: Install Java 74 | uses: actions/setup-java@v3 75 | with: 76 | java-version: "8" 77 | distribution: "zulu" 78 | 79 | - name: Setup Go 80 | uses: actions/setup-go@v5 81 | with: 82 | go-version: 1.22.x 83 | cache: false 84 | 85 | - name: Cache local Maven repository 86 | uses: actions/cache@v3 87 | with: 88 | path: ~/.m2/repository 89 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 90 | restore-keys: | 91 | ${{ runner.os }}-maven- 92 | 93 | - name: Setup Artifactory 94 | uses: jfrog/.github/actions/install-local-artifactory@main 95 | with: 96 | RTLIC: ${{ secrets.RTLIC }} 97 | 98 | # Run tests 99 | - name: Run Tests 100 | uses: gradle/gradle-build-action@v2 101 | with: 102 | arguments: clean build-info-api:test build-info-client:test build-info-extractor:test build-info-vcs:test -PexcludeTests=**/*DistributionManager* 103 | env: 104 | BITESTS_PLATFORM_ADMIN_TOKEN: ${{ env.JFROG_TESTS_LOCAL_ACCESS_TOKEN }} 105 | 106 | Go: 107 | needs: Pretest 108 | name: Go (${{ matrix.os }}) 109 | strategy: 110 | fail-fast: false 111 | matrix: 112 | os: [ ubuntu-latest, macos-latest, windows-latest ] 113 | runs-on: ${{ matrix.os }} 114 | steps: 115 | - name: Checkout code 116 | uses: actions/checkout@v3 117 | with: 118 | ref: ${{ github.event.pull_request.head.sha }} 119 | 120 | - name: Install Java 121 | uses: actions/setup-java@v3 122 | with: 123 | java-version: "8" 124 | distribution: "zulu" 125 | 126 | - name: Setup Go 127 | uses: actions/setup-go@v5 128 | with: 129 | go-version: 1.22.x 130 | cache: false 131 | 132 | - name: Cache local Maven repository 133 | uses: actions/cache@v3 134 | with: 135 | path: ~/.m2/repository 136 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 137 | restore-keys: | 138 | ${{ runner.os }}-maven- 139 | 140 | # Run tests 141 | - name: Run Tests 142 | uses: gradle/gradle-build-action@v2 143 | with: 144 | arguments: clean build-info-extractor-go:test 145 | env: 146 | BITESTS_PLATFORM_URL: ${{ secrets.PLATFORM_URL }} 147 | BITESTS_PLATFORM_USERNAME: ${{ secrets.PLATFORM_USER }} 148 | BITESTS_PLATFORM_ADMIN_TOKEN: ${{ secrets.PLATFORM_ADMIN_TOKEN }} 149 | 150 | Gradle: 151 | needs: Pretest 152 | name: Gradle (${{ matrix.os }}) 153 | strategy: 154 | fail-fast: false 155 | matrix: 156 | os: [ ubuntu-latest, macos-13, windows-latest ] 157 | runs-on: ${{ matrix.os }} 158 | env: 159 | GRADLE_OPTS: -Dorg.gradle.daemon=false 160 | steps: 161 | - name: Checkout code 162 | uses: actions/checkout@v3 163 | with: 164 | ref: ${{ github.event.pull_request.head.sha }} 165 | 166 | - name: Install Java 167 | uses: actions/setup-java@v3 168 | with: 169 | java-version: "8" 170 | distribution: "zulu" 171 | 172 | - name: Setup Go 173 | uses: actions/setup-go@v5 174 | with: 175 | go-version: 1.22.x 176 | cache: false 177 | 178 | - name: Cache local Maven repository 179 | uses: actions/cache@v3 180 | with: 181 | path: ~/.m2/repository 182 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 183 | restore-keys: | 184 | ${{ runner.os }}-maven- 185 | 186 | - name: Setup Artifactory 187 | uses: jfrog/.github/actions/install-local-artifactory@main 188 | with: 189 | RTLIC: ${{ secrets.RTLIC }} 190 | 191 | # Run tests 192 | - name: Run Tests 193 | uses: gradle/gradle-build-action@v2 194 | with: 195 | arguments: clean build-info-extractor-gradle:test 196 | 197 | Ivy: 198 | needs: Pretest 199 | name: Ivy (${{ matrix.os }}) 200 | strategy: 201 | fail-fast: false 202 | matrix: 203 | os: [ ubuntu-latest, macos-latest, windows-latest ] 204 | runs-on: ${{ matrix.os }} 205 | steps: 206 | - name: Checkout code 207 | uses: actions/checkout@v3 208 | with: 209 | ref: ${{ github.event.pull_request.head.sha }} 210 | 211 | - name: Install Java 212 | uses: actions/setup-java@v3 213 | with: 214 | java-version: "8" 215 | distribution: "zulu" 216 | 217 | - name: Cache local Maven repository 218 | uses: actions/cache@v3 219 | with: 220 | path: ~/.m2/repository 221 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 222 | restore-keys: | 223 | ${{ runner.os }}-maven- 224 | 225 | # Run tests 226 | - name: Run Tests 227 | uses: gradle/gradle-build-action@v2 228 | with: 229 | arguments: clean build-info-extractor-ivy:test 230 | 231 | Maven: 232 | needs: Pretest 233 | name: Maven (${{ matrix.os }}) 234 | strategy: 235 | fail-fast: false 236 | matrix: 237 | os: [ ubuntu-latest, macos-latest, windows-latest ] 238 | runs-on: ${{ matrix.os }} 239 | steps: 240 | - name: Checkout code 241 | uses: actions/checkout@v3 242 | with: 243 | ref: ${{ github.event.pull_request.head.sha }} 244 | 245 | - name: Install Java 246 | uses: actions/setup-java@v3 247 | with: 248 | java-version: "8" 249 | distribution: "zulu" 250 | 251 | - name: Cache local Maven repository 252 | uses: actions/cache@v3 253 | with: 254 | path: ~/.m2/repository 255 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 256 | restore-keys: | 257 | ${{ runner.os }}-maven- 258 | 259 | # Run tests 260 | - name: Run Tests 261 | uses: gradle/gradle-build-action@v2 262 | with: 263 | arguments: clean build-info-extractor-maven3:test 264 | 265 | npm: 266 | needs: Pretest 267 | name: npm (${{ matrix.os }}) 268 | strategy: 269 | fail-fast: false 270 | matrix: 271 | os: [ ubuntu-latest, macos-13, windows-latest ] 272 | runs-on: ${{ matrix.os }} 273 | steps: 274 | - name: Checkout code 275 | uses: actions/checkout@v3 276 | with: 277 | ref: ${{ github.event.pull_request.head.sha }} 278 | 279 | - name: Install npm 280 | uses: actions/setup-node@v3 281 | with: 282 | node-version: "15" 283 | - name: Config list 284 | run: npm config ls -l 285 | - name: Install Java 286 | uses: actions/setup-java@v3 287 | with: 288 | java-version: "8" 289 | distribution: "zulu" 290 | 291 | - name: Setup Go 292 | uses: actions/setup-go@v5 293 | with: 294 | go-version: 1.22.x 295 | cache: false 296 | 297 | - name: Cache local Maven repository 298 | uses: actions/cache@v3 299 | with: 300 | path: ~/.m2/repository 301 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 302 | restore-keys: | 303 | ${{ runner.os }}-maven- 304 | 305 | - name: Setup Artifactory 306 | uses: jfrog/.github/actions/install-local-artifactory@main 307 | with: 308 | RTLIC: ${{ secrets.RTLIC }} 309 | 310 | # Run tests 311 | - name: Run Tests 312 | uses: gradle/gradle-build-action@v2 313 | with: 314 | arguments: clean build-info-extractor-npm:test 315 | env: 316 | # We use localhost because npm does not support authenticating with registries started with 127.0.0.1 317 | BITESTS_PLATFORM_URL: http://localhost:8081 318 | 319 | NuGet: 320 | needs: Pretest 321 | name: NuGet (${{ matrix.os }}) 322 | strategy: 323 | fail-fast: false 324 | matrix: 325 | os: [ ubuntu-latest, macos-13, windows-latest ] 326 | runs-on: ${{ matrix.os }} 327 | steps: 328 | - name: Checkout code 329 | uses: actions/checkout@v3 330 | with: 331 | ref: ${{ github.event.pull_request.head.sha }} 332 | 333 | # Prepare ubuntu by installing Mono and handle dotnet installation issues. 334 | - name: Prepare ubuntu 335 | if: matrix.os == 'ubuntu-latest' 336 | run: | 337 | # Install Mono 338 | sudo apt-get update 339 | sudo apt-get install -y apt-transport-https dirmngr gnupg ca-certificates 340 | sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 341 | echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list 342 | sudo apt-get update 343 | sudo apt-get install -y mono-complete 344 | # Fixes dotnet installation issues, see https://github.com/jfrog/jfrog-cli/pull/2808 for more details. 345 | echo "DOTNET_INSTALL_DIR=/usr/share/dotnet" >> $GITHUB_ENV 346 | sudo mkdir -p /usr/share/dotnet 347 | sudo chmod 777 /usr/share/dotnet 348 | 349 | - name: Install dotnet 350 | uses: actions/setup-dotnet@v4 351 | with: 352 | dotnet-version: "6.x" 353 | 354 | - name: Install NuGet 355 | uses: nuget/setup-nuget@v2 356 | with: 357 | nuget-version: 6.x 358 | 359 | - name: Install Java 360 | uses: actions/setup-java@v3 361 | with: 362 | java-version: "8" 363 | distribution: "zulu" 364 | 365 | - name: Setup Go 366 | uses: actions/setup-go@v5 367 | with: 368 | go-version: 1.22.x 369 | cache: false 370 | 371 | - name: Cache local Maven repository 372 | uses: actions/cache@v3 373 | with: 374 | path: ~/.m2/repository 375 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 376 | restore-keys: | 377 | ${{ runner.os }}-maven- 378 | 379 | - name: Setup Artifactory 380 | uses: jfrog/.github/actions/install-local-artifactory@main 381 | with: 382 | RTLIC: ${{ secrets.RTLIC }} 383 | 384 | # Run tests 385 | - name: Run Tests 386 | uses: gradle/gradle-build-action@v2 387 | with: 388 | arguments: clean build-info-extractor-nuget:test 389 | 390 | Python: 391 | needs: Pretest 392 | name: Python (${{ matrix.os }}) 393 | strategy: 394 | fail-fast: false 395 | matrix: 396 | os: [ ubuntu-latest, windows-latest ] 397 | runs-on: ${{ matrix.os }} 398 | steps: 399 | - name: Checkout code 400 | uses: actions/checkout@v3 401 | with: 402 | ref: ${{ github.event.pull_request.head.sha }} 403 | 404 | - name: Install Java 405 | uses: actions/setup-java@v3 406 | with: 407 | java-version: "8" 408 | distribution: "zulu" 409 | - name: Setup Python3 410 | uses: actions/setup-python@v4 411 | with: 412 | python-version: "3.x" 413 | - name: Setup Virtualenv 414 | run: python -m venv env 415 | 416 | - name: Setup Go 417 | uses: actions/setup-go@v5 418 | with: 419 | go-version: 1.22.x 420 | cache: false 421 | 422 | - name: Cache local Maven repository 423 | uses: actions/cache@v3 424 | with: 425 | path: ~/.m2/repository 426 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 427 | restore-keys: | 428 | ${{ runner.os }}-maven- 429 | 430 | - name: Setup Artifactory 431 | uses: jfrog/.github/actions/install-local-artifactory@main 432 | with: 433 | RTLIC: ${{ secrets.RTLIC }} 434 | 435 | # Run tests 436 | - name: Run Tests 437 | uses: gradle/gradle-build-action@v2 438 | with: 439 | arguments: clean build-info-extractor-pip:test 440 | env: 441 | BITESTS_ARTIFACTORY_PIP_ENV: fromJSON('{"Linux":"env/bin","macOS":"env/bin","Windows":"env\\Scripts"}')[runner.os] 442 | 443 | Docker: 444 | needs: Pretest 445 | name: Docker 446 | runs-on: ubuntu-latest 447 | steps: 448 | - name: Checkout code 449 | uses: actions/checkout@v3 450 | with: 451 | ref: ${{ github.event.pull_request.head.sha }} 452 | 453 | - name: Install Java 454 | uses: actions/setup-java@v3 455 | with: 456 | java-version: "8" 457 | distribution: "zulu" 458 | 459 | - name: Cache local Maven repository 460 | uses: actions/cache@v3 461 | with: 462 | path: ~/.m2/repository 463 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 464 | restore-keys: | 465 | ${{ runner.os }}-maven- 466 | 467 | - name: Containerize Artifactory 468 | run: | 469 | cd ./build-info-extractor-docker/src/test/resources/artifactory/ 470 | ./start.sh 471 | env: 472 | RTLIC: ${{secrets.RTLIC}} 473 | GOPROXY: direct 474 | - name: Wait for Artifactory to finish loading 475 | uses: nev7n/wait_for_response@v1 476 | with: 477 | url: "http://localhost:8082" 478 | responseCode: 200 479 | timeout: 600000 480 | interval: 500 481 | 482 | # Run tests 483 | - name: Run Tests 484 | uses: gradle/gradle-build-action@v2 485 | with: 486 | arguments: clean build-info-extractor-docker:test 487 | -------------------------------------------------------------------------------- /RELEASE.md: -------------------------------------------------------------------------------- 1 | # Release Notes 2 | 3 | | The release notes moved to https://github.com/jfrog/build-info/releases | 4 | |----------------------------------------------------------------------------------------------------------------------------------------------------------| 5 | 6 | ## build-info-extractor 2.39.9 / gradle-artifactory-plugin 4.31.9 (April 9, 2023) 7 | - Add Client ID to the usage report ([717](https://github.com/jfrog/build-info/pull/717)) 8 | 9 | ## build-info-extractor 2.39.8 / gradle-artifactory-plugin 4.31.8 (March 23, 2023) 10 | - Refactor 'collectAndFilterEnvIfNeeded' func ([721](https://github.com/jfrog/build-info/pull/721)) 11 | 12 | ## build-info-extractor 2.39.7 / gradle-artifactory-plugin 4.31.7 (March 15, 2023) 13 | - Fix missing Maven 3.9.0 requirement field ([718](https://github.com/jfrog/build-info/pull/718)) 14 | 15 | ## build-info-extractor 2.39.6 / gradle-artifactory-plugin 4.31.6 (March 13, 2023) 16 | - Filter build-info and modules properties ([716](https://github.com/jfrog/build-info/pull/716)) 17 | 18 | ## build-info-extractor 2.39.5 / gradle-artifactory-plugin 4.31.5 (March 2, 2023) 19 | - Revert "Removed the dummy remote repository in favour for the snapshot and re…" ([714](https://github.com/jfrog/build-info/pull/714)) 20 | 21 | ## build-info-extractor 2.39.4 / gradle-artifactory-plugin 4.31.4 (February 20, 2023) 22 | - Adding Go Get command to go driver ([709](https://github.com/jfrog/build-info/pull/709)) 23 | 24 | ## build-info-extractor 2.39.3 / gradle-artifactory-plugin 4.31.3 (February 16, 2023) 25 | - Refactor and handle unhandled exceptions ([707](https://github.com/jfrog/build-info/pull/707)) 26 | 27 | ## build-info-extractor 2.39.2 / gradle-artifactory-plugin 4.31.2 (February 15, 2023) 28 | - Fix missing fields for maven 3.9.0 ([706](https://github.com/jfrog/build-info/pull/706)) 29 | 30 | ## build-info-extractor 2.39.1 / gradle-artifactory-plugin 4.31.1 (January 7, 2023) 31 | - Retry on error codes 500 ([694](https://github.com/jfrog/build-info/pull/694)) 32 | 33 | ## build-info-extractor 2.39.0 / gradle-artifactory-plugin 4.31.0 (December 29, 2022) 34 | - Allow skipping VCS stamping in Go ([689](https://github.com/jfrog/build-info/pull/689)) 35 | - Remove the dummy remote repository in Maven ([683](https://github.com/jfrog/build-info/pull/683)) 36 | 37 | ## build-info-extractor 2.38.1 / gradle-artifactory-plugin 4.30.1 (December 15, 2022) 38 | - Downgrade slf4j to 1.7.36 ([686](https://github.com/jfrog/build-info/pull/686)) 39 | 40 | ## build-info-extractor 2.38.0 / gradle-artifactory-plugin 4.30.0 (December 14, 2022) 41 | - Add getFederatedRepositoriesKeys to ArtifactoryManager ([685](https://github.com/jfrog/build-info/pull/685)) 42 | - Gradle - Publish bom files when 'java-platform' plugin applied ([680](https://github.com/jfrog/build-info/pull/680)) 43 | - Update dependencies and support building Java 11 ([659](https://github.com/jfrog/build-info/pull/659)) 44 | - Bug fix - NullPointerException when building the matrix params ([684](https://github.com/jfrog/build-info/pull/684)) 45 | 46 | ## build-info-extractor 2.37.3 / gradle-artifactory-plugin 4.29.3 (November 10, 2022) 47 | - Bug fix - Remove custom exception for unknown violation types ([675](https://github.com/jfrog/build-info/pull/675)) 48 | - Bug fix - Sha256 hashes being set to literal "SHA-256" in build-info json ([669](https://github.com/jfrog/build-info/pull/669)) 49 | 50 | ## build-info-extractor 2.37.2 / gradle-artifactory-plugin 4.29.2 (October 18, 2022) 51 | - Bug fix - Pom doesn't get deployed using Maven Install plugin 3+ ([670](https://github.com/jfrog/build-info/pull/670)) 52 | 53 | ## build-info-extractor 2.37.1 / gradle-artifactory-plugin 4.29.1 (September 28, 2022) 54 | - Bug fix - Support Docker module ID with slash ([666](https://github.com/jfrog/build-info/pull/666)) 55 | 56 | ## build-info-extractor 2.37.0 / gradle-artifactory-plugin 4.29.0 (July 21, 2022) 57 | - Add project field to gradle extractor ([661](https://github.com/jfrog/build-info/pull/661)) 58 | 59 | ## build-info-extractor 2.36.3 / gradle-artifactory-plugin 4.28.3 (May 12, 2022) 60 | - Bug fix - Missing Gradle build-info props on artifacts ([649](https://github.com/jfrog/build-info/pull/649)) 61 | 62 | ## build-info-extractor 2.36.4 / gradle-artifactory-plugin 4.28.4 (July 3, 2022) 63 | - Upgrade httpcore to 4.4.13 ([654](https://github.com/jfrog/build-info/pull/654)) 64 | - Bug fix - Broken AQL request when build is not defined in FilesGroup ([650](https://github.com/jfrog/build-info/pull/650)) 65 | 66 | ## build-info-extractor 2.36.3 / gradle-artifactory-plugin 4.28.3 (May 12, 2022) 67 | - Bug fix - Missing Gradle build-info props on artifacts ([649](https://github.com/jfrog/build-info/pull/649)) 68 | 69 | ## build-info-extractor 2.36.2 / gradle-artifactory-plugin 4.28.2 (April 20, 2022) 70 | - Bug fix - Incorrect plugins endpoints ([635](https://github.com/jfrog/build-info/pull/635)) 71 | - Bug fix - When project provided, "projectKey" query parameter should be added to build info URL ([631](https://github.com/jfrog/build-info/pull/631)) 72 | - Bug fix - Go driver should allow ignoring errors "go mod tidy" as it does in "go mod graph" ([634](https://github.com/jfrog/build-info/pull/634)) 73 | - Bug fix - Cve should have an empty constructor to allow serialization ([644](https://github.com/jfrog/build-info/pull/644)) 74 | - Bug fix - Incorrect Docker manifest path when collecting build-info ([643](https://github.com/jfrog/build-info/pull/643)) 75 | 76 | ## build-info-extractor 2.36.1 / gradle-artifactory-plugin 4.28.1 (March 27, 2022) 77 | - Remove unnecessary warning log message about missing branch ([632](https://github.com/jfrog/build-info/pull/632)) 78 | - Remove the usage of StringUtils.firstNonBlank ([633](https://github.com/jfrog/build-info/pull/633)) 79 | 80 | ## build-info-extractor 2.36.0 / gradle-artifactory-plugin 4.28.0 (March 16, 2022) 81 | - Go - Filter out unused dependencies from build info ([622](https://github.com/jfrog/build-info/pull/622)) 82 | - Gradle - Support proxy in build info publish ([629](https://github.com/jfrog/build-info/pull/629)) 83 | - Maven - Deploy only in mvn install/deploy phases ([626](https://github.com/jfrog/build-info/pull/626)) & ([630](https://github.com/jfrog/build-info/pull/630)) 84 | - Bug fix - Maven artifacts properties not set ([624](https://github.com/jfrog/build-info/pull/624)) 85 | - Bug fix - in some cases, the build info URL is wrong ([618](https://github.com/jfrog/build-info/pull/618)) & ([619](https://github.com/jfrog/build-info/pull/619)) 86 | - Bug fix - In some cases, the project parameter in Maven is ignored ([618](https://github.com/jfrog/build-info/pull/618)) 87 | - Bug fix - in some cases, Docker module name in build-info is wrong ([617](https://github.com/jfrog/build-info/pull/617)) 88 | 89 | ## build-info-extractor 2.35.0 / gradle-artifactory-plugin 4.27.1 (February 13, 2022) 90 | - Add project support for Maven ([612](https://github.com/jfrog/build-info/pull/612)) 91 | - IDEs - Support ignore URL and references to issues in the dependency tree ([611](https://github.com/jfrog/build-info/pull/611)) 92 | - Bug fix - Maven deploy fails when the classifier string value is too long ([612](https://github.com/jfrog/build-info/pull/612)) 93 | 94 | ## build-info-extractor 2.34.0 / gradle-artifactory-plugin 4.27.0 (February 6, 2022) 95 | - Support build promotion with projects ([613](https://github.com/jfrog/build-info/pull/613)) 96 | - Support insecure TLS in the Gradle Artifactory plugin ([610](https://github.com/jfrog/build-info/pull/610)) 97 | 98 | ## build-info-extractor 2.33.3 / gradle-artifactory-plugin 4.26.3 (January 26, 2022) 99 | - Bug fix - Signature of AmazonCorrettoCryptoProvider couldn't found ([609](https://github.com/jfrog/build-info/pull/609)) 100 | 101 | ## build-info-extractor 2.33.2 / gradle-artifactory-plugin 4.26.2 (January 20, 2022) 102 | - Bug fix - Add 'localpath' to artifact builder ([606](https://github.com/jfrog/build-info/pull/606)) 103 | - Add SHA2 to upload files ([605](https://github.com/jfrog/build-info/pull/605)) 104 | 105 | ## build-info-extractor 2.33.1 / gradle-artifactory-plugin 4.26.1 (January 6, 2022) 106 | - Remove JGIT dependency ([600](https://github.com/jfrog/build-info/pull/600)) 107 | 108 | ## build-info-extractor 2.33.0 / gradle-artifactory-plugin 4.26.0 (January 5, 2022) 109 | - Calculate SHA256 in builds ([598](https://github.com/jfrog/build-info/pull/598)) 110 | 111 | ## build-info-extractor 2.32.6 / gradle-artifactory-plugin 4.25.5 (January 3, 2022) 112 | - Add VCS branch and VCS message to build-info VCS details ([591](https://github.com/jfrog/build-info/pull/591)) 113 | - Bug fix - VCS properties on artifacts are not added on maven late deploy ([596](https://github.com/jfrog/build-info/pull/596)) 114 | 115 | ## build-info-extractor 2.32.5 / gradle-artifactory-plugin 4.25.4 (December 28, 2021) 116 | - Add support for v2 compatible Go projects with submodule as root ([594](https://github.com/jfrog/build-info/pull/594)) 117 | - Bugfix - Gradle defaults props should not ignore deprecated build-info properties ([590](https://github.com/jfrog/build-info/pull/590)) 118 | - IDEs - Compare scan issues by ID ([589](https://github.com/jfrog/build-info/pull/589)) 119 | 120 | ## build-info-extractor 2.32.4 / gradle-artifactory-plugin 4.25.3 (December 19, 2021) 121 | - Deprecate 'artifactory.' property prefix. 122 | - Bug fix - Multi Values Properties Set ([583](https://github.com/jfrog/build-info/pull/583)) 123 | 124 | ## build-info-extractor 2.32.3 / gradle-artifactory-plugin 4.25.2 (December 7, 2021) 125 | - Update file-specs-java dependency to 1.1.1 126 | 127 | ## build-info-extractor 2.32.2 / gradle-artifactory-plugin 4.25.1 (December 5, 2021) 128 | - Update apache commons-lang (2) to current commons-lang3 ([580](https://github.com/jfrog/build-info/pull/580)) 129 | - Allow ignoring go list errors ([577](https://github.com/jfrog/build-info/pull/577)) 130 | - Bugfix - Build-info ignores duplicate artifacts checksum ([579](https://github.com/jfrog/build-info/pull/579)) 131 | 132 | ## build-info-extractor 2.32.0 / gradle-artifactory-plugin 4.25.0 (November 30, 2021) 133 | - Add 'mvn deploy' command. 134 | 135 | ## build-info-extractor 2.31.2 / gradle-artifactory-plugin 4.24.21 (November 3, 2021) 136 | - Add CVE ID to Xray scan Issue ([564](https://github.com/jfrog/build-info/pull/564)) 137 | - Improve dependency tree performance and memory consumption ([562](https://github.com/jfrog/build-info/pull/562)) ([565](https://github.com/jfrog/build-info/pull/565)) 138 | 139 | ## build-info-extractor 2.31.1 / gradle-artifactory-plugin 4.24.20 (October 1, 2021) 140 | - Add metadata field to dependency tree node ([558](https://github.com/jfrog/build-info/pull/558)) 141 | 142 | ## build-info-extractor 2.31.0 / gradle-artifactory-plugin 4.24.19 (September 30, 2021) 143 | - Use the file-specs-java library ([552](https://github.com/jfrog/build-info/pull/552)) 144 | - Add getUsedModules and modTidy to GoDriver ([557](https://github.com/jfrog/build-info/pull/557)) 145 | - Add support for new Xray graph scan ([556](https://github.com/jfrog/build-info/pull/556)) 146 | 147 | ## build-info-extractor 2.30.2 / gradle-artifactory-plugin 4.24.18 (September 19, 2021) 148 | - Bug fix - IllegalArgumentException during build scan ([554](https://github.com/jfrog/build-info/pull/554)) 149 | - Dependencies update ([553](https://github.com/jfrog/build-info/pull/553)) 150 | 151 | ## build-info-extractor 2.30.0 / gradle-artifactory-plugin 4.24.16 (August 17, 2021) 152 | - Add Projects APIs ([549](https://github.com/jfrog/build-info/pull/549)) 153 | - Run Go on new Java process ([548](https://github.com/jfrog/build-info/pull/548)) 154 | 155 | ## build-info-extractor 2.29.0 / gradle-artifactory-plugin 4.24.15 (August 15, 2021) 156 | - Refactor build scan table ([545](https://github.com/jfrog/build-info/pull/545)) 157 | - Allow npm projects without name and versions ([546](https://github.com/jfrog/build-info/pull/546)) 158 | 159 | ## build-info-extractor 2.28.8 / gradle-artifactory-plugin 4.24.14 (July 19, 2021) 160 | - Bug fix - Fail to deserialize deployable artifacts ([537](https://github.com/jfrog/build-info/pull/537)) 161 | - Gradle - skip uploading JAR if no jar produced in build ([538](https://github.com/jfrog/build-info/pull/538)) 162 | - Make download headers comparisons case insensitive ([539](https://github.com/jfrog/build-info/pull/539)) 163 | 164 | ## build-info-extractor 2.28.6 / gradle-artifactory-plugin 4.24.12 (July 13, 2021) 165 | - Separate target repository and artifacts destination in the deployable artifacts file ([532](https://github.com/jfrog/build-info/pull/532)) 166 | - Publish Gradle plugin to Gradle Gallery ([536](https://github.com/jfrog/build-info/pull/536)) 167 | 168 | ## build-info-extractor 2.28.5 / gradle-artifactory-plugin 4.24.11 (July 8, 2021) 169 | - Add Artifactory url and repository to artifacts destination in deployable artifacts file ([530](https://github.com/jfrog/build-info/pull/530)) 170 | 171 | ## build-info-extractor 2.28.4 / gradle-artifactory-plugin 4.24.10 (July 5, 2021) 172 | - Bug fix - ReportUsage throws an exception for Artifactory version 6.9.0 ([525](https://github.com/jfrog/build-info/pull/525)) 173 | 174 | ## build-info-extractor 2.28.3 / gradle-artifactory-plugin 4.24.9 (June 30, 2021) 175 | - Bug fix - file-spec-java missing dependency issue when using the Artifactory Gradle plugin ([523](https://github.com/jfrog/build-info/pull/523)) 176 | 177 | ## build-info-extractor 2.28.2 / gradle-artifactory-plugin 4.24.8 (June 29, 2021) 178 | - Add support for Kaniko and JIB ([512](https://github.com/jfrog/build-info/pull/512)) 179 | - Add JFrog Distribution commands ([520](https://github.com/jfrog/build-info/pull/520)) 180 | - Add project to ScanBuild service ([519](https://github.com/jfrog/build-info/pull/519)) 181 | - Bug fix - NoSuchMethodError when using IOUtils.toString ([516](https://github.com/jfrog/build-info/pull/516)) 182 | 183 | ## build-info-extractor 2.27.0 / gradle-artifactory-plugin 4.24.5 (June 16, 2021) 184 | - Add sha256 to the upload response of maven and gradle ([477](https://github.com/jfrog/build-info/pull/477)) 185 | - Update xstream to 1.4.17 ([513](https://github.com/jfrog/build-info/pull/513)) 186 | 187 | ## build-info-extractor 2.26.4 / gradle-artifactory-plugin 4.24.4 (May 31, 2021) 188 | - Bug fix - Error when trying to download an empty (zero bytes size) file ([507](https://github.com/jfrog/build-info/pull/507)) 189 | - Bug fix - Deploy file doesn't print full URL in the log output ([509](https://github.com/jfrog/build-info/pull/509)) 190 | 191 | ## build-info-extractor 2.26.3 / gradle-artifactory-plugin 4.24.3 (May 28, 2021) 192 | - Bug fix - Ignore missing fields while deserialize HTTP response ([502](https://github.com/jfrog/build-info/pull/502)) 193 | - Bug fix - Build retention service sends an empty body ([504](https://github.com/jfrog/build-info/pull/504)) 194 | - Bug fix - Artifactory Trigger cannot deserialize instance ItemLastModified ([503](https://github.com/jfrog/build-info/pull/503)) 195 | 196 | ## build-info-extractor 2.26.2 / gradle-artifactory-plugin 4.24.2 (May 25, 2021) 197 | - Gradle - Improve Gradle transitive dependency collection ([498](https://github.com/jfrog/build-info/pull/498)) 198 | - Restructuring Artifactory APIs ([493](https://github.com/jfrog/build-info/pull/493)) 199 | 200 | ## build-info-extractor 2.26.1 / gradle-artifactory-plugin 4.24.1 (May 23, 2021) 201 | - Gradle - Build-info is not published, if the build does not deploy artifacts ([495](https://github.com/jfrog/build-info/pull/495)) 202 | 203 | ## build-info-extractor 2.26.0 / gradle-artifactory-plugin 4.24.0 (May 19, 2021) 204 | - Upgrade xstream to 1.4.16 ([489](https://github.com/jfrog/build-info/pull/489)) 205 | - Add support for npm 7.7([484](https://github.com/jfrog/build-info/pull/484)) 206 | - Add support JFrog platform URL for published build ([478](https://github.com/jfrog/build-info/pull/478)) 207 | - Add support for Artifactory Projects ([471](https://github.com/jfrog/build-info/pull/471)) 208 | - Add support for NuGet V3 protocol ([479](https://github.com/jfrog/build-info/pull/479) & [494](https://github.com/jfrog/build-info/pull/494)) 209 | - Bug fix - IDE scan fix top available issue severity should be critical ([488](https://github.com/jfrog/build-info/pull/488)) 210 | - Bug fix - env not collect in npm, Go, Pip, and NuGet builds ([491](https://github.com/jfrog/build-info/pull/491)) 211 | 212 | ## build-info-extractor 2.25.4 / gradle-artifactory-plugin 4.23.4 (April 29, 2021) 213 | - Start uploading build-info JARs to Maven Central 214 | - Bug fix - Gradle circular dependency resolution causes stack overflow 215 | - Bug fix - NPE is thrown if the image is not found in Artifactory 216 | 217 | ## build-info-extractor 2.25.0 / gradle-artifactory-plugin 4.23.0 (March 31, 2021) 218 | - Gradle Kotlin DSL support 219 | - Update severities in dependency tree - make 'Critical' one level above 'High' 220 | - Bug fix - Usage report failure when Artifactory return 202 221 | 222 | ## build-info-extractor 2.24.1 / gradle-artifactory-plugin 4.22.1 (March 22, 2021) 223 | - Populate requestedBy field in Gradle and NPM build-info 224 | - Update Artifactory image URL to releases-docker.jfrog.io in README 225 | - Bug fix - upload files with props omit multiple slashes 226 | - Bug fix - Git-collect-issues should ignore errors when the revision of the previous build info doesn't exist. 227 | --------------------------------------------------------------------------------