Shipfox

Investigate and repair default-branch CI failures

Find out why CI broke on your default branch and get a tested repair pull request.

GitHub Actions fails on the default branch

How it works

  1. CI fails on the default branchtriggerA GitHub Actions run fails on the default branch.
  2. The agent finds the causeagentIt reads the failed logs and the recent changes on the branch.
  3. The agent opens a repair pull requestwriteIt opens a pull request only when it can fix the cause and your checks pass. If the cause is outside your code, such as a registry outage, it does nothing.
  4. With Slack or Discord, you are notifiedwriteThe workflow posts about failures that need a person, the repair pull requests it opens, or both.

What it writes

  • GitHub
    • Pushes a branch and opens a draft repair pull request.
    • With Slack or Discord, posts about failures that need a person, repair pull requests, or both.

Before you start

  • With Slack, invite the Shipfox app to the report channel.
  • With Discord, give the Shipfox bot access to the report channel.

Choices you make

When you set up this workflow, your coding agent asks you these questions. The workflow file on this page uses the default answers.

  • What should the workflow notify you about?Default: Failures that need a person2 other choices
    • Failures that need a personDefaultPosts the agent's diagnosis when it cannot fix a failure, such as an unexplained intermittent failure or a fix too large to open as a pull request.
    • Fix pull requestsPosts a link each time the workflow opens a fix pull request. Failures it cannot fix are not posted.
    • BothPosts both kinds of message.

Models

  • investigatetested with gpt-6-sol · high thinkingReads failed CI logs and recent history, reproduces the failure, and repairs its cause. Needs a strong model with high thinking.

When you set up this workflow, your coding agent suggests models that your workspace can use. You choose the model for each step.

Related examples

Was this page helpful?
Edit this page on GitHub