Skip to content

A GitHub Action for commenting on pull requests from workflows.

License

Notifications You must be signed in to change notification settings

yumemi-inc/comment-pull-request

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI

Comment Pull Request

A GitHub Action for commenting on pull requests from workflows. Previous comments by the same job are deleted (or hidden or edited), thus avoiding flooding reports of checks based on old commits.

Usage

See action.yml for available action inputs. Note that this action requires pull-requests: write permission.

Supported workflow trigger events

Basically, this action is used in pull_request events, but you can use it in any trigger by specifying pull-request-number input (default is ${{ github.event.pull_request.number }}).

Even if this input is omitted, the pull request number will be searched for using the commit SHA specified in sha input (default is ${{ github.sha }}), but if it cannot be found, explicitly specify pull-request-number input. For example, in the case of merge queue, you cannot search using ${{ github.sha }}, so do it like this.

Basic

Specify comment input.

- uses: yumemi-inc/comment-pull-request@v1
  with:
    comment: |
      # Test coverage report

      ...

In this case, previous comments will be deleted.

Change how previous comments are handled

By specifying previous-comment input, you can change the handling of previous comments. Specify one of delete (default), hide, edit, or keep (do nothing).

- uses: yumemi-inc/comment-pull-request@v1
  with:
    previous-comment: 'hide'
    comment: |
      # Test coverage report

      ...

Comments are grouped by the value of grouping-key input (default is ${{ github.workflow }}-${{ github.job }}), and comments in the same group are subject to deletion, etc.

Comments on failure

It is often necessary to separate the contents of comments when a check passes and when it fails. You can define it in one step by using comment-if-failure input.

- run: npm run test
- uses: yumemi-inc/comment-pull-request@v1
  if: cancelled() != true
  with:
    comment: |
      :white_check_mark: All tests passed.
    comment-if-failure: |
      :no_entry_sign: Some tests failed.
      
      See test results from ...

Fail workflows for CI

If you want the workflow to fail along with the comment, specify true for fail input.

Tips

Comment file contents

Sample workflow for commenting file contents.

- id: sample
  run: |
    ls -al > ./sample.txt
    {
      delimiter="$(openssl rand -hex 8)"
      echo "file<<$delimiter"
      cat ./sample.txt
      echo "$delimiter"
    } >> "$GITHUB_OUTPUT"
- uses: yumemi-inc/comment-pull-request@v1
  with:
    comment: |
      <details>
      <summary>sample.txt</summary>

      ${{ steps.sample.outputs.file }}
      </details>

ref: Multiline strings

User mention

Write the account name after @. For example, to mention the creator of a pull request, write as follows:

comment: |
  @${{ github.actor }} A critical error has occurred.

Guide to job logs and summaries

The URL for the job log and summary is https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}.

To guide this URL with comments, write as follows;

comment: |
  Some tests failed.

  See details from [here](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}).

It is recommended to write reports such as test results and coverage in the summary rather than in comments.

About

A GitHub Action for commenting on pull requests from workflows.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages