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

GitHub Action

Label Commenter

v1.8.2

Label Commenter Action

Label Commenter Action thumbnail

license release GitHub release date Release Feed

This action is one of label triggered GitHub Actions for posting a template message. After commenting, it can automatically close or reopen issues. Of course, it also can manage pull requests.

This Action was submitted to the GitHub Actions Hackathon and featured by GitHub. (Featured actions from the GitHub Actions Hackathon - The GitHub Blog)

Table of Contents

Table of Contents are generated with DocToc

Getting Started

Create your GitHub Actions workflow file and Label Commenter Action setting file. Commit those and push to the remote default branch.

Workflow Setting

# .github/workflows/label-commenter.yml

name: Label Commenter

on:
  issues:
    types:
      - labeled
      - unlabeled
  pull_request_target:
    types:
      - labeled
      - unlabeled

jobs:
  comment:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
        with:
          ref: main

      - name: Label Commenter
        uses: peaceiris/actions-label-commenter@v1
        # with:
          # config_file: .github/label-commenter-config.yml

Action Setting

# .github/label-commenter-config.yml

comment:
  header: Hi, there.
  footer: "\
    ---\n\n
    > This is an automated comment created by the [peaceiris/actions-label-commenter]. \
    Responding to the bot or mentioning it won't have any effect.\n\n
    [peaceiris/actions-label-commenter]: https://github.com/peaceiris/actions-label-commenter
    "

labels:
  - name: invalid
    labeled:
      issue:
        body: Please follow the issue templates.
        action: close
      pr:
        body: Thank you @{{ pull_request.user.login }} for suggesting this. Please follow the pull request templates.
        action: close
    unlabeled:
      issue:
        body: Thank you for following the template. The repository owner will reply.
        action: open
  - name: forum
    labeled:
      issue:
        body: |
          Please ask questions about GitHub Actions at the following forum.
          https://github.community/c/github-actions
        action: close
  - name: wontfix
    labeled:
      issue:
        body: This will not be worked on but we appreciate your contribution.
        action: close
    unlabeled:
      issue:
        body: This has become active again.
        action: open
  - name: duplicate
    labeled:
      issue:
        body: This issue already exists.
        action: close
  - name: good first issue
    labeled:
      issue:
        body: This issue is easy for contributing. Everyone can work on this.
  - name: proposal
    labeled:
      issue:
        body: Thank you @{{ issue.user.login }} for suggesting this.
  - name: locked (spam)
    labeled:
      issue:
        body: |
          This issue has been **LOCKED** because of spam!

          Please do not spam messages and/or issues on the issue tracker. You may get blocked from this repository for doing so.
        action: close
        locking: lock
        lock_reason: spam
      pr:
        body: |
          This pull-request has been **LOCKED** because of spam!

          Please do not spam messages and/or pull-requests on this project. You may get blocked from this repository for doing so.
        action: close
        locking: lock
        lock_reason: spam
  - name: locked (heated)
    labeled:
      issue:
        body: |
          This issue has been **LOCKED** because of heated conversation!

          We appreciate exciting conversations, as long as they won't become too aggressive and/or emotional.
        locking: lock
        lock_reason: too heated
      pr:
        body: |
          This pull-request has been **LOCKED** because of heated conversation!

          We appreciate exciting conversations, as long as they won't become too aggressive and/or emotional.
        locking: lock
        lock_reason: too heated
    unlabeled:
      issue:
        body: |
          This issue has been unlocked now.
        locking: unlock
      pr:
        body: |
          This pull-request has been unlocked now.
        locking: unlock
  - name: locked (off-topic)
    labeled:
      issue:
        body: |
          This issue has been **LOCKED** because of off-topic conversations!

          Please use our other means of communication for casual chats.
        action: close
        locking: lock
        lock_reason: off-topic
  - name: locked (resolved)
    labeled:
      issue:
        body: |
          This issue has been **LOCKED** because of it being resolved!

          The issue has been fixed and is therefore considered resolved.
          If you still encounter this or it has changed, open a new issue instead of responding to solved ones.
        action: close
        locking: lock
        lock_reason: resolved

Options

Set a Path to Action Setting File

Default is .github/label-commenter-config.yml

- name: Label Commenter
  uses: peaceiris/actions-label-commenter@v1
  with:
    config_file: ./path_to/your_config.yml

Set a Personal Access Token

Default is ${{ github.token }}

- name: Label Commenter
  uses: peaceiris/actions-label-commenter@v1
  with:
    github_token: ${{ secrets.GH_PAT }}

Enable Debug Mode

- name: Label Commenter
  uses: peaceiris/actions-label-commenter@v1
  env:
    RUNNER_DEBUG: 1

Work with Issue Template

Here is a proposal issue template: .github/ISSUE_TEMPLATE/proposal.md

---
name: Proposal
about: Suggest an idea for this project
title: 'proposal: This is a sample title'
labels: proposal
assignees: peaceiris
---

Issue body here...

Scenario:

  1. When a user opens an issue with the proposal template, the proposal label will be added automatically.
  2. This action can detect that labeled event and create a template comment of proposal.

Work with Other Auto Label Actions

Authenticating with the GITHUB_TOKEN - GitHub Docs

When you use the repository's GITHUB_TOKEN to perform tasks on behalf of the GitHub Actions app, events triggered by the GITHUB_TOKEN will not create a new workflow run. This prevents you from accidentally creating recursive workflow runs. For example, if a workflow run pushes code using the repository's GITHUB_TOKEN, a new workflow will not run even when the repository contains a workflow configured to run when push events occur.

You need to provide a personal access token (with public_repo for a public repository, repo for a private repository) to an auto label GitHub Actions or GitHub Bot like actions/labeler.

# .github/workflows/labeler.yml
name: "Pull Request Labeler"

on:
  - pull_request_target

jobs:
  triage:
    runs-on: ubuntu-18.04
    steps:
    - uses: actions/labeler@v3
      with:
        repo-token: "${{ secrets.GH_PAT }}"

Scenario:

  1. Someone updates the README.md and opens a pull-request.
  2. actions/labeler adds the documentation label automatically.
  3. peaceiris/actions-label-commenter creates the template comment automatically.

Examples

Comment and Close Invalid Format Issue or Pull Request

Comment and Close Invalid Format Issue or Pull Request - peaceiris/actions-label-commenter GitHub Action

Reopen Issue or Pull Request

Reopen Issue or Pull Request - peaceiris/actions-label-commenter GitHub Action

Comment and Close Wontfix Issue or Pull Request

Comment and Close Wontfix Issue or Pull Request - peaceiris/actions-label-commenter GitHub Action

Comment and Close Duplicate Issue or Pull Request

Comment and Close Duplicate Issue or Pull Request - peaceiris/actions-label-commenter GitHub Action

Comment Multiple Line

Comment Multiple Line - peaceiris/actions-label-commenter GitHub Action

Comment and Close Multiple Issues or Pull Requests

Select Label Labeled
Comment and Close Multiple Issues or Pull Requests - peaceiris/actions-label-commenter GitHub Action Comment and Close Multiple Issues or Pull Requests - peaceiris/actions-label-commenter GitHub Action

Multiple issues will be closed.

Lock or Unlock issue or Pull Request

Lock or Unlock issue or Pull Request - peaceiris/actions-label-commenter GitHub Action

Changelog

License

Maintainer