Skip to content

Commit 8a5115d

Browse files
committed
Update README.md
1 parent f0df738 commit 8a5115d

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

.github/workflows/README.md

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,30 @@ This directory contains GitHub Actions workflows for the TruffleHog repository.
44

55
## PR Approval Check (`pr-approval-check.yml`)
66

7-
This workflow enforces that at least one PR approver must be a member of the `@trufflesecurity/product-eng` team or any of its child teams.
7+
This workflow enforces that at least one PR approver must be an **active** member of the `@trufflesecurity/product-eng` team or any of its child teams.
88

99
### How it works:
1010

1111
1. **Triggers**: The workflow runs on:
12-
- `pull_request_review` events when a review is submitted
13-
- `pull_request` events when a PR is opened, reopened, or synchronized
14-
15-
2. **Approval Check**: The workflow:
16-
- Fetches all reviews for the PR
17-
- Filters for approved reviews
18-
- Gets all child teams of `@trufflesecurity/product-eng`
19-
- Checks if any approver is an active member of the parent team or any child team
12+
- `pull_request_review` events when a review is submitted (`submitted` type)
13+
- `pull_request` events when a PR is opened, reopened, or synchronized (`opened`, `reopened`, `synchronize` types)
14+
15+
2. **Approval Check Process**: The workflow:
16+
- Fetches all reviews for the PR using the GitHub API
17+
- Filters for reviews with state `APPROVED`
18+
- Gets all child teams of `@trufflesecurity/product-eng` using `listChildInOrg` API
19+
- Checks if any approver is an **active** member (not pending) of either:
20+
- The parent `@trufflesecurity/product-eng` team, OR
21+
- Any of its child teams
2022
- Sets a commit status accordingly
2123

2224
3. **Status Check**: Creates a commit status named `product-eng-approval` with:
23-
-**Success**: When at least one approver is a `@trufflesecurity/product-eng` or child team member
24-
-**Failure**: When no `@trufflesecurity/product-eng` or child team members have approved
25-
-**Pending**: When waiting for reviews
25+
-**Success**: When at least one approver is an active member of `@trufflesecurity/product-eng` or any child team
26+
-**Failure**: When there are no approvals or there are approvals but none from active `@trufflesecurity/product-eng` members
27+
28+
### Error Handling
29+
30+
If there are errors listing reviews or checking team membership, the workflow reports a failure status and also fails itself.
2631

2732
### Branch Protection
2833

@@ -31,13 +36,13 @@ To make this check required:
3136
1. Go to Settings → Branches
3237
2. Add or edit a branch protection rule for your main branch
3338
3. Enable "Require status checks to pass before merging"
34-
4. Add `product-eng-approval` to the required status checks
39+
4. Add `pr-approval-check` to the required status checks
3540

3641
### Permissions
3742

3843
The workflow uses the default `GITHUB_TOKEN` which has sufficient permissions to:
3944
- Read PR reviews
40-
- Check team membership (for public teams)
45+
- List child teams and check team membership (for public teams)
4146
- Create commit statuses
4247

43-
**Note**: If the `product-eng` team or its child teams are private, you may need to use a personal access token with appropriate permissions.
48+
**Note**: If the `product-eng` team or its child teams are private, you may need to use a personal access token with appropriate permissions. The Github API returns 404 for non-members and for lack of permissions.

0 commit comments

Comments
 (0)