Skip to content

Your first repository

In this tutorial you create a repository inside an Orbit project, authenticate Git with a project access token (or an SSH key), push a first commit and look around the result in the browser.

Forge is the code and CI/CD part of Orbit. Repositories belong to Orbit projects and inherit the project’s members, so there is no separate account to create.

  • You are signed in at https://acme.orbit.inortix.com (use your own company address).
  • You are a member of an Orbit project. Project administrators can change repository settings; members can push; viewers can read.
  • Git is installed on your computer.
  1. Open the project and choose Code / CI in the project navigation.

  2. Create a repository. You can start empty, or import one: Forge imports every branch and tag from an https:// URL, or from an uploaded Git bundle. The import runs in the background; its state and any error are shown under Git access.

  3. Open the repository settings if you want to change the name, the description or the default branch. The slug and the clone URL stay stable when you rename a repository.

You can use either method, or both.

  1. Under Git access, create a project access token.

  2. Pick the scopes you need:

    Scope Allows
    read_repository Clone and fetch over HTTPS
    write_repository Push over HTTPS
    read_api Read Forge REST requests for this project (read-only, acts as a viewer)
    api Forge REST requests for this project under your current role

    A Git request needs a repository scope. Choose at least read_repository, and write_repository if you will push.

  3. Choose a lifetime between 1 and 365 days.

  4. Copy the token. It is shown once. Forge stores only a hash.

Use the token as the password when Git asks for credentials over HTTPS. A token only works for its own project and always under your current role: if you are removed from the project, or your account is disabled, the token stops working at once. Tokens can be rotated (the old secret stops working immediately and the new one is shown once) and revoked, and the list shows when each was last used. Project administrators can review every member’s tokens, never their secrets, and revoke them.

  1. Under Git access, add your OpenSSH public key.

  2. Forge accepts Ed25519, ECDSA, their security-key variants, and RSA keys of at least 2048 bits. DSA, short RSA keys, keys with options and certificates are refused.

  3. Each key must be unique across Orbit, you can add at most 50 keys, and you can set an optional expiry. Removing a key, or disabling its owner, ends access immediately.

Git over SSH goes through the same push path as HTTPS, so branch protection, push rules and CI triggers behave identically. Fetches need read access; pushes need write access.

Use the clone URL shown in the repository.

Terminal
git clone <clone-url-from-the-repository>
cd my-repository
echo "# My repository" > README.md
git add README.md
git commit -m "First commit"
git push origin main

If the default branch is protected, a direct push can be refused with the rule’s reason. Open a merge request from a feature branch instead (see Merge requests and approvals).

After the push, the repository view offers:

  • the file tree with the last commit for each entry, and file views;
  • history, paged and filterable by path, and a commit page with message, author, parents and the per-file diff;
  • blame, which groups consecutive lines by the commit that last changed them (files up to 1 MiB and 20,000 lines);
  • compare between any two branches, tags or commits, with ahead/behind counts;
  • raw files (up to 10 MiB) and zip or tar.gz archives of any ref (up to 32 MiB);
  • branches (each shows how far it is ahead of and behind the default branch) and tags (lightweight or annotated), which you can create and delete in the web UI;
  • a web editor: editing a file creates a real Git commit, and two people editing the same file get a conflict instead of a silent overwrite.

Repository content is always served so that it can never run in the Orbit origin.

  • Git LFS over HTTPS, with an access token as the password.
  • Forks into any project where you can write, with ahead/behind against the upstream. A merge request from a fork can target its upstream, but fork code never runs in the upstream’s CI.
  • Export of every branch and tag as a bundle, submodule entries in the tree, and repository statistics and housekeeping (housekeeping is run by project administrators).
  • Delayed deletion: a deleted repository can be restored within 7 days.
  • Work item links: keys such as a work item key in a branch name, a commit message or a merge request link the repository to the project’s work items.

Rendered README previews, syntax highlighting, code search across files and signed tags are planned, not built. Personal and group namespaces do not exist: the Orbit project is the namespace. Objects over 32 MiB, LFS over SSH and LFS file locks are not supported.