Github Attestation

Generates a list of artifacts that may be supplied as input to the actions/attest-build-provenance GitHub Action. The list will be saved in a file named after the chosen attestationName. The contents of this file may be used as an input, for example

my-release-workflow.yml

      - name: Release
        uses: jreleaser/release-action@v2
        with:
          arguments: release
        env:
          JRELEASER_PROJECT_VERSION: <my-project-version>

      - run: echo "ARTIFACTS=$(cat out/jreleaser/catalogs/github/<my-chosen-attestation-name>)" >> $GITHUB_OUTPUT

      - name: Attestations
        uses: actions/attest-build-provenance@v1
        with:
          subject-path: |
            ${{ ARTIFACTS }}

Configuration

Legend:

  • required

  • optional

  • may use environment variable

  • accepts Name Templates

  • YAML

  • TOML

  • JSON

  • Maven

  • Gradle

catalog:
  # 
  github:

    # Enable or disable this cataloger.
    # Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
    # Defaults to `NEVER`.
    #  
    active: ALWAYS

    # Name of the attestation file.
    # Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
    #  
    attestationName: 'app-all-{{projectVersion}}'

    # Check distribution artifacts.
    # Defaults to `true`.
    # 
    artifacts: true

    # Check files.
    # Defaults to `true`.
    # 
    files: true

    # Check deployable artifacts.
    # Defaults to `true`.
    # 
    deployables: true

    # A set of artifacts to include.
    # 
    includes:
      - '**/*.zip'

    # A set of artifacts to exclude.
    # 
    excludes:
      - '**/*.asc'

    # Additional properties used when evaluating templates.
    #  
    extraProperties:
      # Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
      foo: bar
# 
[catalog.github]

  # Enable or disable this cataloger.
  # Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
  # Defaults to `NEVER`.
  #  
  active = "ALWAYS"

    # Name of the attestation file.
    # Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
    #  
    attestationName = "app-all-{{projectVersion}}"

    # Check distribution artifacts.
    # Defaults to `true`.
    # 
    artifacts = true

    # Check files.
    # Defaults to `true`.
    # 
    files = true

    # Check deployable artifacts.
    # Defaults to `true`.
    # 
    deployables = true

    # A set of artifacts to include.
    # 
    includes = ["**/*.zip"]

    # A set of artifacts to exclude.
    # 
    excludes = ["**/*.asc"]

  # Additional properties used when evaluating templates.
  #  
  extraProperties.foo = "bar"
  # Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
{
  "catalog": {
    // 
    "github": {

      // Enable or disable this cataloger.
      // Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
      // Defaults to `NEVER`.
      //  
      "active": "ALWAYS",

      // Name of the attestation file.
      // Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
      //  
      "attestationName": "app-all-{{projectVersion}}",

      // Check distribution artifacts.
      // Defaults to `true`.
      // 
      "artifacts": true,

      // Check files.
      // Defaults to `true`.
      // 
      "files": true,

      // Check deployable artifacts.
      // Defaults to `true`.
      // 
      "deployables": true,

      // A set of artifacts to include.
      // 
      "includes": ["**/*.zip"],

      // A set of artifacts to exclude.
      // 
      "excludes": ["**/*.asc"],

      // Additional properties used when evaluating templates.
      //  
      "extraProperties": {
        // Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
        "foo": "bar"
      }
    }
  }
}
<jreleaser>
  <!--
    
  -->
  <catalog>
    <!--
      
    -->
    <github>

      <!--
        Enable or disable this cataloger.
        Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
        Defaults to `NEVER`.
         
      -->
      <active>ALWAYS</active>

      <!--
        Name of the attestation file.
        Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
         
      -->
      <attestationName>app-all-{{projectVersion}}</attestationName>

      <!--
        Check distribution artifacts.
        Defaults to `true`.
        
      -->
      <artifacts>true</artifacts>

      <!--
        Check files.
        Defaults to `true`.
        
      -->
      <files>true</files>

      <!--
        Check deployable artifacts.
        Defaults to `true`.
        
      -->
      <deployables>true</deployables>

      <!--
        A set of artifacts to include.
        
      -->
      <includes>
        <include>**/*.zip</include>
      </includes>

      <!--
        A set of artifacts to exclude.
        
      -->
      <excludes>
        <exclude>**/*.asc</exclude>
      </excludes>

      <!--
        Additional properties used when evaluating templates.
         
      -->
      <extraProperties>
        <!--
          Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
        -->
        <foo>bar</foo>
      </extraProperties>
    </github>
  </catalog>
</jreleaser>
jreleaser {
  catalog {
    // 
    github {

      // Enable or disable this cataloger.
      // Supported values are [`NEVER`, `ALWAYS`, `RELEASE`, `SNAPSHOT`].
      // Defaults to `NEVER`.
      //  
      active = 'ALWAYS'

      // Name of the attestation file.
      // Defaults to `{{projectName}}-{{projectEffectiveVersion}}`.
      //  
      attestationName = 'app-all-{{projectVersion}}'

      // Check distribution artifacts.
      // Defaults to `true`.
      // 
      artifacts = true

      // Check files.
      // Defaults to `true`.
      // 
      files = true

      // Check deployable artifacts.
      // Defaults to `true`.
      // 
      deployables = true

      // A set of artifacts to include.
      // 
      includes('**/*.zip')

      // A set of artifacts to exclude.
      // 
      exclude('**/*.asc')

      // Additional properties used when evaluating templates.
      // Key will be capitalized and prefixed with `github`, i.e, `githubFoo`.
      //  
      extraProperties.put('foo', 'bar')
    }
  }
}

Environment

When not explicitly set, the value of the following properties may be resolved from an environment variable or a system property as shown in the table. The system property takes precedence over the environment variable.

System Property Environment Variable

active

jreleaser.catalog.github.active

JRELEASER_CATALOG_GITHUB_ACTIVE

attestationName

jreleaser.catalog.github.attestation.name

JRELEASER_CATALOG_GITHUB_ATTESTATION_NAME