GitHub Action
Comment Pull Request
A GitHub action that comments with a given message the pull request linked to the pushed branch. You can even put dynamic data thanks to Contexts and expression syntax.
on: pull_request
jobs:
example_comment_pr:
runs-on: ubuntu-latest
name: An example job to comment a PR
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Comment PR
uses: thollander/actions-comment-pull-request@v2
with:
message: |
Hello world ! :wave:
Thanks to the filePath
input, a file content can be commented.
You can either pass an absolute filePath or a relative one that will be by default retrieved from GITHUB_WORKSPACE
.
(Note that if both a message
and filePath
are provided, message
will take precedence.)
- name: PR comment with file
uses: thollander/actions-comment-pull-request@v2
with:
filePath: /path/to/file.txt
You can also set some reactions on your comments through the reactions
input.
It takes only valid reactions and adds it to the comment you've just created. (See https://docs.github.com/en/rest/reactions#reaction-types)
- name: PR comment with reactions
uses: thollander/actions-comment-pull-request@v2
with:
message: |
Hello world ! :wave:
reactions: eyes, rocket
You can explicitly input which pull request should be commented on by passing the pr_number
input.
That is particularly useful for manual workflow for instance (workflow_run
).
...
- name: Comment PR
uses: thollander/actions-comment-pull-request@v2
with:
message: |
Hello world ! :wave:
pr_number: 123 # This will comment on pull request #123
Editing an existing comment is also possible thanks to the comment_tag
input.
Thanks to this parameter, it will be possible to identify your comment and then to upsert on it. If the comment is not found at first, it will create a new comment.
That is particularly interesting while committing multiple times in a PR and that you just want to have the last execution report printed. It avoids flooding the PR.
...
- name: Comment PR with execution number
uses: thollander/actions-comment-pull-request@v2
with:
message: |
_(execution **${{ github.run_id }}** / attempt **${{ github.run_attempt }}**)_
comment_tag: execution
Note: the input mode
can be used to either upsert
(by default) or recreate
the comment (= delete and create)
Name | Description | Required | Default |
---|---|---|---|
GITHUB_TOKEN |
Token that is used to create comments. Defaults to ${{ github.token }} | ✅ | |
message |
Comment body | ||
filePath |
Path of the file that should be commented | ||
reactions |
List of reactions for the comment (comma separated). See https://docs.github.com/en/rest/reactions#reaction-types | ||
pr_number |
The number of the pull request where to create the comment | current pull-request/issue number (deduced from context) | |
comment_tag |
A tag on your comment that will be used to identify a comment in case of replacement | ||
mode |
Mode that will be used to update comment (upsert/recreate) | upsert |
The build steps transpiles the src/main.ts
to lib/index.js
which is used in a NodeJS environment.
It is handled by vercel/ncc
compiler.
$ npm run build