Coverage for src / moai_adk / core / git / commit.py: 28.57%

7 statements  

« prev     ^ index     » next       coverage.py v7.12.0, created at 2025-11-20 20:52 +0900

1""" 

2Commit message formatting utilities. 

3 

4SPEC: .moai/specs/SPEC-CORE-GIT-001/spec.md 

5""" 

6 

7from typing import Literal 

8 

9 

10def format_commit_message( 

11 stage: Literal["red", "green", "refactor", "docs"], 

12 description: str, 

13 locale: str = "ko", 

14) -> str: 

15 """ 

16 Generate a commit message for each TDD stage. 

17 

18 Args: 

19 stage: TDD stage (red, green, refactor, docs). 

20 description: Commit description text. 

21 locale: Language code (ko, en, ja, zh). 

22 

23 Returns: 

24 Formatted commit message. 

25 

26 Examples: 

27 >>> format_commit_message("red", "Add failing authentication test", "ko") 

28 '🔴 RED: Add failing authentication test' 

29 

30 >>> format_commit_message("green", "Implement authentication", "en") 

31 '🟢 GREEN: Implement authentication' 

32 

33 >>> format_commit_message("refactor", "Improve code structure", "ko") 

34 '♻️ REFACTOR: Improve code structure' 

35 """ 

36 templates = { 

37 "ko": { 

38 "red": "🔴 RED: {desc}", 

39 "green": "🟢 GREEN: {desc}", 

40 "refactor": "♻️ REFACTOR: {desc}", 

41 "docs": "📝 DOCS: {desc}", 

42 }, 

43 "en": { 

44 "red": "🔴 RED: {desc}", 

45 "green": "🟢 GREEN: {desc}", 

46 "refactor": "♻️ REFACTOR: {desc}", 

47 "docs": "📝 DOCS: {desc}", 

48 }, 

49 "ja": { 

50 "red": "🔴 RED: {desc}", 

51 "green": "🟢 GREEN: {desc}", 

52 "refactor": "♻️ REFACTOR: {desc}", 

53 "docs": "📝 DOCS: {desc}", 

54 }, 

55 "zh": { 

56 "red": "🔴 RED: {desc}", 

57 "green": "🟢 GREEN: {desc}", 

58 "refactor": "♻️ REFACTOR: {desc}", 

59 "docs": "📝 DOCS: {desc}", 

60 }, 

61 } 

62 

63 template = templates.get(locale, templates["en"]).get(stage.lower()) 

64 if not template: 

65 raise ValueError(f"Invalid stage: {stage}") 

66 

67 return template.format(desc=description)