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.
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-appA 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.
| Parameter | Type | Description |
|---|---|---|
| generate | mode | NuPaaS 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. |
| import | mode | You 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 # shell exports (default)
platform git auth --format gitconfig # git credential block
platform git auth --format jsonCLI reference
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]