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:
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:
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¶
To bring an existing repository across from GitHub, GitLab or Bitbucket without pushing it yourself:
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:
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.