Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
launchdarkly

GitHub Action

LaunchDarkly Code References in Pull Request

v1.3.0

LaunchDarkly Code References in Pull Request

launchdarkly

LaunchDarkly Code References in Pull Request

Find references to feature flags in your pull request

Installation

Copy and paste the following snippet into your .yml file.

              

- name: LaunchDarkly Code References in Pull Request

uses: launchdarkly/[email protected]

Learn more about this action in launchdarkly/find-code-references-in-pull-request

Choose a version

LaunchDarkly Find Code References in Pull Request GitHub action

Adds a comment to a pull request (PR) whenever a feature flag reference is found in a PR diff.

An example code references PR comment

Permissions

This action requires a LaunchDarkly access token with:

  • Read access for the designated project-key
  • (Optional) the createFlagLink action, if you have set the create-flag-links input to true

Access tokens should be stored as an encrypted secret.

To add a comment to a PR, the repo-token used requires write permission for PRs. You can also specify permissions for the workflow with:

permissions:
  pull-requests: write

Usage

Basic:

on: pull_request

jobs:
  find-flags:
    runs-on: ubuntu-latest
    name: Find LaunchDarkly feature flags in diff
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Find flags
        uses: launchdarkly/find-code-references-in-pull-request@v1
        id: find-flags
        with:
          project-key: default
          environment-key: production
          access-token: ${{ secrets.LD_ACCESS_TOKEN }}
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          create-flag-links: true

Use outputs in workflow:

on: pull_request

jobs:
  find-feature-flags:
    runs-on: ubuntu-latest
    name: Find LaunchDarkly feature flags in diff
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Find flags
        uses: launchdarkly/find-code-references-in-pull-request@v1
        id: find-flags
        with:
          project-key: default
          environment-key: production
          access-token: ${{ secrets.LD_ACCESS_TOKEN }}
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          create-flag-links: true

      # Add or remove labels on PRs if any flags have changed
      - name: Add label
        if: steps.find-flags.outputs.any-changed == 'true'
        run: gh pr edit $PR_NUMBER --add-label ld-flags
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PR_NUMBER: ${{ github.event.pull_request.number }}
      - name: Remove label
        if: steps.find-flags.outputs.any-changed == 'false'
        run: gh pr edit $PR_NUMBER --remove-label ld-flags
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          PR_NUMBER: ${{ github.event.pull_request.number }}

Flag aliases

This action has full support for code reference aliases. If the project has an existing .launchdarkly/coderefs.yaml file, it will use the aliases defined there.

You can find more information on aliases at launchdarkly/ld-find-code-refs.

Monorepos

This action does not support monorepos or searching for flags across LaunchDarkly projects.

Inputs

name description required default
repo-token

Token to use to authorize comments on PR. Typically the GITHUB_TOKEN secret or equivalent github.token.

true ""
access-token

LaunchDarkly access token

true ""
project-key

LaunchDarkly project key

false default
environment-key

LaunchDarkly environment key for creating flag links

false production
placeholder-comment

Comment on PR when no flags are found. If flags are found in later commits, this comment will be updated.

false false
include-archived-flags

Scan for archived flags

false true
max-flags

Maximum number of flags to find per PR

false 5
base-uri

The base URI for the LaunchDarkly server. Most members should use the default value.

false https://app.launchdarkly.com
check-extinctions

Check if removed flags still exist in codebase

false true
create-flag-links

Create links to flags in LaunchDarkly. To use this feature you must use an access token with the createFlagLink role. To learn more, read Flag links.

false false

Inputs

parameter description required default
repo-token Token to use to authorize comments on PR. Typically the GITHUB_TOKEN secret or equivalent github.token. true
access-token LaunchDarkly access token true
project-key LaunchDarkly project key false default
environment-key LaunchDarkly environment key for creating flag links false production
placeholder-comment Comment on PR when no flags are found. If flags are found in later commits, this comment will be updated. false false
include-archived-flags Scan for archived flags false true
max-flags Maximum number of flags to find per PR false 5
base-uri The base URI for the LaunchDarkly server. Most users should use the default value. false https://app.launchdarkly.com
check-extinctions Check if removed flags still exist in codebase false true

Outputs

parameter description
any-modified Returns true if any flags have been added or modified in PR
modified-flags Space-separated list of flags added or modified in PR
modified-flags-count Number of flags added or modified in PR
any-removed Returns true if any flags have been removed in PR
removed-flags Space-separated list of flags removed in PR
removed-flags-count Number of flags removed in PR
any-changed Returns true if any flags have been changed in PR
changed-flags Space-separated list of flags changed in PR
changed-flags-count Number of flags changed in PR
any-extinct Returns true if any flags have been removed in PR and no longer exist in codebase. Only returned if check-extinctions is true.
extinct-flags Space-separated list of flags removed in PR and no longer exist in codebase. Only returned if check-extinctions is true.
extinct-flags-count Number of flags removed in PR and no longer exist in codebase. Only returned if check-extinctions is true.