GitHub Actions를 이용하기 전에 Github & Slack부터 진행하며, Slack 워크스페이스가 만들어져 있다는 가정하에 시작합니다.

 

우선 알림을 받으려고 하는 채널을 생성합니다.

 

그리고 아래에 있는 "앱 추가" 버튼을 누릅니다.

 

"GitHub"를 추가합니다.

 

그 다음은 채널 우클릭 -> 채널 세부정보 보기 -> 통합 -> 앱 에서 앱 추가를 합니다.

GitHub를 추가하시면 됩니다.

그러면 해당 채널에서 위 메시지를 확인할 수 있습니다.

 

/github signin 명령어를 치면 GitHub에 연결할 수 있도록 메시지가 전송됩니다.

버튼을 눌러서 연결할 수 있고, Verification Code를 받으면 위 사진에 있는 Enter code에 입력하면 연동되는 것을 확인할 수 있습니다.

 

이제 계정과 연결을 했으니 GitHub Repository에 연결하도록 합니다.

명령어는 /github subscribe owner/repository 입니다.

여기 드래그된 부분을 owner/repository 자리에 넣어주시면 되겠습니다.

 

이 메시지를 받으셨다면 연결은 완료되었습니다.

 

이제 GitActions와 연동을 하겠습니다.

https://api.slack.com/apps

 

Slack API: Applications | Slack

Your Apps Don't see an app you're looking for? Sign in to another workspace.

api.slack.com

먼저 위 링크를 타고 가서 Create New App 버튼으로 앱을 생성합니다.

 

그리고 Settings -> Basic Information -> Add features and functionality에서 Incoming Webhooks를 누르고 활성화합니다.

 

그 다음 아래에서 Add New Webhook to Workspace 버튼으로 워크스페이스와 채널에 연결합니다.

그러면 이렇게 Webhook URL을 받을 수 있습니다. 이거를 GitHub의 secrets에 넣어줍니다.

 

GitHub -> Settings -> Security -> Secrets and variables -> Actions에 들어가셔서 New repository secret 버튼으로 발급 받은 Webhook URL을 넣어줍니다.

이렇게 등록되어야 합니다.

 

이제 yml 파일을 .github/workflows 경로 내에 작성해야 합니다.

Actions 페이지로 와서 "set up a workflow yourself"를 클릭합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
name: Slack Notification
 
on:
  pull_request:
    branches: [ "master""develop" ]
 
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: action-slack
      uses: 8398a7/action-slack@v3
      with:
        status: ${{ job.status }}
        author_name: www-be
        fields: repo,message,commit,author,action,eventName,ref,workflow,job,took
        if_mention: failure,cancelled
      env:
        SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
      if: always() # Pick up events even if the job fails or is canceled.
 
cs

먼저 name으로 workflow의 이름을 작성합니다.

 

on은 workflow가 실행될 조건을 명시합니다.

보통 push나 pull request를 등록하며, 저는 pull request만 작성했습니다.

 

jobs에는 실행되는 명령어들을 작성합니다.

여기서 secrets에 등록한 SLACK_WEBHOOK_URL을 사용합니다.

그 외 파라미터나 필드 등 설명은 https://action-slack.netlify.app/ 여기서 확인해주시거나 아래 레퍼런스에서 확인해주시면 되겠습니다.

 

등록이 완료되었다면 이렇게 알림을 받아보실 수 있습니다.

 

Reference

GitHub & Slack 연동

Git Actions 활용

'Etc' 카테고리의 다른 글

AWS S3 & CloudFront로 React 배포하기  (0) 2023.02.02
AWS S3로 React 배포하기  (0) 2023.02.02
GitLab -> GitHub Mirroring  (0) 2022.06.12
Unity Script로 카메라 Culling Mask 기능 사용하기  (2) 2021.10.29
Unity 카메라 Culling Mask  (0) 2021.10.29

GitLab에 생성되어 있는 레포지토리를 GitHub로 옮기는 것을 정리합니다.

우선, 대용량 파일이 포함된 레포지토리를 미러링하는 것은 다루지 않음을 먼저 알립니다.

 

먼저 GitHub에서 새로운 Repository를 생성합니다.

공개 여부는 자유이며, Repository name만 작성하여 만들면 됩니다.

그러면 Repository가 생성되었고, HTTPS와 SSH URL을 볼 수 있습니다.

여기서 필요한건 HTTPS URL이니 따로 메모해둡시다.

그 다음 토큰 발급을 위해 본인 프로필 -> Settings에 들어갑니다.

그리고 좌측에 Personal access tokens를 눌러주면 해당 화면이 나옵니다.

여기서 Generate new token을 눌러 토큰을 생성합니다.

Note는 자유롭게 구분할 수 있도록 작성해주시고, scope는 repo만 체크를 합니다.

토큰 만료 시 재발급 받을 수 있으므로 Expiration도 자유입니다.

이후 아래에 있는 Generate Token 버튼을 누릅니다.

그러면 이렇게 토큰이 보이게 되는데 다른 경로로는 볼 수 없으니 반드시 바로 복사해줍니다.

만약 토큰을 잊어버렸다면 재발급을 받도록 합니다.

해당 토큰을 눌러주면 Edit 창으로 오게 되며, Regenerate token 버튼을 누르면 유효기간을 재설정하고, 새로운 토큰을 발급해줍니다.

토큰 만료 시에도 동일한 방법으로 재발급 받습니다.

 

이제 미러링을 하기 위해 생성되어 있는 GitLab 레포지토리에서 Settings -> Repository에 들어갑니다.

Mirroring repositories에 있는 Expand를 누릅니다.

이 곳에서 미러링을 진행합니다.

작성해야 할 곳은 "Git repository URL", "Password" 입니다.

Git repository URL에는 아까 위에서 메모해둔 HTTPS URL을 이용합니다.

HTTPS URL은 "https://github.com/닉네임/저장소이름.git"으로 되어있는데

github 앞에 "닉네임@"을 추가한 "https://닉네임@github.com/닉네임/저장소이름.git"을 넣어주시면 됩니다.

 

Password에는 조금 전 발급 받았던 Personal access tokens을 넣어줍니다.

이제 Mirror repository 버튼을 누릅니다.

그 후 바로 밑에 "Update now"라고 하는 새로고침 버튼을 눌러줍니다.

 

이제 생성했던 GitHub Repository에 들어가면 미러링이 완료된 것을 확인할 수 있습니다.

다만 이 방법은 GitLab에 등록했던 Issues와 Merge Request가 이동하지 않으며, Commit 기록만 이동하게 됩니다.

다른 방법이 있을지는 모르겠지만 GitLab과 GitHub은 다른 부분이 조금 있기 때문에 옮겨지지 않는다는 개인적인 생각입니다.

'Etc' 카테고리의 다른 글

AWS S3로 React 배포하기  (0) 2023.02.02
GitHub Actions를 이용한 Slack Notification  (0) 2023.01.30
Unity Script로 카메라 Culling Mask 기능 사용하기  (2) 2021.10.29
Unity 카메라 Culling Mask  (0) 2021.10.29
TypeScript 실행  (0) 2021.08.30

+ Recent posts