Props
A Prop is a connected Git repository. Fibe clones it for builds, mounts it for dev, triggers Tricks on push.
Without a Prop, a Template can still use static image: entries. A Prop adds branches, commits, live source, and push-triggered jobs.
What a Prop gives you
| Capability | Detail |
|---|---|
| Branch discovery | Every branch listed for launchers to pick. |
| Source for builds | Templates that say fibe.gg/repo_url: <this prop> clone at launch. |
| Live source mount | Dev services mount the working tree. Edits show up live. |
| Compose detection | On connect, Fibe notices fibe.yml, fibe.yaml, docker-compose.yml, or docker-compose.yaml at the repo root and .env.example. Candidates for new Templates. |
| Push notifications | Refresh branch list, fire source-linked Templates that track changed files, trigger listening Tricks. |
| In-browser git | Stage, commit, push from the Playground terminal. |
| Per-commit history | What landed and when. |
Supported providers
Two providers, each with its own auth path:
| Provider | URL shape | Auth |
|---|---|---|
| Built-in Gitea | URL inside Fibe's Gitea host | One connection is provisioned for each Player. |
| GitHub | https://github.com/owner/repo or ssh://… | GitHub App installation, or per-Prop Personal Access Token. |
Other providers (GitLab, Bitbucket, self-hosted) aren't supported today. The repo-URL validator only accepts the two above. To use code from another host, push a mirror into the built-in Gitea.
Connect a GitHub repository
Three ways, in order of preference:
1. Install the Fibe GitHub App (recommended for orgs)
Best when you have multiple private repos in the same org and want webhooks + CI to work without per-Prop token management.
- Go to Profile → Advanced Settings → GitHub Apps, click Install on GitHub.
- GitHub asks which org/account and which repos to grant.
- Pick repos. Return to Fibe; the installation is registered.
- Create a Prop from a granted repository. Fibe creates a short-lived token when cloning.
Multiple installations per account are supported (one per org or repo set). Detail: Advanced → GitHub Apps.
2. Sign in with GitHub
Best when you mostly use your own (personal) repos and want a single OAuth click.
- Click Connect GitHub from the profile. GitHub OAuth flow runs.
- Your GitHub user is linked. Public repos clone without further setup; private ones still need an App installation or a PAT.
3. Paste a Personal Access Token (per-Prop)
Best for one-off integrations or when you can't install the App (no admin rights on the org).
When creating a Prop from the GitHub Repository tab:
- Repo URL:
https://github.com/owner/repo(anssh://…URL also works). - Default branch: defaults to the repo default.
- Credentials (Personal Access Token): paste a PAT.
- Classic PAT with the
reposcope, or a fine-grained PAT scoped to the specific repo with the relevant permissions (contents read/write, metadata read). - Format
ghp_…(classic) orgithub_pat_…(fine-grained). - Stored encrypted on the Prop. Used at clone time and for the API calls the Prop needs (read/write contents, metadata).
- Classic PAT with the
PATs are per-Prop and don't share across Props. Rotate from the Prop's settings page when the token expires.
When both an App installation and a PAT are available, the PAT wins. The Prop uses what's set on its credentials field; if blank, it falls back to the App installation token.
Connect a built-in Gitea repository
Fibe runs an internal Gitea instance and provisions an account for every Player automatically.
Auto-provisioning
The moment your Player is created, a background job runs:
- Creates a Gitea user matching your Fibe username.
- Generates a random password and saves it to your profile's Gitea account card.
- Mints a Gitea access token with repository read/write plus user access scopes.
You don't take any action. When the job finishes you'll see a toast: "Your Gitea account has been provisioned. Check your profile for credentials."
Where the Gitea credentials live
Profile page shows a Gitea account card:
- Username: same as your Fibe username.
- Password: the random one generated at provisioning. Copy it from the card. Hidden by default; click to reveal.
- Profile: link to your Gitea profile page.
- Sign in: link to the Gitea sign-in page. Gitea uses a separate session from Fibe.
Use these to log into Gitea directly (push from the command line, browse the web UI, etc.).
Reset credentials
If you lose the password or want to rotate:
- Profile → Reset credentials on the Gitea card.
- 2FA confirmation required.
- Fibe generates a new password and a new access token for your Gitea account; reset tokens carry
write:repository,read:repository,write:user, andread:useraccess. The new password appears on the card, and all your Gitea Props pick up the new token automatically. (A token you pasted into a specific Prop's Credentials field is not touched.)
Creating a Gitea repo
From New Prop → New Repository tab:
- Repo name: letters, digits, dashes, underscores, or dots; must be unique in your Gitea account (e.g.
my-new-app). - Private: toggle.
- Click Create Repository. Fibe creates the repo in Gitea and saves the Prop.
The repo is owned by your Gitea user. You can push to it via HTTPS using your Gitea credentials or access token. The built-in Gitea does not offer SSH access.
Provisioning failures
Provisioning retries connection failures up to 10 times with polynomial backoff, then continues every few minutes. While pending, the profile shows a Gitea spinner that you can click to retry.
What's auto-set up on connect
Whatever the provider and auth path, on creation Fibe:
- Resolves the repo URL. Validates the format.
- Discovers branches.
- Notes useful files (
fibe.yml,fibe.yaml,docker-compose.yml,docker-compose.yaml, and.env.example) as candidates for new Templates. - Configures push notifications. Built-in Gitea repositories get them automatically. GitHub requires the Fibe GitHub App. A PAT-only Prop receives no push events.
Pushes
On commit, Fibe:
- Refreshes the branch list.
- Auto-publishes new Template versions for any source-linked Template tracking a changed file.
- Fires Tricks configured for that push or PR.
- Posts a commit notification when the Prop's Notifications toggle is on. See Inbox Notifications.
- Pulls the commit into running Playgrounds on the same branch without a rollout. Fibe skips any service where pulling would overwrite local changes. Updates require a funded Marquee and exclude one-off jobs.
Built-in Gitea webhooks or the Fibe GitHub App deliver push events.
Fibe also mirrors branch deletion. Push the branch again to restore it.
Editing source from a Playground
Playground terminal has full git tooling. The UI exposes a diff view, commit message field, push button.
Commits go back to the Prop. The push notification fires. Source-linked Templates and Tricks react.
Props are personal
Each Player owns their Props. Two people can connect the same upstream repository independently, with separate credentials, branches, and Trick configurations.
If you fork a Template that points at someone else's Prop, your fork doesn't get access to their repository. Connect your own Prop (or a fork of theirs).
Source-linked Templates
A Template can point to a Prop file, usually the root Compose file. This has two effects:
- Auto-publish on file change. New commits touching the file → new Template version. Body is the file at that commit.
- CI Trick. Enable CI on the Template and Fibe creates a Trick that runs against the latest version on push or PR.
See Playspecs → Source-linked Templates for details.
FAQ
Which is better: GitHub App or PAT?
App, when you can install it: installation tokens are short-lived, scoped per-installation, and webhook delivery is managed centrally. PATs are convenient when you can't install the App (no org admin rights) or for one-off Props.
Can I use a PAT for an arbitrary git host (GitLab, Bitbucket, self-hosted)?
No. The credentials field works only for GitHub URLs. The URL validator rejects other hosts. To bring code in from elsewhere, push a mirror to the built-in Gitea.
Fine-grained vs classic PAT?
Both work. Prefer a fine-grained PAT scoped to one repository. A classic PAT with repo scope covers all repositories.
What happens when a PAT expires?
Clones and the Prop's API calls fail. The Prop surfaces an authentication error on the next sync. Paste a fresh PAT into the Prop's Credentials field to fix.
Rotate credentials on a Prop?
Yes. Re-authenticate or paste a new PAT in Prop settings, then revoke the old token on GitHub.
Where's my Gitea password if I never saved it?
Profile → Gitea account → reveal Password. If the password isn't visible ("Password is not saved for this account"), click Reset credentials to mint a new one.
Can I SSH into Gitea?
No. Built-in Gitea uses HTTPS only. Clone and push with the credentials from your profile.
Are repos created through Fibe public or private?
Choose with the Private toggle. Automation defaults built-in Gitea repositories to private and GitHub repositories to public unless you pass the privacy flag. See the SDK greenfield flow.
Deleted Prop?
You cannot delete a Prop referenced by a Playspec. The error names each blocker; remove or repoint them first.
Related
- Advanced → GitHub Apps: install and manage GitHub App installations.
- Marquees: where source runs.
- Playspecs: Templates and the launches they produce.
- Tricks: what fires on pushes.
- Reference:
recipe-build-to-repo-url,recipe-source-mount,mode-trigger-vcs.