This content originally appeared on DEV Community and was authored by Atharva Shirdhankar
My Workflow
Motivation for Building building this Github Action :
If you are Open Source Maintainer or Contributor or a developer working with team which has huge number of members then you have definitely used Slack at one point. And as a developer we even used Github.
Since I m Open Source Contributor and Maintainer many a times I have to find issues and take help regarding those from community members to solve that issue or direct the beginner contributor to proper issue . And mostly I have communicate and collaborate with other maintainer and contributors on Slack so I thought building this action which will surely save time of Maintainers and contributors .
Features:
- Greet - When contributor of the project creates pull request a "Thank you" greet is send .
- Issue Notification - When someone creates new issue few context like issue title, issue creator/contributor username and link to the github issue is shared on Slack channel.
- Issue Notification - When someone creates pull request few context like issue title, pull request creator/contributor username and link to the github issue is shared on Slack channel.
What will this github action do? If I use it in my github project!!
- If you are maintainer of project this github action will surely save your time . And let help newbie contributors effectively and discuss them about the following issue on slack. You can direct new contributors to the good first issue and direct them properly.
Submission Category:
Maintainer Must-Haves
Yaml File or Link to Code:
StarTrooper08 / Notify-Bot
Maintainer Friendly Github Actions
Notify-Bot
Features :
- Notification: Sends Message on Slack channel when someone create's issue or Pull Request.
- Greeting: Greets to the Contributors when they create new Pull Request
How to get and configure Tokens :
To use this action + workflow we need 3 Tokens/API keys/Security keys:
They are as following:
- Github Token : You don't need worry about this token since it will be automatically configured by Github.
- Tenor gif Token:
- Go ahead and visit the tenor gif developer portal and sign up with gmail and get your free api key.
- After getting your Tenor Token you can go to your github repository where you want to setup this action then go to settings of that repository .
- Search for 'secrets' option. And then click on new repository secrets.
- Give it a name and paste the token(eg.name: TENOR_TOKEN value: copied token from tenor gif portal).
- Slack App Token:
- Go to Slack App portal and click on 'Create an App'
After clicking on 'create an app' you will be asked whether you want to start from scratch or from app manifest we will go for 'from scratch option'
Then one popup will arise asking for app name and to use it in which slack workspace.
Now search for Review scopes something like this option. Click on that button.
You will see OAuth and Permissions option in the left side bar. Go to that option and scroll little down and click on 'install to workspace' to the workspace(workspace which we selected at the start)
After this above step you will see your slack app token copy it and store it in repository secrets similar to tenor token.
- Lastly invite your app into the slack channel you want.
How to setup this action + workflow on our repository:
- After the configuring the token stuff you are just few steps away.
- Create
.github/workflows/my_action.yml
directory. - After that paste this yml code into
my_action.yml
file.
name: Notify Bot
on:
pull_request:
branches: [ master , main ]
types: [opened,closed]
issues:
types: [opened]
jobs:
Greet:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: StarTrooper08/Notify-Bot
with:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
TENOR_TOKEN: ${{secrets.TENOR_TOKEN}}
notifyPR:
runs-on: ubuntu-latest
steps:
- name: Notify slack about PR
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
uses: abinoda/slack-action@master
with:
args: '{\"channel\":\"channel_id\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Github Pull Request:* ${{ github.event.pull_request.title }}\"}},{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Contributor Github Username:* ${{ github.event.pull_request.user.login }}\n*Request State:* ${{ github.event.pull_request.state }}\"}},{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"<${{ github.event.pull_request.html_url }}|View Pull Request>\"}}]}'
notifyissue:
runs-on: ubuntu-latest
steps:
- name: Notify slack about issue
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
uses: abinoda/slack-action@master
with:
args: '{\"channel\":\"channel_id\",\"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Github Issue:* ${{ github.event.issue.title }}\"}},{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Contributor Github Username:* ${{ github.event.issue.user.login }}\n*Issue State:* ${{ github.event.issue.state }}\"}},{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"<${{ github.event.issue.html_url }}|View Issue>\"}}]}'
Note: Wherever I have written
channel_id
inargs
of thenotifyissue
andnotifyPR
jobs in my_action.yml file put the id of the channel where you have install your slack app. You will get the channel id in the link of slack workspace
https://app.slack.com/client/[workspace ID]/[channel ID]
Congrats You have Successfully added the Github Workflow🎉🚀.
Now you can create new pull request and issue and see the Magic happening ✨!!!
This content originally appeared on DEV Community and was authored by Atharva Shirdhankar
Atharva Shirdhankar | Sciencx (2021-12-07T23:19:32+00:00) Notify Bot : Github Action + Workflow. Retrieved from https://www.scien.cx/2021/12/07/notify-bot-github-action-workflow/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.