# spin project

**Spinbox is experimental: APIs change and data may be lost.** What is built and what proves it is on [Status](https://spin-stack.github.io/website/reference/status.md); what Spinbox does not do is on [Limitations](https://spin-stack.github.io/website/overview/limitations.md).

> spin project: Manage a team's projects: a repository and the workspace that opens it.

<!-- Generated by tools/refgen from spin:cmd/cli. Edit the source, not this file. -->

```
A project is a repository and the shape of the workspace that opens it: the image, the preset
and the network policies, and the ref it opens at. 'spin workspace create --team <team> --project
<slug>' makes a workspace of that shape, whose guest clones the repository into
/workspace/<repository name> once you approve its settings, and runs the repository's own
.spin.yaml tasks there. A team's admins make and change projects; its members open them.

A private repository's credential is the team's to add through the host's egress proxy (a
network policy that injects a team secret towards the forge); the URL carries none.

Usage:
  spin project [flags]
  spin project [command]

Available Commands:
  create      Make a project of a team
  delete      Delete a project; one with a workspace open on it is refused
  list        List a team's projects
  prebuild    Build one of a project's prebuild refs now
  prebuilds   List a project's prebuilds, newest first
  update      Save a project whole: every flag is what it becomes

Flags:
  -h, --help   help for project

Global Flags:
      --config string    config file (default is $HOME/.spin/config.yaml)
  -o, --output string    text for a person, or json: one document of what the API answered, and no prose (default "text")
      --profile string   named profile to use; SPIN_PROFILE names it when this flag does not (default "default")

Use "spin project [command] --help" for more information about a command.
```

### spin project create

```
Make a project of a team: its repository, the ref it opens at, and the shape of the workspace
that opens it. The team's admins only.

Example:
  spin project create --team /engineering --name qboot --repository https://github.com/spin-stack/qboot --ref master --preset large

Usage:
  spin project create [flags]

Flags:
      --description string            A line about it
  -h, --help                          help for create
      --image string                  The image a workspace of it starts from (default: the installation's)
      --name string                   What the project is called
      --network-tag strings           A network policy a workspace of it runs under, by name (repeatable)
      --prebuild-rebase-every int32   Every how many builds of a ref one is built from the image again (default: 10)
      --prebuild-ref stringArray      A ref it prebuilds: built as it moves, and what opening the project at it is cloned from (repeatable; the builds run as you)
      --preset string                 The preset a workspace of it is sized by (default: the installation's)
      --ref string                    The branch or tag a workspace opens at unless the open names one
      --repository string             The repository's https URL, with no credential in it
      --slug string                   What it is named by in the team (made from the name if empty)
      --team string                   The team, by id, path or me

Global Flags:
      --config string    config file (default is $HOME/.spin/config.yaml)
  -o, --output string    text for a person, or json: one document of what the API answered, and no prose (default "text")
      --profile string   named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
```

### spin project delete

```
Delete a project; one with a workspace open on it is refused

Usage:
  spin project delete <slug> [flags]

Flags:
  -h, --help          help for delete
      --team string   The team, by id, path or me
  -y, --yes           Skip confirmation

Global Flags:
      --config string    config file (default is $HOME/.spin/config.yaml)
  -o, --output string    text for a person, or json: one document of what the API answered, and no prose (default "text")
      --profile string   named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
```

### spin project list

```
List a team's projects

Usage:
  spin project list [flags]

Flags:
  -h, --help          help for list
      --team string   The team, by id, path or me

Global Flags:
      --config string    config file (default is $HOME/.spin/config.yaml)
  -o, --output string    text for a person, or json: one document of what the API answered, and no prose (default "text")
      --profile string   named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
```

### spin project prebuild

```
Build one of a project's prebuild refs now, at the commit its forge says it is at, rather than at
the next look (every five minutes): a commit whose build failed is built again. The team's admins
only. Answered with the build, or the one of that commit already building or ready.

Usage:
  spin project prebuild <slug> <ref> [flags]

Flags:
  -h, --help          help for prebuild
      --team string   The team, by id, path or me

Global Flags:
      --config string    config file (default is $HOME/.spin/config.yaml)
  -o, --output string    text for a person, or json: one document of what the API answered, and no prose (default "text")
      --profile string   named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
```

### spin project prebuilds

```
List a project's prebuilds: each build of one of its prebuild refs at a commit, what became of it,
and the snapshot opening the project at that ref is cloned from once it is ready. A ready one is
what its host signed it to be; spin shows that claim, and holds it to its own anchors, when a
workspace opened from it asks you to approve its settings.

Usage:
  spin project prebuilds <slug> [flags]

Flags:
  -h, --help          help for prebuilds
      --team string   The team, by id, path or me

Global Flags:
      --config string    config file (default is $HOME/.spin/config.yaml)
  -o, --output string    text for a person, or json: one document of what the API answered, and no prose (default "text")
      --profile string   named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
```

### spin project update

```
Save a project whole: what each flag says is what the project becomes, and a flag not given
is the field emptied, since a project is saved as a form shows it. A workspace already open keeps
what it was opened with.

Usage:
  spin project update <slug> [flags]

Flags:
      --description string            A line about it
  -h, --help                          help for update
      --image string                  The image a workspace of it starts from (default: the installation's)
      --name string                   What the project is called
      --network-tag strings           A network policy a workspace of it runs under, by name (repeatable)
      --prebuild-rebase-every int32   Every how many builds of a ref one is built from the image again (default: 10)
      --prebuild-ref stringArray      A ref it prebuilds: built as it moves, and what opening the project at it is cloned from (repeatable; the builds run as you)
      --preset string                 The preset a workspace of it is sized by (default: the installation's)
      --ref string                    The branch or tag a workspace opens at unless the open names one
      --repository string             The repository's https URL, with no credential in it
      --slug string                   What it is named by in the team (made from the name if empty)
      --team string                   The team, by id, path or me

Global Flags:
      --config string    config file (default is $HOME/.spin/config.yaml)
  -o, --output string    text for a person, or json: one document of what the API answered, and no prose (default "text")
      --profile string   named profile to use; SPIN_PROFILE names it when this flag does not (default "default")
```
