fix: harden workflow permissions with deny-all top-level and least-privilege job scopes (#482)

This commit is contained in:
Copilot
2026-03-06 02:44:56 +02:00
committed by GitHub
parent 455267f892
commit ae4ad9ec80
12 changed files with 32 additions and 35 deletions

View File

@@ -17,10 +17,7 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
actions: read
pull-requests: read
permissions: {}
jobs:
analyze:
@@ -29,6 +26,9 @@ jobs:
timeout-minutes: 30
permissions:
contents: read
actions: read
pull-requests: read
security-events: write
statuses: write
issues: write

View File

@@ -23,15 +23,16 @@ on:
default: 'latest'
type: string
permissions:
contents: read
packages: write
permissions: {}
jobs:
build-and-push:
name: Build and Push Testing Image
runs-on: ubuntu-latest
timeout-minutes: 20
permissions:
contents: read
packages: write
steps:
- name: Checkout repository

View File

@@ -13,17 +13,16 @@ on:
- cron: '30 1 * * 0' # Run at 1:30 AM UTC every Sunday
merge_group:
permissions:
actions: read
contents: read
permissions: {}
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
contents: read
security-events: write
strategy:
fail-fast: false

View File

@@ -4,12 +4,13 @@ name: 'Dependency Review'
on:
- pull_request
permissions:
contents: read
permissions: {}
jobs:
dependency-review:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: 'Checkout Repository'
uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e # v6-beta

View File

@@ -5,8 +5,7 @@ on:
schedule:
- cron: '3 2 1 * *'
permissions:
contents: read
permissions: {}
jobs:
build:

View File

@@ -6,7 +6,7 @@ on:
schedule:
- cron: '0 21 * * *' # 00:00 at Europe/Helsinki
permissions: read-all
permissions: {}
jobs:
new-daily-release:

View File

@@ -37,9 +37,7 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
packages: read # Required for private dependencies
permissions: {}
jobs:
megalinter:

View File

@@ -7,8 +7,7 @@ on:
tags:
- 'v*'
permissions:
contents: read
permissions: {}
jobs:
release:

View File

@@ -18,11 +18,7 @@ on:
- '**/*.yaml'
- '.github/workflows/**'
permissions:
contents: read
pull-requests: write
issues: write
actions: read
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
@@ -32,6 +28,11 @@ jobs:
security-analysis:
name: Security Analysis
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
actions: read
steps:
- name: Checkout PR

View File

@@ -8,10 +8,7 @@ on:
workflow_call:
workflow_dispatch:
permissions:
contents: read
packages: read
statuses: read
permissions: {}
jobs:
stale:

View File

@@ -22,7 +22,7 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
permissions: {}
jobs:
labels:
@@ -31,6 +31,7 @@ jobs:
timeout-minutes: 10
permissions:
contents: read
issues: write
steps:

View File

@@ -12,15 +12,16 @@ on:
required: false
type: string
permissions:
contents: write
pull-requests: write
issues: write
permissions: {}
jobs:
check-and-update:
name: Check Version References
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
steps:
- name: Checkout Repository