Managing Porch Repositories
Setting Up Repositories
Before Porch can manage packages, you must register the Git repositories where those packages are stored. This tells Porch where to find package blueprints and where to store deployment packages.
If you don’t have an Git repository already created and initialized then follow the steps below to use Gitea (already provided by the developer environment installation), or create and use your own Git repository.
Creating Additional Gitea Repositories (Optional)
You can create repositories in two ways:
- Manual — Gitea web UI: Open your Gitea instance, sign in, and click the New Repository (or +) button in the top-right of the UI. Follow the form to set the repository name, description, visibility, and initialize the repository. This is the simplest option for one-off repositories.
- Automated — API / CLI / script: Automate repository creation via the Gitea REST API, the
giteaCLI, or an automation script. The Porch project includes an example automated setup script that demonstrates creating repositories and initializing branches:
You can customize the $git_repo_name variable for the custom repository you wish to create.
Below is a high-level explanation of the steps performed by the automated script when initializing a new Gitea repository for use with Porch. These numbered steps reflect the scripted (API/CLI) approach — you may copy the equivalent commands to run them manually if you prefer.
- Create the repository via the Gitea REST API
- Clone the (now-empty) repository locally
- Ensure a main branch exists and push an initial commit
- Clean up temporary files
- Register the new repository with Porch using the command shown in the
porchctlsection above
Using porchctl
The porchctl command-line tool provides a straightforward way to register a repository.
Command Syntax
The basic command for registering a repository is:
porchctl repo register REPOSITORY [flags]
For more information about the repo command and available flags, see the porchctl CLI guide
Repository registration.
Example
This example registers a private Git repository hosted on Gitea and configures it as a deployment repository.
# Register a Git repository with Porch
porchctl repo register http://gitea.gitea:3000/nephio/porch-test.git \
--name=porch-test \
--description="Test repository for Porch packages" \
--branch=main \
--deployment=true \
--repo-basic-username=nephio \
--repo-basic-password=secret
See Also
In this example we demonstrate a simple HTTP Basic auth setup using a Kubernetes Secret. For production environments, prefer secret management solutions (external secret stores, sealed-secrets, or platform secrets) and avoid embedding plaintext credentials in scripts.