@@ -84,18 +84,24 @@ jobs:
8484 echo "Using provided artifact name: ${{ inputs.artifact-name }}"
8585 echo "Encoded: $API_ARTIFACT_NAME"
8686 fi
87+ echo "Resolved artifact name for attestation: ${{ inputs.artifact-name }}"
8788
8889 - name : Get and Attest SBOM
8990 uses : docker://ghcr.io/l3montree-dev/devguard/scanner:main
9091 with :
9192 args : |
9293 sh -c "
9394 slug=$(devguard-scanner slug ${{ github.ref_name }}) &&
95+ artifact_name="$ARTIFACT_NAME" &&
96+ echo 'Fetching SBOM for artifact:' '${{ env.API_ARTIFACT_NAME }}' &&
9497 devguard-scanner curl '${{ inputs.api-url }}/api/v1/organizations/${{ inputs.asset-name }}/refs/'$slug'/artifacts/${{ env.API_ARTIFACT_NAME }}/sbom.json/' --token='${{ secrets.devguard-token }}' > /tmp/sbom.json &&
98+ echo 'SBOM downloaded to /tmp/sbom.json' &&
9599 if [ -f image-digest.txt ]; then
96- devguard-scanner attest -u ${{ github.actor }} -r ghcr.io -p ${{ secrets.GITHUB_TOKEN }} /tmp/sbom.json --predicateType='https://cyclonedx.org/bom' \"$(cat image-tag.txt)@$(cat image-digest.txt)\" --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="${{ env.ARTIFACT_NAME }}"
100+ echo 'Attesting SBOM with image digest present' &&
101+ devguard-scanner attest -u ${{ github.actor }} -r ghcr.io -p ${{ secrets.GITHUB_TOKEN }} /tmp/sbom.json --predicateType='https://cyclonedx.org/bom' \"$(cat image-tag.txt)@$(cat image-digest.txt)\" --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="$artifact_name"
97102 else
98- devguard-scanner attest /tmp/sbom.json --predicateType='https://cyclonedx.org/bom' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="${{ env.ARTIFACT_NAME }}"
103+ echo 'Attesting SBOM without image digest' &&
104+ devguard-scanner attest /tmp/sbom.json --predicateType='https://cyclonedx.org/bom' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="$artifact_name"
99105 fi
100106 "
101107 env :
@@ -107,11 +113,16 @@ jobs:
107113 args : |
108114 sh -c "
109115 slug=$(devguard-scanner slug ${{ github.ref_name }}) &&
116+ artifact_name="$ARTIFACT_NAME" &&
117+ echo 'Fetching VeX for artifact:' '${{ env.API_ARTIFACT_NAME }}' &&
110118 devguard-scanner curl '${{ inputs.api-url }}/api/v1/organizations/${{ inputs.asset-name }}/refs/'$slug'/artifacts/${{ env.API_ARTIFACT_NAME }}/vex.json/' --token='${{ secrets.devguard-token }}' > /tmp/vex.json &&
119+ echo 'VeX downloaded to /tmp/vex.json' &&
111120 if [ -f image-digest.txt ]; then
112- devguard-scanner attest -u ${{ github.actor }} -r ghcr.io -p ${{ secrets.GITHUB_TOKEN }} /tmp/vex.json \"$(cat image-tag.txt)@$(cat image-digest.txt)\" --token='${{ secrets.devguard-token }}' --predicateType='https://cyclonedx.org/vex' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="${{ env.ARTIFACT_NAME }}"
121+ echo 'Attesting VeX with image digest present' &&
122+ devguard-scanner attest -u ${{ github.actor }} -r ghcr.io -p ${{ secrets.GITHUB_TOKEN }} /tmp/vex.json \"$(cat image-tag.txt)@$(cat image-digest.txt)\" --token='${{ secrets.devguard-token }}' --predicateType='https://cyclonedx.org/vex' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="$artifact_name"
113123 else
114- devguard-scanner attest /tmp/vex.json --predicateType='https://cyclonedx.org/vex' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="${{ env.ARTIFACT_NAME }}"
124+ echo 'Attesting VeX without image digest' &&
125+ devguard-scanner attest /tmp/vex.json --predicateType='https://cyclonedx.org/vex' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="$artifact_name"
115126 fi
116127 "
117128 env :
@@ -123,11 +134,16 @@ jobs:
123134 args : |
124135 sh -c "
125136 slug=$(devguard-scanner slug ${{ github.ref_name }}) &&
137+ artifact_name="$ARTIFACT_NAME" &&
138+ echo 'Fetching SAST results for artifact:' '${{ env.ARTIFACT_NAME }}' &&
126139 devguard-scanner curl '${{ inputs.api-url }}/api/v1/organizations/${{ inputs.asset-name }}/refs/'$slug'/sarif.json' --token='${{ secrets.devguard-token }}' > /tmp/sarif.json &&
140+ echo 'SAST results downloaded to /tmp/sarif.json' &&
127141 if [ -f image-digest.txt ]; then
128- devguard-scanner attest -u ${{ github.actor }} -r ghcr.io -p ${{ secrets.GITHUB_TOKEN }} /tmp/sarif.json \"$(cat image-tag.txt)@$(cat image-digest.txt)\" --predicateType='https://www.schemastore.org/schemas/json/sarif-2.1.0.json' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="${{ env.ARTIFACT_NAME }}"
142+ echo 'Attesting SAST results with image digest present' &&
143+ devguard-scanner attest -u ${{ github.actor }} -r ghcr.io -p ${{ secrets.GITHUB_TOKEN }} /tmp/sarif.json \"$(cat image-tag.txt)@$(cat image-digest.txt)\" --predicateType='https://www.schemastore.org/schemas/json/sarif-2.1.0.json' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="$artifact_name"
129144 else
130- devguard-scanner attest /tmp/sarif.json --predicateType='https://www.schemastore.org/schemas/json/sarif-2.1.0.json' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="${{ env.ARTIFACT_NAME }}"
145+ echo 'Attesting SAST results without image digest' &&
146+ devguard-scanner attest /tmp/sarif.json --predicateType='https://www.schemastore.org/schemas/json/sarif-2.1.0.json' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="$artifact_name"
131147 fi
132148 "
133149 env :
@@ -142,10 +158,14 @@ jobs:
142158 with :
143159 args : |
144160 sh -c "
161+ artifact_name="$ARTIFACT_NAME" &&
162+ echo 'Building provenance attestation for artifact:' '${{ env.ARTIFACT_NAME }}' &&
145163 if [ -f image-digest.txt ]; then
146- devguard-scanner attest -u ${{ github.actor }} -r ghcr.io -p ${{ secrets.GITHUB_TOKEN }} build.provenance.json \"$(cat image-tag.txt)@$(cat image-digest.txt)\" --predicateType='https://slsa.dev/provenance/v1' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="${{ env.ARTIFACT_NAME }}"
164+ echo 'Attesting provenance with image digest present' &&
165+ devguard-scanner attest -u ${{ github.actor }} -r ghcr.io -p ${{ secrets.GITHUB_TOKEN }} build.provenance.json \"$(cat image-tag.txt)@$(cat image-digest.txt)\" --predicateType='https://slsa.dev/provenance/v1' --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="$artifact_name"
147166 else
148- devguard-scanner attest build.provenance.json --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --predicateType='https://slsa.dev/provenance/v1' --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="${{ env.ARTIFACT_NAME }}"
167+ echo 'Attesting provenance without image digest' &&
168+ devguard-scanner attest build.provenance.json --token='${{ secrets.devguard-token }}' --apiUrl=${{ inputs.api-url }} --predicateType='https://slsa.dev/provenance/v1' --assetName=${{ inputs.asset-name }} --ref=${{ github.ref_name }} --artifactName="$artifact_name"
149169 fi
150170 "
151171 env :
0 commit comments