Every pull request, read closely.
- Reads each diff and the docs behind the changed code.
- Runs a separate security pass on every code change.
- Posts its findings on the pull request.
- Fixes failing checks and proves each fix on a fresh copy.
41+ for attempt := 1; attempt <= 3; attempt++ {42+ resp, err := d.post(e.URL, e.Body)
Lightfactory on line 42
Retries send an empty body. The first call reads e.Body to the end, so attempts 2 and 3 send nothing.
Lightfactory is in private beta.
What a review covers
The rules you wrote down
After the diff, it reads the module READMEs and the decision records they link to, and flags changes that contradict them.
Finding 2 in the exampleA separate security pass
Changes beyond docs and tests get a second pass that looks only for security defects.
Security pass in the exampleWhat it could not check
Every review names the parts of the change it could not inspect, and why.
Limit in the exampleRetry failed webhook deliveries #214
Lightfactory reviewed 3 files
2 findingsinternal/webhook/deliver.go
func (d *Deliverer) Send(e Event) error {- resp, err := d.post(e.URL, e.Body)+ for attempt := 1; attempt <= 3; attempt++ {+ resp, err := d.post(e.URL, e.Body)+ if err == nil && resp.StatusCode < 500 {+ return nil+ }+ time.Sleep(backoff(attempt))+ }
- 1
Retries send an empty body
The first call reads
e.Bodyto the end, so attempts 2 and 3 send nothing. Build a new reader for each attempt. - 2
Contradicts a decision record
docs/decisions/0007-webhook-delivery.mdsays retries wait with jitter.backoff(attempt)gives every delivery the same delay.
- Security pass
- Nothing to report.
- Could not check
- How receivers handle a repeated delivery. Their code is outside this repository.
From sign-in to first review
Sign in with GitHub
Your first sign-in sets up your team. Invite teammates by their GitHub login.
Choose repositories
Install the Lightfactory app on GitHub, then opt in the repositories you want reviewed. You decide whether drafts, forks and bot authors get reviews.
Open a pull request
The review appears on the pull request, and each new push gets a new round. If you allow it, clean changes get an approval.
What it can’t do
- Reach the network
- Each review runs in a container with networking off and no credentials inside.
- Change your code
- The reviewer works on a read-only copy and returns only its report.
- Read what you didn’t choose
- Only repositories you opt in are reviewed, and only their code goes to the model provider.