Projects
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.
| Role | In the project's repositories | On the project's builds | On the project's releases |
|---|---|---|---|
admin | read, deploy, annotate and delete; manage members and repositories | read, publish, promote and delete runs | read, create, tag, promote and delete versions |
developer | read, deploy, annotate and delete | read, publish, promote and delete runs | read, create, tag and delete versions |
viewer | read | read | read |
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}