Skip to content

Commit

Permalink
fix after review from @henrymercer
Browse files Browse the repository at this point in the history
  • Loading branch information
tgrall committed Apr 18, 2023
1 parent fc374f5 commit f398a65
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 36 deletions.
50 changes: 22 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,41 +137,35 @@ By default, this will override any queries specified in a config file. If you wi

### Configuration via `config` input


You can alternatively configure CodeQL using the `config` input to the `init` Action. The value of this input must be a YAML string that follows the configuration file format documented at "[Using a custom configuration file](https://help.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#using-a-custom-configuration-file)."

#### Example configuration


- **Complete Configuration**

```yaml
- uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
config: |
disable-default-queries: true
queries:
- uses: security-extended
- uses: security-and-quality
query-filters:
- include:
tags: /cwe-020/
```
```yaml
- uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
config: |
disable-default-queries: true
queries:
- uses: security-extended
- uses: security-and-quality
query-filters:
- include:
tags: /cwe-020/
```


- **Actions Variables**
#### Sharing configuration across multiple repositories

You can use actions or environment variables to share configuration across multiple repositories and to modify configuration without needing to edit the workflow file.
You can use Actions or environment variables to share configuration across multiple repositories and to modify configuration without needing to edit the workflow file. In the following example, `vars.CODEQL_CONF` is an [Actions configuration variable](https://docs.github.com/en/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows):

```yaml
- uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
config: ${{ vars.CODEQL_CONF }}
```


where `vars.CODEQL_CONF` references an [Actions configuration variable](https://docs.github.com/en/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows).
```yaml
- uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
config: ${{ vars.CODEQL_CONF }}
```

## Troubleshooting

Expand Down
3 changes: 3 additions & 0 deletions lib/config-utils.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/config-utils.js.map

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions lib/config-utils.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/config-utils.test.js.map

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions src/config-utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -925,9 +925,9 @@ test("Queries in workflow file can be added to the set of queries without overri
});
});

test("Queries can be specified in configuration, same as file", async (t) => {
test("Queries can be specified using config input", async (t) => {
return await util.withTmpDir(async (tmpDir) => {
const inputFileContents = `
const configInput = `
name: my config
queries:
- uses: ./foo
Expand Down Expand Up @@ -967,7 +967,7 @@ test("Queries can be specified in configuration, same as file", async (t) => {
undefined,
undefined,
undefined,
inputFileContents,
configInput,
false,
false,
"",
Expand Down
5 changes: 5 additions & 0 deletions src/config-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1708,6 +1708,11 @@ export async function initConfig(

// if configInput is set, it takes precedence over configFile
if (configInput) {
if (configFile) {
logger.warning(
`Both a config file and config input were provided. Ignoring config file.`
);
}
configFile = path.resolve(workspacePath, "user-config-from-action.yml");
fs.writeFileSync(configFile, configInput);
logger.debug(`Using config from action input: ${configFile}`);
Expand Down

0 comments on commit f398a65

Please sign in to comment.