Skip to content

Commit 0738a66

Browse files
author
Alvaro Muñoz
committed
Add trigger event checks for all checkout models
1 parent 0cacb6f commit 0738a66

3 files changed

Lines changed: 366 additions & 0 deletions

File tree

ql/lib/codeql/actions/security/UntrustedCheckoutQuery.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,7 @@ class ActionsSHACheckout extends SHACheckoutStep instanceof UsesStep {
283283
class GitMutableRefCheckout extends MutableRefCheckoutStep instanceof Run {
284284
GitMutableRefCheckout() {
285285
exists(string cmd | this.getScript().getACommand() = cmd |
286+
this.getEnclosingJob().getATriggerEvent().getName() = checkoutTriggers() and
286287
cmd.regexpMatch("git\\s+(fetch|pull).*") and
287288
(
288289
(containsHeadRef(cmd) or containsPullRequestNumber(cmd))
@@ -306,6 +307,7 @@ class GitMutableRefCheckout extends MutableRefCheckoutStep instanceof Run {
306307
class GitSHACheckout extends SHACheckoutStep instanceof Run {
307308
GitSHACheckout() {
308309
exists(string cmd | this.getScript().getACommand() = cmd |
310+
this.getEnclosingJob().getATriggerEvent().getName() = checkoutTriggers() and
309311
cmd.regexpMatch("git\\s+(fetch|pull).*") and
310312
(
311313
containsHeadSHA(cmd)
@@ -326,6 +328,7 @@ class GitSHACheckout extends SHACheckoutStep instanceof Run {
326328
class GhMutableRefCheckout extends MutableRefCheckoutStep instanceof Run {
327329
GhMutableRefCheckout() {
328330
exists(string cmd | this.getScript().getACommand() = cmd |
331+
this.getEnclosingJob().getATriggerEvent().getName() = checkoutTriggers() and
329332
cmd.regexpMatch(".*(gh|hub)\\s+pr\\s+checkout.*") and
330333
(
331334
(containsHeadRef(cmd) or containsPullRequestNumber(cmd))
@@ -348,6 +351,7 @@ class GhMutableRefCheckout extends MutableRefCheckoutStep instanceof Run {
348351
class GhSHACheckout extends SHACheckoutStep instanceof Run {
349352
GhSHACheckout() {
350353
exists(string cmd | this.getScript().getACommand() = cmd |
354+
this.getEnclosingJob().getATriggerEvent().getName() = checkoutTriggers() and
351355
cmd.regexpMatch("gh\\s+pr\\s+checkout.*") and
352356
(
353357
containsHeadSHA(cmd)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
on: [ workflow_dispatch, pull_request ]
2+
jobs:
3+
test:
4+
runs-on: ubuntu-20.04
5+
if: github.event_name == 'pull_request'
6+
steps:
7+
- name: Check out repository code
8+
uses: actions/checkout@v2
9+
10+
- name: Fetch base and head on PR
11+
if: ${{ github.event.pull_request.base.sha }}
12+
run: |
13+
git fetch origin master ${{ github.event.pull_request.base.sha }}
14+
git fetch origin master ${{ github.event.pull_request.head.sha }}
15+
16+
- name: Check that Pull Request includes updating the Version
17+
run: |
18+
git show ${{ github.event.pull_request.base.sha }}:src/mplfinance/_version.py > scripts/tv0.py
19+
git show ${{ github.sha }}:src/mplfinance/_version.py > scripts/tv1.py
20+
python scripts/version_update_check.py tv0 tv1

0 commit comments

Comments
 (0)