Skip to content

Commit 7fb5e06

Browse files
committed
Updated docs
1 parent d119273 commit 7fb5e06

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44

55
Updated audit script to take JSON input to filter by Actions and commits.
66

7+
Added unit tests for the audit script.
8+
9+
Added supporting documentation.
10+
711
## 2025-05-20
812

913
Added script to allow decoding secrets from workflows affected by a particular set of compromises in March 2025.

README.md

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# Audit GitHub Actions used in workflow runs for an organization, Enterprise or repository
22

3-
Discover which exact versions (down to the commit) of GitHub Actions were used in workflow runs.
3+
Discover which versions of GitHub Actions were used in workflow runs, down to the exact commit.
44

5-
Check the audit log for a GitHub Enterprise/organization (or just list the runs, for a repository) for workflow runs created between the start date and end date.
5+
Checks the audit log for a GitHub Enterprise/organization (or just lists the runs, for a repository) for workflow runs created between the start date and end date.
66

77
Lists the Actions and specific versions and commits used in them.
88

9-
Optionally, filter by particular Actions, possibly including one or more commit SHAs of interest.
9+
Optionally, filters by particular Actions, possibly including one or more commit SHAs of interest.
1010

1111
> [!NOTE]
12-
> This is unofficial software, not supported by GitHub
12+
> This is an _unofficial_ tool created by Field Security Specialists, and is not officially supported by GitHub.
1313
1414
## Usage
1515

@@ -23,14 +23,18 @@ For Enterprise Server or Data Residency users, please set `GITHUB_BASE_URL` in y
2323
node audit_workflow_runs.js <org or enterprise name> <ent|org|repo> <start date> <end date> [<output-file>] [<input-filters-file>]
2424
```
2525

26-
Results are printed to the console in CSV, and also appended to a file in the current directory, named `workflow_audit_results.sljson` by default. This can be set with the optional `output-file` parameter.
26+
Results are printed to the console in CSV, for convenience, and also appended to a single-line JSON file in the current directory. This is named `workflow_audit_results.sljson` by default, and can be set with the optional `output-file` parameter.
2727

2828
By default all Actions are listed, but you can filter by particular Actions using a JSON formatted input file.
2929

3030
For example:
3131

3232
```bash
33-
node audit_workflow_runs.js github org 2025-03-13 2025-03-15 github_actions_audit.json
33+
node audit_workflow_runs.js github org 2025-03-13 2025-03-15 github_actions_audit.sljson
34+
```
35+
36+
```bash
37+
node audit_workflow_runs.js github org 2025-03-13 2025-03-15 github_actions_audit.sljson actions_to_find.json
3438
```
3539

3640
#### JSON input file format
@@ -43,12 +47,20 @@ You can express some wildcards - use `*` after the first `/` in the Action to in
4347

4448
An Action name given without a path will match any Action in that repository, whether or not it has a path. You can also explictly use `*` in the path to match any path.
4549

50+
```json
51+
{
52+
"actions/setup-node": ["*"],
53+
"actions/checkout": ["*"],
54+
"actions/setup-python": ["0000000000000000000000000000000000000000"],
55+
}
56+
```
57+
4658
### find_compromised_secrets.js
4759

4860
> [!NOTE]
4961
> This is relevant only to secrets leaked because of the `tj-actions/changed-files` and `reviewdog` compromises in March 2025.
5062
51-
This script takes the structured single-line JSON output of `audit_workflow_runs.js` (not the convenience CSV output) and searches for secrets that were leaked in those workflow runs.
63+
This script takes the structured single-line JSON output of `audit_workflow_runs.js` (not the convenience CSV output) and searches for secrets in the format that was leaked in those workflow runs (doubly base64 encoded, with predictable content).
5264

5365
```text
5466
node find_compromised_secrets.js < <path sljson file>
@@ -77,8 +89,6 @@ See [CODEOWNERS](CODEOWNERS) for the list of maintainers.
7789
7890
See the [SUPPORT](SUPPORT.md) file.
7991

80-
## Background and acknowledgements
81-
82-
The `changes` Action relies on the [`dorny/paths-filter`](https://github.com/dorny/paths-filter/) Action.
92+
## Background
8393

8494
See the [CHANGELOG](CHANGELOG.md), [CONTRIBUTING](CONTRIBUTING.md), [SECURITY](SECURITY.md), [SUPPORT](SUPPORT.md), [CODE OF CONDUCT](CODE_OF_CONDUCT.md) and [PRIVACY](PRIVACY.md) files for more information.

0 commit comments

Comments
 (0)