8000 GitHub - lsh2613/Cobot: GitHub Actions + Lambda + ChatGPT API를 활용한 코드 분석 및 Q&A 생성 Bot
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ Cobot Public

GitHub Actions + Lambda + ChatGPT API를 활용한 코드 분석 및 Q&A 생성 Bot

Notifications You must be signed in to change notification settings

lsh2613/Cobot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Code Question Bot

이 프로젝트는 공부한 내용을 깃허브에 기록하는 사람들에게 해당 내용을 복습할 수 있도록 문제를 만들어주는 Bot입니다.

  • 지정한 브랜치에 공부 내용을 push하면 해당 코드와 사이즈를 참고하여 적절한 갯수의 문제를 제공해줍니다.
  • 하단의 사진은 예시이며 정답은 스포일러 태그를 활용하여 클릭 시 정답을 확인할 수 있도록 개발되었습니다.

image




목차

1. Discord Webhook 생성 가이드

2. Github Action yml 설정

3. GitHub userId 추출

4. google-form으로 제출




1. Discord Webhook 생성 가이드

  1. 서버 생성
  • 왼쪽 하단 탭에서 서버 추가하기(➕) 버튼을 눌러 서버를 생성합니다

    디코

  1. 채널 생성
  • 왼쪽 채팅 채널에서 채널 만들기(➕) 버튼을 눌러 채널을 생성합니다

    💡 본인이 생성한 서버에서만 채널 생성과 편집이 가능합니다

    image

  1. 채널 편집으로 이동
  • 생성된 채널의 설정(⚙️) 버튼으로 이동합니다

    image

  1. 연동 탭에서 웹후크 생성
  • 왼쪽 연동 탭을 클릭하고 웹후크 만들기 버튼을 클릭 웹후크를 생성합니다

    image

  1. 웹후크 주소 복사
  • 생성된 웹후크를 클릭하고 하단에 웹후크 URL 복사 버튼을 클릭하여 URL을 복사할 수 있습니다.

    image




2. Github Action yml 설정

  1. 레포지토리의 Add file -> Create File 선택 image

  2. 파일 이름을 적는 칸에 .github/workflows/cobot.yml 을 차례대로 입력합니다.

    💡 파일 이름은 바꿔도 무방

    image

  3. 생성한 yml 파일에 해당 코드를 붙여넣기

    yml 코드 보기
    name: Cobot workflow
    
    on:
      push:
        branches:
          - main
    
    jobs:
      diff-changes:
        runs-on: ubuntu-latest
    
        steps:
        - name: Checkout repository
          uses: actions/checkout@v2
    
        - name: Get the recent commit author
          run: |
            author_id=$(git log -1 --format="%an <%ae>" | grep -o '<[0-9]\+' | sed 's/<//')
            echo "author_id=$author_id" >> $GITHUB_ENV
    
        - name: save to diff.txt
          run: |
            git fetch origin ${{ github.event.before }} ${{ github.event.after }} # 이전 커밋과 현재 커밋 가져오기
            git diff ${{ github.event.before }} ${{ github.event.after }} | grep '^+[^+]' | sed 's/^+//' > diff.txt # 변경 사항 중 추가된 내용만을 가져와 txt 생성
            cat diff.txt
    
        - name: Create payload.json
          run: |
            diff=$(cat diff.txt | jq -Rs .) # diff.txt를 josn 형식의 값으로 변환
            echo "{\"author_id\": \"${{ env.author_id }}\", \"diff\": $diff}" > payload.json # author와 diff를 json 확장자로 변환
            cat payload.json
            
        - name: Send POST request with payload.json
          run: |
            curl -X POST "https://wmece3xj7buljd34mtjat6y3qi0nwhwi.lambda-url.ap-northeast-2.on.aws/" \
            -H "Content-Type: application/json" \
            -d @payload.json
    

  1. Commit changes를 통해 변경 사항 저장

    yml




3. GitHub userId 추출

🚨 userId는 해당 서비스를 사용하는 유저를 식별하기 위해 사용됩니다

방법 1) curl을 통해 id값 추출

curl https://api.github.com/users/{깃헙id}
  • 예시

    id

방법 2) 깃헙 프로필 페이지 소스보기에서 값 찾기

  1. 깃허브 로그인
  2. 깃허브 홈(혹은 아무 페이지)에서 우클릭 후 페이지 소스 보기
  3. Ctrl + F를 통해 user_id를 검색



4. google form 제출

google-form을 통해 github의 userId와 discord의 webhook URL을 제출해주세요



About

GitHub Actions + Lambda + ChatGPT API를 활용한 코드 분석 및 Q&A 생성 Bot

Resources

Stars

Watchers

Forks

0