60da0e5749
* feat(action): Do cleanup when workflow failed or cancelled early. * fix: avoid naming collision with get-installation-token state. * tmp: add more logging for debugging purposes. * fix: rm wasUpdated state. * FIX: changing approach, separate entrypoint, using db to handle cases when main() never ran. * fix(cleanup): revert changes to exitHandler. * FIX: using event payload for issue and comment retrieval instead of DB. * FIX: use installation token. * feat(docs): wiki article explaining how it works. * fix(docs): shortening. * fix(docs): shortening. * fix: no console. * todo: DNRY for findPullfrogComment. * FIX(DNRY): upgrading octokit/rest and reusing findInitialComment() from triggerWorkflow.ts. * Revert "FIX(DNRY): upgrading octokit/rest and reusing findInitialComment() from triggerWorkflow.ts." This reverts commit 7dd239ba0986c5b0aeacb6ddc9f2deddb83aee82. * fix: rm todo. * fix(DNRY): shortening early exit logging statements. * FIX(API): Avoid extra call for comment body. * feat(DNRY): extracting and reusing buildWorkflowErrorMessage() from exitHandler.ts. * fix(DNRY): extracting more similarities into buildErrorCommentBody. * feat: Add conditional reason check. * fix(merge): replacing resolveInstallationToken with getJobToken. * fix(debug): using higher severity. * fix: Adjusting the implementation of getIsCancelled to use job status instead of workflow. * fix: Take steps conclusion into account when job is in progress. * fix: generic log msg. * fix: jsdoc. * fix(docs): Updating the wiki article according to recent changes. * fix(post): Handling the case when current job runs within matrix. * fix: finding the most recent comment that is ours ANS stuck. * feat(opt): using progressCommentId from object-based prompt when present. * fix(docs): Shortening the documentation 3 times down. * FIX: Only using the prompt.progressCommentId but with validation that it is stuck.
51 lines
1.7 KiB
YAML
51 lines
1.7 KiB
YAML
name: "Pullfrog Action"
|
|
description: "Execute coding agents with a prompt"
|
|
author: "Pullfrog"
|
|
|
|
inputs:
|
|
prompt:
|
|
description: "Prompt to send to the agent (string or JSON payload)"
|
|
required: true
|
|
effort:
|
|
description: "Effort level: mini (fast), auto (default), max (most capable)"
|
|
required: false
|
|
timeout:
|
|
description: "Maximum run duration (e.g., 10m, 1h30m). Default: 1h"
|
|
required: false
|
|
agent:
|
|
description: "Agent to use: claude, codex, gemini, cursor, opencode"
|
|
required: false
|
|
cwd:
|
|
description: "Working directory for the agent (defaults to GITHUB_WORKSPACE)"
|
|
required: false
|
|
web:
|
|
description: "Web fetch permission: disabled or enabled (default: enabled)"
|
|
required: false
|
|
search:
|
|
description: "Web search permission: disabled or enabled (default: enabled)"
|
|
required: false
|
|
push:
|
|
description: "Git push permission: disabled (read-only, can't push) or enabled (can push). Default: enabled"
|
|
required: false
|
|
bash:
|
|
description: "Bash permission: disabled, restricted (filters secrets from env vars), or enabled. Public repos default to restricted for security; private repos default to enabled."
|
|
required: false
|
|
token:
|
|
description: "GitHub-provided token with job-scoped permissions. Do not set this unless you know what you are doing."
|
|
required: false
|
|
default: ${{ github.token }}
|
|
|
|
outputs:
|
|
result:
|
|
description: "It's set when the prompt explicitly requests it. It can be used to capture an actionable output for the next step in the workflow."
|
|
|
|
runs:
|
|
using: "node24"
|
|
main: "entry"
|
|
post: "post"
|
|
post-if: "failure() || cancelled()"
|
|
|
|
branding:
|
|
icon: "code"
|
|
color: "green"
|