Skip to content

Commit 27cb35b

Browse files
chore(NODE-6118): generate authorized publisher report and compliance report (#4156)
1 parent 8fb43f8 commit 27cb35b

File tree

3 files changed

+98
-154
lines changed

3 files changed

+98
-154
lines changed
Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
name: Compress and Sign
22
description: 'Compresses package and signs with garasign'
33

4-
inputs:
5-
aws_role_arn:
6-
description: 'AWS role input for drivers-github-tools/gpg-sign@v2'
7-
required: true
8-
aws_region_name:
9-
description: 'AWS region name input for drivers-github-tools/gpg-sign@v2'
10-
required: true
11-
aws_secret_id:
12-
description: 'AWS secret id input for drivers-github-tools/gpg-sign@v2'
13-
required: true
14-
npm_package_name:
15-
description: 'The name for the npm package this repository represents'
16-
required: true
4+
inputs:
5+
aws_role_arn:
6+
description: 'AWS role input for drivers-github-tools/gpg-sign@v2'
7+
required: true
8+
aws_region_name:
9+
description: 'AWS region name input for drivers-github-tools/gpg-sign@v2'
10+
required: true
11+
aws_secret_id:
12+
description: 'AWS secret id input for drivers-github-tools/gpg-sign@v2'
13+
required: true
14+
npm_package_name:
15+
description: 'The name for the npm package this repository represents'
16+
required: true
17+
dry_run:
18+
description: 'Should we upload files to the release?'
19+
required: false
20+
default: 'true'
1721

1822
runs:
1923
using: composite
@@ -31,24 +35,25 @@ runs:
3135
3236
- name: Set up drivers-github-tools
3337
uses: mongodb-labs/drivers-github-tools/setup@v2
34-
with:
38+
with:
3539
aws_region_name: ${{ inputs.aws_region_name }}
3640
aws_role_arn: ${{ inputs.aws_role_arn }}
3741
aws_secret_id: ${{ inputs.aws_secret_id }}
3842

3943
- name: Create detached signature
4044
uses: mongodb-labs/drivers-github-tools/gpg-sign@v2
41-
with:
45+
with:
4246
filenames: ${{ steps.get_vars.outputs.package_file }}
43-
env:
47+
env:
4448
RELEASE_ASSETS: ${{ steps.get_vars.outputs.package_file }}.temp.sig
4549

46-
- name: Name release asset correctly
50+
- name: Name release asset correctly
4751
run: mv ${{ steps.get_vars.outputs.package_file }}.temp.sig ${{ steps.get_vars.outputs.package_file }}.sig
4852
shell: bash
4953

5054
- name: "Upload release artifacts"
55+
if: ${{ inputs.dry_run == false }}
5156
run: gh release upload v${{ steps.get_vars.outputs.package_version }} ${{ steps.get_vars.outputs.package_file }}.sig
5257
shell: bash
5358
env:
54-
GH_TOKEN: ${{ github.token }}
59+
GH_TOKEN: ${{ github.token }}

.github/workflows/release-5.x.yml

Lines changed: 36 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -21,95 +21,62 @@ jobs:
2121
with:
2222
target-branch: 5.x
2323

24-
compress_sign_and_upload:
24+
ssdlc:
2525
needs: [release_please]
26-
if: ${{ needs.release_please.outputs.release_created }}
26+
permissions:
27+
# required for all workflows
28+
security-events: write
29+
id-token: write
30+
contents: write
2731
environment: release
2832
runs-on: ubuntu-latest
2933
steps:
3034
- uses: actions/checkout@v4
3135
- name: actions/setup
3236
uses: ./.github/actions/setup
37+
- name: Get release version and release package file name
38+
id: get_vars
39+
shell: bash
40+
run: |
41+
package_version=$(jq --raw-output '.version' package.json)
42+
echo "package_version=${package_version}" >> "$GITHUB_OUTPUT"
43+
echo "package_file=mongodb-${package_version}.tgz" >> "$GITHUB_OUTPUT"
44+
3345
- name: actions/compress_sign_and_upload
3446
uses: ./.github/actions/compress_sign_and_upload
3547
with:
3648
aws_role_arn: ${{ secrets.AWS_ROLE_ARN }}
3749
aws_region_name: 'us-east-1'
3850
aws_secret_id: ${{ secrets.AWS_SECRET_ID }}
3951
npm_package_name: 'mongodb'
40-
- run: npm publish --provenance --tag=5x
41-
env:
42-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
43-
44-
generate_sarif_report:
45-
environment: release
46-
runs-on: ubuntu-latest
47-
needs: [release_please]
48-
permissions:
49-
# required for all workflows
50-
security-events: write
51-
id-token: write
52-
contents: write
53-
54-
steps:
55-
- uses: actions/checkout@v4
56-
- name: Set up drivers-github-tools
57-
uses: mongodb-labs/drivers-github-tools/setup@v2
58-
with:
59-
aws_region_name: us-east-1
60-
aws_role_arn: ${{ secrets.aws_role_arn }}
61-
aws_secret_id: ${{ secrets.aws_secret_id }}
52+
dry_run: ${{ needs.release_please.outputs.release_created == '' }}
6253

63-
- name: "Generate Sarif Report"
64-
uses: mongodb-labs/drivers-github-tools/code-scanning-export@v2
65-
with:
66-
ref: 5.x
67-
output-file: sarif-report.json
68-
69-
- name: Get release version and release package file name
70-
id: get_version
54+
- name: Copy sbom file to release assets
7155
shell: bash
72-
run: |
73-
package_version=$(jq --raw-output '.version' package.json)
74-
echo "package_version=${package_version}" >> "$GITHUB_OUTPUT"
75-
- name: actions/publish_asset_to_s3
76-
uses: mongodb-labs/drivers-github-tools/node/publish_asset_to_s3@main
56+
run: cp sbom.json ${{ env.S3_ASSETS }}/sbom.json
57+
58+
- name: Generate authorized pub report
59+
uses: mongodb-labs/drivers-github-tools/full-report@v2
7760
with:
78-
version: ${{ steps.get_version.outputs.package_version }}
79-
product_name: node-mongodb-native
80-
file: sarif-report.json
81-
dry_run: ${{ needs.release_please.outputs.release_created == '' }}
61+
release_version: ${{ steps.get_version.outputs.package_version }}
62+
product_name: mongodb
63+
sarif_report_target_ref: 5.x
64+
third_party_dependency_tool: n/a
65+
# <package> and <package>.sig
66+
dist_filenames: ${{ steps.get_vars.outputs.package_file }}*
67+
token: ${{ github.token }}
68+
sbom_file_name: sbom.json
8269

83-
upload_sbom_lite:
70+
publish:
71+
needs: [release_please, ssdlc]
8472
environment: release
8573
runs-on: ubuntu-latest
86-
needs: [release_please]
87-
permissions:
88-
# required for all workflows
89-
security-events: write
90-
id-token: write
91-
contents: write
92-
9374
steps:
9475
- uses: actions/checkout@v4
95-
- name: Set up drivers-github-tools
96-
uses: mongodb-labs/drivers-github-tools/setup@v2
97-
with:
98-
aws_region_name: us-east-1
99-
aws_role_arn: ${{ secrets.aws_role_arn }}
100-
aws_secret_id: ${{ secrets.aws_secret_id }}
101-
102-
- name: Get release version and release package file name
103-
id: get_version
104-
shell: bash
105-
run: |
106-
package_version=$(jq --raw-output '.version' package.json)
107-
echo "package_version=${package_version}" >> "$GITHUB_OUTPUT"
76+
- name: actions/setup
77+
uses: ./.github/actions/setup
10878

109-
- name: actions/publish_asset_to_s3
110-
uses: mongodb-labs/drivers-github-tools/node/publish_asset_to_s3@v2
111-
with:
112-
version: ${{ steps.get_version.outputs.package_version }}
113-
product_name: node-mongodb-native
114-
file: sbom.json
115-
dry_run: ${{ needs.release_please.outputs.release_created == '' }}
79+
- run: npm publish --provenance --tag=5.x
80+
if: ${{ needs.release_please.outputs.release_created }}
81+
env:
82+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/release.yml

Lines changed: 39 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -19,96 +19,68 @@ jobs:
1919
- id: release
2020
uses: googleapis/release-please-action@v4
2121

22-
compress_sign_and_upload:
22+
ssdlc:
2323
needs: [release_please]
24-
if: ${{ needs.release_please.outputs.release_created }}
24+
permissions:
25+
# required for all workflows
26+
security-events: write
27+
id-token: write
28+
contents: write
2529
environment: release
2630
runs-on: ubuntu-latest
2731
steps:
2832
- uses: actions/checkout@v4
2933
- name: actions/setup
3034
uses: ./.github/actions/setup
35+
- name: Get release version and release package file name
36+
id: get_vars
37+
shell: bash
38+
run: |
39+
package_version=$(jq --raw-output '.version' package.json)
40+
echo "package_version=${package_version}" >> "$GITHUB_OUTPUT"
41+
echo "package_file=mongodb-${package_version}.tgz" >> "$GITHUB_OUTPUT"
42+
3143
- name: actions/compress_sign_and_upload
3244
uses: ./.github/actions/compress_sign_and_upload
3345
with:
3446
aws_role_arn: ${{ secrets.AWS_ROLE_ARN }}
3547
aws_region_name: 'us-east-1'
3648
aws_secret_id: ${{ secrets.AWS_SECRET_ID }}
3749
npm_package_name: 'mongodb'
38-
- run: npm publish --provenance
39-
env:
40-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
50+
dry_run: ${{ needs.release_please.outputs.release_created == '' }}
4151

42-
generate_sarif_report:
43-
environment: release
44-
runs-on: ubuntu-latest
45-
needs: [release_please]
46-
permissions:
47-
# required for all workflows
48-
security-events: write
49-
id-token: write
50-
contents: write
51-
52-
steps:
53-
- uses: actions/checkout@v4
54-
- name: Set up drivers-github-tools
55-
uses: mongodb-labs/drivers-github-tools/setup@v2
56-
with:
57-
aws_region_name: us-east-1
58-
aws_role_arn: ${{ secrets.aws_role_arn }}
59-
aws_secret_id: ${{ secrets.aws_secret_id }}
52+
- name: Copy sbom file to release assets
53+
shell: bash
54+
run: cp sbom.json ${{ env.S3_ASSETS }}/sbom.json
6055

61-
- name: "Generate Sarif Report"
62-
uses: mongodb-labs/drivers-github-tools/code-scanning-export@v2
56+
- name: Generate authorized pub report
57+
uses: mongodb-labs/drivers-github-tools/full-report@v2
6358
with:
64-
ref: main
65-
output-file: sarif-report.json
59+
release_version: ${{ steps.get_version.outputs.package_version }}
60+
product_name: mongodb
61+
sarif_report_target_ref: main
62+
third_party_dependency_tool: n/a
63+
# <package> and <package>.sig
64+
dist_filenames: ${{ steps.get_vars.outputs.package_file }}*
65+
token: ${{ github.token }}
66+
sbom_file_name: sbom.json
6667

67-
- name: Get release version and release package file name
68-
id: get_version
69-
shell: bash
70-
run: |
71-
package_version=$(jq --raw-output '.version' package.json)
72-
echo "package_version=${package_version}" >> "$GITHUB_OUTPUT"
73-
- name: actions/publish_asset_to_s3
74-
uses: mongodb-labs/drivers-github-tools/node/publish_asset_to_s3@v2
68+
- uses: mongodb-labs/drivers-github-tools/upload-s3-assets@v2
7569
with:
76-
version: ${{ steps.get_version.outputs.package_version }}
77-
product_name: node-mongodb-native
78-
file: sarif-report.json
70+
version: ${{ inputs.version }}
71+
product_name: ${{ inputs.product_name }}
7972
dry_run: ${{ needs.release_please.outputs.release_created == '' }}
8073

81-
82-
upload_sbom_lite:
74+
publish:
75+
needs: [release_please, ssdlc]
8376
environment: release
8477
runs-on: ubuntu-latest
85-
needs: [release_please]
86-
permissions:
87-
# required for all workflows
88-
security-events: write
89-
id-token: write
90-
contents: write
91-
9278
steps:
9379
- uses: actions/checkout@v4
94-
- name: Set up drivers-github-tools
95-
uses: mongodb-labs/drivers-github-tools/setup@v2
96-
with:
97-
aws_region_name: us-east-1
98-
aws_role_arn: ${{ secrets.aws_role_arn }}
99-
aws_secret_id: ${{ secrets.aws_secret_id }}
100-
101-
- name: Get release version and release package file name
102-
id: get_version
103-
shell: bash
104-
run: |
105-
package_version=$(jq --raw-output '.version' package.json)
106-
echo "package_version=${package_version}" >> "$GITHUB_OUTPUT"
80+
- name: actions/setup
81+
uses: ./.github/actions/setup
10782

108-
- name: actions/publish_asset_to_s3
109-
uses: mongodb-labs/drivers-github-tools/node/publish_asset_to_s3@v2
110-
with:
111-
version: ${{ steps.get_version.outputs.package_version }}
112-
product_name: node-mongodb-native
113-
file: sbom.json
114-
dry_run: ${{ needs.release_please.outputs.release_created == '' }}
83+
- run: npm publish --provenance --tag=latest
84+
if: ${{ needs.release_please.outputs.release_created }}
85+
env:
86+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

0 commit comments

Comments
 (0)