chore: add Pullfrog workflow file - #37
Conversation
|
Automated review unavailable (the review step failed, or the context it needs could not be gathered). Please review manually. |
|
Two changes on top of the console-generated file (114fc20), both explained in the header comment:
Merge order matters: #38 has to land first. It keeps Pullfrog's comments out of the Claude reviewer's prompt — without it the two reviewers read each other and the comparison isn't independent. |
| push: disabled | ||
| shell: restricted | ||
| progress_comments: disabled | ||
| timeout: 20m |
There was a problem hiding this comment.
nit: timeout: 20m is an input to the third-party action, so the cap is self-enforced — the comparison to the reviewer's 15 minutes isn't apples to apples, since that one is timeout-minutes: 15 on the job (claude-pr-review.yml:44) and GitHub enforces it. If pullfrog/pullfrog hangs anywhere outside the agent's own clock — the npm bootstrap that fetches the agent, or the post-run cleanup step — nothing stops the job before GitHub's 6-hour default. A job-level backstop somewhat above the action's own cap would make the 20m real:
pullfrog:
runs-on: ubuntu-latest
timeout-minutes: 25(not blocking) (not blocking)
| permissions: | ||
| # The only two the action needs: id-token to mint its own short-lived installation | ||
| # tokens over OIDC, contents to clone. It never uses this job's GITHUB_TOKEN, so | ||
| # nothing here grants it the ability to comment, review, or push. |
There was a problem hiding this comment.
nit: "nothing here grants it the ability to comment, review, or push" is true of this job's GITHUB_TOKEN and not true of the job overall — id-token: write is precisely what lets the action trade an OIDC token for a Pullfrog App installation token, and that token's scopes live in Pullfrog's App config, not in this file. So the capability the comment says is absent is delegated rather than withheld, and it's unreviewable from here.
That also bounds what push: disabled on line 65 buys: it's an input to the same mutable @v0 tag, so it constrains a cooperating action, not a compromised one. Given that tests.yml:23-25 refuses to take even actionlint as a third-party action because this repo's workflows gate every merge in the org, the honest version of this comment is that the trial accepts a mutable third-party tag with OIDC on the vendor's advice — not that the job holds nothing dangerous. Worth saying plainly, since the next reader will take this block at its word.
(not blocking)
| # disabled prompt, where a live task list is context it pays for. | ||
| # timeout: 20m A review is not an hour of work; the reviewer beside it is | ||
| # capped at 15 minutes. | ||
| # checkout pinned This repository pins every action to an exact patch version. |
There was a problem hiding this comment.
super nit: "This repository pins every action to an exact patch version" isn't quite so — anthropics/claude-code-action@v1 (claude-pr-review.yml:214) floats on a major tag today. That doesn't weaken the case for pinning actions/checkout here, but it does mean pullfrog/pullfrog@v0 isn't the sole exception, and a reader who checks the claim will find it doesn't hold. (not blocking)
This PR adds the
.github/workflows/pullfrog.ymlworkflow file to enable Pullfrog agent runs in this repository.Once merged, return to the Pullfrog console and click Verify workflow to finish setup.