├── 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 | [](https://search.maven.org/artifact/org.jfrog.buildinfo/build-info-extractor) [](https://plugins.gradle.org/plugin/com.jfrog.artifactory)
4 |
5 | [](https://github.com/jfrog/frogbot#readme) [](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 |
--------------------------------------------------------------------------------