Adding a comment on a Pull Request using Github Actions

github action add comment PR

2 min read | by Jordi Prats

As part of a CI/CD pipeline involving GitHub Actions we might want to be able to add a comment to the PR to notify the user about something:

name: demo_add_comment_pr on:  pull_request:  types: [opened, ready_for_review]  push:  branches:  - '**'  - '!main'  paths:   - cluster-resources/**  - tests/**  workflow_dispatch: (...) 

We can check how we can add comments to PR (or issues) using the GitHub API.

First, we'll need to generate a JSON with the comment we want to add. To do so we can use jq to create the JSON object as follows:

JSON_DATA=$(jq --null-input --arg body "demo comment" '{ "body": $body }') 

Once we have the data ready we can push it as follows to GitHub:

curl -X POST \  $GITHUB_URL \  -H "Content-Type: application/json" \  -H "Authorization: token $GITHUB_TOKEN" \  --data "${JSON_DATA}" 

We can retrieve the GITHUB_URL to add it to the right Pull Request and the GITHUB_TOKEN to authenticate the request by populating these environment variables from the GitHub action definition as follows:

(...) jobs:  ci:  steps:  (...)  - name: Add comment  env:  GITHUB_URL: ${{ github.event.pull_request.comments_url }}  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  (...) 

Posted on 12/12/2022