marceloserpa / write-github-script

https://lab.github.com/githubtraining/github-actions:-using-github-script
MIT License
0 stars 0 forks source link

Create better comments #6

Closed marceloserpa closed 4 years ago

marceloserpa commented 4 years ago

Create better comments

github-learning-lab[bot] commented 4 years ago

Improving the issue comment

💡Did you know that GitHub Script also grants you access to a full Node.js environment?

Although we wouldn't recommend using GitHub Script to write the logic for complex actions, there are use cases where you may want to leverage using a little more than just the octokit/rest.js API.

One such use case is our issue comment. Right now it is pretty hard coded the way it is making it less than ideal. What if we wanted to display our contribution guide every time an issue was opened?

Instead of writing the guide directly into our workflow, we can use the Node.js File System module to read a file and use it as the body of our issue comment.

If we want access to the files within our repository, we need to make sure we include the actions/checkout action in our workflow as the first step.

github-learning-lab[bot] commented 4 years ago

Use the FS module to use a templated comment

We will make the following changes to the current workflow file:

:keyboard: Activity: Add newly opened issue to project board

  1. Edit the current workflow to have the following contents:

    name: Learning GitHub Script
    
    on:
     issues:
       types: [opened]
    
    jobs:
     comment:
       runs-on: ubuntu-latest
       steps:
         - name: Checkout repo
           uses: actions/checkout@v2
    
         - name: Comment on new issue
           uses: actions/github-script@0.8.0
           with:
             github-token: ${{secrets.GITHUB_TOKEN}}
             script: |
                const fs = require('fs')
                const issueBody = fs.readFileSync(".github/ISSUE_RESPONSES/comment.md", "utf8")
                github.issues.createComment({
                issue_number: context.issue.number,
                owner: context.repo.owner,
                repo: context.repo.repo,
                body: issueBody
                })
    
         - name: Add issue to project board
           if: contains(github.event.issue.labels.*.name, 'bug')
           uses: actions/github-script@0.8.0
           with:
             github-token: ${{secrets.GITHUB_TOKEN}}
             script: |
               github.projects.createCard({
               column_id: 10815337,
               content_id: context.payload.issue.id,
               content_type: "Issue"
               });
    
  2. Commit the workflow changes to this branch.


I am waiting for you to commit the desired changes to this branch before moving on.

I'll respond once you've committed the changes to this branch

github-learning-lab[bot] commented 4 years ago

A new issue has been opened

I have created a new issue where we will continue this lesson. Click the link to meet me over there.