OpenAIのAPIでコミットログから日報を自動生成する
category
date
Jan 29, 2023
slug
generate-daily-report-from-commit-log
status
Published
summary
その日ののコミットメッセージ(英語)から日報の文章をOpenAIさんに自動生成してもらうことにした。
type
Post
日報を書く必要がある会社があり、英語のコミットメッセージから日報の文章をOpenAIさんに自動生成してもらうことにした。
コミットメッセージを綺麗に書くようになりそう。
コミットメッセージ
feat: Create a sidebar
fix: Transpile fullcalendar to fix CSS issues
feat: Create mock-up of TODO function
feat: Create a mockup of the memo function
docs: Update README.md
出来上がった文章
今日はサイドバーを作成し、TODO機能とメモ機能のモックアップを作成しました。
また、CSSの問題を修正するためにFullcalendarをトランスパイルしました。
最後に、Readme.mdを追加しました。
ソースコード
const octokit = new Octokit({
auth: 'private token'
});
octokit
.request('GET /repos/wktq/4mate/commits', {
owner: 'github',
repo: 'docs',
per_page: 10,
since: '業務開始時間',
until: '業務終了時間',
})
.then(({ data }) => {
const messages = data.map((commit) => commit.commit.message);
const requestBody = {
model: 'text-davinci-003',
prompt: `以下のGitのコミットメッセージから、できる限り繰り返しなく日報の文章を作成してください。${messages.join(
'\n'
)}`,
temperature: 0,
max_tokens: 500
};
const requestOptions = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${YOUR_SECRET}`
},
body: JSON.stringify(requestBody)
};
const url = 'https://api.openai.com/v1/completions';
fetch(url, requestOptions)
.then((response) => response.json())
.then((result) => {
const editor = editorRef.current;
if (editor) {
insertToEditor(result.choices[0].text, messages);
}
})
.catch((error) => console.log('error', data));
});
おまけ
こんなんもあるらしい。