DevieraDeviera
Documentation

Deviera Docs

Everything you need to detect engineering friction, automate responses, track intelligence metrics, and ship faster. Use the sidebar or search to jump to any section.

#Getting Started

#What is Deviera?

Deviera is an engineering intelligence platform that monitors your GitHub and GitLab repositories in real time, detects friction events (CI failures, stale PRs, flaky tests, deployment failures, Sentry alerts, and more), and automatically routes them through configurable automation rules.

The core loop is: event arrives → automation rule evaluates → action executes (create issue, post to Slack, comment on PR) → signal recorded. All signals feed into your Friction Score and intelligence dashboards — giving your team a single, continuous view of engineering health.

Automations

107 built-in presets. Trigger → Condition → Action pipelines.

Signal Feed

Real-time log of every friction event across all repos.

Friction Score

0–100 composite team health metric, updated live.

DORA Metrics

Deployment frequency, lead time, CFR, MTTR.

AI Features

Issue enrichment, root-cause analysis, NL automation builder.

8 Integrations

GitHub, GitLab, Linear, Jira, ClickUp, Slack, Vercel, Sentry.

#Quick start (5 min)

  1. 1Sign up at deviera.dev — free 14-day Pro trial, no credit card required.
  2. 2Install the Deviera GitHub App on your organisation (or connect GitLab via OAuth).
  3. 3Select the repositories you want Deviera to monitor.
  4. 4Connect Linear, Jira, ClickUp, or any combination for automatic issue creation.
  5. 5Enable one of the 107 built-in automation presets (e.g. "CI Failure → Linear Issue").
  6. 6Trigger a CI failure or open a PR — your first signal appears within seconds.

The in-app onboarding wizard at Dashboard → Onboarding walks you through every step with live validation. Most teams see their first signal within 30 minutes of completing setup.

#Connect GitHub

Deviera uses a GitHub App (not a personal access token) for secure, granular permissions. The app requests read access to code, metadata, checks, pull requests, and issues — plus write access to issues and pull-request comments for write-back actions.

  1. 1Go to Dashboard → Integrations → GitHub.
  2. 2Click "Install GitHub App". You'll be redirected to GitHub.
  3. 3Choose the organisation or personal account, then select which repositories to grant access.
  4. 4After installation, return to the dashboard — Deviera begins listening for webhook events immediately.
  5. 5Open Dashboard → Integrations → GitHub → Monitored Repositories to select which repos to actively process.

Deviera never stores your source code. Webhooks deliver metadata only — commit SHAs, branch names, check run results. Full file contents are never transmitted.

#Your first automation

Navigate to Dashboard → Automations → New. You can build automations in two ways: the Visual Builder (drag-and-drop trigger/action picker) or the Describe It tab (type what you want in plain English and the AI generates the rule for you — Team+).

Trigger

The event that starts evaluation — CI failure, PR opened, Sentry alert, etc.

Conditions

Optional filters — branch, repo, label, failure streak count.

Primary action

What Deviera does — create issue, send Slack message, post PR comment.

Second action

Fires after primary succeeds. E.g. create Linear issue AND post to Slack.

Every automation supports a second action. Use it to, for example, create a Linear issue and post a Slack message in a single rule — no extra automation needed.

#GitHub Integration

#GitHub App install

The Deviera GitHub App is installed at the organisation or user level. Once installed, GitHub delivers webhook events to Deviera for every repository you've granted access to. Each installation gets its own webhook secret for HMAC-SHA256 signature verification. You can update repository access at any time from your GitHub App settings page.

#Webhook events

All webhooks are verified using per-installation HMAC-SHA256 signatures before processing. Supported events:

GitHub EventAutomation Triggers
workflow_run (completed)github_ci_failed, github_ci_passed, ci_flaky_detected
pull_request (opened / closed / merged)github_pr_opened, github_pr_merged, github_pr_closed
pull_request (inactive scan, every 6h)github_pr_stale
issues (opened / closed / labeled)github_issue_opened, github_issue_closed, github_issue_labeled
pushgithub_push, github_commit_todo
Vercel API poll (every 5 min)vercel_deployment_ready, vercel_deployment_failed, vercel_deployment_created

#Monitored repositories

After installing the GitHub App, go to Dashboard → Integrations → GitHub → Monitored Repositories. Check or uncheck repos to control which ones Deviera actively processes. Unchecked repos receive webhooks from GitHub but events are silently discarded — no signals, no automation runs, no billing impact.

#GitHub write-back

All plans support GitHub write-back. Automations can post directly back into GitHub:

  • Create a GitHub Issue when CI failure exceeds a streak threshold
  • Close a GitHub Issue when CI passes again (auto-resolution)
  • Post a comment on a PR when it goes stale or when CI recovers
  • Mirror issues from Linear / Jira to GitHub Issues
  • Create a GitHub Issue when a Vercel deployment fails

Write-back actions use the GitHub App installation token — no personal token required. Fan-out is capped at 10 repositories per event to prevent accidental mass writes.

#Automations

#How automations work

An automation is a trigger → condition → action pipeline stored in the database and evaluated every time a matching event arrives. Automations run asynchronously via a BullMQ job queue — webhook responses always return in <50ms regardless of action complexity.

Each event delivered to Deviera is fanned out to every enabled automation in the workspace that matches the trigger type. Conditions are evaluated in order; all must pass for the action to execute. Matching automations run in parallel — a single CI failure can simultaneously create a Linear issue, post to Slack, and open a GitHub issue if you have three separate rules.

#Triggers

Deviera supports 32 trigger types across GitHub, GitLab, Vercel, and Sentry:

FieldTypeRequiredDescription
github_ci_failedGitHubnoGitHub Actions workflow run completed with failure status
github_ci_passedGitHubnoGitHub Actions workflow run completed successfully
github_pr_openedGitHubnoPull request opened or re-opened
github_pr_mergedGitHubnoPull request merged into target branch
github_pr_closedGitHubnoPull request closed without merging
github_pr_staleGitHubnoPR has had no activity for N hours (scanned every 6 hours)
github_issue_openedGitHubnoNew GitHub issue created
github_issue_closedGitHubnoGitHub issue closed
github_issue_labeledGitHubnoLabel added to a GitHub issue
github_pushGitHubnoCode pushed to any branch
github_commit_todoGitHubnoTODO or FIXME keyword detected in a commit message
ci_flaky_detectedGitHubnoCI alternating pass/fail pattern detected — flaky test or environment
vercel_deployment_createdVercelnoVercel deployment started
vercel_deployment_readyVercelnoVercel deployment succeeded and is live
vercel_deployment_failedVercelnoVercel deployment failed
gitlab_ci_failedGitLabnoGitLab pipeline completed with failure status (Team+)
gitlab_ci_passedGitLabnoGitLab pipeline completed successfully (Team+)
gitlab_mr_openedGitLabnoGitLab merge request opened (Team+)
gitlab_mr_staleGitLabnoGitLab MR with no activity for N hours (Team+)
gitlab_pushGitLabnoCode pushed to a GitLab repository (Team+)
sentry_alert_triggeredSentrynoSentry alert rule triggered (Pro+)
sentry_error_detectedSentrynoNew error or issue detected in Sentry (Pro+)

#Conditions

Conditions are optional filters applied after a trigger fires. All conditions in a rule must pass for the action to execute.

FieldTypeRequiredDescription
repositorystringnoOnly fire for a specific repository slug (e.g. "owner/repo")
branchstringnoOnly fire on this branch name (e.g. "main")
labelsstring[]noOnly fire when any of these labels are present on the issue or PR
failureStreaknumbernoMinimum consecutive CI failures before the action fires
staleHoursnumbernoPR or MR must have been open and inactive for at least N hours (default 48)
failedMinutesnumbernoDeployment must have been failing for at least N minutes

#Actions

Deviera supports 24 action types. Each automation has a primary action and an optional second action that fires on success.

FieldTypeRequiredDescription
create_linear_issueIssue trackernoCreate a Linear issue with team, priority, labels, and title/description templates
create_jira_issueIssue trackernoCreate a Jira issue — project, type, priority, labels (Free+)
create_gitlab_issueIssue trackernoCreate a GitLab issue with project, labels, confidential flag (Team+)
create_github_issueIssue trackernoOpen a GitHub issue in the triggering repository
create_clickup_taskIssue trackernoCreate a ClickUp task with space, list, and priority (Free+)
create_sentry_issueIssue trackernoCreate a Sentry issue (Pro+)
close_github_issueWrite-backnoClose a previously opened GitHub issue (auto-resolution)
close_linear_issueWrite-backnoClose a previously opened Linear issue (auto-resolution)
close_jira_issueWrite-backnoClose a previously opened Jira issue (auto-resolution)
close_clickup_taskWrite-backnoClose a previously opened ClickUp task (auto-resolution)
post_pr_commentWrite-backnoPost a comment on the GitHub PR that triggered the event
post_mr_commentWrite-backnoPost a comment on the GitLab MR that triggered the event (Team+)
send_slack_messageNotifynoPost a message to a Slack Incoming Webhook (Free+)
send_notificationNotifynoSend an email notification via Brevo (Pro+)
send_webhookNotifynoPOST a JSON payload to any custom URL
assign_userWorkspacenoAssign a workspace member in the Deviera database

All issue-creation actions support template variables in the title and description fields: {repo.name}, {repo.branch}, {workflow.name}, {commit.sha}, {pr.title}, {pr.author}, {deployment.url}, {issue.title}, {issue.number}.

#Natural Language Builder

On Team+, the automation builder includes a Describe It tab. Type what you want in plain English — for example: "When CI fails on main, create a Linear issue and post to Slack" — and Deviera's AI parses your description and pre-fills the trigger, conditions, and actions. You can then review and save, or edit any field before saving.

#Presets & templates

Deviera ships 107 built-in automation presets organised by destination (Linear, Jira, GitLab Issues, ClickUp, Slack, GitHub write-back, MR comments, Sentry). Access them at Dashboard → Automations → Templates. The For You tab surfaces presets relevant to your connected integrations. Presets can be enabled as-is or cloned and customised.

Linear presets

Bug Tracker, PR Review Queue, CI Failure Alert, Stale PR Tracker, Flaky Test Alert, Deployment Failure, CI Recovery Notice, Code TODO Tracker, Sprint Task Sync, and more.

Jira presets

Jira Bug Tracker, Jira CI Failure Task, Jira PR Review Queue, Jira Stale PR Alert, GitLab CI Failure → Jira, and more.

GitLab Issue presets

GitLab Issue on Pipeline Fail, GitLab MR Review Issue, GitLab Stale MR Issue, GitLab Bug Tracker, and more.

Slack presets

CI Failure → Slack, Deployment Failure → Slack, Deployment Ready → Slack, GitLab Pipeline Failure → Slack, and more.

GitHub write-back

Mirror Issue to GitHub, Flaky Test → Linear Issue, PR Merged → Close GitHub Issue, Bug Label → Mirror to GitHub, Vercel Deploy Failure → GitHub Issue.

MR comment presets

Welcome New MR, Stale MR Reminder, GitLab CI Recovery Notice, GitLab Main Branch Push.

#Cooldowns & deduplication

Every automation has a configurable cooldown window (default: 60 minutes). If the same automation fires again within the cooldown, the action is skipped and the event is logged as deduplicated. This prevents alert storms from a single flapping CI build.

Cross-provider title deduplication prevents two different automations from creating duplicate issues across Linear, Jira, GitLab, and ClickUp for the same root cause within a 3-day window. The dedup block is automatically lifted when the issue is closed or resolved in the external tracker — so if a problem recurs after being fixed, a fresh ticket is created immediately.

#Conflict detection

When you save a new automation, Deviera checks for conflicts with existing rules that share the same trigger and action type. If a conflict is detected, you are shown the overlapping automation names and can choose to proceed or adjust your rule. This keeps your automation list clean and prevents duplicate actions from different rules.

#Signal Feed

#What is a signal?

A signal is an AutomationEvent record created every time an automation fires. It captures the trigger type, the action taken, the outcome (e.g. Linear issue URL, Slack confirmation), the severity level, minutes saved, and a dedup key for correlation. Signals are the foundation of your Friction Score, Value Dashboard, and all intelligence dashboards.

The Signal Feed at Dashboard → Signals → Signal Feed shows all signals in reverse-chronological order with severity badges, source repo, trigger type, and linked outcomes. You can filter by severity, trigger type, date range, and automation name.

#Severity levels

critical

CI failures on main/master, Vercel production deployment failures. Immediate attention required.

high

CI failures on non-main branches, stale PRs, issues labeled "bug", Sentry alerts.

medium

PR opened, GitHub issue opened, other labeled issues, MR opened.

low

Code pushed, TODO commits detected, deployment created or ready, CI passed.

#Public Signal Wall

The Signal Wall is a public, read-only view of your workspace's recent signal activity. Enable it in Dashboard → Workspace Settings, set a custom slug, and share the URL with stakeholders or embed it in your team wiki — no login required for viewers.

The Public Signal Wall is a Team+ feature. Enable it in Dashboard → Workspace Settings, set a unique slug, and share the URL. The page includes OpenGraph meta tags for link preview rendering.

#Value Dashboard

The Value Dashboard at Dashboard → Signals → Value Dashboard aggregates ROI metrics across your automations — total signals, minutes saved, issues created per provider, and trends over time. Use the date range picker and automation filter to drill into specific windows and rules. A bar chart shows which automations generated the most value.

#Friction Score

#How it is computed

The Friction Score is a 0–100 composite metric computed from signal activity in the last 30 days. Lower is better. It gives your team a single number to track engineering health over time.

formula
FrictionScore = (
  (critical_signals × 4)
  + (high_signals × 2)
  + (medium_signals × 1)
) / maxExpected × 100

Signals are weighted by severity — critical×4, high×2, medium×1. Low-severity signals are excluded from the score calculation. The score is capped at 100 and normalised against maxExpected, a dynamic baseline derived from the total signal volume in the window.

#Interpreting your score

0 – 20Excellent

Minimal friction. Your team ships with very few interruptions.

21 – 45Good

Normal friction for an active team. A few areas to watch but nothing blocking.

46 – 70Elevated

Friction is accumulating. Review which triggers are firing most frequently.

71 – 100Critical

High friction impacting shipping velocity. Immediate action recommended.

#Time-saving baselines

In Dashboard → Workspace Settings → Trigger Baselines you can configure the number of minutes saved per trigger type. These values feed the Value Dashboard's "minutes saved" metric and ROI calculations. Default values are pre-set for every trigger (e.g. CI failure = 8 min, stale PR = 12 min, deployment failure = 10 min) and can be adjusted to match your team's actual context-switching costs.

#Intelligence Dashboards

All intelligence dashboards live under Dashboard → Intelligence. They are powered by the same AutomationEvent data as the Signal Feed — no additional setup required once your integrations are connected.

#CI Intelligence

CI Intelligence (Dashboard → Intelligence → CI Intelligence) provides pattern detection across your CI pipelines — identifying flaky tests, chronically failing workflows, and failure trends per repository and branch. Available on Pro+.

  • Per-repo and per-workflow failure rate charts
  • Flaky test detection — workflows alternating pass/fail within a window
  • Failure streak tracking — how many consecutive runs failed before recovery
  • Timeline view of CI events across all monitored repositories

#Repo Health

Repo Health (Dashboard → Intelligence → Repo Health) gives a multi-repo overview of CI health and signal density. Each repository shows its CI pass rate, signal count by severity, and last-seen event. Available on Pro+.

#DORA Metrics

The DORA Metrics dashboard (Dashboard → Intelligence → DORA Metrics) computes the four DORA indicators from your existing event data — no separate instrumentation required:

Deployment Frequency

How often code is deployed to production. Computed from vercel_deployment_ready and github_pr_merged events.

Lead Time for Changes

Time from PR opened to deployment ready. Computed from PR open → Vercel deployment success pairs.

Change Failure Rate

Percentage of deployments that caused an incident. Based on deployment_failed / deployment_ready ratio.

MTTR

Mean time to restore after a failure. Time between deployment_failed and next deployment_ready.

Each metric is benchmarked against the 2025 State of DevOps report thresholds (Elite / High / Medium / Low). Available on Pro+.

#PR Cycle Time

PR Cycle Time (Dashboard → Intelligence → PR Cycle Time) tracks the median and P75 time from PR open to merge across all monitored repositories. Available on Pro+. Use it to identify whether your bottleneck is review lag, post-approval delay, or PR size.

#Team Flow

Team Flow (Dashboard → Intelligence → Team Flow) tracks PR review wait time and work-in-progress (WIP) breaches per repository. It surfaces which repos have PRs sitting unreviewed longest, helping you identify team bottlenecks before they become friction signals.

#Engineering Health Score

Engineering Health Score (Dashboard → Intelligence → Health Score) gives your team a single composite 0–100 score with an A–F grade representing overall delivery health. It is a weighted roll-up of three sub-scores: DORA performance (40%), PR Cycle Time (35%), and Bottleneck load — the share of opened PRs that never merged (25%). A trend chip shows the delta vs. the previous equivalent period so you can see whether health is improving or degrading. Available on Pro+.

#PR Bottlenecks

PR Bottlenecks (Dashboard → Intelligence → PR Bottlenecks) shows currently-open pull requests that are stalled, oversized, or missing reviewers — fetched live from GitHub across all monitored repositories. Each PR is flagged with the reason it is blocked so your team can act immediately rather than discovering bottlenecks in a weekly retro. Available on Pro+.

#Investment Distribution

Investment Distribution (Dashboard → Intelligence → Investment Distribution) answers the question: where is your engineering effort actually going? It categorises every automation event into one of four buckets — Growth & Innovation, Reliability & Scalability, Maintenance & Tech Debt, and Customer Support & Bugs — derived automatically from trigger type, severity, and PR labels. No extra instrumentation required. Available on Pro+.

#AI Features

Deviera's AI features use your own API key (BYOK — Bring Your Own Key). Connect your key at Dashboard → Integrations → AI / LLM. Supported providers: Anthropic (Claude), OpenAI (GPT-4o), and Google Gemini.

#Connecting an AI provider

  1. 1Go to Dashboard → Integrations → AI / LLM.
  2. 2Select your provider: Anthropic, OpenAI, or Google Gemini.
  3. 3Choose a model (e.g. Claude Sonnet 4.6, GPT-4o, Gemini 2.0 Flash).
  4. 4Paste your API key — it is stored encrypted and never logged.
  5. 5Toggle the AI features you want to enable (see below).

Your API key is stored server-side with AES encryption. It is used only to call your chosen provider on your behalf — it is never shared or exposed in client responses.

#Issue enrichment

When enabled, Deviera passes the raw signal context to your AI model and appends a structured root-cause hypothesis and suggested fix to the Linear / Jira / ClickUp issue description before creation. Available on Pro+.

#Signal summary

Generates a plain-English summary of the last 24 hours of signals on the overview page. Useful for standups and async updates. Available on Pro+.

#Root-cause analysis

On demand, ask Deviera to analyse a cluster of signals and identify the likely root cause. The AI looks at trigger type, repository, branch, timing, and signal sequence to surface a hypothesis. Available on Team+.

#AI PR comments

When enabled, Deviera posts an AI-generated review comment on PRs that trigger a stale or CI-failure rule — summarising the issue and suggesting next steps for the author. Available on Team+.

#Natural Language automation builder

Describe any automation in plain English and Deviera's AI converts it to a fully configured trigger + action rule. Available on Team+ via the Dashboard → Automations → New → Describe It tab.

#AI Assistant

The AI Assistant (Dashboard → Intelligence → AI Assistant) is a streaming chat interface connected to your workspace signal data. Ask it questions like:

  • "What were the biggest friction sources last week?"
  • "Which repos have the worst CI health?"
  • "How does our deployment frequency compare to last month?"
  • "What were the most critical incidents in the last 7 days?"

The AI Assistant requires an AI provider to be connected at Dashboard → Integrations → AI / LLM. Responses are streamed in real time.

#AI Impact

AI Impact (Dashboard → Intelligence → AI Impact) measures your team's AI coding tool adoption by analysing commit messages for signatures from GitHub Copilot, Claude / Claude Code, Cursor, and Sourcegraph Cody. It shows overall adoption %, daily trend, tool breakdown, and per-repo adoption — without requiring any additional integrations.

#Integrations

Deviera connects to 8 external services. All OAuth integrations are connected per workspace — members share the workspace token. Tokens are stored encrypted and automatically refreshed. A daily health sweep at 08:00 UTC probes all tokens and marks broken connections with a "Needs Reconnect" banner so you catch stale tokens before they affect automations.

#Linear

Linear connects via OAuth 2.0. Once connected, automations can create issues in any team you have access to, with configurable priority, labels, and title/description templates. Auto-resolution is supported — paired Linear issues are closed automatically when CI passes or a PR merges.

  1. 1Go to Dashboard → Integrations → Linear.
  2. 2Click "Connect Linear" — redirected to Linear's OAuth consent screen.
  3. 3Grant access to your Linear workspace.
  4. 4Return to Deviera and select a default team for issue creation.
  5. 5Labels and priorities are automatically fetched from your Linear workspace.

Available on all plans. Linear is the most popular destination — 23 built-in presets cover the most common CI, PR, and deployment workflows.

#Jira

Jira connects via Atlassian's OAuth 2.0 flow (cloud instances only). Once connected, automations can create structured Jira issues with project mapping, issue type, priority, labels, and description templates. Token refresh is handled automatically.

  1. 1Go to Dashboard → Integrations → Jira.
  2. 2Click "Connect Jira" — redirected to Atlassian's OAuth consent screen.
  3. 3Authorise access to your Atlassian Cloud site.
  4. 4Return to Deviera and select a default project for issue creation.
  5. 5Issue types and priorities are fetched automatically from your Jira instance.

Jira is available on all plans (Free+). 16 built-in presets cover GitHub, GitLab, CI, PR, and deployment workflows routing to Jira.

#ClickUp

ClickUp connects via OAuth 2.0. Once connected, automations can create tasks in any space and list you have access to, with configurable priority, title, and description templates. Auto-resolution closes tasks when the triggering issue resolves.

  1. 1Go to Dashboard → Integrations → ClickUp.
  2. 2Click "Connect ClickUp" — redirected to ClickUp's OAuth consent screen.
  3. 3Authorise access to your ClickUp workspace.
  4. 4Return to Deviera and select a default space and list for task creation.
  5. 5Spaces and lists are fetched automatically from your ClickUp workspace.

ClickUp is available on all plans (Free+). Cross-provider deduplication prevents duplicate tasks from being created across Linear, Jira, and ClickUp for the same root cause.

#GitLab

GitLab integrates via OAuth 2.0, supporting both GitLab.com and self-hosted instances. Once connected, Deviera registers webhooks on your groups and projects to receive pipeline, merge request, and push events — the same signal detection engine as GitHub.

  1. 1Go to Dashboard → Integrations → GitLab.
  2. 2Click "Connect GitLab" — redirected to GitLab's OAuth consent screen.
  3. 3Authorise access to your GitLab groups and projects.
  4. 4Return to Deviera — groups and projects are listed automatically.
  5. 5Deviera registers webhooks on connected projects to receive events immediately.

GitLab is a Team+ feature. On lower plans, GitLab triggers and the create_gitlab_issue and post_mr_comment actions are unavailable.

#Slack

Slack integration uses an Incoming Webhook URL — no OAuth or app installation required. The webhook URL is validated before saving by sending a test ping message.

  1. 1Create an Incoming Webhook in your Slack workspace at api.slack.com/apps.
  2. 2Copy the webhook URL from the Slack app configuration.
  3. 3Go to Dashboard → Integrations → Slack and paste the URL.
  4. 4Click "Save" — Deviera sends a test ping to verify the connection.

Slack is available on all plans (Free+). 10 built-in Slack presets cover CI failures, deployments, GitLab pipeline events, PR merges, and more.

#Vercel

The Vercel integration captures deployment events (created, ready, failed) via your Vercel API token. Deviera polls the Vercel API every 5 minutes and surfaces deployment events as signals and automation triggers — no inbound webhook configuration required on Vercel's side.

  1. 1Go to Dashboard → Integrations → Vercel.
  2. 2Generate an API token at vercel.com/account/tokens (read-only scope is sufficient).
  3. 3Paste the token into Deviera and save.
  4. 4Deviera lists your Vercel projects and begins capturing deployment events within 5 minutes.

#Sentry

Sentry connects via OAuth 2.0. Once connected, Deviera receives error alert and issue spike webhooks from your Sentry organisation and routes them through your automation rules. Sentry signals appear in the same Signal Feed as GitHub and GitLab events.

  1. 1Go to Dashboard → Integrations → Sentry.
  2. 2Click "Connect Sentry" — redirected to Sentry to authorise Deviera.
  3. 3Select the Sentry organisation you want to connect.
  4. 4Deviera registers a webhook on your Sentry organisation automatically.
  5. 5Triggers sentry_error_detected and sentry_alert_triggered are now active.

Sentry is a Pro+ feature. The create_sentry_issue action is also Pro+. Upgrade at Dashboard → Billing.

#Workspace & Settings

#Workspace settings

Workspace settings are at Dashboard → Workspace. Owners and admins can:

  • Rename the workspace and set a description
  • Invite members by email — accepted via a unique invite link
  • Assign member roles: Owner, Admin, or Member
  • Remove members from the workspace
  • Enable or disable the Public Signal Wall and configure its slug and title
  • Configure trigger baselines (minutes saved per trigger type) for the Value Dashboard

#Member roles

RoleCan do
OwnerAll actions — billing, integrations, member management, workspace deletion
AdminManage automations, integrations, members — cannot delete workspace or change billing
MemberView dashboards, view and trigger automations — cannot manage integrations or members

#Account settings

Personal account settings are at Dashboard → Settings → Account. You can:

  • Update your display name
  • Enable or disable Multi-Factor Authentication (TOTP via authenticator app)
  • Generate and download MFA backup codes
  • Export your account data
  • Delete your account — requires password confirmation

#Multi-Factor Authentication (MFA)

Deviera supports TOTP-based MFA using any standard authenticator app (Google Authenticator, Authy, 1Password, etc.). When enabled, MFA is required at every sign-in. Backup codes are generated at setup time — download and store them securely. Backup codes are single-use.

  1. 1Go to Dashboard → Settings → Account → Security.
  2. 2Click "Enable MFA" — a QR code is displayed.
  3. 3Scan the QR code with your authenticator app.
  4. 4Enter the 6-digit code from your app to verify.
  5. 5Download your backup codes and store them safely.

#API Keys

API keys for the Deviera REST API are managed at Dashboard → Settings → API Keys. Keys are prefixed dvr_ and shown once at creation — Deviera stores only a SHA-256 hash. Revoke and regenerate from the same page if a key is lost or compromised. Plan limits: Free (1 key), Pro (5 keys), Team (20 keys), Enterprise (unlimited).

#API Reference

#Authentication

All API requests must include a Deviera API key in the Authorization header. Generate keys at Dashboard → Settings → API Keys.

bash
curl https://deviera.dev/api/automation-events \
  -H "Authorization: Bearer dvr_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

API keys are shown once at creation. Store them in your secrets manager — Deviera cannot recover a lost key. Revoke and regenerate from the dashboard if needed.

#Scopes

Each API key is issued with one or more scopes that limit what it can access. Session-authenticated requests (browser) have full access. API key requests are restricted to granted scopes.

ScopeAccess granted
automations:readList and read automation rules
automations:writeCreate, update, and delete automation rules
events:readRead automation event history and aggregate stats
metrics:readRead DORA metrics, PR cycle time, engineering health score, and PR bottlenecks (Pro+)
repos:readList connected GitHub repositories and branches
workspace:readRead workspace metadata and member list
integrations:readRead connected integration status (Linear, Jira, GitLab, ClickUp, Sentry, Slack, Vercel)
integrations:writeUpdate settings or disconnect integrations

#Endpoints

GET/api/automation-events

List automation events (signals) in reverse-chronological order. Cursor-paginated.

limitnumberMax results to return (default 50, max 200)
cursorstringPagination cursor from the previous response
severitystringFilter: critical | warning | info | resolved
GET/api/automation-events/stats

Aggregate ROI stats — total signals, minutes saved, count by severity, issues created per provider.

GET/api/automations

List all automations in the authenticated workspace.

POST/api/automations

Create a new automation rule.

namestringDisplay name for the automation
triggerTriggerConfigTrigger type and filter object
actionActionConfigAction type and template config
cooldownMinutesnumberCooldown window in minutes (default 60)
PATCH/api/automations/:id

Update an existing automation (name, enabled state, trigger, action, cooldown).

DELETE/api/automations/:id

Delete an automation rule permanently.

GET/api/dora-metrics

Fetch DORA metrics for the workspace (Pro+). Returns deployment frequency, lead time, CFR, and MTTR.

daysnumberLookback window in days (default 30)
GET/api/pr-cycle-time

Fetch PR cycle time metrics (Pro+). Returns median and P75 open-to-merge time.

daysnumberLookback window in days (default 30)
GET/api/health-score

Fetch the composite Engineering Health Score (Pro+). Returns score (0–100), grade (A–F), trend delta, and sub-scores for DORA, PR cycle time, and bottleneck load.

daysnumberLookback window in days (default 30)
GET/api/pr-bottlenecks

Fetch currently-open stalled, oversized, or reviewer-less PRs (Pro+). Returns live GitHub data across all monitored repositories.

GET/api/investment-distribution

Fetch engineering effort breakdown by category (Pro+). Returns Growth, Reliability, Maintenance, and Support percentages over the lookback window.

daysnumberLookback window in days (default 30)
GET/api/github/repositories

List GitHub repositories accessible to the authenticated user. Requires repos:read scope.

sortstringSort field: created | updated | pushed | full_name (default: updated)
directionstringSort direction: asc | desc (default: desc)
per_pagenumberResults per page (default 30)
pagenumberPage number (default 1)
GET/api/github/branches

List branches for a specific repository. Requires repos:read scope.

repositorystringRepository in owner/repo format (required)
GET/api/workspaces

List all workspaces the authenticated user belongs to, including role and member count. Requires workspace:read scope.

GET/api/workspaces/current

Return the active workspace with members. For API key callers, returns the workspace tied to the key. Requires workspace:read scope.

GET/api/integrations/linear

Read Linear integration status — connected workspace, default team, and reconnect health. Requires integrations:read scope.

PATCH/api/integrations/linear

Update the Linear integration default team. Requires integrations:write scope.

defaultTeamIdstringLinear team ID to set as default
defaultTeamNamestringDisplay name of the team
DELETE/api/integrations/linear

Disconnect the Linear integration. Requires integrations:write scope.

#Rate limits

The API is rate-limited to 100 requests per minute, applied per client IP address and the same on every plan. There is no separate daily quota.

#Event retention

How long signal / event history is queryable depends on your plan:

PlanEvent retention
Free30 days
Pro90 days
Team180 days
Enterprise365 days

Rate limit headers are returned on every API response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (ISO-8601 timestamp). When the limit is exceeded, Deviera returns HTTP 429 with a Retry-After header.

#Billing & Plans

#Plans overview

Free

$0

forever

  • 1 repo
  • 5 automations
  • 3 members
  • 1 API key
  • GitHub + Linear + Jira + ClickUp + Vercel + Slack
  • Signal Feed (30 days)

Pro

$29/mo

or $290/yr

  • 5 repos
  • 20 automations
  • 5 members
  • 5 API keys
  • + Sentry integration
  • CI Intelligence, Repo Health, DORA Metrics, PR Cycle Time
  • Health Score, PR Bottlenecks & Investment Distribution
  • AI: issue enrichment + signal summary
  • Signal Feed (90 days)

Team

$25/seat/mo

min 5 seats, or $250/seat/yr

  • Unlimited repos
  • 200 automations
  • 20 members
  • 20 API keys
  • + GitLab integration
  • Public Signal Wall
  • All AI features (NL builder, root-cause, PR comments)
  • Signal Feed (180 days)

Enterprise

Custom

contact us

  • Unlimited everything
  • Audit log
  • SSO / SAML
  • SLA guarantee
  • Dedicated onboarding
  • Custom integrations
  • Signal Feed (365 days)

See the full feature comparison on the pricing page.

#Free trial

All new workspaces start on a 14-day free Pro trial — no credit card required. At the end of the trial, the workspace downgrades to Free unless a paid plan is activated. Upgrade at any time from Dashboard → Billing.

Upgrading mid-trial activates immediately. You are billed from the upgrade date, not the trial start date — you keep any trial days you haven't used.

#Cancel subscription

Cancel at any time from Dashboard → Billing → Cancel Subscription. Your workspace retains paid-plan features until the end of the current billing period, then downgrades to Free. All data is retained indefinitely — nothing is deleted on downgrade.

#Team seat billing

The Team plan is per-seat with a minimum of 5 seats. Seats are billed at the workspace level — you purchase a seat count and all members share the workspace. Adding members beyond your purchased seat count will prompt an upgrade. Seats can be adjusted from Dashboard → Billing.

#Security

#Security overview

Deviera is designed for engineering teams that need audit-grade visibility with enterprise-level security practices.

  • All OAuth tokens are stored AES-encrypted with key rotation support
  • GitHub webhooks verified via per-installation HMAC-SHA256 signatures
  • Sentry webhook payloads verified with Sentry's internal token scheme
  • MFA / TOTP enforced per user with backup codes
  • Idle auto-logout with multi-tab BroadcastChannel sync
  • Brute-force detection: ≥5 failed sign-ins in 15 min triggers a SecurityIncident
  • Rate-limit storm detection: ≥10 rate-limit hits in 15 min triggers a SecurityIncident
  • All admin routes protected by ADMIN_EMAILS allowlist

#Audit log

The Audit Log is an Enterprise+ feature that records every user action in the workspace — automation creates/edits/deletes, integration connects/disconnects, member role changes, and billing events. Accessible at Dashboard → Admin → Audit(admin only).

#Token encryption & rotation

OAuth tokens are encrypted with TOKEN_ENCRYPTION_KEY using AES-256. Key rotation is supported via the TOKEN_ENCRYPTION_KEY_PREVIOUS environment variable — tokens encrypted with the previous key are automatically re-encrypted on first read. Encrypted tokens are prefixed with v1: to distinguish from legacy unencrypted rows.

Changing TOKEN_ENCRYPTION_KEY without setting TOKEN_ENCRYPTION_KEY_PREVIOUS will break all existing OAuth integrations — users will need to reconnect. Always set the previous key before rotating.

#Free Tools

Deviera ships standalone, no-login-required calculators you can use to benchmark your engineering metrics against DORA standards — before connecting any integrations.

#CI Health Score Calculator

Enter five CI metrics and get an instant letter grade (A–F) with a detailed breakdown across three dimensions benchmarked against DORA Elite / High / Medium / Low thresholds.

Speed (30%)

Average build time vs DORA thresholds. Elite &lt; 5 min, High &lt; 10 min.

Reliability (45%)

Weighted combination of build failure rate and flaky test rate.

Recovery (25%)

Mean time-to-fix broken builds, adjusted for daily build volume.

No account required. deviera.dev/tools/ci-health-score

#PR Cycle Time Benchmark Tool

Enter four PR velocity metrics — median cycle time, review lag, post-approval delay, and average PR size — and see whether your team ranks as DORA Elite, High, Medium, or Low. The tool pinpoints your specific bottleneck.

No account required. deviera.dev/tools/pr-cycle-time

#DORA Calculator

The DORA Calculator at deviera.dev/tools/dora-calculator lets you input all four DORA metric values and instantly see your performance band across all dimensions with actionable improvement guidance. No login required.

All free tools link directly to the full engineering benchmarks dataset and to Deviera's connected intelligence dashboards so you can act on your score immediately.

#Onboarding

New workspaces are guided through a step-by-step onboarding wizard at Dashboard → Onboarding. The wizard validates each step live and only advances when the connection is confirmed.

  1. 1Tell Deviera what your team uses — GitHub, GitLab, issue trackers, deployment platforms.
  2. 2Install the GitHub App or connect GitLab via OAuth.
  3. 3Connect your issue tracker — Linear, Jira, or ClickUp.
  4. 4Connect Slack (optional) for real-time alerts.
  5. 5Enable your first automation preset.
  6. 6Trigger a test event to verify signals are flowing.

You can return to the onboarding wizard at any time. Completed steps are marked with a green checkmark. The wizard does not re-run completed steps — skip directly to any incomplete step.

#MCP — Connect AI Agents to Deviera

Deviera exposes a Model Context Protocol (MCP) endpoint at POST https://deviera.dev/api/mcp. Any MCP-compatible AI client — Claude Desktop, Cursor, Windsurf, ChatGPT, and others — can connect to it and query your engineering data in natural language. No extra infrastructure required.

MCP access requires a Deviera API key (dvr_*). Generate one at Settings → API Keys. All plans include at least one API key.

#Connect to Claude Desktop

Open your Claude Desktop config file and add the Deviera server under mcpServers:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{
  "mcpServers": {
    "deviera": {
      "type": "http",
      "url": "https://deviera.dev/api/mcp",
      "headers": {
        "Authorization": "Bearer dvr_YOUR_API_KEY"
      }
    }
  }
}

Restart Claude Desktop after saving. You should see a deviera server listed in the MCP servers panel. Ask Claude things like:

  • "What is our engineering friction score this week?"
  • "Show me the last 10 critical signals from the signal feed"
  • "What are our DORA metrics for the past 30 days?"
  • "Which repos have the slowest PR cycle times?"

#Connect to Cursor

In Cursor, open Settings → MCP and add a new server entry:

json
{
  "deviera": {
    "url": "https://deviera.dev/api/mcp",
    "headers": {
      "Authorization": "Bearer dvr_YOUR_API_KEY"
    }
  }
}

#Connect to other clients

Any client that supports the MCP streamable-HTTP transport can connect using:

FieldTypeRequiredDescription
EndpointURLyeshttps://deviera.dev/api/mcp
Transportstringyesstreamable-http (stateless, no session)
AuthorizationheaderyesBearer dvr_YOUR_API_KEY
MethodHTTPyesPOST (JSON-RPC 2.0 body)

The MCP endpoint is stateless — no session management is needed. Each request is fully self-contained. This works reliably on serverless/edge deployments.

#Available tools

The following tools are exposed by the Deviera MCP server:

FieldTypeRequiredDescription
get_signal_feedtoolnoRecent automation events. Params: limit (1–100), severity, triggerType
get_dora_metricstoolnoDeployment Frequency, Change Failure Rate, recovery counts. Params: period (7d/30d/90d)
get_friction_scoretoolnoFriction Score (0–100) + top contributors for last 30 days. No params.
get_repo_healthtoolnoPer-repo CI pass/fail rates and health scores. Params: repoFullName (optional filter)
get_pr_cycle_timetoolnoMedian + P75 PR open-to-merge hours, phase breakdown, size buckets. Params: days (1–90)
get_workspace_summarytoolnoHigh-level workspace snapshot — event counts, plan, available tools. No params.

#Authentication

All MCP requests are authenticated with a Deviera API key passed as a Bearer token. Generate a key at Settings → API Keys. The key must have at least the scopes required by the tools you intend to call:

FieldTypeRequiredDescription
get_signal_feedtoolnoRequired scope: events:read
get_dora_metricstoolnoRequired scope: metrics:read
get_friction_scoretoolnoRequired scope: events:read
get_repo_healthtoolnoRequired scope: metrics:read
get_pr_cycle_timetoolnoRequired scope: metrics:read
get_workspace_summarytoolnoRequired scope: workspace:read
Still have questions?

Reach us at support@deviera.dev or start the free trial and explore every feature from inside the app.

Start free trial