Guide: Automation on Git Commits
You want something to run when code lands on a branch — notify the team, kick an agent, refresh docs, deploy a side task — without spending an afternoon on webhook secrets, delivery retries, and local tunnels.
Direct answer: Pick one path:
- GitHub Actions (least webhook UI) — on
push, an Action POSTs to a Tensorify webhook or API URL. Config lives in the repo as YAML. - Single GitHub push webhook — one repo webhook into a Webhook Trigger workflow. Simpler than a custom backend; still one webhook in GitHub settings.
Tensorify runs the automation logic on a visual canvas. GitHub remains the source of commit events.
What you will build (path B — push webhook):
Webhook Trigger (GitHub push) → Transform / Code → action (Email, Slack, Agent, HTTP)
Time: ~15–20 minutes
Who this is for: Developers who want commit-triggered automation without maintaining a custom CI microservice.
Use this when you already live in Actions and do not want another entry under Settings → Webhooks.
- Create a Tensorify workflow that starts with Webhook Trigger (or API trigger) and does the work you care about.
- Deploy and copy the HTTPS URL.
- Add a repository secret
TENSORIFY_HOOK_URLwith that URL. - Add
.github/workflows/tensorify-on-push.yml:
name: tensorify-on-push
on:
push:
branches: [main]
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Call Tensorify
env:
TENSORIFY_HOOK_URL: ${{ secrets.TENSORIFY_HOOK_URL }}
run: |
curl -sS -X POST "$TENSORIFY_HOOK_URL" \
-H "Content-Type: application/json" \
-d "{\"ref\":"$GITHUB_REF",\"sha\":"$GITHUB_SHA",\"repo\":"$GITHUB_REPOSITORY\"}"
GitHub injects GITHUB_REF, GITHUB_SHA, and GITHUB_REPOSITORY in the job environment. No webhook UI beyond Actions secrets.
Use this when you want GitHub to deliver full push payloads (commits, pusher, compare URL) straight into Tensorify.
- New Workflow → name it
on-git-push - Add Webhook Trigger: method
POST, path e.g./git/push - Prefer HMAC verification with
X-Hub-Signature-256when using GitHub’s secret
Use Transform or Code to pull what you need from the push event:
{
"repo": "{{ webhook.body.repository.full_name }}",
"branch": "{{ webhook.body.ref }}",
"pusher": "{{ webhook.body.pusher.name }}",
"message": "{{ webhook.body.head_commit.message }}",
"compare": "{{ webhook.body.compare }}"
}
For a deeper field reference, see GitHub webhook payload reference.
Wire Send Email, Slack/HTTP, or an AI agent as the next step.
- Deploy; copy the webhook URL
- GitHub → repo Settings → Webhooks → Add webhook
- Content type
application/json; secret aligned with the trigger - Event: Just the push event (or customize)
Push a commit. Confirm a job in Tensorify.
Full walkthrough with email: GitHub webhook to email.
| Approach | What you configure | Complexity | |----------|-------------------|------------| | Custom server + webhook | Server, TLS, signature verify, retries | High | | Tensorify + one push webhook | One URL + optional secret | Low | | Tensorify + GitHub Actions | Repo YAML + secret URL | Low (no webhook UI) |
We do not claim a magic zero-integration path to private repos without GitHub knowing about the destination. We remove the need to own that integration layer.
Is this a replacement for GitHub Actions?
No. Actions can invoke Tensorify, or GitHub can push events into Tensorify. Heavy build matrices often stay in Actions; product/ops automation fits Tensorify well.
Branch filters?
Filter in GitHub (webhook/Actions), or drop non-matching refs in a Code/If node.
GitLab / Bitbucket?
Same pattern: their push webhook or CI job POSTs into a Webhook Trigger.