Projects¶
A project is one thing that your teams build and run: a service, a library, a site, or a job. Each project belongs to one team and has one or more project types. Imbi collects the facts, links, environments, deployments, and dependencies of each project in one place.
Projects belong to the organization that you select in the top bar.
Permissions¶
| Permission | Lets you | Seeded roles that have it |
|---|---|---|
project:read |
See projects | admin, developer, default, readonly |
project:create |
Create projects | admin, developer |
project:write |
Edit, archive, and restore projects, and change their dependencies | admin, developer |
project:delete |
Delete projects | admin |
The UI shows the edit controls to all users. The API refuses a change that you do not have the permission for. See Roles and permissions.
The projects list¶
Open Projects in the top bar (/projects).
Find a project¶
- Search projects...: type part of the name, the description, the
team, or the project type. Press
/to go to the search field. When you search, the list is in order of the best match. -
Toggle chips above the list. Each chip shows a count for the whole organization. Click a chip to show only those projects:
Chip Shows Drifted Projects with drift. See Drift Open PRs Projects with open pull requests My PRs Projects with open pull requests that you wrote My Teams Projects of your teams -
Column filters: open the filter on a column header. Each option shows how many projects match it.
Column Filters Project Team and Type Drift The environment pairs and C → R. See DriftScore Healthy, Fair, At risk, Unhealthy, Unscored. See Scoring
The URL keeps the search, the filters, the sort, and the view. Copy the URL to share the list as you see it.
Columns¶
| Column | What it shows |
|---|---|
| Project | The name, the team, and the type. Click to sort by name |
| PRs | Open pull requests. See PR badges. Click to sort |
| Drift | One Δ badge for each kind of drift. Click to sort by the oldest waiting change |
| Current Deployments & Releases | For a deployable project: the version in each environment. For a release-only project: Latest Commit and Current Release |
| Score | The project score, or — when it has no score. Click to sort |
Click a sortable header one time to sort up, and again to sort down.
An environment cell shows the tag or the commit, or Not deployed. When a newer deployment did not finish, the cell shows a pill: deploying, queued, failed, or rolled back.
PR badges¶
The PRs column shows up to two badges:
- The number of open pull requests. Click it to open the Pull Requests tab with the open pull requests.
- The number of your open pull requests. Click it to open the same tab with only your pull requests.
See Pull requests and dependencies.
Drift badges¶
Δ T → S: two adjacent environments run different code. Click it to go to the Deployments tab, with the target environment selected.Δ C → R: the project has commits after its latest release. Click it to go to the tab where you cut a release.
When the project has no deployment plugin, it has no Deployments or Releases tab. The badges, the environment cards, and the release cards then show without a link.
Each badge also shows how long its oldest waiting change has waited, for
example Δ T → S 12d. That is the oldest commit in the range that still
needs action, counted from when it reached the default branch. For a
merged pull request that is the merge, not the commits made on the
branch. Commits that CI marked as not needing a deploy or a release do
not count. Hover over the age to see the date. A badge with no age has
no commit date, for example because Imbi could not read the commits.
Sort by Drift to list the projects with the oldest waiting change first. Projects with no age come last in both directions.
See Drift for the rules.
Views and loading¶
- Click List view or Grid view. Imbi remembers your choice in this browser.
- Click Refresh to load the list again.
- Imbi loads the list in pages of 50 and loads all pages one after the other. The list grows while it loads. If a page fails, the list stops. Click Refresh.
The list never shows archived projects.
Create a project¶
- Open Projects.
- Click New Project.
-
Complete the Create New Project dialog:
Field What to enter Team Required. The team that owns the project Project Type Required. One type. You can add more types later Name Required. The name that people see, for example My ServiceSlug Required. Imbi makes it from the name until you change it: lowercase, with -in place of spacesDescription The purpose of the project Environments Optional. Click each environment that the project runs in Blueprint fields Required. The required fields that have no default, from the Projectblueprints that match the project type and environments. They show after you select a project type -
Click Save.
Imbi opens the new project. Imbi then tells the lifecycle plugins about it. For example, the GitHub plugin can make the repository.
To set the URL or other fields of an environment, edit it on the Overview tab after you create the project. See Environments.
The project page¶
Header¶
The header shows the name, the description, and the links of the project. You can edit the name and the description in place. Click Copy project ID to copy the ID. An archived project shows the Archived badge.
The link bar shows the project links and the dashboards of its integrations, in alphabetical order.
Tabs¶
Some tabs show only when the project has the plugin or the project type that the tab needs.
| Tab | Shows when | What it shows |
|---|---|---|
| Overview | Always | Details, attributes, environments, health score, and recent activity |
| Configuration | The project has a configuration plugin | Configuration values from the plugin |
| Dependencies | Always | The packages of the project. See Pull requests and dependencies |
| Deployments | The project is deployable (see Delivery), has a deployment plugin, and at least one environment | Environments, promotion, and history. See Releases and deployments |
| Releases | The project is releasable (see Delivery) and has a deployment plugin | Releases. See Releases and deployments |
| Documents (N) | Always | Project documents. See Documents and reports |
| Incidents | The project has an incidents plugin | Incidents, for example from PagerDuty |
| Logs | The project has a logs plugin | Logs, for example from Logz.io |
| Operations Log | Always | The operations log of this project. See Operations log |
| Pull Requests (N) | The project has a lifecycle plugin | Pull requests. N is the number of open ones |
| Relationships (N) | Always | Dependencies between projects. See Relationships |
| Score History | Always | See Score History |
| Stethoscope icon | Always | The Doctor |
| Gear icon | Always | Project Settings |
The refresh icon next to the tabs loads the project data again.
Overview tab¶
| Card | What it shows |
|---|---|
| Project details | Team, Slug, Project Types, Created, and the attributes. Click a value to edit it |
| Environments | The environments of the project, with a URL and the deployment status of each |
| Health & compliance | The Health score, its change, and Score breakdown. See Scoring |
| Recent activity | Recent changes to the project |
Edit a project¶
Click a value to edit it. Imbi saves each change at once. You need
project:write.
Attributes¶
Attributes are the facts about a project, for example its language or its tier. The blueprints of the project types define which attributes exist, their types, and their allowed values. The editor matches the type:
| Attribute type | Editor |
|---|---|
| Allowed values (enum) | A list |
| List (array) | A list editor |
| True or false | A switch |
| Date | A date picker |
| Number | A number field |
| Text | A text field |
An attribute with no value shows Not set. Hover over the label to see
its description. You cannot edit id, created_at, updated_at, or an
attribute that its blueprint marks as not editable.
The Doctor tells you when an attribute does not follow its blueprint.
Change the project type¶
When you change the project types and the project has a lifecycle plugin, Imbi first asks the plugin if the repository must move. The dialog Move the backing repository? lists each change. The type change is saved in all cases. Select Also move the repository to the new location. only when you also want the plugin to move the repository. It is not selected by default.
Links¶
Links are on the Project Settings tab (the gear icon).
- Open Pick Link Type to Add and select a link type. An administrator defines the link types. See Catalog settings.
- Enter the URL.
- To remove a link, click its remove button and confirm.
Links that an integration owns do not show here. The integration sets them.
Environments¶
- On the Overview tab, find the Environments card.
- Click Add environment. The button shows only when an environment is not on the project yet.
- Select the Environment. Optional: enter its URL and the other fields that the blueprint of the environment defines.
- Click Add.
To remove an environment, click its remove button and confirm.
Delivery¶
Releases and deployments in the project settings says how Imbi ships
the project. The default, By project type, follows the deployable
or releasable flag of the project types: a deployable type gives the
project the Deployments tab, otherwise a releasable type gives it the
Releases tab. The other options override the project types for this
one project:
| Option | What it does |
|---|---|
| By project type | Follow the flags of the project types (default) |
| Deployable | Deploy into environments and promote between them, whatever the types say |
| Releasable | Cut tags and releases with no deploy step, whatever the types say |
| Disabled | Turn release and deployment processing off. Neither tab shows, and the API refuses to deploy, promote, resync, draft release notes, or cut a release for the project |
Use Disabled for a project whose releases are governed outside Imbi, for example a plugin with its own release process.
Archive and restore¶
- Open the Project Settings tab (the gear icon).
- Click Archive project, then click Archive project in the dialog. Imbi hides the project from the dashboard, the projects list, and the search results. Imbi keeps its data.
To restore the project, open it by its URL and click Restore project on the same tab.
Delete¶
- Open the Project Settings tab.
- Click Delete Project.
- Type the slug of the project.
- If the project has a lifecycle plugin, the box "Also delete the associated repository" is selected. Clear it to keep the repository.
- Click Confirm Delete.
The delete removes the project and its facts, operations log entries, and
documents. You cannot undo it. You need project:delete.
Relationships¶
A relationship says that one project depends on another project. The Relationships tab shows them in two directions:
- Uses: the projects that this project depends on.
- Used by: the projects that depend on this project.
Use the All, Uses, and Used by chips to filter the list. The graph shows the project in the center. Use the layout list, the zoom buttons, Fit to view, and Fullscreen to move around. Double-click a project to open it.
Change the dependencies¶
- Open the Relationships tab.
- Click Edit.
- Select each project that this project depends on. Use Search projects... to find a project.
- Click Save. The button shows the number of changes.
You can edit only the Uses direction of this project. A project cannot depend on itself. A change can change the score when a scoring policy reads dependencies.
To see the dependencies of all projects, open Reports > Projects Graph.
Integrations and plugins¶
The Project Settings tab also shows the integrations of the project and its plugins. A project with a lifecycle plugin has a Sync Lifecycle button. It sends the current state of the project to each lifecycle plugin again, for example to create or update the PagerDuty service. See Integrations and plugins.