Install
Guides

Projects

Group repositories into projects, with members in roles and a storage quota.

A project has a key, members in roles and an optional storage quota. A repository belongs to the project its project setting names, which must exist. Relic refuses to delete a project while repositories belong to it.

RoleIn the project's repositoriesOn the project's buildsOn the project's releases
adminread, deploy, annotate and delete; manage members and repositoriesread, publish, promote and delete runsread, create, tag, promote and delete versions
developerread, deploy, annotate and deleteread, publish, promote and delete runsread, create, tag and delete versions
viewerreadreadread

A build promotion that copies or moves files also needs deploy on the target repository, and a release promotion needs deploy on the repositories of the target environment.

A member is a user or a group (group: true) that exists already. Roles only add permissions. A deploy, copy or move past the quota is refused; concurrent deploys to different repositories may each pass.

Projects in the UI lists your projects; administrators and viewers see all.

apiVersion: relic.build/v1
kind: Project
metadata: {name: acme}
spec:
  name: Acme
  storageQuotaBytes: 107374182400
  members:
    - {name: alice, role: admin}
    - {name: developers, group: true, role: developer}

An administrator applies the file:

relic apply -f projects.yaml

A project admin adds a member:

relic project member-add acme bob --role viewer

A project admin removes a member (--group for a group):

relic project member-remove acme bob

A project admin creates a repository in the project:

apiVersion: relic.build/v1
kind: Repository
metadata: {name: acme-libs}
spec: {class: local, format: maven, project: acme}