GitHub project tracking & sync
After AI decomposes your project, confirm task details with a GitHub repo full name, create the branch from Ravel’s email, then add the webhook URL and secret in GitHub.
Overview
GitHub sync connects a repository to your Ravel project through a webhook. Setup happens right after AI decomposition: you confirm the plan with a GitHub repo full name, receive webhook details by email, then paste them into GitHub. This page walks through that flow first, then explains what sync does once events are flowing.
Step 1 — Confirm detail with your GitHub repo
After Ravel decomposes your project into departments, tasks, and dependencies, you land on the confirm detail task view. This is where you bind GitHub by setting the repo full name on the task detail before the project is finalized.
- Review the proposed graph, then open the confirm detail task view for the code-backed task you are finalizing.
- Check task details: owner, owner email, completion type, dependencies, and due date.
- In the Repo field, enter your GitHub repository full name (format: owner/repo, e.g. acme/web-app).
- Confirm the plan. Ravel saves the project and sends you an email with the branch name, webhook Payload URL, and Secret for that repository.
Step 2 — Create the branch from the email
The confirmation email does not just include webhook details. It also gives you the branch name Ravel expects for this task. Create that branch before you start coding so GitHub activity maps cleanly back to the task.
- Open the email from Ravel and copy the branch name for the task you just confirmed.
- In your local repository, switch to the default branch and pull the latest changes.
- Create a new branch with the exact name from the email, for example: git switch -c feat/login-ui-ravel.
- Start work on that branch. Pushes from this branch are what Ravel uses to track progress for the connected task.
Step 3 — Add the webhook in GitHub
The same email also contains the Payload URL and Webhook secret for the repo you confirmed. Add them in GitHub — do not invent or reuse values from another project.
- On GitHub, open the repository you entered (owner/repo) → Settings → Webhooks → Add webhook.
- Paste the Payload URL from Ravel’s email into the Payload URL field. Set Content type to application/json.
- Paste the Webhook secret from the email into the Secret field. Leave SSL verification enabled.
- Under “Which events would you like to trigger this webhook?”, choose “Just the push event.”
- Check Active, then click Add webhook. When GitHub delivers the ping successfully, Ravel can receive push activity for this project.
What GitHub sync does
Once the webhook is live, push activity on the connected repo feeds into task progress for code-backed work. Ravel evaluates activity against each task’s scope — not as a generic activity feed — and marks work complete when the code actually ships.
When a GitHub-backed task finishes, dependent tasks unlock on the graph and owners are notified by email. Status reflects merged reality, not manual status clicks.
Tasks that do not ship as code are unchanged: they can complete via upload, external link, or manual confirmation. GitHub tracking applies to tasks configured for PR or commit-based completion on this repo.
GitHub events Ravel uses
| GitHub event | How Ravel uses it |
|---|---|
| Push (commits) | Evaluate progress against task scope on the connected repository |
FAQ
When do I enter the GitHub repo full name?
On the confirmation screen immediately after AI decomposition — before the project is saved. That full name determines which repository the webhook email is for.
Where do the Payload URL and secret come from?
Ravel emails them to you after you confirm the plan with a repo full name. That email also includes the branch name for the task. Copy the branch name into your local git workflow, and copy the webhook values into GitHub’s Add webhook form.
Do I need GitHub for every task?
No. Only tasks that complete via PR or commit on the connected repo use GitHub signals. Other tasks can use upload, link, or manual completion.
