Closed dhruvg20 closed 4 years ago
We will make the following changes to the current workflow file:
actions/checkout
action so we can read the templated response file located at .github/ISSUE_RESPONSES/comment.md
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: 9879332,
content_id: context.payload.issue.id,
content_type: "Issue"
});
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
I have created a new issue where we will continue this lesson. Click the link to meet me over there.
Super awesome job @dhruvg20! As you can see, your workflow still commented on this issue, but it did not add it to the project board!
Don't hesitate to experiment with changes to the current workflow to see if what kind of logic you can implement to change the response to an issue based on the conditions that surround your own software development lifecycle!
As we wrap this course up it's important that we revisit the learning points you encountered along the way.
Things you learned in this course:
That should give you quite the start with incorporating the GitHub Script action into your workflows!
Congratulations on finishing this course. You will receive no further responses from me, however further action taken in this repo could trigger workflow runs, because of this we recommend commenting out the workflow file if you plan to keep this repository for notes!
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.