GitHub Actions + Light AI를 사용하여 SlackBot 만들기
Github 액션이란?
작업의 공식 Github 정의는 다음과 같습니다.
GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline. You can create workflows that build and test every pull request to your repository, or deploy merged pull requests to production.
Github용 SlackBot 만들기
우리는 Github용 SlackBot을 생성할 것입니다. 이 SlackBot은 풀 요청이 있을 때마다 Slack 채널로 메시지를 보낼 것입니다.
워크플로우 이해
GitHub Actions 워크플로에서 발생하는 모든 일을 분석해 보겠습니다.
Github 작업 구성
새 프로젝트 만들기 또는 기존 프로젝트로 이동
Add File
를 클릭한 다음 Create New File
를 클릭합니다.이제 워크플로를 추가하고 다음을 복사하여 붙여넣습니다.
.github/workflows/slackbot.yml
워크플로 만들기
이 워크플로를 생성하기 위해 Light AI 베타를 사용하여 GitHub 작업을 생성할 것입니다. 이렇게 하면 시간이 절약됩니다.
Light Docs에서 Github Actions를 선택하고
Create a GitHub Actions that sends a slack notification on a pull request
를 입력하겠습니다.Light Docs™의 출력을 복사하여 작업 흐름에 붙여넣습니다. 무슨 일이 일어나고 있는지 더 잘 이해하기 위해 워크플로를 분석하는 데 시간을 할애하겠습니다.
name: SlackBot for Pull Requests
push:
branches:
- main
pull_request:
branches: [ "main" ]
여기서는 Github Action의 이름을 지정하고 PR을 위한 분기를 지정합니다.
작업 및 빌드 추가
워크플로우는 많은 작업으로 구성될 수 있습니다. 이 경우 빌드라는 단일 작업만 사용합니다.
jobs:
build:
runs-on:ubuntu-latest
단계 및 체크아웃
여기에서 체크아웃 코드인 한 단계만 추가합니다.
steps:
- name: Check out Code
uses: actions/checkout@v2
Slack API 키 + 워크플로 추가
이제 이 마지막 단계가 작동하려면 슬랙 계정이 필요합니다. 이 부분은 조금 까다로울 수 있습니다.
-name: Slack Notifcation
uses: rtCamp/action-slack-notify@master
env:
SLACK_WEBHOOK_URL:${{secrets.SLACK_WEBHOOK_URL}}
MESSAGE: "A Pull Request was Made!!"
Here is the complete Github Action so your
.yaml
is written correctly.
name: Slack Notification on Pull Request
# Controls when the workflow will run
on:
# Triggers the workflow on pull request events but only for the "main" branch
push:
branches:
- main
pull_request:
branches: [ "main" ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Check out code
uses: actions/checkout@v2
# Sends a Slack notification
- name: Slack Notification
uses: rtCamp/action-slack-notify@master
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK}}
MESSAGE: "A new pull request was made!"
이제 이 워크플로가 있으므로 이를 커밋하면 빌드가 실패하게 됩니다. 다음 섹션에서 이 문제를 해결할 것입니다.
Github 비밀 생성 및 WebHook 설치
이제
Github Secret
를 노출하지 않도록 Slack WebHook
를 생성해야 합니다.repo
로 이동하여 settings
를 클릭해 보겠습니다.create a new repository secret
를 클릭해야 합니다.이름을
Secret
SLACK_WEBHOOK
귀하의
slackurl/apps
로 이동하십시오. 이 경우에는 light.slack.com/apps
가 됩니다.이제 검색 창으로 이동하여
Incoming WebHooks
를 입력합니다.Click
Add to Slack
and select your Workspace
Add Incoming WebHook Integration
를 클릭하면 WebHook URL
를 볼 수 있는 페이지로 이동합니다. 해당 URL을 복사하여 붙여넣고 Github Repo로 돌아갑니다.URL은 하단을 향하고 다음과 같이 표시됩니다.
Settings
를 클릭한 다음 아래로 내려가서 Secrets
를 클릭한 다음 Actions
를 클릭합니다.New Repository Secret
를 클릭한 다음 방금 복사한 WebHook URL을 추가합니다.다음과 같아야 합니다.
이제 리포지토리를 복제하고 Visual Studio 코드에서 엽니다.
먼저 최신 변경 사항
git pull
을 가져옵니다. 그런 다음 풀 요청 기능을 테스트할 수 있도록 새 브랜치를 생성합니다.git checkout -b slack-branch
이제 빈 커밋을 사용하여 Github 작업을 트리거하겠습니다.
git commit --allow-empty -m "dev: empty commit for testing"
Github 작업이 실행되고 완료되었음을 볼 수 있습니다. 완료되면 Slack으로 이동하여 이전 설정 프로세스에서 선택한 채널에 SlackBot 알림이 표시되는지 확인합니다.
이제 우리는 워크플로를 업데이트해야 합니다. 현재 푸시 및 풀에서만 작동하도록 설정되어 있고 풀 요청에서만 작동하기를 원하기 때문에 우리 팀의 누군가가 PR을 만들 때 알림을 받습니다.
푸시 트리거가 없는 업데이트된 흐름입니다.
name: Slack Notification on Pull Request
# Controls when the workflow will run
on:
# Triggers the workflow on pull request events but only for the "main" branch
pull_request:
branches: [ "main" ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Check out code
uses: actions/checkout@v2
# Sends a Slack notification
- name: Slack Notification
uses: rtCamp/action-slack-notify@master
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK}}
MESSAGE: "A new pull request was made!"
다음 GitHub 커밋에서 풀 요청을 볼 수 있습니다.
create a pull request
또는 new pull request
를 클릭합니다. Commit Changes
을 클릭합니다.이제 슬랙 알림이 표시됩니다!
축하합니다. GitHub Actions + Light AI를 사용하여 SlackBot을 만들었습니다.
신용 거래:
Github Actions Output Generated by LightAI
질문이나 생각이 있으시면 [email protected]으로 연락해 주십시오.
Reference
이 문제에 관하여(GitHub Actions + Light AI를 사용하여 SlackBot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lightblog/create-a-slackbot-using-github-actions-light-ai-1gkg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)