Skip to content

Git Repositories

AppMecca can host your git repositories next to where they deploy. You push and clone with ordinary git over HTTPS, browse the code on the dashboard, and a push to a branch you have switched on builds and deploys that exact commit.

It is deliberately not a forge: there are no pull requests, issues, wikis or web editing. If you need those, keep using GitHub or GitLab — both remain fully supported.

Availability

The git host is enabled per environment by the platform operator. If mecca repo list answers not found, it is not enabled on your environment yet.

Creating a Repository

On the dashboard, open your group's Repos page and click New repository. From the CLI:

mecca repo create myapp --group acme
Created acme/myapp
  Clone URL  https://git.<env>.appmecca.net/acme/myapp.git

A repository belongs to its group, exactly as an app does. Everyone in the group can reach it; there is no separate per-repository sharing.

Your group role Clone / fetch Push Create / delete Default branch
Owner yes yes yes yes
Administrator yes yes yes yes
Member yes yes no no
Read-only access yes no no no

Git Tokens

git authenticates with a git token used as the HTTPS password (the username is ignored). Create one on the Repos page with New token, or:

mecca repo token create --scope write --group acme

The token is shown once — copy it then. read tokens can clone and fetch; write tokens can also push. You can narrow a token to named repositories with --repo, and every token expires (at most 365 days).

Your operating system's credential helper stores the token after the first prompt, so you enter it once per machine:

git clone https://git.<env>.appmecca.net/acme/myapp.git
# Username: anything    Password: <your amg_ token>

A token never grants more than your current group role, and is re-checked on every request — remove someone from the group and their tokens stop working immediately.

Pushing Code

git remote add appmecca https://git.<env>.appmecca.net/acme/myapp.git
git push appmecca main

To bring an existing repository across from GitHub, GitLab or Bitbucket without pushing it yourself:

mecca repo import myapp https://github.com/acme/myapp.git --group acme

The import runs on the platform and copies every branch and tag.

Deploy on Push

Register an app from the hosted URL, then switch deploy-on-push on for the branch you want to follow:

mecca register https://git.<env>.appmecca.net/acme/myapp.git --group acme
mecca app deploy myapp --group acme
mecca app auto-deploy myapp --on -b main --group acme

From then on, git push to main builds the commit you pushed and deploys it, and the push output tells you so:

remote: AppMecca: acme-myapp@main: build queued (6fa6a9c0)

No webhook needs configuring. A push to a branch that is switched off, or that has no running deployment, is recorded but builds nothing. An app can only build from a repository in its own group.

Limits

A push that breaks a limit is refused as a whole — nothing is stored. These are the defaults; your platform operator may set others for an environment.

Limit Default
One push 1 GiB
One file 100 MiB
One repository 2 GiB
All repositories in a group 5 GiB
Branches and tags updated in one push 100

The default branch refuses force-pushes and deletion. Every other branch and every tag accepts any update.

A first push over 1 GiB

Moving a large, long-lived repository can exceed the per-push limit on its first push even though the finished repository fits. Either push the history in pieces — git push appmecca <older-commit>:refs/heads/main, then later commits, then the branch — or use mecca repo import, which is not subject to the per-push limit.

Backups

Every repository is bundled to backup storage once a day. A push made after the most recent bundle is not in any backup yet — if the host lost its storage in that window, the push would be lost from the host. Every clone is a full copy, though, so it is recovered by pushing again from any clone that has it.