diff --git a/.github/workflows/_deploy.yml b/.github/workflows/_deploy.yml index ba4d43045..4c237558c 100644 --- a/.github/workflows/_deploy.yml +++ b/.github/workflows/_deploy.yml @@ -52,7 +52,7 @@ jobs: runs-on: [self-hosted, ci] needs: get-branch-from-workflow-file steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - if: ${{ env.SCOPE == 'per_workspace'}} @@ -81,7 +81,7 @@ jobs: needs: [get-branch-from-workflow-file, build] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - uses: ./.github/actions/terraform/ @@ -98,7 +98,7 @@ jobs: needs: [get-branch-from-workflow-file, terraform--init] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - uses: ./.github/actions/terraform/ @@ -116,7 +116,7 @@ jobs: environment: ${{ inputs.account }} runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - uses: ./.github/actions/terraform/ @@ -133,7 +133,7 @@ jobs: needs: [get-branch-from-workflow-file, terraform--apply] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - uses: ./.github/actions/make/ @@ -144,7 +144,7 @@ jobs: restore-from-cache: "true" cache-suffix: ${{ env.CACHE_NAME }} - name: Archive swagger - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: swagger path: | @@ -157,7 +157,7 @@ jobs: needs: [get-branch-from-workflow-file, apigee--deploy] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - if: ${{ env.SCOPE == 'per_workspace' && (env.ACCOUNT == 'int' || env.ACCOUNT == 'prod') }} @@ -172,7 +172,7 @@ jobs: needs: [get-branch-from-workflow-file, apigee--deploy] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - if: ${{ env.ACCOUNT != 'mgmt' && env.ACCOUNT != 'backups' }} diff --git a/.github/workflows/_deploy_backups.yml b/.github/workflows/_deploy_backups.yml index 44f8258ef..7f7423cdc 100644 --- a/.github/workflows/_deploy_backups.yml +++ b/.github/workflows/_deploy_backups.yml @@ -51,7 +51,7 @@ jobs: runs-on: [self-hosted, ci] needs: get-branch-from-workflow-file steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - if: ${{ env.SCOPE == 'per_workspace'}} @@ -73,7 +73,7 @@ jobs: needs: [get-branch-from-workflow-file, build] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - uses: ./.github/actions/terraform/ @@ -90,7 +90,7 @@ jobs: needs: [get-branch-from-workflow-file, terraform--init] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - uses: ./.github/actions/terraform/ @@ -108,7 +108,7 @@ jobs: environment: ${{ inputs.account }} runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - uses: ./.github/actions/terraform/ diff --git a/.github/workflows/destroy-expired-workspaces.yml b/.github/workflows/destroy-expired-workspaces.yml index 57c804dd8..2cd104915 100644 --- a/.github/workflows/destroy-expired-workspaces.yml +++ b/.github/workflows/destroy-expired-workspaces.yml @@ -28,7 +28,7 @@ jobs: runs-on: [self-hosted, ci] needs: [parse-secrets] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -42,7 +42,7 @@ jobs: needs: [build-base] steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} diff --git a/.github/workflows/destroy-nonprod-workspace.yml b/.github/workflows/destroy-nonprod-workspace.yml index 8820a431f..8d907ff33 100644 --- a/.github/workflows/destroy-nonprod-workspace.yml +++ b/.github/workflows/destroy-nonprod-workspace.yml @@ -41,7 +41,7 @@ jobs: runs-on: [self-hosted, ci] needs: [get-branch-from-workflow-file] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - uses: ./.github/actions/make/ @@ -55,7 +55,7 @@ jobs: needs: [build-base] steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ needs.get-branch-from-workflow-file.outputs.branch_name }} - name: Destroy workspace diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index f1f9761d1..1524bad3c 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -17,7 +17,7 @@ jobs: name: Create a tag from main steps: - name: Checkout the repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Create 'env.tag' from the latest release run: | TAG=$(make changelog--get-latest-release) @@ -51,7 +51,7 @@ jobs: runs-on: [self-hosted, ci] needs: [create-coverage-name, make-tag] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: main - name: Download artifact @@ -62,7 +62,7 @@ jobs: workflow: pull-requests.yml workflow_conclusion: success - name: SonarQube Scan - uses: SonarSource/sonarqube-scan-action@v5 + uses: SonarSource/sonarqube-scan-action@v7 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} SONAR_HOST_URL: https://sonarcloud.io diff --git a/.github/workflows/on-pr-close.yml b/.github/workflows/on-pr-close.yml index 0122748c0..409a6336e 100644 --- a/.github/workflows/on-pr-close.yml +++ b/.github/workflows/on-pr-close.yml @@ -28,13 +28,13 @@ jobs: steps: - name: Checkout Branch id: checkout-build-branch - uses: actions/checkout@v4 + uses: actions/checkout@v6 continue-on-error: true with: ref: ${{ env.BRANCH_NAME }} - name: Fallback to main if: steps.checkout-build-branch.outcome == 'failure' - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: main - uses: ./.github/actions/make/ @@ -49,13 +49,13 @@ jobs: steps: - name: Checkout Branch for destroy id: checkout-destroy-branch - uses: actions/checkout@v4 + uses: actions/checkout@v6 continue-on-error: true with: ref: ${{ env.BRANCH_NAME }} - name: Fallback to main for destroy if: steps.checkout-destroy-branch.outcome == 'failure' - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: main fetch-depth: 0 diff --git a/.github/workflows/pull-requests.yml b/.github/workflows/pull-requests.yml index 1a3a88888..02518fcac 100644 --- a/.github/workflows/pull-requests.yml +++ b/.github/workflows/pull-requests.yml @@ -20,7 +20,7 @@ jobs: workflow--check--branch-name: runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -30,7 +30,7 @@ jobs: workflow--check--rebased-on-main: runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 - uses: ./.github/actions/make/ @@ -40,7 +40,7 @@ jobs: workflow--check--release-branch-name: runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.ref }} - uses: ./.github/actions/make/ @@ -76,7 +76,7 @@ jobs: runs-on: [self-hosted, ci] needs: [parse-secrets] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -89,7 +89,7 @@ jobs: runs-on: [self-hosted, ci] needs: [workflow--check--branch-name] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BASE_BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -103,7 +103,7 @@ jobs: runs-on: [self-hosted, ci] needs: [build-head] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -117,7 +117,7 @@ jobs: matrix: test-type: [unit, slow] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/pytest-with-rerun/ @@ -128,7 +128,7 @@ jobs: needs: [build-head] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -139,7 +139,7 @@ jobs: needs: [create-workspace-name, build-base, parse-secrets] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BASE_BRANCH_NAME }} - uses: ./.github/actions/terraform/ @@ -168,7 +168,7 @@ jobs: ] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/terraform/ @@ -186,7 +186,7 @@ jobs: needs: [build-head, terraform-head-build] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -200,7 +200,7 @@ jobs: needs: [build-head, apigee--deploy] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - run: | @@ -227,7 +227,7 @@ jobs: matrix: test-type: [integration] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/pytest-with-rerun/ @@ -247,7 +247,7 @@ jobs: ] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -270,7 +270,7 @@ jobs: ] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -305,7 +305,7 @@ jobs: ] runs-on: [self-hosted, ci] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -314,12 +314,12 @@ jobs: requires-aws: true save-to-cache: "true" - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: "${{ needs.create-coverage-name.outputs.coverage-name }}-coverage" path: "sonarcloud-coverage.xml" - name: SonarQube Scan - uses: SonarSource/sonarqube-scan-action@v5 + uses: SonarSource/sonarqube-scan-action@v7 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} SONAR_HOST_URL: https://sonarcloud.io @@ -335,7 +335,7 @@ jobs: runs-on: [self-hosted, ci] if: ${{ needs.apigee--attach-product.result == 'success' }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - run: | @@ -352,7 +352,7 @@ jobs: runs-on: [self-hosted, ci] if: ${{ needs.apigee--deploy.result == 'success' }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} - uses: ./.github/actions/make/ @@ -366,7 +366,7 @@ jobs: runs-on: [self-hosted, ci] needs: [build-head] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ env.BRANCH_NAME }} fetch-depth: 0 diff --git a/CHANGELOG.md b/CHANGELOG.md index e882ba3e3..dff73581b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2025-12-17 +- [PI-889] redocly hotfix +- [PI-889] Pytest update +- Dependabot - Github actions update +- Dependabot - Sonarqube update +- Dependabot - upload artifact update +- Dependabot - Datamodel code generator update + ## 2025-07-21 - Create new tag diff --git a/VERSION b/VERSION index 7da1e54ee..bd125777b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2025.07.21 +2025.12.17 diff --git a/changelog/2025-12-17.md b/changelog/2025-12-17.md new file mode 100644 index 000000000..c37b2c3d8 --- /dev/null +++ b/changelog/2025-12-17.md @@ -0,0 +1,6 @@ +- [PI-889] redocly hotfix +- [PI-889] Pytest update +- Dependabot - Github actions update +- Dependabot - Sonarqube update +- Dependabot - upload artifact update +- Dependabot - Datamodel code generator update diff --git a/pyproject.toml b/pyproject.toml index 0352366ad..f26ce3f45 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "connecting-party-manager" -version = "2025.07.21" +version = "2025.12.17" description = "Repository for the Connecting Party Manager API and related services" authors = ["NHS England"] license = "LICENSE.md" @@ -32,7 +32,7 @@ pre-commit = "^4.0.0" black = "^25.1.0" flake8 = "^7.0.0" behave = "^1.2.6" -pytest = "^8.2.0" +pytest = "^8.4.2" pytest-cov = "^6.0.0" pytest-custom-exit-code = "^0.3.0" sh = "^2.0.6" @@ -40,7 +40,7 @@ hypothesis = "^6.87.3" aws-lambda-powertools = { extras = ["aws-sdk"], version = "^2.26.0" } parse = "^1.19.1" pytest-mock = "^3.12.0" -datamodel-code-generator = "^0.31.2" +datamodel-code-generator = "^0.43.1" pyyaml = "^6.0.1" proxygen-cli = "^2.1.14" moto = "^5.0.1" diff --git a/src/api/tests/feature_tests/steps/steps.py b/src/api/tests/feature_tests/steps/steps.py index 3a826c60c..a9cfe3bbb 100644 --- a/src/api/tests/feature_tests/steps/steps.py +++ b/src/api/tests/feature_tests/steps/steps.py @@ -29,14 +29,14 @@ sort_keys = {"product": "name"} -@given('"{header_name}" request headers') +@given('"{header_name}" request headers:') def given_request_headers(context: Context, header_name: str): table_headers = parse_table(table=context.table, context=context) context.headers[header_name] = dict(**table_headers, apikey=context.api_key) @given( - 'I have already made a "{http_method}" request with "{header_name}" headers to "{endpoint}" with body' + 'I have already made a "{http_method}" request with "{header_name}" headers to "{endpoint}" with body:' ) def given_made_request( context: Context, http_method: str, header_name: str, endpoint: str @@ -93,7 +93,7 @@ def given_made_request( @when( - 'I make a "{http_method}" request with "{header_name}" headers to "{endpoint}" with body' + 'I make a "{http_method}" request with "{header_name}" headers to "{endpoint}" with body:' ) def when_make_request( context: Context, http_method: str, header_name: str, endpoint: str @@ -293,7 +293,7 @@ def then_response(context: Context, status_code: str): ) -@then("the response headers contain") +@then("the response headers contain:") def then_response(context: Context): expected_response_headers = parse_table(table=context.table, context=context) assert_is_subset(