feat(source-control): Add push endpoint to Public API v1

The idea is:

The source control push endpoint (POST /rest/source-control/push-workfolder) is only available via the internal REST API, which requires cookie-based session authentication. This makes it impossible to automate daily Git pushes for workflow backups in environments that use SSO (e.g. Okta), since programmatic login is not supported for SSO users.
Describe the solution you’d like
Add POST /api/v1/source-control/push to the Public API v1, authenticated via X-N8N-API-KEY, with a request body equivalent to the internal endpoint:
{
“force”: false,
“commitMessage”: “chore: automated daily push”
}
This already exists for pull (POST /api/v1/source-control/pull) — push should be a symmetric counterpart.
Describe alternatives you’ve considered
Using the internal /rest/ API — blocked by SSO, not suitable for automation
Running raw git push outside n8n — bypasses n8n’s push logic and commit metadata
Using the root account with username/password — unacceptable security risk

My use case:

The source control push endpoint (POST /rest/source-control/push-workfolder) is only available via the internal REST API, which requires cookie-based session authentication. This makes it impossible to automate daily Git pushes for workflow backups in environments that use SSO (e.g. Okta), since programmatic login is not supported for SSO users.
I think it would be beneficial to add this because:
Automated daily Git push enables reliable, hands-off version control backups of workflows and credentials — a critical GitOps requirement for enterprise teams. Without this, teams relying on SSO have no secure way to automate source control backups and must depend on manual triggers, which are inconsistent and do not scale across multinational organizations operating across time zones.
Any resources to support this:
Existing pull handler for reference: packages/cli/src/public-api/v1/handlers/source-control/source-control.handler.ts
Internal push service already exists: SourceControlService.pushWorkfolder
n8n Public API v1 docs: n8n public REST API Documentation and Guides | n8n Docs

I think it would be beneficial to add this because:

Any resources to support this?

Are you willing to work on this?

Yes — I am willing to contribute this as a PR. The internal push service already exists; the change is minimal and mirrors the existing pull endpoint.