Identify Misalignments Across Project Work

Keeping engineering work aligned with project management is a constant challenge. Without automated enrichment, status updates fall behind, visibility suffers, and teams struggle to connect engineering effort to business impact. Common challenges include:

  • Developers forget or delay updating project management tools. Manual status updates are tedious, leading to outdated reports and misalignment between engineering and business teams.
  • Engineering managers lack real-time visibility. Without automated tracking, managers must rely on developers to self-report progress, creating blindspots in execution.
  • Manual updates add unnecessary toil. Switching between PRs and project tracking tools disrupts workflows, adding friction instead of value.
  • Poor systems of record make it difficult to measure engineering impact. Without linking PRs to project data, companies struggle to forecast delivery timelines, optimize resource allocation, and capitalize engineering costs for financial reporting.

Deploy PR Enrichment

By enriching PRs with relevant project management data, teams eliminate manual tracking, gain real-time insights, and even improve financial reporting. Automating these connections with LinearB’s gitStream allows engineering work to stay visible and measurable without disrupting developer workflows. Elevate your team’s insights from PR Labeling to the product team and the rest of leadership by syncing PR efforts across project management tools.

Ensure PRs are connected to work items

  • Label Missing Jira Info: Labels PRs that don’t reference a Jira issue, prompting developers to add a link. Learn more.
  • Automatically Link PRs to Related Jira Issues: Connects labeled PRs to their respective Jira issues, reducing manual data entry. Learn more.
  • Automatic Jira Status Updates: Updates the status of Jira tickets when a PR is opened, ensuring real-time tracking. Learn more.
  • Automatically Create Jira Issues from PRs: Generates Jira tickets from new pull requests, keeping project tracking up to date. Learn more.

To apply them, create a .cm/gitstream.cm rules file in your repository's default branch. This file’s YAML configuration determines the workflows that run on the repo. For example, here’s a gitStream configuration file to orchestrate the Jira examples above:

manifest:
 version: 1.0

# === Editable settings ===
jira_space: "your-org"
orgName: "your-org"
jira_user_email: "your-email@your-org.com"

on:
 - pr_created

# === Centralized pattern & base URL ===
tracker:
 jira:
   baseurl: https://[orgName].atlassian.net/browse/
   pattern: r/\b[A-Za-z]+-\d+\b/

# === Extract ticket IDs ===
tickets:
 - {{ branch.name | capture(regex=tracker.jira.pattern) }}
 - {{ pr.title | capture(regex=tracker.jira.pattern) }}

# === Set ticket ID ===
{% set ticket_id = "" %}
{% for ticket in tickets %}
{% if (ticket | includes(regex=r/.+/)) %}
{% set ticket_id = ticket %}
{% endif %}
{% endfor %}

# === Helper conditions ===
has:
 jira_ticket_in_title: {{ pr.title | includes(regex=tracker.jira.pattern) }}
 jira_ticket_in_desc: {{ pr.description | includes(regex=r/atlassian.net\/browse\/\w{1,}-\d{3,4}/) }}
 jira_ticket_in_branch: {{ branch.name | includes(regex=tracker.jira.pattern) }}
 has_jira_issue: {{ pr.description | includes(regex=r/atlassian.net\/browse\/\w{1,}-\d{3,4}/) }}

# === Automations ===
automations:
 # 1. Label PRs Missing Jira Info
 label_missing_jira_info:
   if:
     - {{ not (has.jira_ticket_in_title or has.jira_ticket_in_desc) }}
   run:
     - action: add-label@v1
       args:
         label: "missing-jira"
         color: 'F6443B'

 # 2. Link PRs to Jira
 link_jira:
   if:
     - {{ has.jira_ticket_in_title or has.jira_ticket_in_branch }}
   run:
     - action: add-comment@v1
       args:
         comment: Issue Tracker Link - [{{ ticket_id }}](https://{{ jira_space }}.atlassian.net/browse/{{ ticket_id }})

 # 3. Change Jira Status
 jira_change_status:
   if:
     - {{ ticket_id != "" }}
   run:
     - action: send-http-request@v1
       args:
         url: "{{ env.JIRA_WEBHOOK_URL }}"
         method: POST
         headers: '{"Content-type": "application/json"}'
         body: '{"issues":["{{ ticket_id }}"],"data":{"pr_url":"https://github.com/{{repo.owner}}/{{repo.name}}/pull/{{pr.number}}"}}'

 # 4. Auto-create Jira Issue
 automatic_jira_task:
   if:
     - {{ not has.has_jira_issue }}
     - {{ pr.description | includes(regex=r/\- \[x\] Auto-create Jira Task/) }}
   run:
     - action: send-http-request@v1
       args:
         url: {{ env.JIRA_WEBHOOK }}
         method: POST
         headers: '{"Content-type": "application/json"}'
         body: '{"data":{"pr_url":"https://github.com/{{repo.owner}}/{{repo.name}}/pull/{{pr.number}}","title":"{{ pr.title }}"}}'
     - action: add-comment@v1
       args:
         comment: "gitStream automatically created a Jira task for this PR"

Developers often move fast, and manually updating Jira can slow them down. Automating PR-to-Jira updates eliminates this friction, ensuring that issue tracking remains accurate without burdening engineers. This keeps project managers informed in real time while allowing developers to focus on shipping code. 

Track Enrichment Impact with Key Metrics

Implementing PR enrichment opens up several avenues for measuring impact and driving success for the rest of the organization.

Improve planning and capacity accuracy with PR enrichment

Accurate capacity planning relies on knowing what your teams are working on. When PRs aren’t consistently linked to project management tools, teams lose visibility into effort, progress, and timeline risks.

PR enrichment bridges this gap by automatically connecting pull requests to planned work. This gives leaders real-time insights into capacity, eliminates guesswork, and highlights gaps, overlaps, or bottlenecks early. The result is better sprint planning, resource allocation, and confident forecasting based on objective data (not manual inputs).

Accurate capacity planning is only possible if project management and source controls are consistently connected and communicating. LinearB provides not only the dashboards to measure, but also the automations to make the measuring effective.

Balance your company’s investment profile

A healthy investment profile requires knowing how engineering time is spent. Without visibility, teams risk overcommitting to new features, tech debt, or support work–at the expense of the others. Over time, this compounds into hours of misallocated time.

PR enrichment links every PR to an initiative or category, giving leaders a clear view of resource allocation. Since you can easily track the distribution of work across key investment areas, you can spot imbalances early, course-correct when necessary, and ensure your team’s capacity is aligned with business priorities. This makes it easy to spot imbalances early and adjust. Whether you aim for a 70/20/10 split between feature work, maintenance, and innovation (or you target something else entirely) enriched PR data enables smarter trade-offs and keeps your priorities aligned.

Finally unlock cost capitalization for your engineering efforts

Cost capitalization depends on clearly linking engineering work to capitalizable projects like new feature development. Without consistent connections, it’s difficult to justify which work qualifies, leading to missed opportunities or even audit risks.

 PRs that are labeled and connected with project management tools can be tracked in reporting. Capitalizing R&D costs allows companies to match expenses with future revenues, providing a more accurate view of the company's long-term investment in innovation.

PR enrichment automates this linkage, creating an audit trail that makes it easy to categorize eligible work. Finance teams gain clearer reporting, engineering leaders gain leverage, and no manual overhead is added for developers.

By automating PR enrichment, teams remove the burden of manual tracking, improve delivery forecasting, and ensure engineering work is accurately measured as a capital business asset. This results in less friction, better insights, and stronger financial alignment across your organization. This earns your engineering team more leverage and works as a force multiplier.