커밋 메세지, 영어로 바로 번역해보자

yesme·2024년 8월 30일
post-thumbnail

서론

다들 커밋메세지 어떻게 작성하시나요? 전 아직 회사에서 영어로 작성하고 있는데요!!
영알못인 나에게 영어로 커밋메세지는 너무나 힘든일.. (눈물)
그래서 항상 gpt의 도움을 받고 있었답니다

gpt 사용하면 작업이 정말 편리하긴 했는데요
그래도 매번 커밋메세지 작성할 때마다 gpt 창을 들락날락거리는것도 귀찮아져버려서 어느날 문득, 셸스크립트로 해당 과정을 자동으로 해버리자는 생각을 하게되었어요

그렇게 만들게 된 조촐한 코드조각~~

gpt한테 번역본 받아오기

최근에 go 언어에 관심이 생겨서 공부하고 있었기 때문에 자연스럽게 go 언어로 개발했어요
gpt를 연동하기 위해 https://github.com/sashabaranov/go-openai 라이브러리를 사용했답니다

package main

import (
	"context"
	"fmt"
	"log"
	"os"

	openai "github.com/sashabaranov/go-openai"
)

func main() {
	if len(os.Args) < 2 {
		log.Fatal("commit-kor <commit-message> 형태로 작성해주세요.")
		return 
	}

	input := os.Args[1]

	config := openai.DefaultConfig("bedrock")
	config.BaseURL = {AWS Bedrock 주소}

	client := openai.NewClientWithConfig(config)
	resp, err := client.CreateChatCompletion(
		context.Background(),
		openai.ChatCompletionRequest{
			Model: openai.GPT3Dot5Turbo0125,
			Messages: []openai.ChatCompletionMessage{
				{
					Role:    openai.ChatMessageRoleSystem,
					Content: "Translate everything I say into English without any additional explanation. Return it in the exact format I used. For example, if I input ‘feat: 변수명 변경’, return ‘feat: change variable name",
				},
				{
					Role:    openai.ChatMessageRoleUser,
					Content: input,
				},
			},
		},
	)

	if err != nil {
		log.Fatalf("ChatCompletion error: %v\n", err)
		return
	}

	commitMsg := resp.Choices[0].Message.Content
	fmt.Println(commitMsg)

}

처음엔 gpt를 사용하려고 했는데,, 돈을 내야해서 고민하던중
팀장님이 팀에서 사용중인 aws bedrock 이 있다고 해주셔서 그걸 사용했어요 (야호!)

명령어로 한글을 넘겨주면 제가 넘겨준 형식 그대로 영어로 번역만해서 넘겨줘야하기 때문에, 프롬프트는 이렇게 작성해봤어요

Translate everything I say into English without any additional explanation. Return it in the exact format I used. For example, if I input ‘feat: 변수명 변경’, return ‘feat: change variable name

추가적인 설명없이 내가하는 모든 말을 영어로 번역해줘. 내가 한말 형식 그대로 반환해줘. 예를들어 feat: 변수명 변경 이라고 입력하면 feat: change variable name 이라고 반환해

테스트를 해봅시다.


잘 되네요!! 형식도 맞춰서 잘 들어오고 있구요

sh 파일 작성하기

이제 빌드한 파일을 바로 명령어로 사용할 수 있게 셸 파일을 작성할 차례입니다.

#!/bin/bash

KOR_COMMIT_MSG="$1"
GO_FILE_PATH={파일 위치}

TRANSLATED_MSG=$("$GO_FILE_PATH" "$KOR_COMMIT_MSG")

if [ -z "$TRANSLATED_MSG" ]; then
  echo "에러가 발생했습니다."
  exit 1
fi

git commit -m "$TRANSLATED_MSG"
~

저는 명령어를 gk(git-korea를 줄여)로 설정해뒀는데요.
sh 파일을 저장하고 실행해보면 끝입니다!!


로그까지 잘 들어가네요!

마무리

정말 별거없는 작업이였지만, 만들고 나니 커밋 남기기가 훨씬 수월해졌어요!!!
또 gpt를 활용해서 어떤걸 만들어볼 수 있을까요?

profile
코드 깎는 개발자..

0개의 댓글