Merge branch 'refs/heads/master' into publish-gitlab-mr
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
---
|
||||
|
||||
Reverted the validation in dependencies in scaffolder
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
The packing process when running `build-workspace` with the `--alwaysYarnPack` flag now respects the `BACKSTAGE_CLI_BUILD_PARALLEL` environment variable, defaulting parallel work limits based on CPU availability.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/repo-tools': patch
|
||||
---
|
||||
|
||||
Improve knip reports by using a single workspace-based config
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
---
|
||||
|
||||
build(deps): bump `immer` from 8.0.4 to 9.0.6
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
'@backstage/plugin-techdocs': patch
|
||||
---
|
||||
|
||||
Use the custom error page if provided for displaying errors instead of the default error page
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Treat static file assets as always being free from side effects in package builds.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/plugin-search-backend-module-catalog': patch
|
||||
'@backstage/plugin-search-backend-module-pg': patch
|
||||
'@backstage/plugin-search-backend-node': patch
|
||||
'@backstage/plugin-auth-node': patch
|
||||
---
|
||||
|
||||
Removed unused dependencies
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
---
|
||||
|
||||
Added missing `ajv` and `immer` dependencies to `@backstage/plugin-scaffolder-react`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-defaults': patch
|
||||
---
|
||||
|
||||
Do not send `etag` or `If-Modified-Since` headers for gitlab artifact urls
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-graph': patch
|
||||
---
|
||||
|
||||
Fixed an issue causing the `CatalogGraphCard` to redraw its content whenever the parent component re-renders, resulting in flickering.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
'@backstage/plugin-catalog': minor
|
||||
---
|
||||
|
||||
The Entity Page now retains the visibility of the Inspect Dialog after a reload. This allows sharing the URL with the dialog open.
|
||||
@@ -514,3 +514,4 @@ zoomable
|
||||
zsh
|
||||
scrollable
|
||||
severities
|
||||
intellij
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
action: ${{ steps.event.outputs.ACTION }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
disable-sudo: true
|
||||
egress-policy: block
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
name: Test ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
name: Install ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
name: Verify ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -91,7 +91,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
@@ -158,7 +158,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
if: github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
steps:
|
||||
# Inspired by https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#using-data-from-the-triggering-workflow
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
if: github.repository == 'backstage/backstage' && ( github.event.pull_request || github.event.issue.pull_request )
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
if: github.actor == 'dependabot[bot]' && github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
if: github.actor == 'renovate[bot]' && github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
name: E2E Linux ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
name: E2E Linux ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ jobs:
|
||||
name: Techdocs
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
name: E2E Windows ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
name: E2E Windows ${{ matrix.node-version }}
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
name: Microsite
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
name: Microsite
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
name: Storybook
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
name: Storybook
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Harden Runner
|
||||
uses: step-security/harden-runner@c95a14d0e5bab51a9f56296a4eb0e416910cd350 # v2.10.3
|
||||
uses: step-security/harden-runner@cb605e52c26070c328afc4562f0b4ada7618a84e # v2.10.4
|
||||
with:
|
||||
egress-policy: audit
|
||||
|
||||
|
||||
+1
-1
@@ -282,4 +282,4 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/
|
||||
| [Axelerant](https://www.axelerant.com/) | [Zeshan Ziya](https://github.com/zeshanziya) | Developer portal, main gateway to infrastructure, documentation, internal tooling, and service catalog with a focus on project visibility.
|
||||
| [KnowBe4](https://www.knowbe4.com) | [Brandon Vicinus](https://www.linkedin.com/in/bvicinus/) | Internal Developer Portal managed by the Developer Experience Team. IDP hosts many different internal tools as plugins created by multiple teams, many of which are directly integrated with the Service Catalog. |
|
||||
| [Scalepoint](https://scalepoint.com) | [Yuriy Ostapenko](https://github.com/yuriyostapenko), [Dmytro Pasko](https://github.com/dimapasko), [Yuri Sedykh ](https://github.com/yuiri-sedykh), [Bartosz Wisniewski](https://github.com/Epgor) | Internal Developer Portal: Software Catalog with infrastructure resources and dependencies, Software Templates, TechDocs, Tech Radar, Kubernetes and Observability, as well as custom CI/CD components |
|
||||
|
||||
| [VR](https://www.vr.com.br) | [Felipe Gomes](https://www.linkedin.com/in/felipe-gomes-da-silva), [Tiago Garcia](https://www.linkedin.com/in/tiago-garcia-6301a925) | Internal portal for development squads, service catalog, documentation hub, and application mapping for the entire company ecosystem, simplifying cloud infrastructure construction through templates. |
|
||||
|
||||
@@ -518,8 +518,8 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@next/mdx@npm:^15.1.4":
|
||||
version: 15.1.5
|
||||
resolution: "@next/mdx@npm:15.1.5"
|
||||
version: 15.1.6
|
||||
resolution: "@next/mdx@npm:15.1.6"
|
||||
dependencies:
|
||||
source-map: ^0.7.0
|
||||
peerDependencies:
|
||||
@@ -530,7 +530,7 @@ __metadata:
|
||||
optional: true
|
||||
"@mdx-js/react":
|
||||
optional: true
|
||||
checksum: f73103abce4ca2e15a6d06b0c6e16988e5651ca09890d6a0017c913b30018dc87d275dc7a8fed30dab338af5e1c3822f1a74af83d6fa6bee02edb936bbd51566
|
||||
checksum: 3b46e99934543df94bcb335dddab794db4fcaff09223343e9e00597d3df1e094f16dd619c433fb2fa7fff38c3da57b3118cbc010cdeb9790d0cf01e6c37016e8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -53,22 +53,22 @@ The Bitbucket provider is a structure with two configuration keys:
|
||||
|
||||
This provider includes several resolvers out of the box that you can use:
|
||||
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`.
|
||||
- `userIdMatchingUserEntityAnnotation`: Matches the `userId` from the auth provider with the User entity that has a matching `bitbucket.org/user-id` annotation. If no match is found it will throw a `NotFoundError`.
|
||||
- `usernameMatchingUserEntityAnnotation`: Matches the `username` from the auth provider with the User entity that has a matching `bitbucket.org/username` annotation. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found, it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found, it will throw a `NotFoundError`.
|
||||
- `userIdMatchingUserEntityAnnotation`: Matches the `userId` from the auth provider with the User entity that has a matching `bitbucket.org/user-id` annotation. If no match is found, it will throw a `NotFoundError`.
|
||||
- `usernameMatchingUserEntityAnnotation`: Matches the `username` from the auth provider with the User entity that has a matching `bitbucket.org/username` annotation. If no match is found, it will throw a `NotFoundError`.
|
||||
|
||||
:::note Note
|
||||
|
||||
The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`.
|
||||
The resolvers will be tried in order but will only be skipped if they throw a `NotFoundError`.
|
||||
|
||||
:::
|
||||
|
||||
If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
If these resolvers do not fit your needs, you can build a custom resolver; this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
|
||||
## Backend Installation
|
||||
|
||||
To add the provider to the backend we will first need to install the package by running this command:
|
||||
To add the provider to the backend, we will first need to install the package by running this command:
|
||||
|
||||
```bash title="from your Backstage root directory"
|
||||
yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-bitbucket-provider
|
||||
|
||||
@@ -45,20 +45,20 @@ The Bitbucket Server provider is a structure with two configuration keys:
|
||||
|
||||
This provider includes several resolvers out of the box that you can use:
|
||||
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found, it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found, it will throw a `NotFoundError`.
|
||||
|
||||
:::note Note
|
||||
|
||||
The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`.
|
||||
The resolvers will be tried in order but will only be skipped if they throw a `NotFoundError`.
|
||||
|
||||
:::
|
||||
|
||||
If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
If these resolvers do not fit your needs, you can build a custom resolver; this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
|
||||
## Backend Installation
|
||||
|
||||
To add the provider to the backend we will first need to install the package by running this command:
|
||||
To add the provider to the backend, we will first need to install the package by running this command:
|
||||
|
||||
```bash title="from your Backstage root directory"
|
||||
yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-bitbucket-server-provider
|
||||
@@ -87,4 +87,4 @@ To add the provider to the frontend, add the `bitbucketServerAuthApiRef` referen
|
||||
|
||||
### ScmAuth
|
||||
|
||||
For backstage to be able to use the oauth token of the logged in user to access the Bitbucket Server API, you need to add it to list of ScmAuth providers as shown in [Custom ScmAuthApi Implementation](../index.md#custom-scmauthapi-implementation) using the `ScmAuth.forBitbucketServer` method.
|
||||
For Backstage to be able to use the OAuth token of the logged-in user to access the Bitbucket Server API, you need to add it to the list of ScmAuth providers as shown in [Custom ScmAuthApi Implementation](../index.md#custom-scmauthapi-implementation) using the `ScmAuth.forBitbucketServer` method.
|
||||
|
||||
@@ -51,20 +51,20 @@ This config section must be in place for the provider to load at all.
|
||||
|
||||
This provider includes several resolvers out of the box that you can use:
|
||||
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found, it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found, it will throw a `NotFoundError`.
|
||||
|
||||
:::note Note
|
||||
|
||||
The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`.
|
||||
The resolvers will be tried in order but will only be skipped if they throw a `NotFoundError`.
|
||||
|
||||
:::
|
||||
|
||||
If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
If these resolvers do not fit your needs, you can build a custom resolver; this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
|
||||
## Backend Installation
|
||||
|
||||
To add the provider to the backend we will first need to install the package by running this command:
|
||||
To add the provider to the backend, we will first need to install the package by running this command:
|
||||
|
||||
```bash title="from your Backstage root directory"
|
||||
yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-cloudflare-access-provider
|
||||
@@ -83,6 +83,6 @@ backend.add(
|
||||
|
||||
## Adding the provider to the Backstage frontend
|
||||
|
||||
See [Sign-In with Proxy Providers](../index.md#sign-in-with-proxy-providers) for pointers on how to set up the sign-in page, and to also make it work smoothly for local development. You'll use `cfaccess` as the provider name.
|
||||
See [Sign-In with Proxy Providers](../index.md#sign-in-with-proxy-providers) for pointers on how to set up the sign-in page and also make it work smoothly for local development. You'll use `cfaccess` as the provider name.
|
||||
|
||||
If you [provide a custom sign in resolver](https://backstage.io/docs/auth/identity-resolver#building-custom-resolvers), you can skip the `signIn` block entirely.
|
||||
If you [provide a custom sign-in resolver](https://backstage.io/docs/auth/identity-resolver#building-custom-resolvers), you can skip the `signIn` block entirely.
|
||||
|
||||
@@ -10,7 +10,7 @@ provider that can authenticate users using GitHub or GitHub Enterprise OAuth.
|
||||
|
||||
## Create an OAuth App on GitHub
|
||||
|
||||
To add GitHub authentication, you must create either a GitHub App, or an OAuth
|
||||
To add GitHub authentication, you must create either a GitHub App or an OAuth
|
||||
App from the GitHub
|
||||
[developer settings](https://github.com/settings/developers). The `Homepage URL`
|
||||
should point to Backstage's frontend, while the `Authorization callback URL`
|
||||
@@ -57,15 +57,15 @@ auth:
|
||||
|
||||
The GitHub provider is a structure with these configuration keys:
|
||||
|
||||
- `clientId`: The client ID that you generated on GitHub, e.g.
|
||||
- `clientId`: The client ID that you generated on GitHub, e.g.,
|
||||
`b59241722e3c3b4816e2`
|
||||
- `clientSecret`: The client secret tied to the generated client ID.
|
||||
- `enterpriseInstanceUrl` (optional): The base URL for a GitHub Enterprise
|
||||
instance, e.g. `https://ghe.<company>.com`. Only needed for GitHub Enterprise.
|
||||
instance, e.g., `https://ghe.<company>.com`. Only needed for GitHub Enterprise.
|
||||
- `callbackUrl` (optional): The callback URL that GitHub will use when
|
||||
initiating an OAuth flow, e.g.
|
||||
initiating an OAuth flow, e.g.,
|
||||
`https://your-intermediate-service.com/handler`. Only needed if Backstage is
|
||||
not the immediate receiver (e.g. one OAuth app for many backstage instances).
|
||||
not the immediate receiver (e.g., one OAuth app for many backstage instances).
|
||||
- `signIn`: The configuration for the sign-in process, including the **resolvers**
|
||||
that should be used to match the user from the auth provider with the user
|
||||
entity in the Backstage catalog (typically a single resolver is sufficient).
|
||||
@@ -74,17 +74,17 @@ The GitHub provider is a structure with these configuration keys:
|
||||
|
||||
This provider includes several resolvers out of the box that you can use:
|
||||
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`.
|
||||
- `usernameMatchingUserEntityName`: Matches the username from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found, it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found, it will throw a `NotFoundError`.
|
||||
- `usernameMatchingUserEntityName`: Matches the username from the auth provider with the User entity that has a matching `name`. If no match is found, it will throw a `NotFoundError`.
|
||||
|
||||
:::note Note
|
||||
|
||||
The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`.
|
||||
The resolvers will be tried in order but will only be skipped if they throw a `NotFoundError`.
|
||||
|
||||
:::
|
||||
|
||||
If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
If these resolvers do not fit your needs, you can build a custom resolver; this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
|
||||
## Backend Installation
|
||||
|
||||
|
||||
@@ -66,21 +66,21 @@ The GitLab provider is a structure with three configuration keys:
|
||||
|
||||
This provider includes several resolvers out of the box that you can use:
|
||||
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`.
|
||||
- `usernameMatchingUserEntityName`: Matches the username from the auth provider with the User entity that has a matching `name`. If no match is found it will throw a `NotFoundError`.
|
||||
- `emailMatchingUserEntityProfileEmail`: Matches the email address from the auth provider with the User entity that has a matching `spec.profile.email`. If no match is found, it will throw a `NotFoundError`.
|
||||
- `emailLocalPartMatchingUserEntityName`: Matches the [local part](https://en.wikipedia.org/wiki/Email_address#Local-part) of the email address from the auth provider with the User entity that has a matching `name`. If no match is found, it will throw a `NotFoundError`.
|
||||
- `usernameMatchingUserEntityName`: Matches the username from the auth provider with the User entity that has a matching `name`. If no match is found, it will throw a `NotFoundError`.
|
||||
|
||||
:::note Note
|
||||
|
||||
The resolvers will be tried in order, but will only be skipped if they throw a `NotFoundError`.
|
||||
The resolvers will be tried in order but will only be skipped if they throw a `NotFoundError`.
|
||||
|
||||
:::
|
||||
|
||||
If these resolvers do not fit your needs you can build a custom resolver, this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
If these resolvers do not fit your needs, you can build a custom resolver; this is covered in the [Building Custom Resolvers](../identity-resolver.md#building-custom-resolvers) section of the Sign-in Identities and Resolvers documentation.
|
||||
|
||||
## Backend Installation
|
||||
|
||||
To add the provider to the backend we will first need to install the package by running this command:
|
||||
To add the provider to the backend, we will first need to install the package by running this command:
|
||||
|
||||
```bash title="from your Backstage root directory"
|
||||
yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-gitlab-provider
|
||||
|
||||
@@ -63,3 +63,20 @@ auth:
|
||||
# highlight-add-next-line
|
||||
guest: {}
|
||||
```
|
||||
|
||||
The above is all you need to get working with the guest provider. However, you can also add additional configuration if you need to such as the following:
|
||||
|
||||
```yaml title="app-config.local.yaml"
|
||||
auth:
|
||||
providers:
|
||||
guest:
|
||||
userEntityRef: user:default/john-smith
|
||||
ownershipEntityRefs: [group:default/smith-family]
|
||||
dangerouslyAllowOutsideDevelopment: false
|
||||
```
|
||||
|
||||
The `userEntityRef` is used as the entity reference for the guest user and the `ownershipEntityRefs` is a list of entity references to use for ownership of the guest user, if the user is not found in the catalog.
|
||||
|
||||
The `dangerouslyAllowOutsideDevelopment` flag is used to allow users to sign in with the guest provider outside of their development environments, e.g. in production.
|
||||
|
||||
You can find this information by looking at the config file [here](https://github.com/backstage/backstage/blob/master/plugins/auth-backend-module-guest-provider/config.d.ts).
|
||||
|
||||
@@ -597,22 +597,33 @@ Caching is used sparingly throughout the Backstage build system. It is always us
|
||||
|
||||
For your productivity working with unit tests it's quite essential to have your debugging configured in IDE. It will help you to identify the root cause of the issue faster.
|
||||
|
||||
We cannot execute tests with just raw `jest`, because there are a few concerns such as module transforms that need to be in place for the `jest` runtime to be happy.
|
||||
Therefore, we delegate to the Backstage CLI to wrap the jest run for us, since it knows how to put those things in place.
|
||||
This aligns things so that your in-IDE test runs work the same way as your CI and manual command line test runs do.
|
||||
|
||||
With that in mind, here are some IDEs configurations to run backstage components' `jest` tests with `backstage-cli` in the role of `jest`.
|
||||
|
||||
#### IntelliJ IDEA
|
||||
|
||||
1. Update Jest configuration template by:
|
||||
1. Update Jest configuration template by:
|
||||
|
||||
- Click on "Edit Configurations" on top panel
|
||||
- In the modal dialog click on link "Edit configuration templates..." located in the bottom left corner.
|
||||
- In "Jest package" you have to point to relative path of jest module (it will be suggested by IntelliJ), i.e. `~/proj/backstage/node_modules/jest`
|
||||
- In "Jest config" point to your jest configuration file, use absolute path for that, i.e. `--config /Users/user/proj/backstage/packages/cli/config/jest.js --runInBand`
|
||||
1. Click on "Edit Configurations" on top panel
|
||||
2. In the modal dialog click on link "Edit configuration templates..." located in the bottom left corner.
|
||||
3. "Configuration file": leave empty (`backstage-cli` adds the config)
|
||||
4. "Node options": `--no-node-snapshot --experimental-vm-modules`
|
||||
5. "Jest package": `~/workspace/backstage/node_modules/@backstage/cli` - the location of the backstage cli package.
|
||||
6. "Working directory": `~/workspace/backstage`
|
||||
7. "Jest Options": `repo test --runInBand --watch=false`
|
||||
|
||||
2. Now you can run any tests by clicking on green arrow located on `describe` or `it`.
|
||||
2. Currently, intellij has an issue that if you right-click on a jest test and press "run", intellij will create a playwright run configuration instead of jest configuration, see [WEB-67720](https://youtrack.jetbrains.com/issue/WEB-67720/Jest-test-runs-as-playwright-test).
|
||||
|
||||
Until intellij maintainers resolve the issue, create a jest configuration manually. Happily, intellij will pre-fill the configuration from the template. The only thing you need to do is provide a path to the test file. Note, that after intellij runs test in the file you can click on the individual tests from the run panel and re-run them, this time intellij will create a correct jest run configuration.
|
||||
|
||||
#### VS Code
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"jest.jestCommandLine": "node_modules/.bin/jest --config node_modules/@backstage/cli/config/jest.js",
|
||||
"jest.jestCommandLine": "yarn test",
|
||||
// In a large repo like the Backstage main repo you likely want to disable
|
||||
// watch mode and the initial test run too, leaving just manual and perhaps
|
||||
// on-save test runs in place.
|
||||
|
||||
@@ -4,7 +4,7 @@ author: procore-oss
|
||||
authorUrl: https://github.com/procore-oss
|
||||
category: Discovery
|
||||
description: Write and share announcements within Backstage.
|
||||
documentation: https://github.com/procore-oss/backstage-plugin-announcements/
|
||||
documentation: https://github.com/backstage/community-plugins/tree/main/workspaces/announcements/
|
||||
iconUrl: /img/plugin-announcements-logo.png
|
||||
npmPackageName: '@procore-oss/backstage-plugin-announcements'
|
||||
npmPackageName: '@backstage-community/plugin-announcements'
|
||||
addedDate: '2022-11-09'
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: env0
|
||||
author: env0
|
||||
authorUrl: https://www.env0.com/
|
||||
category: Infrastructure
|
||||
description: Use env0 scaffolder actions to deploy and manage your infrastructure using env0 directly from Backstage
|
||||
documentation: https://github.com/env0/env0-backstage-plugin
|
||||
iconUrl: https://cdn.prod.website-files.com/63df9b273f861215467107c8/668fd303582961e81ef532fc_env0%20logo-dark.svg
|
||||
npmPackageName: '@env0/backstage-plugin-env0'
|
||||
addedDate: '2025-01-15'
|
||||
@@ -395,6 +395,7 @@ module.exports = {
|
||||
label: 'Core Services',
|
||||
items: [
|
||||
'backend-system/core-services/index',
|
||||
'backend-system/core-services/auditor',
|
||||
'backend-system/core-services/auth',
|
||||
'backend-system/core-services/cache',
|
||||
'backend-system/core-services/database',
|
||||
|
||||
+3
-3
@@ -3363,9 +3363,9 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"@types/webpack-env@npm:^1.18.0":
|
||||
version: 1.18.5
|
||||
resolution: "@types/webpack-env@npm:1.18.5"
|
||||
checksum: 4ca8eb4c44e1e1807c3e245442fce7aaf2816a163056de9436bbac44cc47c8bc5b1c9a330dc05748d6616431b1fb5bd5379733fb1da0b78d03c59f4ec824c184
|
||||
version: 1.18.8
|
||||
resolution: "@types/webpack-env@npm:1.18.8"
|
||||
checksum: f6a13276e23c6573ee2a7c7ae7b0705a9cd982c3a31197ba6fa6f3d3bd6fd921194a67c960249b1554ef4c70b6736a3437284a01f659f145fe2b56c3196a7908
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -126,7 +126,6 @@
|
||||
"eslint-plugin-testing-library": "^6.0.0",
|
||||
"fs-extra": "^11.2.0",
|
||||
"husky": "^9.0.0",
|
||||
"knip": "^5.0.0",
|
||||
"lint-staged": "^15.0.0",
|
||||
"minimist": "^1.2.5",
|
||||
"node-gyp": "^10.0.0",
|
||||
|
||||
@@ -1,79 +1,45 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (63)
|
||||
## Unused dependencies (30)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :----------------------------------------------- | :----------- | :------- |
|
||||
| @backstage/plugin-techdocs-module-addons-contrib | package.json | error |
|
||||
| @roadiehq/backstage-plugin-github-pull-requests | package.json | error |
|
||||
| @backstage/plugin-catalog-unprocessed-entities | package.json | error |
|
||||
| @roadiehq/backstage-plugin-github-insights | package.json | error |
|
||||
| @oriflame/backstage-plugin-score-card | package.json | error |
|
||||
| @backstage/plugin-newrelic-dashboard | package.json | error |
|
||||
| @roadiehq/backstage-plugin-buildkite | package.json | error |
|
||||
| @roadiehq/backstage-plugin-travis-ci | package.json | error |
|
||||
| @backstage/plugin-kubernetes-cluster | package.json | error |
|
||||
| @backstage/plugin-permission-react | package.json | error |
|
||||
| @backstage/plugin-scaffolder-react | package.json | error |
|
||||
| @backstage/plugin-entity-feedback | package.json | error |
|
||||
| @backstage/plugin-linguist-common | package.json | error |
|
||||
| @backstage/plugin-apache-airflow | package.json | error |
|
||||
| @backstage/plugin-catalog-common | package.json | error |
|
||||
| @backstage/plugin-github-actions | package.json | error |
|
||||
| @backstage/plugin-octopus-deploy | package.json | error |
|
||||
| @backstage/plugin-techdocs-react | package.json | error |
|
||||
| @backstage/plugin-catalog-graph | package.json | error |
|
||||
| @backstage/plugin-catalog-react | package.json | error |
|
||||
| @backstage/plugin-code-coverage | package.json | error |
|
||||
| @backstage/plugin-cost-insights | package.json | error |
|
||||
| @backstage/plugin-notifications | package.json | error |
|
||||
| @backstage/plugin-search-common | package.json | error |
|
||||
| @backstage/plugin-tech-insights | package.json | error |
|
||||
| @backstage/plugin-azure-devops | package.json | error |
|
||||
| @backstage/plugin-gcp-projects | package.json | error |
|
||||
| @backstage/plugin-search-react | package.json | error |
|
||||
| @backstage/plugin-azure-sites | package.json | error |
|
||||
| @backstage/plugin-cloudbuild | package.json | error |
|
||||
| @backstage/plugin-kubernetes | package.json | error |
|
||||
| @backstage/plugin-lighthouse | package.json | error |
|
||||
| @backstage/integration-react | package.json | error |
|
||||
| @backstage/plugin-auth-react | package.json | error |
|
||||
| @backstage/plugin-scaffolder | package.json | error |
|
||||
| @backstage/plugin-stackstorm | package.json | error |
|
||||
| @backstage/plugin-dynatrace | package.json | error |
|
||||
| @backstage/plugin-shortcuts | package.json | error |
|
||||
| @backstage/plugin-airbrake | package.json | error |
|
||||
| @backstage/frontend-app-api | package.json | error |
|
||||
| @backstage/core-plugin-api | package.json | error |
|
||||
| @backstage/plugin-api-docs | package.json | error |
|
||||
| @backstage/plugin-devtools | package.json | error |
|
||||
| @backstage/plugin-linguist | package.json | error |
|
||||
| @backstage/plugin-newrelic | package.json | error |
|
||||
| @backstage/plugin-playlist | package.json | error |
|
||||
| @backstage/plugin-puppetdb | package.json | error |
|
||||
| @circleci/backstage-plugin | package.json | error |
|
||||
| @backstage/plugin-catalog | package.json | error |
|
||||
| @backstage/plugin-explore | package.json | error |
|
||||
| @backstage/plugin-jenkins | package.json | error |
|
||||
| @backstage/plugin-rollbar | package.json | error |
|
||||
| @backstage/plugin-signals | package.json | error |
|
||||
| @backstage/catalog-model | package.json | error |
|
||||
| @backstage/plugin-badges | package.json | error |
|
||||
| @backstage/plugin-search | package.json | error |
|
||||
| @backstage/plugin-sentry | package.json | error |
|
||||
| @backstage/app-defaults | package.json | error |
|
||||
| @backstage/plugin-kafka | package.json | error |
|
||||
| app-next-example-plugin | package.json | error |
|
||||
| @backstage/plugin-gocd | package.json | error |
|
||||
| @backstage/plugin-todo | package.json | error |
|
||||
| @backstage/plugin-adr | package.json | error |
|
||||
| @backstage/plugin-app | package.json | error |
|
||||
| @backstage/plugin-org | package.json | error |
|
||||
| @backstage/config | package.json | error |
|
||||
| @material-ui/lab | package.json | error |
|
||||
| zen-observable | package.json | error |
|
||||
| @octokit/rest | package.json | error |
|
||||
| react-use | package.json | error |
|
||||
| history | package.json | error |
|
||||
| lodash | package.json | error |
|
||||
|
||||
## Unused devDependencies (6)
|
||||
## Unused devDependencies (5)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------- | :----------- | :------- |
|
||||
| @testing-library/user-event | package.json | error |
|
||||
| @testing-library/react | package.json | error |
|
||||
| @types/zen-observable | package.json | error |
|
||||
| @testing-library/dom | package.json | error |
|
||||
| @types/jquery | package.json | error |
|
||||
|
||||
+12
-20
@@ -1,33 +1,25 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (14)
|
||||
## Unused dependencies (8)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------------- | :----------- | :------- |
|
||||
| @backstage/plugin-linguist-common | package.json | error |
|
||||
| @backstage/plugin-search-common | package.json | error |
|
||||
| @backstage/plugin-azure-sites | package.json | error |
|
||||
| @backstage/frontend-app-api | package.json | error |
|
||||
| @backstage/plugin-airbrake | package.json | error |
|
||||
| vite-plugin-node-polyfills | package.json | error |
|
||||
| @vitejs/plugin-react | package.json | error |
|
||||
| @material-ui/lab | package.json | error |
|
||||
| vite-plugin-html | package.json | error |
|
||||
| zen-observable | package.json | error |
|
||||
| @octokit/rest | package.json | error |
|
||||
| react-router | package.json | error |
|
||||
| history | package.json | error |
|
||||
| vite | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :------------------------------ | :----------- | :------- |
|
||||
| @backstage/plugin-search-common | package.json | error |
|
||||
| @backstage/plugin-auth-react | package.json | error |
|
||||
| @backstage/frontend-app-api | package.json | error |
|
||||
| @material-ui/lab | package.json | error |
|
||||
| zen-observable | package.json | error |
|
||||
| @octokit/rest | package.json | error |
|
||||
| react-router | package.json | error |
|
||||
| history | package.json | error |
|
||||
|
||||
## Unused devDependencies (5)
|
||||
## Unused devDependencies (3)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------- | :----------- | :------- |
|
||||
| @testing-library/user-event | package.json | error |
|
||||
| @types/zen-observable | package.json | error |
|
||||
| @testing-library/dom | package.json | error |
|
||||
| @types/jquery | package.json | error |
|
||||
| cross-env | package.json | error |
|
||||
|
||||
## Unlisted dependencies (1)
|
||||
|
||||
|
||||
@@ -1,8 +1,49 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (1)
|
||||
## Unused dependencies (27)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :---------------- | :----------- | :------- |
|
||||
| winston-transport | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------------- | :----------- | :------- |
|
||||
| @backstage/plugin-permission-node | package.json | error |
|
||||
| @backstage/plugin-auth-node | package.json | error |
|
||||
| @backstage/config-loader | package.json | error |
|
||||
| @backstage/cli-common | package.json | error |
|
||||
| @manypkg/get-packages | package.json | error |
|
||||
| @backstage/config | package.json | error |
|
||||
| winston-transport | package.json | error |
|
||||
| @backstage/types | package.json | error |
|
||||
| path-to-regexp | package.json | error |
|
||||
| compression | package.json | error |
|
||||
| triple-beam | package.json | error |
|
||||
| node-forge | package.json | error |
|
||||
| selfsigned | package.json | error |
|
||||
| minimatch | package.json | error |
|
||||
| stoppable | package.json | error |
|
||||
| minimist | package.json | error |
|
||||
| logform | package.json | error |
|
||||
| winston | package.json | error |
|
||||
| cookie | package.json | error |
|
||||
| helmet | package.json | error |
|
||||
| lodash | package.json | error |
|
||||
| morgan | package.json | error |
|
||||
| luxon | package.json | error |
|
||||
| cors | package.json | error |
|
||||
| jose | package.json | error |
|
||||
| knex | package.json | error |
|
||||
| uuid | package.json | error |
|
||||
|
||||
## Unused devDependencies (10)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------- | :----------- | :------- |
|
||||
| @backstage/backend-defaults | package.json | error |
|
||||
| @types/compression | package.json | error |
|
||||
| @types/http-errors | package.json | error |
|
||||
| @types/node-forge | package.json | error |
|
||||
| @types/stoppable | package.json | error |
|
||||
| @types/minimist | package.json | error |
|
||||
| @types/morgan | package.json | error |
|
||||
| http-errors | package.json | error |
|
||||
| supertest | package.json | error |
|
||||
| msw | package.json | error |
|
||||
|
||||
|
||||
@@ -1,8 +1,25 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (6)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------- | :----------- | :------- |
|
||||
| @backstage/cli-common | package.json | error |
|
||||
| @azure/identity | package.json | error |
|
||||
| better-sqlite3 | package.json | error |
|
||||
| isomorphic-git | package.json | error |
|
||||
| minimist | package.json | error |
|
||||
| mysql2 | package.json | error |
|
||||
|
||||
## Unused devDependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :---------------------------- | :----------- | :------- |
|
||||
| @backstage/backend-test-utils | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :--------------- | :----------- | :------- |
|
||||
| @types/stoppable | package.json | error |
|
||||
|
||||
## Referenced optional peerDependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------------- | :----------- | :------- |
|
||||
| @google-cloud/cloud-sql-connector | package.json | error |
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@ export class GitlabUrlReader implements UrlReaderService {
|
||||
options?: UrlReaderServiceReadUrlOptions,
|
||||
): Promise<UrlReaderServiceReadUrlResponse> {
|
||||
const { etag, lastModifiedAfter, signal, token } = options ?? {};
|
||||
const isArtifact = url.includes('/-/jobs/artifacts/');
|
||||
const builtUrl = await this.getGitlabFetchUrl(url);
|
||||
|
||||
let response: Response;
|
||||
@@ -81,10 +82,11 @@ export class GitlabUrlReader implements UrlReaderService {
|
||||
response = await fetch(builtUrl, {
|
||||
headers: {
|
||||
...getGitLabRequestOptions(this.integration.config, token).headers,
|
||||
...(etag && { 'If-None-Match': etag }),
|
||||
...(lastModifiedAfter && {
|
||||
'If-Modified-Since': lastModifiedAfter.toUTCString(),
|
||||
}),
|
||||
...(etag && !isArtifact && { 'If-None-Match': etag }),
|
||||
...(lastModifiedAfter &&
|
||||
!isArtifact && {
|
||||
'If-Modified-Since': lastModifiedAfter.toUTCString(),
|
||||
}),
|
||||
},
|
||||
// TODO(freben): The signal cast is there because pre-3.x versions of
|
||||
// node-fetch have a very slightly deviating AbortSignal type signature.
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (2)
|
||||
## Unused dependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------------------------ | :----------- | :------- |
|
||||
| @backstage/plugin-search-common | package.json | error |
|
||||
| @backstage/errors | package.json | error |
|
||||
|
||||
|
||||
@@ -6,22 +6,23 @@
|
||||
| :------------------------------------------------- | :----------- | :------- |
|
||||
| @backstage/plugin-scaffolder-backend-module-gitlab | package.json | error |
|
||||
| @backstage/plugin-scaffolder-backend-module-rails | package.json | error |
|
||||
| @backstage/plugin-azure-sites-common | package.json | error |
|
||||
| @backstage/plugin-tech-insights-node | package.json | error |
|
||||
| @backstage/plugin-search-backend-module-catalog | package.json | error |
|
||||
| @backstage/plugin-signals-backend | package.json | error |
|
||||
| azure-devops-node-api | package.json | error |
|
||||
| pg-connection-string | package.json | error |
|
||||
| @gitbeaker/node | package.json | error |
|
||||
| better-sqlite3 | package.json | error |
|
||||
| @octokit/rest | package.json | error |
|
||||
| example-app | package.json | error |
|
||||
| dockerode | package.json | error |
|
||||
| mysql2 | package.json | error |
|
||||
| luxon | package.json | error |
|
||||
| pg | package.json | error |
|
||||
|
||||
## Unused devDependencies (2)
|
||||
## Unused devDependencies (3)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------------------------- | :----------- | :------- |
|
||||
| @types/express-serve-static-core | package.json | error |
|
||||
| @types/dockerode | package.json | error |
|
||||
| @types/luxon | package.json | error |
|
||||
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (2)
|
||||
## Unused dependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :---------------------------- | :----------- | :------- |
|
||||
| @backstage/backend-plugin-api | package.json | error |
|
||||
| lodash | package.json | error |
|
||||
|
||||
|
||||
@@ -1,2 +1,8 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------- | :----------- | :------- |
|
||||
| @backstage/plugin-auth-node | package.json | error |
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (4)
|
||||
## Unused dependencies (6)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------- | :----------- | :------- |
|
||||
| better-sqlite3 | package.json | error |
|
||||
| mysql2 | package.json | error |
|
||||
| msw | package.json | error |
|
||||
| pg | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :------------------------------- | :----------- | :------- |
|
||||
| @types/express-serve-static-core | package.json | error |
|
||||
| @backstage/plugin-auth-node | package.json | error |
|
||||
| better-sqlite3 | package.json | error |
|
||||
| @types/qs | package.json | error |
|
||||
| mysql2 | package.json | error |
|
||||
| pg | package.json | error |
|
||||
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (5)
|
||||
## Unused dependencies (8)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :----------------------------------------------- | :----------- | :------- |
|
||||
| @backstage/plugin-catalog-backend-module-openapi | package.json | error |
|
||||
| @opentelemetry/auto-instrumentations-node | package.json | error |
|
||||
| @backstage/plugin-search-backend-node | package.json | error |
|
||||
| @backstage/plugin-permission-common | package.json | error |
|
||||
| @opentelemetry/exporter-prometheus | package.json | error |
|
||||
| @backstage/plugin-permission-node | package.json | error |
|
||||
| @backstage/backend-tasks | package.json | error |
|
||||
| @opentelemetry/sdk-node | package.json | error |
|
||||
| example-app | package.json | error |
|
||||
|
||||
|
||||
+59
-58
@@ -1,68 +1,69 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (28)
|
||||
## Unused dependencies (26)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------------------------- | :----------- | :------- |
|
||||
| @typescript-eslint/eslint-plugin | package.json | error |
|
||||
| @spotify/eslint-config-react | package.json | error |
|
||||
| eslint-formatter-friendly | package.json | error |
|
||||
| eslint-plugin-deprecation | package.json | error |
|
||||
| eslint-plugin-react-hooks | package.json | error |
|
||||
| @sucrase/webpack-loader | package.json | error |
|
||||
| eslint-plugin-jsx-a11y | package.json | error |
|
||||
| jest-environment-jsdom | package.json | error |
|
||||
| terser-webpack-plugin | package.json | error |
|
||||
| eslint-plugin-react | package.json | error |
|
||||
| @types/webpack-env | package.json | error |
|
||||
| @svgr/plugin-svgo | package.json | error |
|
||||
| @svgr/plugin-jsx | package.json | error |
|
||||
| jest-css-modules | package.json | error |
|
||||
| @swc/helpers | package.json | error |
|
||||
| jest-runtime | package.json | error |
|
||||
| cross-fetch | package.json | error |
|
||||
| @svgr/core | package.json | error |
|
||||
| @swc/core | package.json | error |
|
||||
| @swc/jest | package.json | error |
|
||||
| esbuild | package.json | error |
|
||||
| pirates | package.json | error |
|
||||
| postcss | package.json | error |
|
||||
| process | package.json | error |
|
||||
| sucrase | package.json | error |
|
||||
| buffer | package.json | error |
|
||||
| glob | package.json | error |
|
||||
| util | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :--------------------------- | :----------- | :------- |
|
||||
| @spotify/eslint-config-react | package.json | error |
|
||||
| eslint-formatter-friendly | package.json | error |
|
||||
| eslint-plugin-react-hooks | package.json | error |
|
||||
| @backstage/catalog-model | package.json | error |
|
||||
| @octokit/graphql-schema | package.json | error |
|
||||
| @sucrase/webpack-loader | package.json | error |
|
||||
| @backstage/integration | package.json | error |
|
||||
| eslint-plugin-jsx-a11y | package.json | error |
|
||||
| jest-environment-jsdom | package.json | error |
|
||||
| terser-webpack-plugin | package.json | error |
|
||||
| eslint-plugin-react | package.json | error |
|
||||
| @octokit/oauth-app | package.json | error |
|
||||
| @svgr/plugin-svgo | package.json | error |
|
||||
| @octokit/graphql | package.json | error |
|
||||
| @svgr/plugin-jsx | package.json | error |
|
||||
| jest-css-modules | package.json | error |
|
||||
| git-url-parse | package.json | error |
|
||||
| jest-runtime | package.json | error |
|
||||
| cross-fetch | package.json | error |
|
||||
| @svgr/core | package.json | error |
|
||||
| @swc/jest | package.json | error |
|
||||
| process | package.json | error |
|
||||
| sucrase | package.json | error |
|
||||
| buffer | package.json | error |
|
||||
| glob | package.json | error |
|
||||
| util | package.json | error |
|
||||
|
||||
## Unused devDependencies (11)
|
||||
## Unused devDependencies (14)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------------------- | :----------- | :------- |
|
||||
| @types/rollup-plugin-peer-deps-external | package.json | error |
|
||||
| @backstage/backend-plugin-api | package.json | error |
|
||||
| @types/terser-webpack-plugin | package.json | error |
|
||||
| @backstage/core-components | package.json | error |
|
||||
| @backstage/core-app-api | package.json | error |
|
||||
| @backstage/dev-utils | package.json | error |
|
||||
| @types/http-proxy | package.json | error |
|
||||
| @types/svgo | package.json | error |
|
||||
| @types/ejs | package.json | error |
|
||||
| nodemon | package.json | error |
|
||||
| del | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :--------------------------------------------------- | :----------- | :------- |
|
||||
| @backstage/plugin-auth-backend-module-guest-provider | package.json | error |
|
||||
| @types/rollup-plugin-peer-deps-external | package.json | error |
|
||||
| @backstage/plugin-auth-backend | package.json | error |
|
||||
| @backstage/plugin-catalog-node | package.json | error |
|
||||
| @types/terser-webpack-plugin | package.json | error |
|
||||
| @backstage/core-components | package.json | error |
|
||||
| @backstage/catalog-client | package.json | error |
|
||||
| @backstage/core-app-api | package.json | error |
|
||||
| @types/webpack-sources | package.json | error |
|
||||
| @backstage/dev-utils | package.json | error |
|
||||
| @types/http-proxy | package.json | error |
|
||||
| @types/svgo | package.json | error |
|
||||
| @types/ejs | package.json | error |
|
||||
| del | package.json | error |
|
||||
|
||||
## Referenced optional peerDependencies (4)
|
||||
## Referenced optional peerDependencies (3)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------------------- | :----------- | :------- |
|
||||
| vite-plugin-node-polyfills | package.json | error |
|
||||
| @vitejs/plugin-react | package.json | error |
|
||||
| vite-plugin-html | package.json | error |
|
||||
| vite | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :--------------------------- | :----------- | :------- |
|
||||
| @rspack/plugin-react-refresh | package.json | error |
|
||||
| @rspack/dev-server | package.json | error |
|
||||
| @rspack/core | package.json | error |
|
||||
|
||||
## Unlisted dependencies (3)
|
||||
## Unlisted dependencies (4)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :----------------- | :----------------------------------------- | :------- |
|
||||
| prettier | src/commands/migrate/packageLintConfigs.ts | error |
|
||||
| react-dom/client | src/lib/bundler/hasReactDomClient.ts | error |
|
||||
| react/package.json | src/lib/bundler/server.ts | error |
|
||||
| Name | Location | Severity |
|
||||
| :-------- | :----------------------------------- | :------- |
|
||||
| react-dom | src/lib/bundler/hasReactDomClient.ts | error |
|
||||
| react-dom | src/lib/bundler/config.ts | error |
|
||||
| react | src/lib/bundler/config.ts | error |
|
||||
| react | src/lib/bundler/server.ts | error |
|
||||
|
||||
|
||||
@@ -130,7 +130,6 @@
|
||||
"node-libs-browser": "^2.2.1",
|
||||
"npm-packlist": "^5.0.0",
|
||||
"ora": "^5.3.0",
|
||||
"p-limit": "^3.1.0",
|
||||
"p-queue": "^6.6.2",
|
||||
"pirates": "^4.0.6",
|
||||
"postcss": "^8.1.0",
|
||||
|
||||
@@ -21,7 +21,12 @@ import {
|
||||
relative as relativePath,
|
||||
} from 'path';
|
||||
import { createFilter } from 'rollup-pluginutils';
|
||||
import { Plugin, InputOptions, OutputChunk } from 'rollup';
|
||||
import {
|
||||
Plugin,
|
||||
InputOptions,
|
||||
OutputChunk,
|
||||
HasModuleSideEffects,
|
||||
} from 'rollup';
|
||||
|
||||
type ForwardFileImportsOptions = {
|
||||
include: Array<string | RegExp> | string | RegExp | null;
|
||||
@@ -91,6 +96,33 @@ export function forwardFileImports(options: ForwardFileImportsOptions) {
|
||||
}
|
||||
},
|
||||
options(inputOptions) {
|
||||
// We're in control of the config ourselves, so these are just checks to
|
||||
// make sure we don't update the config but forget about the config
|
||||
// overrides here
|
||||
const treeshake = inputOptions.treeshake;
|
||||
if (treeshake !== undefined && typeof treeshake !== 'object') {
|
||||
throw new Error(
|
||||
'Expected treeshake input config to be an object or not set',
|
||||
);
|
||||
}
|
||||
if (treeshake?.moduleSideEffects) {
|
||||
throw new Error('treeshake.moduleSideEffects must not be set');
|
||||
}
|
||||
|
||||
// All external assets are treated as being side-effect free.
|
||||
//
|
||||
// This also works around an apparent bug in rollup where the
|
||||
// `makeAbsoluteExternalsRelative: false` option sometimes caused relative
|
||||
// asset paths to be rewritten with an incorrect path. They are rewritten
|
||||
// in the first place because they are being treated as external by this
|
||||
// plugin, but that seems to be the best way to handle asset files.
|
||||
const moduleSideEffects: HasModuleSideEffects = id => {
|
||||
if (filter(id)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
const origExternal = inputOptions.external;
|
||||
|
||||
// We decorate any existing `external` option with our own way of determining
|
||||
@@ -129,7 +161,11 @@ export function forwardFileImports(options: ForwardFileImportsOptions) {
|
||||
return true;
|
||||
};
|
||||
|
||||
return { ...inputOptions, external };
|
||||
return {
|
||||
...inputOptions,
|
||||
external,
|
||||
treeshake: { ...treeshake, moduleSideEffects },
|
||||
};
|
||||
},
|
||||
} satisfies Plugin;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ import {
|
||||
resolve as resolvePath,
|
||||
relative as relativePath,
|
||||
} from 'path';
|
||||
import pLimit from 'p-limit';
|
||||
import { tmpdir } from 'os';
|
||||
import tar, { CreateOptions, FileOptions } from 'tar';
|
||||
import partition from 'lodash/partition';
|
||||
@@ -369,11 +368,10 @@ async function moveToDistWorkspace(
|
||||
}
|
||||
|
||||
// Repacking in parallel is much faster and safe for all packages outside of the Backstage repo
|
||||
// Limit concurrency to 10 to avoid resource exhaustion on larger monorepos.
|
||||
const limit = pLimit(10);
|
||||
await Promise.all(
|
||||
safePackages.map((target, index) =>
|
||||
limit(() => pack(target, `temp-package-${index}.tgz`)),
|
||||
),
|
||||
);
|
||||
await runParallelWorkers({
|
||||
items: safePackages.map((target, index) => ({ target, index })),
|
||||
worker: async ({ target, index }) => {
|
||||
await pack(target, `temp-package-${index}.tgz`);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -6,15 +6,13 @@
|
||||
| :------ | :----------- | :------- |
|
||||
| history | package.json | error |
|
||||
|
||||
## Unused devDependencies (7)
|
||||
## Unused devDependencies (5)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :--------------------------- | :----------- | :------- |
|
||||
| @testing-library/react-hooks | package.json | error |
|
||||
| @testing-library/user-event | package.json | error |
|
||||
| react-router-dom-stable | package.json | error |
|
||||
| react-router-dom-beta | package.json | error |
|
||||
| @testing-library/dom | package.json | error |
|
||||
| react-router-stable | package.json | error |
|
||||
| react-router-beta | package.json | error |
|
||||
|
||||
|
||||
@@ -1,2 +1,10 @@
|
||||
# Knip report
|
||||
|
||||
## Unused devDependencies (3)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------- | :----------- | :------- |
|
||||
| @backstage/frontend-app-api | package.json | error |
|
||||
| @backstage/types | package.json | error |
|
||||
| zod | package.json | error |
|
||||
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (3)
|
||||
## Unused dependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------ | :----------- | :------- |
|
||||
| @date-io/core | package.json | error |
|
||||
| linkifyjs | package.json | error |
|
||||
| pluralize | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :-------- | :----------- | :------- |
|
||||
| pluralize | package.json | error |
|
||||
|
||||
## Unused devDependencies (4)
|
||||
## Unused devDependencies (3)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :---------------------- | :----------- | :------- |
|
||||
| @backstage/app-defaults | package.json | error |
|
||||
| @types/google-protobuf | package.json | error |
|
||||
| @testing-library/dom | package.json | error |
|
||||
| cross-fetch | package.json | error |
|
||||
|
||||
## Unlisted dependencies (3)
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# Knip report
|
||||
|
||||
## Unused devDependencies (2)
|
||||
## Unused devDependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------- | :----------- | :------- |
|
||||
| @testing-library/user-event | package.json | error |
|
||||
| @testing-library/dom | package.json | error |
|
||||
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# Knip report
|
||||
|
||||
## Unused devDependencies (2)
|
||||
## Unused devDependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------- | :----------- | :------- |
|
||||
| @types/command-exists | package.json | error |
|
||||
| nodemon | package.json | error |
|
||||
|
||||
|
||||
@@ -1,8 +1,2 @@
|
||||
# Knip report
|
||||
|
||||
## Unused devDependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------------- | :----------- | :------- |
|
||||
| @testing-library/dom | package.json | error |
|
||||
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
# Knip report
|
||||
|
||||
## Unused devDependencies (2)
|
||||
## Unused dependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :--------------- | :----------- | :------- |
|
||||
| @types/puppeteer | package.json | error |
|
||||
| nodemon | package.json | error |
|
||||
| Name | Location | Severity |
|
||||
| :-------------------- | :----------- | :------- |
|
||||
| @backstage/create-app | package.json | error |
|
||||
|
||||
|
||||
@@ -1,9 +1,2 @@
|
||||
# Knip report
|
||||
|
||||
## Unlisted dependencies (2)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :----- | :----------------------------- | :------- |
|
||||
| estree | rules/no-undeclared-imports.js | error |
|
||||
| estree | lib/visitImports.js | error |
|
||||
|
||||
|
||||
@@ -1,2 +1,10 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (3)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :--------------------------- | :----------- | :------- |
|
||||
| @backstage/frontend-defaults | package.json | error |
|
||||
| @backstage/errors | package.json | error |
|
||||
| zod | package.json | error |
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Knip report
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (3)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------------------ | :----------- | :------- |
|
||||
| @backstage/version-bridge | package.json | error |
|
||||
| @backstage/types | package.json | error |
|
||||
| zod | package.json | error |
|
||||
|
||||
## Unused devDependencies (5)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :----------------------------- | :----------- | :------- |
|
||||
| @backstage/frontend-test-utils | package.json | error |
|
||||
| @backstage/frontend-app-api | package.json | error |
|
||||
| @testing-library/jest-dom | package.json | error |
|
||||
| @testing-library/react | package.json | error |
|
||||
| @backstage/test-utils | package.json | error |
|
||||
|
||||
@@ -8,3 +8,9 @@
|
||||
| @material-ui/core | package.json | error |
|
||||
| lodash | package.json | error |
|
||||
|
||||
## Unused devDependencies (1)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :-------------------------- | :----------- | :------- |
|
||||
| @backstage/frontend-app-api | package.json | error |
|
||||
|
||||
|
||||
@@ -1,2 +1,9 @@
|
||||
# Knip report
|
||||
|
||||
## Unused dependencies (2)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------------------ | :----------- | :------- |
|
||||
| @backstage/version-bridge | package.json | error |
|
||||
| zod | package.json | error |
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Knip report
|
||||
|
||||
## Unused devDependencies (2)
|
||||
|
||||
| Name | Location | Severity |
|
||||
| :------------------------ | :----------- | :------- |
|
||||
| @testing-library/jest-dom | package.json | error |
|
||||
| @testing-library/react | package.json | error |
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
| Name | Location | Severity |
|
||||
| :---------------------------------- | :----------- | :------- |
|
||||
| @openapitools/openapi-generator-cli | package.json | error |
|
||||
| @stoplight/spectral-functions | package.json | error |
|
||||
| @stoplight/spectral-runtime | package.json | error |
|
||||
| @electric-sql/pglite | package.json | error |
|
||||
| is-glob | package.json | error |
|
||||
| glob | package.json | error |
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
"just-diff": "^6.0.2",
|
||||
"knex": "^3.0.0",
|
||||
"knex-pglite": "^0.11.0",
|
||||
"knip": "^5.42.0",
|
||||
"lodash": "^4.17.21",
|
||||
"minimatch": "^9.0.0",
|
||||
"p-limit": "^3.0.2",
|
||||
|
||||
@@ -18,10 +18,13 @@ import pLimit from 'p-limit';
|
||||
import os from 'os';
|
||||
import { relative as relativePath, resolve as resolvePath } from 'path';
|
||||
import fs from 'fs-extra';
|
||||
import type { KnipConfig } from 'knip';
|
||||
import { createBinRunner } from '../util';
|
||||
|
||||
// Ignore this due to Knip error: Error: ENAMETOOLONG: name too long, scandir
|
||||
const ignoredPackages = ['packages/techdocs-cli-embedded-app'];
|
||||
// Ignore these
|
||||
const ignoredPackages = [
|
||||
'packages/canon', // storybook config is different from the rest
|
||||
];
|
||||
|
||||
interface KnipExtractionOptions {
|
||||
packageDirs: string[];
|
||||
@@ -29,7 +32,7 @@ interface KnipExtractionOptions {
|
||||
}
|
||||
|
||||
interface KnipConfigOptions {
|
||||
packageDir: string;
|
||||
knipConfigPath: string;
|
||||
}
|
||||
|
||||
interface KnipPackageOptions {
|
||||
@@ -55,41 +58,43 @@ function logKnipReportInstructions() {
|
||||
console.log('');
|
||||
}
|
||||
|
||||
async function generateKnipConfig({ packageDir }: KnipConfigOptions) {
|
||||
const knipConfig = {
|
||||
entry: [
|
||||
'dev/index.{ts,tsx}',
|
||||
'src/index.{ts,tsx}',
|
||||
'src/alpha.{ts,tsx}',
|
||||
'src/routes.ts',
|
||||
'src/run.ts',
|
||||
],
|
||||
async function generateKnipConfig({ knipConfigPath }: KnipConfigOptions) {
|
||||
const knipConfig: KnipConfig = {
|
||||
workspaces: {
|
||||
'.': {},
|
||||
'{packages,plugins}/*': {
|
||||
entry: ['dev/index.{ts,tsx}', 'src/index.{ts,tsx}'],
|
||||
ignore: [
|
||||
'.eslintrc.js',
|
||||
'config.d.ts',
|
||||
'knexfile.js',
|
||||
'node_modules/**',
|
||||
'dist/**',
|
||||
'{fixtures,migrations,templates}/**',
|
||||
'src/tests/transforms/__fixtures__/**', // cli packaging tests
|
||||
],
|
||||
},
|
||||
},
|
||||
jest: {
|
||||
entry: ['src/setupTests.ts', '**/*.test.{ts,tsx}'],
|
||||
entry: ['src/setupTests.ts', 'src/**/*.test.{ts,tsx}'],
|
||||
},
|
||||
storybook: { entry: 'src/components/**/*.stories.tsx' },
|
||||
ignore: [
|
||||
'.eslintrc.js',
|
||||
'config.d.ts',
|
||||
'knexfile.js',
|
||||
'node_modules/**',
|
||||
'dist/**',
|
||||
'{fixtures,migrations,templates}/**',
|
||||
],
|
||||
ignoreDependencies: [
|
||||
// these is reported as a referenced optional peerDependencies
|
||||
// TBD: investigate what triggers these
|
||||
'@types/react',
|
||||
'@types/jest',
|
||||
'@internal/.*', // internal packages are not published and inlined
|
||||
'@backstage/cli', // everything depends on this for its package.json commands
|
||||
'@backstage/theme', // this uses `declare module` in .d.ts so is implicitly used whenever extensions are needed
|
||||
],
|
||||
};
|
||||
await fs.writeFile(
|
||||
`${packageDir}/knip.json`,
|
||||
JSON.stringify(knipConfig, null, 2),
|
||||
);
|
||||
await fs.writeFile(knipConfigPath, JSON.stringify(knipConfig, null, 2));
|
||||
}
|
||||
|
||||
function cleanKnipConfig({ packageDir }: KnipConfigOptions) {
|
||||
if (fs.existsSync(`${packageDir}/knip.json`)) {
|
||||
fs.rmSync(`${packageDir}/knip.json`);
|
||||
function cleanKnipConfig({ knipConfigPath }: KnipConfigOptions) {
|
||||
if (fs.existsSync(knipConfigPath)) {
|
||||
fs.rmSync(knipConfigPath);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,13 +110,11 @@ async function handlePackage({
|
||||
}
|
||||
const fullDir = cliPaths.resolveTargetRoot(packageDir);
|
||||
const reportPath = resolvePath(fullDir, 'knip-report.md');
|
||||
const run = createBinRunner(fullDir, '');
|
||||
const run = createBinRunner(cliPaths.targetRoot, '');
|
||||
|
||||
await generateKnipConfig({ packageDir: fullDir });
|
||||
|
||||
const report = await run(
|
||||
let report = await run(
|
||||
`${knipDir}/knip.js`,
|
||||
`--directory ${fullDir}`, // Run in the package directory
|
||||
`-W ${packageDir}`, // Run the desired workspace
|
||||
'--config knip.json',
|
||||
'--no-exit-code', // Removing this will end the process in case there are findings by knip
|
||||
'--no-progress', // Remove unnecessary debugging from output
|
||||
@@ -120,7 +123,17 @@ async function handlePackage({
|
||||
'--reporter markdown',
|
||||
);
|
||||
|
||||
cleanKnipConfig({ packageDir: fullDir });
|
||||
// Adjust report paths to be relative to workspace
|
||||
report = report.replaceAll(`| ${packageDir}/`, '| ');
|
||||
// Adjust table separators
|
||||
report = report.replaceAll(
|
||||
new RegExp(`(\\| :-+ \\| :)-{${packageDir.length + 1}}`, 'g'),
|
||||
(_, p1) => p1,
|
||||
);
|
||||
report = report.replaceAll(
|
||||
new RegExp(` \\| Location {1,${packageDir.length + 2}}`, 'g'),
|
||||
' | Location ',
|
||||
);
|
||||
|
||||
const existingReport = await fs.readFile(reportPath, 'utf8').catch(error => {
|
||||
if (error.code === 'ENOENT') {
|
||||
@@ -160,8 +173,10 @@ export async function runKnipReports({
|
||||
isLocalBuild,
|
||||
}: KnipExtractionOptions) {
|
||||
const knipDir = cliPaths.resolveTargetRoot('./node_modules/knip/bin/');
|
||||
const knipConfigPath = cliPaths.resolveTargetRoot('./knip.json');
|
||||
const limiter = pLimit(os.cpus().length);
|
||||
|
||||
await generateKnipConfig({ knipConfigPath });
|
||||
try {
|
||||
await Promise.all(
|
||||
packageDirs.map(packageDir =>
|
||||
@@ -170,15 +185,9 @@ export async function runKnipReports({
|
||||
),
|
||||
),
|
||||
);
|
||||
await cleanKnipConfig({ knipConfigPath });
|
||||
} catch (e) {
|
||||
console.log(
|
||||
`Error occurred during knip reporting: ${e}, cleaning knip configs`,
|
||||
);
|
||||
packageDirs.map(packageDir => {
|
||||
const fullDir = cliPaths.resolveTargetRoot(packageDir);
|
||||
cleanKnipConfig({ packageDir: fullDir });
|
||||
});
|
||||
|
||||
console.log(`Error occurred during knip reporting: ${e}`);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user