Skip to content

Commit 05a92af

Browse files
authored
Merge pull request #12386 from DefectDojo/release/2.46.0
Release: Merge release into master from: release/2.46.0
2 parents 477583e + fba830a commit 05a92af

File tree

362 files changed

+29620
-20652
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

362 files changed

+29620
-20652
lines changed

.github/workflows/build-docker-images-for-testing.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151

5252
- name: Build
5353
id: docker_build
54-
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
54+
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
5555
timeout-minutes: 15
5656
env:
5757
DOCKER_BUILD_CHECKS_ANNOTATIONS: false

.github/workflows/gh-pages.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ jobs:
1919
extended: true
2020

2121
- name: Setup Node
22-
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
22+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
2323
with:
24-
node-version: '22.14.0'
24+
node-version: '22.15.0'
2525

2626
- name: Cache dependencies
2727
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
@@ -52,6 +52,7 @@ jobs:
5252

5353
- name: Deploy
5454
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
55+
if: github.repository == 'DefectDojo/django-DefectDojo' # Deploy docs only in core repo, not in forks - it would just fail in fork
5556
with: # publishes to the `gh-pages` branch by default
5657
github_token: ${{ secrets.GITHUB_TOKEN }}
5758
publish_dir: ./docs/public

.github/workflows/integration-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545

4646
# load docker images from build jobs
4747
- name: Load images from artifacts
48-
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
48+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
4949
with:
5050
path: built-docker-image
5151
pattern: built-docker-image-*

.github/workflows/k8s-tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
3636

3737
- name: Setup Minikube
38-
uses: manusa/actions-setup-minikube@5d9440a1b535e8b4f541eaac559681a9022df29d # v2.13.1
38+
uses: manusa/actions-setup-minikube@b589f2d61bf96695c546929c72b38563e856059d # v2.14.0
3939
with:
4040
minikube version: 'v1.33.1'
4141
kubernetes version: ${{ matrix.k8s }}
@@ -48,7 +48,7 @@ jobs:
4848
minikube status
4949
5050
- name: Load images from artifacts
51-
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
51+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
5252
with:
5353
path: built-docker-image
5454
pattern: built-docker-image-*

.github/workflows/plantuml.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
with:
3434
args: -v -tpng ${{ steps.getfile.outputs.files }}
3535
- name: Push Local Changes
36-
uses: stefanzweifel/git-auto-commit-action@e348103e9026cc0eee72ae06630dbe30c8bf7a79 # v5.1.0
36+
uses: stefanzweifel/git-auto-commit-action@b863ae1933cb653a53c021fe36dbb774e1fb9403 # v5.2.0
3737
with:
3838
commit_user_name: "PlantUML_bot"
3939
commit_user_email: "[email protected]"

.github/workflows/release-1-create-pr.yml

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,13 @@ on:
99
# the actual branch that can be chosen on the UI is made irrelevant by further steps
1010
# because someone will forget one day to change it.
1111
from_branch:
12-
description: "Select branch to release from ('release/x.y.z'. If `dev` is entered, a new release branch will be created from `dev`)"
12+
description: "Select branch to release from. Dev branch releases happen the first monday of the month. Otherwise, use bugfix."
1313
required: true
14+
type: choice
15+
default: 'bugfix'
16+
options:
17+
- bugfix
18+
- dev
1419
release_number:
1520
description: "Release version (x.y.z format)"
1621
required: true
@@ -19,31 +24,37 @@ jobs:
1924
create_pr:
2025
runs-on: ubuntu-latest
2126
steps:
27+
- name: Validate proper bugfix branch release_number format is being used
28+
if: ${{ inputs.from_branch == 'bugfix' }}
29+
run: |
30+
# Expect the last octet in release_number to not be 0
31+
echo "${{ inputs.release_number }}" | grep "^[0-9]*\.[0-9]*\.[1-9]$"
32+
33+
- name: Validate proper dev branch release_number format is being used
34+
if: ${{ inputs.from_branch == 'dev' }}
35+
run: |
36+
# Expect the last octet in release_number to not be 1-9
37+
echo "${{ inputs.release_number }}" | grep "^[0-9]*\.[0-9]*\.0$"
38+
2239
- id: Set-GitHub-org
2340
run: echo "GITHUB_ORG=${GITHUB_REPOSITORY%%/*}" >> $GITHUB_ENV
2441

2542
- name: Checkout from_branch branch
2643
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
2744
with:
28-
ref: ${{ github.event.inputs.from_branch }}
45+
ref: ${{ inputs.from_branch }}
2946

3047
- name: Create release branch
31-
if: ${{ !startsWith(github.event.inputs.from_branch, 'release/') }}
32-
run: |
33-
echo "NEW_BRANCH=release/${{ github.event.inputs.release_number }}" >> $GITHUB_ENV
34-
35-
- name: Use existing release branch
36-
if: startsWith(github.event.inputs.from_branch, 'release/')
3748
run: |
38-
echo "NEW_BRANCH=${{ github.event.inputs.from_branch }}" >> $GITHUB_ENV
49+
echo "NEW_BRANCH=release/${{ inputs.release_number }}" >> $GITHUB_ENV
3950
4051
- name: Configure git
4152
run: |
4253
git config --global user.name "${{ env.GIT_USERNAME }}"
4354
git config --global user.email "${{ env.GIT_EMAIL }}"
4455
4556
- name: Push branch
46-
if: "!startsWith('${{ github.event.inputs.from_branch }}', 'release/')"
57+
if: "!startsWith('${{ inputs.from_branch }}', 'release/')"
4758
run: git push origin HEAD:${NEW_BRANCH}
4859

4960
- name: Checkout release branch
@@ -53,9 +64,9 @@ jobs:
5364

5465
- name: Update version numbers in key files
5566
run: |
56-
sed -ri 's/__version__ = ".*"/__version__ = "${{ github.event.inputs.release_number }}"/' dojo/__init__.py
57-
sed -ri 's/"version": ".*"/"version": "${{ github.event.inputs.release_number }}"/' components/package.json
58-
sed -ri 's/appVersion: ".*"/appVersion: "${{ github.event.inputs.release_number }}"/' helm/defectdojo/Chart.yaml
67+
sed -ri 's/__version__ = ".*"/__version__ = "${{ inputs.release_number }}"/' dojo/__init__.py
68+
sed -ri 's/"version": ".*"/"version": "${{ inputs.release_number }}"/' components/package.json
69+
sed -ri 's/appVersion: ".*"/appVersion: "${{ inputs.release_number }}"/' helm/defectdojo/Chart.yaml
5970
6071
if grep "\-dev" helm/defectdojo/Chart.yaml; then
6172
echo "x.y.z-dev found in Chart.yaml, probably releasing a new minor version"
@@ -77,7 +88,7 @@ jobs:
7788
grep -H version helm/defectdojo/Chart.yaml
7889
7990
- name: Push version changes
80-
uses: stefanzweifel/git-auto-commit-action@e348103e9026cc0eee72ae06630dbe30c8bf7a79 # v5.1.0
91+
uses: stefanzweifel/git-auto-commit-action@b863ae1933cb653a53c021fe36dbb774e1fb9403 # v5.2.0
8192
with:
8293
commit_user_name: "${{ env.GIT_USERNAME }}"
8394
commit_user_email: "${{ env.GIT_EMAIL }}"

.github/workflows/release-2-tag-docker-push.yml

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ on:
1010
# the actual branch that can be chosen on the UI is made irrelevant by further steps
1111
# because someone will forget one day to change it.
1212
release_number:
13+
type: string
1314
description: 'Release version (x.y.z format)'
1415
required: true
1516

@@ -27,41 +28,51 @@ jobs:
2728
git config --global user.name "${{ env.GIT_USERNAME }}"
2829
git config --global user.email "${{ env.GIT_EMAIL }}"
2930
30-
- name: Create new tag ${{ github.event.inputs.release_number }}
31+
- name: Create new tag ${{ inputs.release_number }}
3132
# at this point, the PR from the 1st workflow is merged into master.
3233
run: |
33-
git tag -a ${{ github.event.inputs.release_number }} -m "[bot] release ${{ github.event.inputs.release_number }}"
34-
git push origin ${{ github.event.inputs.release_number }}
35-
36-
release-helm-chart:
37-
needs: tag
38-
uses: ./.github/workflows/release-x-manual-helm-chart.yml
39-
with:
40-
release_number: ${{ github.event.inputs.release_number }}
41-
secrets: inherit
34+
git tag -a ${{ inputs.release_number }} -m "[bot] release ${{ inputs.release_number }}"
35+
git push origin ${{ inputs.release_number }}
4236
4337
publish-docker-containers:
38+
needs: tag
4439
strategy:
45-
matrix:
40+
matrix:
4641
platform: ['linux/amd64', 'linux/arm64']
47-
fail-fast: false
48-
needs: tag
42+
fail-fast: false
4943
uses: ./.github/workflows/release-x-manual-docker-containers.yml
5044
with:
51-
release_number: ${{ github.event.inputs.release_number }}
45+
release_number: ${{ inputs.release_number }}
5246
platform: ${{ matrix.platform }}
5347
secrets: inherit
5448

5549
publish-container-digests:
5650
needs: publish-docker-containers
5751
uses: ./.github/workflows/release-x-manual-merge-container-digests.yml
5852
with:
59-
release_number: ${{ github.event.inputs.release_number }}
53+
release_number: ${{ inputs.release_number }}
54+
secrets: inherit
55+
56+
# for releases we need to tag the images with the latest tag
57+
# this could be parametrized in the merge-container-digests workflow
58+
# but it's simpler to just add a explicit workflow for this here
59+
tag-as-latest:
60+
needs: publish-container-digests
61+
uses: ./.github/workflows/release-x-manual-tag-as-latest.yml
62+
with:
63+
release_number: ${{ inputs.release_number }}
64+
secrets: inherit
65+
66+
release-helm-chart:
67+
needs: publish-container-digests
68+
uses: ./.github/workflows/release-x-manual-helm-chart.yml
69+
with:
70+
release_number: ${{ inputs.release_number }}
6071
secrets: inherit
6172

6273
release-drafter:
6374
needs: publish-container-digests
6475
uses: ./.github/workflows/release-drafter.yml
6576
with:
66-
version: ${{ github.event.inputs.release_number }}
77+
version: ${{ inputs.release_number }}
6778
secrets: inherit

.github/workflows/release-3-master-into-dev.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929

3030
- name: Create merge back branch
3131
run: |
32-
echo "NEW_BRANCH=master-into-dev/${{ github.event.inputs.release_number_new }}-${{ github.event.inputs.release_number_dev }}" >> $GITHUB_ENV
32+
echo "NEW_BRANCH=master-into-dev/${{ inputs.release_number_new }}-${{ inputs.release_number_dev }}" >> $GITHUB_ENV
3333
3434
- name: Configure git
3535
run: |
@@ -46,9 +46,9 @@ jobs:
4646

4747
- name: Update version numbers in key files
4848
run: |
49-
sed -ri 's/__version__ = ".*"/__version__ = "${{ github.event.inputs.release_number_dev }}"/' dojo/__init__.py
50-
sed -ri 's/"version": ".*"/"version": "${{ github.event.inputs.release_number_dev }}"/' components/package.json
51-
sed -ri 's/appVersion: ".*"/appVersion: "${{ github.event.inputs.release_number_dev }}"/' helm/defectdojo/Chart.yaml
49+
sed -ri 's/__version__ = ".*"/__version__ = "${{ inputs.release_number_dev }}"/' dojo/__init__.py
50+
sed -ri 's/"version": ".*"/"version": "${{ inputs.release_number_dev }}"/' components/package.json
51+
sed -ri 's/appVersion: ".*"/appVersion: "${{ inputs.release_number_dev }}"/' helm/defectdojo/Chart.yaml
5252
CURRENT_CHART_VERSION=$(grep -oP 'version: (\K\S*)?' helm/defectdojo/Chart.yaml | head -1)
5353
sed -ri "0,/version/s/version: \S+/$(echo "version: $CURRENT_CHART_VERSION" | awk -F. -v OFS=. 'NF==1{print ++$NF}; NF>1{$NF=sprintf("%0*d", length($NF), ($NF+1)); print}')-dev/" helm/defectdojo/Chart.yaml
5454
@@ -60,8 +60,8 @@ jobs:
6060
6161
- name: Create upgrade notes to documentation
6262
run: |
63-
minorv=$(echo ${{ github.event.inputs.release_number_dev }} | cut -d '.' -f -2)
64-
patchv=$(echo ${{ github.event.inputs.release_number_dev }} | cut -d '-' -f -1)
63+
minorv=$(echo ${{ inputs.release_number_dev }} | cut -d '.' -f -2)
64+
patchv=$(echo ${{ inputs.release_number_dev }} | cut -d '-' -f -1)
6565
weight=$(date +%Y%m%d)
6666
echo -n "---
6767
title: 'Upgrading to DefectDojo Version $minorv.x'
@@ -72,10 +72,10 @@ jobs:
7272
There are no special instructions for upgrading to $minorv.x. Check the [Release Notes](https://github.com/DefectDojo/django-DefectDojo/releases/tag/$patchv) for the contents of the release.
7373
" > docs/content/en/open_source/upgrading/$minorv.md
7474
git add docs/content/en/open_source/upgrading/$minorv.md
75-
if: endsWith(github.event.inputs.release_number_new, '.0') && endsWith(github.event.inputs.release_number_dev, '.0-dev')
75+
if: endsWith(inputs.release_number_new, '.0') && endsWith(inputs.release_number_dev, '.0-dev')
7676

7777
- name: Push version changes
78-
uses: stefanzweifel/git-auto-commit-action@e348103e9026cc0eee72ae06630dbe30c8bf7a79 # v5.1.0
78+
uses: stefanzweifel/git-auto-commit-action@b863ae1933cb653a53c021fe36dbb774e1fb9403 # v5.2.0
7979
with:
8080
commit_user_name: "${{ env.GIT_USERNAME }}"
8181
commit_user_email: "${{ env.GIT_EMAIL }}"
@@ -91,7 +91,7 @@ jobs:
9191
github.rest.pulls.create({
9292
owner: '${{ env.GITHUB_ORG }}',
9393
repo: 'django-DefectDojo',
94-
title: 'Release: Merge back ${{ github.event.inputs.release_number_new }} into dev from: ${{ env.NEW_BRANCH }}',
94+
title: 'Release: Merge back ${{ inputs.release_number_new }} into dev from: ${{ env.NEW_BRANCH }}',
9595
body: `Release triggered by \`${ process.env.GITHUB_ACTOR }\``,
9696
head: '${{ env.NEW_BRANCH }}',
9797
base: 'dev'
@@ -110,7 +110,7 @@ jobs:
110110

111111
- name: Create merge back branch
112112
run: |
113-
echo "NEW_BRANCH=master-into-bugfix/${{ github.event.inputs.release_number_new }}-${{ github.event.inputs.release_number_dev }}" >> $GITHUB_ENV
113+
echo "NEW_BRANCH=master-into-bugfix/${{ inputs.release_number_new }}-${{ inputs.release_number_dev }}" >> $GITHUB_ENV
114114
115115
- name: Configure git
116116
run: |
@@ -127,9 +127,9 @@ jobs:
127127

128128
- name: Update version numbers in key files
129129
run: |
130-
sed -ri "s/__version__ = '.*'/__version__ = '${{ github.event.inputs.release_number_dev }}'/" dojo/__init__.py
131-
sed -ri "s/appVersion: \".*\"/appVersion: \"${{ github.event.inputs.release_number_dev }}\"/" helm/defectdojo/Chart.yaml
132-
sed -ri "s/\"version\": \".*\"/\"version\": \"${{ github.event.inputs.release_number_dev }}\"/" components/package.json
130+
sed -ri "s/__version__ = '.*'/__version__ = '${{ inputs.release_number_dev }}'/" dojo/__init__.py
131+
sed -ri "s/appVersion: \".*\"/appVersion: \"${{ inputs.release_number_dev }}\"/" helm/defectdojo/Chart.yaml
132+
sed -ri "s/\"version\": \".*\"/\"version\": \"${{ inputs.release_number_dev }}\"/" components/package.json
133133
CURRENT_CHART_VERSION=$(grep -oP 'version: (\K\S*)?' helm/defectdojo/Chart.yaml | head -1)
134134
sed -ri "0,/version/s/version: \S+/$(echo "version: $CURRENT_CHART_VERSION" | awk -F. -v OFS=. 'NF==1{print ++$NF}; NF>1{$NF=sprintf("%0*d", length($NF), ($NF+1)); print}')-dev/" helm/defectdojo/Chart.yaml
135135
@@ -140,7 +140,7 @@ jobs:
140140
grep version components/package.json
141141
142142
- name: Push version changes
143-
uses: stefanzweifel/git-auto-commit-action@e348103e9026cc0eee72ae06630dbe30c8bf7a79 # v5.1.0
143+
uses: stefanzweifel/git-auto-commit-action@b863ae1933cb653a53c021fe36dbb774e1fb9403 # v5.2.0
144144
with:
145145
commit_user_name: "${{ env.GIT_USERNAME }}"
146146
commit_user_email: "${{ env.GIT_EMAIL }}"
@@ -156,7 +156,7 @@ jobs:
156156
github.rest.pulls.create({
157157
owner: '${{ env.GITHUB_ORG }}',
158158
repo: 'django-DefectDojo',
159-
title: 'Release: Merge back ${{ github.event.inputs.release_number_new }} into bugfix from: ${{ env.NEW_BRANCH }}',
159+
title: 'Release: Merge back ${{ inputs.release_number_new }} into bugfix from: ${{ env.NEW_BRANCH }}',
160160
body: `Release triggered by \`${ process.env.GITHUB_ACTOR }\``,
161161
head: '${{ env.NEW_BRANCH }}',
162162
base: 'bugfix'

.github/workflows/release-drafter.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,25 @@ jobs:
2929
id: create_release
3030
uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
3131
with:
32-
version: ${{ github.event.inputs.version }}
32+
version: ${{ inputs.version }}
3333
env:
3434
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3535
# Generate the OAS schemas in another workflow
3636
oas-fetch:
3737
needs: update_release_draft
3838
uses: ./.github/workflows/fetch-oas.yml
3939
with:
40-
version: ${{ github.event.inputs.version }}
40+
version: ${{ inputs.version }}
4141
secrets: inherit
4242
# Upload the OAS schemas to the release object
4343
add-oas-to-release:
44-
needs:
44+
needs:
4545
- update_release_draft
4646
- oas-fetch
4747
runs-on: ubuntu-latest
4848
steps:
4949
- name: Load OAS files from artifacts
50-
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
50+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
5151
with:
5252
pattern: oas-*
5353

@@ -73,4 +73,4 @@ jobs:
7373
asset_name: oas.json
7474
asset_content_type: application/json
7575

76-
76+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: "Release-Nightly: Build & Push DEV"
2+
3+
env:
4+
GIT_USERNAME: "DefectDojo release bot"
5+
GIT_EMAIL: "[email protected]"
6+
7+
on:
8+
schedule:
9+
# every day at 5:00 UTC
10+
# in this case inputs are all null/empty, hence the default values are used below
11+
- cron: "* 5 * * *"
12+
workflow_dispatch:
13+
14+
jobs:
15+
nightly-build-dev:
16+
uses: ./.github/workflows/release-x-nightly.yml
17+
with:
18+
branch-to-build: 'dev'
19+
tag-to-apply: 'nightly-dev'
20+
secrets: inherit

0 commit comments

Comments
 (0)