2025-11-07 11:56:36 -05:00
2025-11-07 11:34:28 -05:00
2025-11-07 11:56:36 -05:00

Terraform/OpenTofu PR Commenter

This action posts the results of Terraform or OpenTofu commands (fmt, init, plan, validate) as pull request comments on GitHub or Gitea. It is designed to work with CI workflows and ensures every command posts a comment, even if it succeeds.


Features

  • Supports Terraform and OpenTofu.
  • Works on GitHub Actions and Gitea Actions.
  • Posts fmt and plan outputs with syntax-highlighted diffs.
  • init and validate outputs are posted in expandable <details> blocks.
  • Automatically updates existing comments or creates new ones.
  • Supports per-file diffs for fmt.

Inputs

Input Description Required Default
command Command type (fmt, init, plan, validate) Yes
commenter_input Stdout or newline-separated file list from the previous step Yes
commenter_exitcode Exit code from the previous step Yes
pr_number Pull request number No
pr_comments_url URL for PR comments API No
pr_comment_uri URI for individual PR comment API No
github_token GitHub token (for GitHub Actions) No
gitea_token Gitea token (for Gitea Actions) No
gitea_action Set to true if running in Gitea Actions No false
gitea_api_url Gitea API URL No
gitea_repository Gitea repository (owner/repo) No
highlight_changes Enable diff highlighting No true
tf_workspace Terraform/OpenTofu workspace No default

Usage

GitHub Actions Example

- name: Tofu Plan PR Comment
  uses: ./actions/tf-pr-comment
  with:
    command: plan
    commenter_input: ${{ steps.tofu-plan.outputs.plan-output }}
    commenter_exitcode: ${{ steps.tofu-plan.outputs.exitcode }}
  env:
    PR_NUMBER: ${{ needs.check-and-create-pr.outputs.pr_number }}
    PR_COMMENTS_URL: ${{ needs.check-and-create-pr.outputs.pr_comments_url }}
    PR_COMMENT_URI: ${{ needs.check-and-create-pr.outputs.pr_comment_uri }}
    GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}

Notes

  • For fmt, it is recommended to pass a newline-separated list of files from a previous step to properly generate per-file diffs.
  • The action automatically creates or updates PR comments, so duplicate comments are avoided.
  • Diff syntax highlighting works on GitHub. On Gitea, diffs are shown in plain text.
S
Description
No description provided
Readme MIT 54 KiB
Languages
Shell 100%