﻿---
title: changelog evaluate-pr cli command
description: Evaluate a pull request for changelog generation eligibility. Performs pre-flight checks (body-only edit, bot loop detection, manual edit detection),...
url: https://docs-v3-preview.elastic.dev/elastic/docs-builder/pull/2736/cli/changelog/evaluate-pr
products:
  - Elastic Docs Builder
---

# changelog evaluate-pr cli command
```bash
docs-builder changelog evaluate-pr \
  --config <file> \
  --owner <string> \
  --repo <string> \
  --pr-number <int> \
  --pr-title <string> \
  --pr-labels <string> \
  --head-ref <string> \
  --head-sha <string> \
  [options]
```

<note>
  This command is intended for CI automation. It is used internally by the changelog GitHub Actions and is not typically invoked directly by users.
</note>

Evaluate a pull request for changelog generation eligibility. Performs pre-flight checks (body-only edit, bot loop detection, manual edit detection), loads the changelog configuration, checks label-based creation rules, resolves the PR title and type, and sets GitHub Actions outputs for downstream steps.

## Options

<definitions>
  <definition term="--config string required">
    Path to the changelog.yml configuration file
    **Constraints:** extensions: yml, yaml
  </definition>
  <definition term="--owner string required">
    GitHub repository owner
  </definition>
  <definition term="--repo string required">
    GitHub repository name
  </definition>
  <definition term="--pr-number int required">
    Pull request number
  </definition>
  <definition term="--pr-title string required">
    Pull request title
  </definition>
  <definition term="--pr-labels string required">
    Comma-separated PR labels
  </definition>
  <definition term="--head-ref string required">
    PR head branch ref
  </definition>
  <definition term="--head-sha string required">
    PR head commit SHA
  </definition>
  <definition term="--event-action string">
    Optional: GitHub event action (e.g., opened, synchronize, edited). When omitted, body-only-edit and bot-loop checks are skipped.
  </definition>
  <definition term="--[no-]title-changed">
    Whether the PR title changed (for edited events)
    **Default:** `false`
  </definition>
  <definition term="--[no-]body-changed">
    Whether the PR body changed (for edited events)
    **Default:** `false`
  </definition>
  <definition term="--[no-]strip-title-prefix">
    Remove square-bracket prefixes from the PR title
    **Default:** `false`
  </definition>
  <definition term="--bot-name string">
    Bot login name for loop detection
    **Default:** `github-actions[bot]`
  </definition>
  <definition term="-l --log-level enum">
    Minimum log level.
    **Values:** trace, debug, information, warning, error, critical, none
    **Default:** `information`
  </definition>
  <definition term="-c --config-source enum">
    Override the configuration source: local, remote
    **Values:** local, remote, embedded
  </definition>
  <definition term="--[no-]skip-private-repositories">
    Skip cloning private repositories
  </definition>
</definitions>


## GitHub Actions outputs


| Output                        | Description                                                                                                                                                                                                                                              |
|-------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `status`                      | Evaluation result: `skipped`, `manually-edited`, `no-title`, `no-label`, or `proceed`                                                                                                                                                                    |
| `should-generate`             | `true` if `changelog add` should run                                                                                                                                                                                                                     |
| `should-upload`               | `true` if the artifact should be uploaded                                                                                                                                                                                                                |
| `title`                       | Resolved PR title                                                                                                                                                                                                                                        |
| `description`                 | Release note extracted from the PR body (when `extract.release_notes` is enabled and a release note is found). Long or multi-line release notes (over 120 characters) are placed here. Passed downstream as `CHANGELOG_DESCRIPTION` for `changelog add`. |
| `type`                        | Resolved changelog type                                                                                                                                                                                                                                  |
| `products`                    | Comma-separated product specs resolved from PR labels via `pivot.products` mappings                                                                                                                                                                      |
| `label-table`                 | Markdown table of configured label-to-type mappings                                                                                                                                                                                                      |
| `product-label-table`         | Markdown table of configured label-to-product mappings                                                                                                                                                                                                   |
| `existing-changelog-filename` | Filename of a previously committed changelog for this PR (if any)                                                                                                                                                                                        |


## Environment variables


| Variable       | Purpose                                                            |
|----------------|--------------------------------------------------------------------|
| `GITHUB_TOKEN` | GitHub API authentication for bot-commit and manual-edit detection |


## Examples

```sh
docs-builder changelog evaluate-pr \
  --config docs/changelog.yml \
  --owner elastic \
  --repo elasticsearch \
  --pr-number 42 \
  --pr-title "Add new feature" \
  --pr-labels "enhancement,Team:Core" \
  --head-ref feature-branch \
  --head-sha abc123 \
  --event-action opened \
  --strip-title-prefix
```