Skip to content

abirismyname/create-discussion

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

Repository files navigation

Create-Discussion

Create a new GitHub Discussion with GitHub Actions

code style: prettier

About

This action allows you to create a new GitHub Discussion with GitHub Actions.

Usage

In your workflow, to create a new discussion, include a step like this:

    - name: Create a new GitHub Discussion
      id: create-discussion
      uses: abirismyname/create-discussion@v1.x
      env:
        GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}      
      with:
        title: Feelings
        body: |
          Let's talk!
        repository-id: ${{ secrets.REPO_ID }}
        category-id: ${{ secrets.CAT_ID }}  
    - name: Print discussion url and id
      run: |
        echo discussion-id: ${{steps.create-discussion.outputs.discussion-id}} 
        echo discussion-url: ${{steps.create-discussion.outputs.discussion-url}}             

Inputs

The following inputs are required:

  • title: The title of the discussion
  • body: The body of the discussion
  • body-filepath: The path to a file containing the body of the new discussion (takes precedence over body).**
  • repository-id: The ID of the repository for the new discussion
  • category-id: The ID of the category for the new discussion.

** If you are using body-filepath be sure to add a actions/checkout action before this action in the workflow to make sure the file exists in the action workspace.

Obtaining the repository-id and category-id

You can find repository-id and category-id using GitHub's GraphQL Explorer. Replace <REPO_NAME> and <REPO_OWNER> with the repo you want to update.

query MyQuery {
  repository(name: "<REPO_NAME>", owner: "<REPO_OWNER>") {
    id
    discussionCategories(first: 10) {
      edges {
        node {
          id
          name
        }
        cursor
      }
    }
  }
}

Outputs

This action provides the following outputs:

  • discussion-id: ID of created discussion
  • discussion-url: URL of created discussion

Example

This repo contains an example workflow that contains this action.

Credits