graft

Try it, no sign-up

See what Graft would do with your fork

Paste a public GitHub fork, or any copy of an open-source project with your changes as commits on a release. Graft moves your changes onto upstream's newest release in a sandbox, runs your tests, and shows you the pull request it would open.

Or try a real one: pattonw/tqdm (a fork of tqdm with 5 changes)

What a try does

  • Finds the facts. The upstream (a fork's parent, or the project your files name), the release your changes sit on, how many changes are yours, and upstream's newest release.
  • Moves your changes in a sandbox. A short-lived machine clones your public fork, carries each change onto the newest release, and runs your tests if it finds them (Python and Node projects, or a .graft.yml).
  • Tells you what happened. Each change kept, dropped because the release already has it, or conflicting; the tests' verdict; and the pull request Graft would open, with its diff.

What it can't do

  • Push. A try has no access to your repository beyond a public clone, and the runner refuses to push a try whatever it's told.
  • Use an agent. A try runs the no-agent path. A conflict is shown as a conflict. Once you're connected, Premium resolves conflicts automatically, and your first one is free.
  • Run long. Ten minutes at most, one try machine at a time (you may wait in line), ten tries a day per visitor (people on one network share them). Public repositories only. A result for the same fork and release is reused for 24 hours.

We keep the result, the repository's name and a salted hash of your IP address (for the limits) for 30 days, then delete them. See privacy.