Skip to content

Commit be87ecc

Browse files
author
Alvaro Muñoz
committed
Refactor Script support
1 parent a09acb5 commit be87ecc

35 files changed

Lines changed: 1001 additions & 519 deletions

ql/lib/codeql/actions/Ast.qll

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ class AstNode instanceof AstNodeImpl {
2222
CompositeAction getEnclosingCompositeAction() { result = super.getEnclosingCompositeAction() }
2323

2424
Expression getInScopeEnvVarExpr(string name) { result = super.getInScopeEnvVarExpr(name) }
25+
26+
ScalarValue getInScopeDefaultValue(string name, string prop) {
27+
result = super.getInScopeDefaultValue(name, prop)
28+
}
2529
}
2630

2731
class ScalarValue extends AstNode instanceof ScalarValueImpl {
@@ -121,6 +125,10 @@ class ReusableWorkflow extends Workflow instanceof ReusableWorkflowImpl {
121125

122126
class Input extends AstNode instanceof InputImpl { }
123127

128+
class Default extends AstNode instanceof DefaultsImpl {
129+
ScalarValue getValue(string name, string prop) { result = super.getValue(name, prop) }
130+
}
131+
124132
class Outputs extends AstNode instanceof OutputsImpl {
125133
Expression getAnOutputExpr() { result = super.getAnOutputExpr() }
126134

@@ -286,14 +294,18 @@ class ExternalJob extends Job, Uses instanceof ExternalJobImpl { }
286294
* See https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepsrun.
287295
*/
288296
class Run extends Step instanceof RunImpl {
289-
string getScript() { result = super.getScript() }
290-
291-
ScalarValue getScriptScalar() { result = super.getScriptScalar() }
297+
ShellScript getScript() { result = super.getScript() }
292298

293299
Expression getAnScriptExpr() { result = super.getAnScriptExpr() }
294300

295301
string getWorkingDirectory() { result = super.getWorkingDirectory() }
296302

303+
string getShell() { result = super.getShell() }
304+
}
305+
306+
class ShellScript extends ScalarValueImpl instanceof ShellScriptImpl {
307+
string getRawScript() { result = super.getRawScript() }
308+
297309
string getStmt(int i) { result = super.getStmt(i) }
298310

299311
string getAStmt() { result = super.getAStmt() }
@@ -302,19 +314,23 @@ class Run extends Step instanceof RunImpl {
302314

303315
string getACommand() { result = super.getACommand() }
304316

305-
predicate getAssignment(int i, string name, string value) { super.getAssignment(i, name, value) }
317+
string getFileReadCommand(int i) { result = super.getFileReadCommand(i) }
306318

307-
predicate getAnAssignment(string name, string value) { super.getAnAssignment(name, value) }
319+
string getAFileReadCommand() { result = super.getAFileReadCommand() }
308320

309-
predicate getAWriteToGitHubEnv(string name, string value) {
310-
super.getAWriteToGitHubEnv(name, value)
321+
predicate getAssignment(int i, string name, string data) { super.getAssignment(i, name, data) }
322+
323+
predicate getAnAssignment(string name, string data) { super.getAnAssignment(name, data) }
324+
325+
predicate getAWriteToGitHubEnv(string name, string data) {
326+
super.getAWriteToGitHubEnv(name, data)
311327
}
312328

313-
predicate getAWriteToGitHubOutput(string name, string value) {
314-
super.getAWriteToGitHubOutput(name, value)
329+
predicate getAWriteToGitHubOutput(string name, string data) {
330+
super.getAWriteToGitHubOutput(name, data)
315331
}
316332

317-
predicate getAWriteToGitHubPath(string value) { super.getAWriteToGitHubPath(value) }
333+
predicate getAWriteToGitHubPath(string data) { super.getAWriteToGitHubPath(data) }
318334

319335
predicate getAnEnvReachingGitHubOutputWrite(string var, string output_field) {
320336
super.getAnEnvReachingGitHubOutputWrite(var, output_field)
@@ -331,6 +347,18 @@ class Run extends Step instanceof RunImpl {
331347
predicate getACmdReachingGitHubEnvWrite(string cmd, string output_field) {
332348
super.getACmdReachingGitHubEnvWrite(cmd, output_field)
333349
}
350+
351+
predicate getAnEnvReachingGitHubPathWrite(string var) {
352+
super.getAnEnvReachingGitHubPathWrite(var)
353+
}
354+
355+
predicate getACmdReachingGitHubPathWrite(string cmd) { super.getACmdReachingGitHubPathWrite(cmd) }
356+
357+
predicate fileToGitHubEnv(string path) { super.fileToGitHubEnv(path) }
358+
359+
predicate fileToGitHubOutput(string path) { super.fileToGitHubOutput(path) }
360+
361+
predicate fileToGitHubPath(string path) { super.fileToGitHubPath(path) }
334362
}
335363

336364
abstract class SimpleReferenceExpression extends AstNode instanceof SimpleReferenceExpressionImpl {

0 commit comments

Comments
 (0)