mirror of
https://github.com/jquery/jquery.git
synced 2024-12-09 08:04:24 +00:00
c909d6b1ff
Add explicit permissions section[^1] to workflows. This is a security best practice because by default workflows run with extended set of permissions[^2] (except from `on: pull_request` from external forks[^3]. By specifying any permission explicitly all others are set to none. By using the principle of least privilege the damage a compromised workflow can do (because of an injection[^4] or compromised third party tool or action) is restricted. It is recommended to have most strict permissions on the top level[^5] and grant write permissions on job level[^6] on a case by case basis. [^1]: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions [^2]: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token [^3]: https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ [^4]: https://securitylab.github.com/research/github-actions-untrusted-input/ [^5]: https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions [^6]: https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs Closes gh-5119
59 lines
1.8 KiB
YAML
59 lines
1.8 KiB
YAML
name: "Code scanning - action"
|
||
|
||
on:
|
||
push:
|
||
pull_request:
|
||
schedule:
|
||
- cron: '0 4 * * 6'
|
||
|
||
permissions:
|
||
contents: read # to fetch code (actions/checkout)
|
||
|
||
jobs:
|
||
CodeQL-Build:
|
||
|
||
permissions:
|
||
contents: read # to fetch code (actions/checkout)
|
||
security-events: write # (github/codeql-action/autobuild)
|
||
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
- name: Checkout repository
|
||
uses: actions/checkout@v3
|
||
with:
|
||
# We must fetch at least the immediate parents so that if this is
|
||
# a pull request then we can checkout the head.
|
||
fetch-depth: 2
|
||
|
||
# If this run was triggered by a pull request event, then checkout
|
||
# the head of the pull request instead of the merge commit.
|
||
- run: git checkout HEAD^2
|
||
if: ${{ github.event_name == 'pull_request' }}
|
||
|
||
# Initializes the CodeQL tools for scanning.
|
||
- name: Initialize CodeQL
|
||
uses: github/codeql-action/init@v2
|
||
# Override language selection by uncommenting this and choosing your languages
|
||
# with:
|
||
# languages: go, javascript, csharp, python, cpp, java
|
||
|
||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||
# If this step fails, then you should remove it and run the build manually (see below)
|
||
- name: Autobuild
|
||
uses: github/codeql-action/autobuild@v2
|
||
|
||
# ℹ️ Command-line programs to run using the OS shell.
|
||
# 📚 https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||
|
||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||
# and modify them (or add more) to build your code if your project
|
||
# uses a compiled language
|
||
|
||
#- run: |
|
||
# make bootstrap
|
||
# make release
|
||
|
||
- name: Perform CodeQL Analysis
|
||
uses: github/codeql-action/analyze@v2
|