Git hosts — NuPaaS Docs
Connect

Git hosts

NuPaaS deploys from Git. A repository can stay where it is and be referenced by URL, or it can be imported so that NuPaaS holds the canonical copy. Either way the thing that triggers a build is a push.

How source reaches NuPaaS

Repositories are registered against your organization, not against a single project, so one repository can back several projects. Manage them at /orgs/<org>/source-control. The page is feature-gated; if source control is not enabled for your organization you are redirected rather than shown an empty list.

Each repository record carries a name, a clone URL, the provider it came from, and optionally a default branch. The default branch is what a deploy uses when you do not pin a commit.

Supported hosts

The repository connection form accepts GitHub, GitLab, Bitbucket, Gitea and Forgejo URLs. A repository's provider is recorded on the record and defaults to Gitea when you do not state one.

Connecting a repository

Adding a repository takes a name, a clone URL and a provider. Nothing is cloned at this point — you are telling NuPaaS where the code lives.

Manage repositories
platform git repo list
platform git repo create --name my-app --url https://github.com/acme/my-app --provider github
platform git repo delete --name my-app

A repository can be deleted by ID or by name. Deleting the record detaches the repository from your organization; it does not delete anything at the upstream host.

Importing from GitHub

Rather than referencing a GitHub repository by URL, you can import it so that NuPaaS holds a copy under your organization. Import takes the GitHub owner and repository name plus the identifier of the GitHub App installation that grants NuPaaS access, and optionally a different target name and default branch for the imported copy.

Webhooks and push-to-deploy

A project becomes push-to-deploy when a webhook is registered against its repository. Registration takes the project and the repository URL, and returns the webhook's identifier.

Registration is org-checked before anything is created: a project ID that does not belong to your organization is rejected as not found, so a webhook is never registered against someone else's project as a side effect of a mistyped identifier.

Every delivery that results in a build is recorded as a deployment event and can be listed per project, optionally narrowed to a single service. An event carries the commit SHA, the branch, what triggered it, the workflow name, the author, and its start and completion times — enough to answer "why did this deploy happen" without leaving the panel.

Deploy keys

Git SSH keys let NuPaaS pull from a private repository that is not reachable with a token. A key can be generated for you or imported from one you already have.

ParameterTypeDescription
generatemodeNuPaaS creates the pair. The private half is shown once at creation and then stored; the public half is what you register at your Git host.
importmodeYou supply the public key. NuPaaS never sees a private key you did not ask it to generate.

Git SSH keys are covered in full on Git SSH keys.

Credentials for scripts

For CI steps and scripts that need to clone from the NuPaaS-hosted Git service, the CLI can emit ready-to-use credentials in three shapes: shell environment exports, a Git credential-helper block, or JSON.

platform git auth
platform git auth                     # shell exports (default)
platform git auth --format gitconfig  # git credential block
platform git auth --format json

CLI reference

platform git
platform git repo list
platform git repo create --name <name> --url <url> [--provider <provider>]
platform git repo delete --name <name>
platform git keys list
platform git keys add    --name <name>
platform git keys delete --id <keyId>
platform git auth [--format env|gitconfig|json]