Files
git-air/README_JA.md
T
unclesam 6eda653db6 feat(cli): 新增 AI 智能 Commit Message 生成与多语言支持
- 新增 `git air msg` 命令,支持根据暂存区或历史 Diff 自动生成 Conventional Commits 提交说明
- 支持中、英、日、韩多语言自适应及通过 CLI/配置文件/环境变量进行定制
- 完善全局配置体系,新增 `commit_lang` 选项及相关单元测试
2026-08-22 16:54:44 +08:00

13 KiB

git-air logo

git-air �鴻

Go險€隱槭〒譖ク縺九l縺溘€∫ゥコ豌励�繧医≧縺ォ霆ス蠢ォ縺ァ鬮倬€溘↑Git繝阪う繝�ぅ繝泡I繧ウ繝シ繝峨Ξ繝薙Η繝シ繝��繝ォ縲�

Go Version License PRs Welcome

邂€菴謎クュ譁� | English | 譌・譛ャ隱�


�検 縺ェ縺� git-air 繧帝幕逋コ縺励◆縺ョ縺具シ�

隱イ鬘鯉シ哂I縺梧嶌縺�◆繧ウ繝シ繝峨�豌玲戟縺。縺�>縺後€√Ξ繝薙Η繝シ縺ッ謔ェ螟「

迴セ莉」縺ョ髢狗匱縺ァ縺ッ縲、I��ursor縲,opilot縲∝推遞ョLLM繝励Λ繧ー繧、繝ウ�峨r豢サ逕ィ縺吶k縺薙→縺悟ス薙◆繧雁燕縺ォ縺ェ繧翫∪縺励◆縲よ焚遘偵〒謨ー蜊∬。後�謨ー逋セ陦後�繧ウ繝シ繝峨′逕滓�縺輔l繧九◆繧√€�幕逋コ繧ケ繝斐�繝峨�蜉�噪縺ォ蜷台ク翫@縺セ縺吶€�

縺励°縺励€√◎縺薙↓縺ッ隕矩℃縺斐○縺ェ縺�㍾螟ァ縺ェ隱イ鬘後′蟄伜惠縺励∪縺呻シ�

  • 縲瑚ヲ九◆逶ョ縺悟ョ檎挑縺吶℃繧九€阪→縺�≧骭ッ隕��壹う繝ウ繝�Φ繝医d繧ウ繝。繝ウ繝医€∝多蜷阪′邯コ鮗励↑縺溘a縲√ヰ繧ー縺後↑縺�→逶イ菫。縺励d縺吶>��
  • 逕滓�AI閾ェ霄ォ縺ョ縲瑚�蟾ア閧ッ螳壹ヰ繧、繧「繧ケ縲��壼酔縺倥メ繝」繝�ヨ蜀�〒逕滓�AI縺ォ縲後%縺ョ繧ウ繝シ繝峨↓繝舌げ縺ッ縺ゅk�溘€阪→閨槭>縺ヲ繧ゅ€√€悟撫鬘後↑縺丞��欧縺ォ蜍穂ス懊@縺セ縺呻シ√€阪→霑斐▲縺ヲ縺上k縺薙→縺悟、壹>��
  • 莠コ髢薙�逶ョ縺ァ隕玖誠縺ィ縺励d縺吶>貎懷惠逧�↑鄂��啻if err != nil縺ョ譌ゥ譛溘Μ繧ソ繝シ繝ウ譎ゅ↓繝ュ繝�け隗」髯、��utex Leak�峨r蠢倥l縺溘j縲;oroutine 蜀�〒recover` 縺後↑縺九▲縺溘j縲√Ν繝シ繝怜�縺ァ繧ウ繝阪け繧キ繝ァ繝ウ縺瑚ァ」謾セ縺輔l縺ェ縺九▲縺溘j縺吶k繝舌げ縺ッ縲∫岼隕悶〒縺ッ髱槫クク縺ォ隕玖誠縺ィ縺励d縺吶>縲�

縺昴�邨先棡縲�**縲窟I縺後さ繝シ繝峨r螟ァ驥冗函逕」縺励€∵キア螟懊↓莠コ髢薙′譛ャ逡ェ髫懷ョウ縺ョ蟇セ蠢懊↓霑ス繧上l繧九€�**縺ィ縺�≧譛ャ譛ォ霆「蛟偵↑迥カ豕√′逕溘∪繧後∪縺吶€�


隗」豎コ遲厄シ壹Ξ繝薙Η繝シ繧偵Ο繝シ繧ォ繝ォ繧ソ繝シ繝溘リ繝ォ��re-Commit�峨↓螳悟�蜑咲スョ

GitHub縺ェ縺ゥ縺ョCI/CD荳翫〒蜍穂ス懊☆繧九�繝�ヨ繧ょ━遘€縺ァ縺吶′縲�git-air 縺ッ繧ウ繝シ繝峨r git commit 縺吶k蜑阪↓縲√Ο繝シ繧ォ繝ォ遶ッ譛ォ荳翫〒蜍穂ス懊☆繧句ョ悟�縺ォ迢ャ遶九@縺溘€檎ャャ荳芽€�屮譟サ蠖ケ縲阪→縺励※險ュ險医&繧後※縺�∪縺吶€�

繝√Ε繝�ヨ螻・豁エ縺ョ繧ウ繝ウ繝�く繧ケ繝医r荳€蛻�賜髯、縺励€√∪繧九〒**縺ゅ↑縺溘�髫」縺ォ蠎ァ繧句哨縺ッ謔ェ縺�′逶ョ縺ョ驪ュ縺�す繝九い繧「繝シ繧ュ繝�け繝�**縺ョ繧医≧縺ォ縲∫エ皮イ九↑蟾ョ蛻�シ�git diff`�峨□縺代r蜴ウ縺励¥繝√ぉ繝�け縺励∪縺呻シ�

  • 笞。 Git繝阪う繝�ぅ繝悶↑讌オ荳翫�謫堺ス懈€ァ�壹>縺、繧ゅ�菴懈・ュ繝輔Ο繝シ繧貞エゥ縺輔★縲√ち繝シ繝溘リ繝ォ縺ァ git air 縺ィ蜿ゥ縺上□縺代〒蜊ウ蠎ァ縺ォ襍キ蜍輔€�
  • �ァ� 荳サ隕√Δ繝�Ν繧貞ョ悟�邯イ鄒���Google Gemini 3.x縲、nthropic Claude縲』AI Grok縲.eepSeek縲_wen縲∵匱隴� GLM縲゜imi縲√Ο繝シ繧ォ繝ォOllama縲^penAI 縺ェ縺ゥ繧定ィュ螳壹↑縺励〒蜊ウ蠎ァ縺ォ蛻�j譖ソ縺亥庄閭ス縲�
  • �孱�� 繧ケ繝槭�繝医↑繝弱う繧コ髯、蜴サ�啻go.sum繧�package-lock.json縲∬�蜍慕函謌舌&繧後◆ *.pb.go` 繧定�蜍暮勁螟悶€5oken豸郁イサ繧呈椛縺医€∵€晁€�Ν繝シ繝励r髦イ縺弱∪縺吶€�
  • �識 蜴ウ譬シ縺ェ繧キ繝九い繧ィ繝ウ繧ク繝九い蝓コ貅��壹♀荳冶セ槭d辟。鬧�哨縺ッ荳€蛻�↑縺励€ゆクヲ陦悟�逅��遶カ蜷医€√ョ繝�ラ繝ュ繝�け縲ヾQL繧、繝ウ繧ク繧ァ繧ッ繧キ繝ァ繝ウ縲¨ULL繝昴う繝ウ繧ソ縲√Μ繧ス繝シ繧ケ繝ェ繝シ繧ッ繧呈欠鞫倥@縲∝�菴鍋噪縺ェ菫ョ豁」繧ウ繝シ繝峨r逶エ謗・謠千、コ縺励∪縺吶€�
  • �投 Token豸郁イサ驥上→雋サ逕ィ縺ョ繝ェ繧「繝ォ繧ソ繧、繝�隕狗ゥ阪b繧��壼�蜃コ蜉婬oken謨ー繧呈ュ」遒コ縺ォ髮�ィ医@縲∝推遉セ譛€譁ー縺ョ蜈ャ蠑乗侭驥題。ィ縺ォ蝓コ縺・縺�※螳溯。後さ繧ケ繝医r蜊ウ蠎ァ縺ォ險育ョ暦シ医Ο繝シ繧ォ繝ォ螳悟�繧ェ繝輔Λ繧、繝ウ繝「繝�Ν縺ッ辟。譁呵。ィ遉コ�峨€�
  • 笨ィ AI 繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク閾ェ蜍慕函謌��壼、画峩蟾ョ蛻�°繧� Conventional Commits 貅匁侠縺ョ鬮伜刀雉ェ縺ェ繝。繝�そ繝シ繧ク繧堤函謌撰シ�**譌・譛ャ隱槭�闍ア隱槭�髻灘嵜隱槭�荳ュ蝗ス隱�**縺ォ閾ェ蜍暮←蠢懶シ峨€�
  • �搭 **繝√�繝�隕冗エ��隱ュ縺ソ霎シ縺ソ��.airules��**�壹Μ繝昴ず繝医Μ逶エ荳九↓ .airules` 繧帝�鄂ョ縺吶k縺�縺代〒縲√メ繝シ繝�蝗コ譛峨�繧「繝シ繧ュ繝�け繝√Ε隕冗エ�r譛€蜆ェ蜈医〒驕ゥ逕ィ縲�
  • �ェ� 繝ッ繝ウ繧ッ繝ェ繝�け縺ァ Pre-commit 繝輔ャ繧ッ蛹��壹さ繝槭Φ繝�1逋コ縺ァGit繝輔ャ繧ッ縺ィ縺励※逋サ骭イ縲ょ些髯コ縺ェ繧ウ繝シ繝峨�繧ウ繝溘ャ繝医r譛ェ辟カ縺ォ繝悶Ο繝�け縺励∪縺吶€�

�箕�� 繧ソ繝シ繝溘リ繝ォ螳溯。後う繝。繝シ繧ク

$ git air

[git-air] 繧ウ繝シ繝峨Ξ繝薙Η繝シ荳ュ... (Engine: gemini / gemini-3.7-flash)
笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€
#### 螟画峩讎りヲ�
繝ヲ繝シ繧カ繝シ隱崎ィシ繝上Φ繝峨Λ繝シ縺ォ Redis 繧ュ繝」繝�す繝・螻、繧定ソス蜉�縺励€,ontext 縺ョ繧ソ繧、繝�繧「繧ヲ繝井シ晄眺繧剃ソョ豁」縲�

#### 隧ウ邏ー繝ャ繝薙Η繝シ邨先棡
- [BLOCKER] internal/service/user.go:45 - 驥榊、ァ縺ェ繧サ繧ュ繝・繝ェ繝�ぅ�# 迚ケ螳壹�繝輔ぃ繧、繝ォ縺ョ縺ソ繧偵Ξ繝薙Η繝シ
git air internal/service/chat.go

# 荳€譎ら噪縺ォ繝「繝�Ν繧Пrovider繧呈欠螳壹@縺ヲ螳溯。�
git air --provider deepseek --model deepseek-chat

3. AI 繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク閾ェ蜍慕函謌� (git air msg)

繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク縺ョ菴懈�縺ォ謔ゥ繧€蠢�ヲ√�繧ゅ≧縺ゅj縺セ縺帙s縲Agit-air` 縺後せ繝��繧ク繝ウ繧ー縺輔l縺溷キョ蛻�r蛻�梵縺励€,onventional Commits 貅匁侠縺ョ繝。繝�そ繝シ繧ク繧�**螟夊ィ€隱櫁�蜍暮←蠢�**縺ァ逕滓�縺励∪縺呻シ�

# 1. 繧キ繧ケ繝�Β險€隱槭r閾ェ蜍墓、懷�縺励※逕滓� & 蟇セ隧ア蝙九さ繝溘ャ繝�
git air msg

# 2. 闍ア隱槭〒逕滓��医が繝シ繝励Φ繧ス繝シ繧ケ繝サ蝗ス髫帙�繝ュ繧ク繧ァ繧ッ繝亥髄縺托シ�
git air msg -l en

# 3. 譌・譛ャ隱� / 髻灘嵜隱槭〒逕滓�
git air msg -l ja
git air msg -l ko

# 4. 遒コ隱阪↑縺励〒逶エ謗・ git commit 繧貞ョ溯。�
git air msg -c

4. 繝ッ繝ウ繧ソ繝�メ縺ァ Pre-commit 繝輔ャ繧ッ繧堤匳骭イ

Git 繝ェ繝昴ず繝医Μ逶エ荳九〒莉・荳九r螳溯。鯉シ�

git air hook install
  • 繧ウ繝溘ャ繝郁�蜍輔ヶ繝ュ繝�け讖溯��壹Ξ繝薙Η繝シ縺ァ [BLOCKER] 驥榊、ァ谺�髯・繧� [REJECT] 蛻、螳壹′讀懷�縺輔l縺溷�エ蜷医€~git-air 縺ッ髱槭ぞ繝ュ縺ョ邨ゆコ�さ繝シ繝峨〒**繧ウ繝溘ャ繝茨シ�git commit�峨r閾ェ蜍慕噪縺ォ荳ュ譁ュ繝サ繝悶Ο繝�け**縺励∪縺呻シ�
  • 蜴ウ譬シ繝「繝シ繝� (--strict)�啻[WARNING]隴ヲ蜻翫〒繧ゅさ繝溘ャ繝医r繝悶Ο繝�け縺励◆縺��エ蜷医�git air --strict` 繧剃スソ逕ィ��
  • 荳€譎ら噪縺ェ繝悶Ο繝�け隗」髯、�夂キ頑€・縺ァ繧ウ繝溘ャ繝医r蠑キ蛻カ縺励◆縺��エ蜷医�縲;it 讓呎コ悶� git commit --no-verify 縺セ縺溘� git air --no-block 繧剃サ倅ク弱@縺セ縺吶€�

繝輔ャ繧ッ繧定ァ」髯、縺吶k蝣エ蜷茨シ�

git air hook uninstall

笞呻ク� 險ュ螳壹�蜆ェ蜈磯��ス�

  1. 繧ウ繝槭Φ繝峨Λ繧、繝ウ蠑墓焚 (--key, --model, --provider, --prompt, --lang, --price-input, --price-output, --strict, --no-block)
  2. 迺ー蠅�、画焚 (GIT_AIR_API_KEY, GIT_AIR_PROVIDER, GIT_AIR_MODEL, GIT_AIR_COMMIT_LANG)
  3. 繝励Ο繧ク繧ァ繧ッ繝亥€句挨險ュ螳� (繝ェ繝昴ず繝医Μ逶エ荳九� ./config.yaml 縺セ縺溘� ./.git-air.yaml)
  4. 繧ー繝ュ繝シ繝舌Ν險ュ螳� (~/.git-air/config.yaml)

config.yaml 險ュ螳壹ヵ繧。繧、繝ォ萓具シ�

# 繝励Ο繝舌う繝€繝シ: gemini, claude, grok, deepseek, qwen, zhipu, moonshot, siliconflow, ollama, openai, custom
provider: "gemini"
api_key: "YOUR_API_KEY_HERE"
model: "gemini-3.7-flash"

# 繧ォ繧ケ繧ソ繝� API 繧ィ繝ウ繝峨�繧、繝ウ繝� (莉サ諢�)
# base_url: "https://api.deepseek.com/v1"

# 繧ォ繧ケ繧ソ繝� System Prompt (莉サ諢�)
# custom_prompt: ""

# 繧ォ繧ケ繧ソ繝� Token 譁咎≡險ュ螳� (莉サ諢上€∝腰菴�: 邀ウ繝峨Ν / 1M Tokens)
# price_input: 0.75
# price_output: 3.75

# AI 繧ウ繝溘ャ繝医Γ繝�そ繝シ繧ク險€隱櫁ィュ螳� (莉サ諢�: auto, zh, en, ja, ko)
# commit_lang: "auto"
```LLM縺ョ繧ィ繝ウ繝峨�繧、繝ウ繝医→謗ィ螂ィ繝「繝�Ν繧呈ィ呎コ悶�繝ェ繧サ繝�ヨ縺励※縺�∪縺吶€A--provider` 繧呈欠螳壹☆繧九□縺代〒邁。蜊倥↓蛻�j譖ソ縺医i繧後∪縺呻シ�

```bash
# 1. Google Gemini (謗ィ螂ィ: 鬮倬€溘�菴弱さ繧ケ繝�)
git air config set --provider gemini --key "YOUR_KEY"

# 2. Anthropic Claude (Claude-3.7 / 3.5 Sonnet)
git air config set --provider claude --key "YOUR_KEY" --model anthropic/claude-3.7-sonnet

# 3. xAI Grok (Grok-2 / Grok-3)
git air config set --provider grok --key "YOUR_KEY" --model grok-2-latest

# 4. DeepSeek (鬮伜コヲ縺ェ謗ィ隲悶�諤晁€�Δ繝�Ν)
git air config set --provider deepseek --key "YOUR_KEY" --model deepseek-chat

# 5. SiliconFlow (DeepSeek-V3 鬮倬€溘�繧ケ繝�ぅ繝ウ繧ー)
git air config set --provider siliconflow --key "YOUR_KEY" --model deepseek-ai/DeepSeek-V3

# 6. 騾夂セゥ蜊�撫 (Qwen / Alibaba Cloud)
git air config set --provider qwen --key "YOUR_KEY" --model qwen-plus

# 7. 譎コ隴� AI (GLM-4)
git air config set --provider zhipu --key "YOUR_KEY" --model glm-4-plus

# 8. Moonshot AI (Kimi)
git air config set --provider moonshot --key "YOUR_KEY"

# 9. Groq (雜�ォ倬€滓耳隲�)
git air config set --provider groq --key "YOUR_KEY" --model llama-3.3-70b-versatile

# 10. OpenRouter (繝槭Ν繝√Δ繝�Ν邨ア蜷医ご繝シ繝医え繧ァ繧、)
git air config set --provider openrouter --key "YOUR_KEY"

# 11. 繝ュ繝シ繧ォ繝ォ螳悟�繧ェ繝輔Λ繧、繝ウ繝サ繝励Λ繧、繝舌す繝シ驥崎ヲ� (Ollama)
git air config set --provider ollama --model qwen2.5-coder

# 12. OpenAI 蜈ャ蠑� (GPT-4o / o3-mini)
git air config set --provider openai --key "YOUR_KEY" --model gpt-4o-mini

# 13. 繧ォ繧ケ繧ソ繝� Token 譁咎≡險ュ螳� (莉サ諢擾シ夂オ�∩霎シ縺ソ譁咎≡陦ィ繧剃ク頑嶌縺阪€∝腰菴�: 邀ウ繝峨Ν/1M Tokens)
git air config set --price-input 0.75 --price-output 3.75

迴セ蝨ィ縺ョ險ュ螳壹r遒コ隱搾シ医き繧ケ繧ソ繝�譁咎≡繧��繧ケ繧ッ蛹訪ey繧貞性繧€�会シ�

git air config get

2. 繧医¥菴ソ縺�Ξ繝薙Η繝シ繧ウ繝槭Φ繝�

# 迴セ蝨ィ繧ケ繝��繧ク繝ウ繧ー縺輔l縺滂シ�it add貂医∩�牙、画峩繧偵Ξ繝薙Η繝シ�医ョ繝輔か繝ォ繝茨シ�
git air

# 逶エ蜑阪�繧ウ繝溘ャ繝亥�螳ケ繧偵Ξ繝薙Η繝シ
git air HEAD~1

# 繝悶Λ繝ウ繝�俣縺ョ蟾ョ蛻�r繝ャ繝薙Η繝シ
git air main..feature-agent

# 迚ケ螳壹�繝輔ぃ繧、繝ォ縺ョ縺ソ繧偵Ξ繝薙Η繝シ
git air internal/service/chat.go

# 荳€譎ら噪縺ォ繝「繝�Ν繧Пrovider繧呈欠螳壹@縺ヲ螳溯。�
git air --provider deepseek --model deepseek-chat

3. 繝ッ繝ウ繧ソ繝�メ縺ァ Pre-commit 繝輔ャ繧ッ繧堤匳骭イ

Git 繝ェ繝昴ず繝医Μ逶エ荳九〒莉・荳九r螳溯。鯉シ�

git air hook install
  • 繧ウ繝溘ャ繝郁�蜍輔ヶ繝ュ繝�け讖溯��壹Ξ繝薙Η繝シ縺ァ [BLOCKER] 驥榊、ァ谺�髯・繧� [REJECT] 蛻、螳壹′讀懷�縺輔l縺溷�エ蜷医€~git-air 縺ッ髱槭ぞ繝ュ縺ョ邨ゆコ�さ繝シ繝峨〒**繧ウ繝溘ャ繝茨シ�git commit�峨r閾ェ蜍慕噪縺ォ荳ュ譁ュ繝サ繝悶Ο繝�け**縺励∪縺呻シ�
  • 蜴ウ譬シ繝「繝シ繝� (--strict)�啻[WARNING]隴ヲ蜻翫〒繧ゅさ繝溘ャ繝医r繝悶Ο繝�け縺励◆縺��エ蜷医�git air --strict` 繧剃スソ逕ィ��
  • 荳€譎ら噪縺ェ繝悶Ο繝�け隗」髯、�夂キ頑€・縺ァ繧ウ繝溘ャ繝医r蠑キ蛻カ縺励◆縺��エ蜷医�縲;it 讓呎コ悶� git commit --no-verify 縺セ縺溘� git air --no-block 繧剃サ倅ク弱@縺セ縺吶€�

繝輔ャ繧ッ繧定ァ」髯、縺吶k蝣エ蜷茨シ�

git air hook uninstall

笞呻ク� 險ュ螳壹�蜆ェ蜈磯��ス�

  1. 繧ウ繝槭Φ繝峨Λ繧、繝ウ蠑墓焚 (--key, --model, --provider, --prompt, --price-input, --price-output, --strict, --no-block)
  2. 迺ー蠅�、画焚 (GIT_AIR_API_KEY, GIT_AIR_PROVIDER, GIT_AIR_MODEL)
  3. 繝励Ο繧ク繧ァ繧ッ繝亥€句挨險ュ螳� (繝ェ繝昴ず繝医Μ逶エ荳九� ./config.yaml 縺セ縺溘� ./.git-air.yaml)
  4. 繧ー繝ュ繝シ繝舌Ν險ュ螳� (~/.git-air/config.yaml)

config.yaml 險ュ螳壹ヵ繧。繧、繝ォ萓具シ�

# 繝励Ο繝舌う繝€繝シ: gemini, claude, grok, deepseek, qwen, zhipu, moonshot, siliconflow, ollama, openai, custom
provider: "gemini"
api_key: "YOUR_API_KEY_HERE"
model: "gemini-3.7-flash"

# 繧ォ繧ケ繧ソ繝� API 繧ィ繝ウ繝峨�繧、繝ウ繝� (莉サ諢�)
# base_url: "https://api.deepseek.com/v1"

# 繧ォ繧ケ繧ソ繝� System Prompt (莉サ諢�)
# custom_prompt: ""

# 繧ォ繧ケ繧ソ繝� Token 譁咎≡險ュ螳� (莉サ諢上€∝腰菴�: 邀ウ繝峨Ν / 1M Tokens)
# price_input: 0.75
# price_output: 3.75

�搭 繝√�繝�隕冗エ��繧ォ繧ケ繧ソ繝槭う繧コ��.airules`��

繝ェ繝昴ず繝医Μ縺ョ繝ォ繝シ繝医ョ繧」繝ャ繧ッ繝医Μ縺ォ .airules 繝輔ぃ繧、繝ォ繧剃ス懈�縺吶k縺ィ縲、I 縺ッ縺昴�繝ォ繝シ繝ォ繧呈怙蜆ェ蜈井コ矩��→縺励※驕ゥ逕ィ縺励∪縺呻シ�

# 繝√�繝�蜈ア騾夐幕逋コ繝ォ繝シ繝ォ
1. 縺吶∋縺ヲ縺ョ SQL 蜃ヲ逅�� DAO 螻、縺ォ髮�エ�@縲∵枚蟄怜�邨仙粋縺ォ繧医k逕� SQL 縺ッ遖∵ュ「縺ィ縺吶k��
2. 荳ヲ陦悟�逅�〒蜈ア譛牙、画焚繧呈桶縺��エ蜷医�縲《ync.RWMutex 縺セ縺溘� sync/atomic 繧剃スソ逕ィ縺吶k縺薙→��
3. 繧ェ繝シ繝励Φ縺励◆繝ェ繧ス繝シ繧ケ��B rows縲?TTP 繝ャ繧ケ繝昴Φ繧ケ縲√ヵ繧。繧、繝ォ�峨� defer Close() 縺ァ遒コ螳溘↓隗」謾セ縺吶k縺薙→��
4. error 繧偵い繝ウ繝€繝シ繧ケ繧ウ繧「�� = err�峨〒辟。譚。莉カ縺ォ辟。隕悶☆繧九%縺ィ繧堤ヲ∵ュ「縺吶k縲�

�孱�� 繧ォ繧ケ繧ソ繝�髯、螟冶ィュ螳夲シ�.airignore`��

邨�∩霎シ縺ソ縺ョ閾ェ蜍暮勁螟厄シ医Ο繝�け繝輔ぃ繧、繝ォ繧�ヰ繧、繝翫Μ�峨↓蜉�縺医€√Μ繝昴ず繝医Μ逶エ荳九↓ .airignore 繧帝�鄂ョ縺吶k縺薙→縺ァ縲∽ササ諢上�繝輔ぃ繧、繝ォ繧�ョ繧」繝ャ繧ッ繝医Μ繧但I繝ャ繝薙Η繝シ縺九i髯、螟悶〒縺阪∪縺呻シ�

# 繝峨く繝・繝。繝ウ繝医d險ュ險域嶌繧帝勁螟�
docs/
*.md

# 繝�せ繝医Δ繝�け繧�ム繝溘�繝��繧ソ繧帝勁螟�
tests/mock/
testdata/

# 讖溷ッ�ィュ螳壹ヵ繧。繧、繝ォ繧帝勁螟�
*.env
secrets.yaml

�塘 繝ゥ繧、繧サ繝ウ繧ケ

譛ャ繝励Ο繧ク繧ァ繧ッ繝医� MIT 繝ゥ繧、繧サ繝ウ繧ケ 縺ョ繧ゅ→縺ァ蜈ャ髢九&繧後※縺�∪縺吶€�ssue 繧� Pull Request 繧ょ、ァ豁楢ソ弱〒縺呻シ�