Skip to content

Commit

Permalink
Minimize GHA permissions
Browse files Browse the repository at this point in the history
Set the GitHub Actions token permission to null in most workflows.

This results in:

GITHUB_TOKEN Permissions
  Metadata: read

The default permissions, used without the null override, are either

GITHUB_TOKEN Permissions
  Actions: write
  Checks: write
  Contents: write
  Deployments: write
  Discussions: write
  Issues: write
  Metadata: read
  Packages: write
  Pages: write
  PullRequests: write
  RepositoryProjects: write
  SecurityEvents: write
  Statuses: write

or

GITHUB_TOKEN Permissions
  Actions: read
  Checks: read
  Contents: read
  Deployments: read
  Discussions: read
  Issues: read
  Metadata: read
  Packages: read
  Pages: read
  PullRequests: read
  RepositoryProjects: read
  SecurityEvents: read
  Statuses: read

Jobs triggered by PRs get read permissions, other jobs get write.

Two jobs require non-null permissions to function.

The Anchore vulnerability scan GHA that reports results on merges needs
security-events write permission to publish SARIF reports using
github/codeql-action/upload-sarif. Fails with HTTP 403 otherwise.

The dependent issues GHA needs PR/issues write permissions to add/remove
`dependent` labels. It needs status write permission to block/unblock
PRs when dependencies are missing/met. Fails with HttpError otherwise.

Signed-off-by: Daniel Farrell <[email protected]>
  • Loading branch information
dfarrell07 authored and skitt committed Aug 25, 2022
1 parent 72d91fd commit 9c0f1ae
Show file tree
Hide file tree
Showing 17 changed files with 39 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ name: Branch Checks
on:
pull_request:

permissions: {}

jobs:
target_branch:
name: PR targets branch
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/codeowners.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
- 'CODEOWNERS'
- 'CODEOWNERS.in'

permissions: {}

jobs:
updated:
name: Up-to-date
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/dependent-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ on:
schedule:
- cron: '0 0/6 * * *' # every 6 hours

permissions:
issues: write
pull-requests: write
statuses: write

jobs:
check:
name: Check Dependencies
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/e2e-all-k8s.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
schedule:
- cron: "0 0 * * 6"

permissions: {}

jobs:
e2e:
name: E2E All K8s
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/e2e-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
pull_request:
types: [labeled, opened, synchronize, reopened]

permissions: {}

jobs:
e2e:
name: E2E
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
pull_request:
types: [ready_for_review, opened, reopened, synchronize, converted_to_draft, labeled]

permissions: {}

jobs:
e2e:
name: E2E
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/flake_finder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
schedule:
- cron: "0 0,1 * * *"

permissions: {}

jobs:
e2e:
name: E2E
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ name: Linting
on:
pull_request:

permissions: {}

jobs:
apply-suggestions-commits:
name: 'No "Apply suggestions from code review" Commits'
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/multiarch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ name: Multi-arch Builds
on:
pull_request:

permissions: {}

jobs:
check-multiarch:
name: Check the multi-arch builds
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/periodic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
schedule:
- cron: "0 0 * * 0"

permissions: {}

jobs:
markdown-link-check-periodic:
name: Markdown Links (all files)
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/prometheus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ on:
pull_request:
types: [labeled, opened, synchronize, reopened]

permissions: {}

jobs:
check:
name: Metrics Exported
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
- devel
- release-*

permissions: {}

jobs:
release:
name: Release Images
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ on:
- devel
- release-*

permissions: {}

jobs:
vulnerability-scan:
name: Vulnerability Scanning
if: github.repository_owner == 'submariner-io'
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- name: Check out the repository
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/subctl-unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ name: Consuming Projects
on:
pull_request:

permissions: {}

jobs:
unit-testing:
name: Check subctl
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/system.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ name: System Tests
on:
pull_request:

permissions: {}

jobs:
system-test:
name: Deployment
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
tags:
- 'v**'

permissions: {}

jobs:
unit-testing:
name: Go Unit Tests
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/upgrade-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:
types: [ready_for_review, opened, reopened, synchronize, converted_to_draft, labeled]
branches: [devel]

permissions: {}

jobs:
upgrade-e2e:
name: Latest Release to Latest Version
Expand Down

0 comments on commit 9c0f1ae

Please sign in to comment.