From a72d1ca1b3daea9f6886304b13d951b6319c4558 Mon Sep 17 00:00:00 2001 From: "denis.flaven@combodo.com" Date: Fri, 8 Nov 2024 16:07:51 +0100 Subject: [PATCH] :hammer: Replace gitmojis by their UTF-8 equivalent in output. --- .make/release/changelog.php | 28 +- .make/release/gitmojis.json | 589 ++++++++++++++++++++++++++++++++++++ 2 files changed, 614 insertions(+), 3 deletions(-) create mode 100644 .make/release/gitmojis.json diff --git a/.make/release/changelog.php b/.make/release/changelog.php index bd76f9e7b..8126dc3cf 100644 --- a/.make/release/changelog.php +++ b/.make/release/changelog.php @@ -25,12 +25,34 @@ if (count($argv) === 1) { - echo 'โš  You must pass the base tag/sha1 as parameter'; + echo "โš  You must pass the base tag/sha1 as parameter\n"; exit(1); } $sBaseReference = $argv[1]; +/** + * Replace the Github emojis codes by their UTF-8 character equivalent + */ +function ReplaceGitmojis(string $sLine) +{ + static $aGitmojis = null; + + if ($aGitmojis === null) { + $aRawGitmojis = json_decode(trim(file_get_contents(__DIR__.'/gitmojis.json')), true); + if ($aRawGitmojis === false) { + echo "\nFailed to parse ".__DIR__."/gitmojis.json, emoji codes will not be replaced by their unicode equivalent.\n"; + } else { + foreach($aRawGitmojis["gitmojis"] as $aGitmoji) { + $aGitmojis[$aGitmoji['code']] = $aGitmoji['emoji']; + } + } + } + if (is_array($aGitmojis)) { + return str_replace(array_keys($aGitmojis), array_values($aGitmojis), $sLine); + } +} + //--- Get log $sGitLogCommand = 'git log --decorate --pretty="%h;%s" --date-order --no-merges '.$sBaseReference.'..HEAD'; $sGitLogRaw = shell_exec($sGitLogCommand); @@ -73,5 +95,5 @@ echo "\n"; echo "# Logs line without bug referenced\n"; echo "sha1;subject\n"; foreach ($aLogLineNoBug as $sLogLine) { - echo "$sLogLine\n"; -} \ No newline at end of file + echo ReplaceGitmojis($sLogLine)."\n"; +} diff --git a/.make/release/gitmojis.json b/.make/release/gitmojis.json new file mode 100644 index 000000000..4561eb2e9 --- /dev/null +++ b/.make/release/gitmojis.json @@ -0,0 +1,589 @@ +{ + "$schema": "https://gitmoji.dev/api/gitmojis/schema", + "gitmojis": [ + { + "emoji": "๐ŸŽจ", + "entity": "🎨", + "code": ":art:", + "description": "Improve structure / format of the code.", + "name": "art", + "semver": null + }, + { + "emoji": "โšก๏ธ", + "entity": "⚡", + "code": ":zap:", + "description": "Improve performance.", + "name": "zap", + "semver": "patch" + }, + { + "emoji": "๐Ÿ”ฅ", + "entity": "🔥", + "code": ":fire:", + "description": "Remove code or files.", + "name": "fire", + "semver": null + }, + { + "emoji": "๐Ÿ›", + "entity": "🐛", + "code": ":bug:", + "description": "Fix a bug.", + "name": "bug", + "semver": "patch" + }, + { + "emoji": "๐Ÿš‘๏ธ", + "entity": "🚑", + "code": ":ambulance:", + "description": "Critical hotfix.", + "name": "ambulance", + "semver": "patch" + }, + { + "emoji": "โœจ", + "entity": "✨", + "code": ":sparkles:", + "description": "Introduce new features.", + "name": "sparkles", + "semver": "minor" + }, + { + "emoji": "๐Ÿ“", + "entity": "📝", + "code": ":memo:", + "description": "Add or update documentation.", + "name": "memo", + "semver": null + }, + { + "emoji": "๐Ÿš€", + "entity": "🚀", + "code": ":rocket:", + "description": "Deploy stuff.", + "name": "rocket", + "semver": null + }, + { + "emoji": "๐Ÿ’„", + "entity": "&#ff99cc;", + "code": ":lipstick:", + "description": "Add or update the UI and style files.", + "name": "lipstick", + "semver": "patch" + }, + { + "emoji": "๐ŸŽ‰", + "entity": "🎉", + "code": ":tada:", + "description": "Begin a project.", + "name": "tada", + "semver": null + }, + { + "emoji": "โœ…", + "entity": "✅", + "code": ":white_check_mark:", + "description": "Add, update, or pass tests.", + "name": "white-check-mark", + "semver": null + }, + { + "emoji": "๐Ÿ”’๏ธ", + "entity": "🔒", + "code": ":lock:", + "description": "Fix security or privacy issues.", + "name": "lock", + "semver": "patch" + }, + { + "emoji": "๐Ÿ”", + "entity": "🔐", + "code": ":closed_lock_with_key:", + "description": "Add or update secrets.", + "name": "closed-lock-with-key", + "semver": null + }, + { + "emoji": "๐Ÿ”–", + "entity": "🔖", + "code": ":bookmark:", + "description": "Release / Version tags.", + "name": "bookmark", + "semver": null + }, + { + "emoji": "๐Ÿšจ", + "entity": "🚨", + "code": ":rotating_light:", + "description": "Fix compiler / linter warnings.", + "name": "rotating-light", + "semver": null + }, + { + "emoji": "๐Ÿšง", + "entity": "🚧", + "code": ":construction:", + "description": "Work in progress.", + "name": "construction", + "semver": null + }, + { + "emoji": "๐Ÿ’š", + "entity": "💚", + "code": ":green_heart:", + "description": "Fix CI Build.", + "name": "green-heart", + "semver": null + }, + { + "emoji": "โฌ‡๏ธ", + "entity": "โฌ‡๏ธ", + "code": ":arrow_down:", + "description": "Downgrade dependencies.", + "name": "arrow-down", + "semver": "patch" + }, + { + "emoji": "โฌ†๏ธ", + "entity": "โฌ†๏ธ", + "code": ":arrow_up:", + "description": "Upgrade dependencies.", + "name": "arrow-up", + "semver": "patch" + }, + { + "emoji": "๐Ÿ“Œ", + "entity": "📌", + "code": ":pushpin:", + "description": "Pin dependencies to specific versions.", + "name": "pushpin", + "semver": "patch" + }, + { + "emoji": "๐Ÿ‘ท", + "entity": "👷", + "code": ":construction_worker:", + "description": "Add or update CI build system.", + "name": "construction-worker", + "semver": null + }, + { + "emoji": "๐Ÿ“ˆ", + "entity": "📈", + "code": ":chart_with_upwards_trend:", + "description": "Add or update analytics or track code.", + "name": "chart-with-upwards-trend", + "semver": "patch" + }, + { + "emoji": "โ™ป๏ธ", + "entity": "♻", + "code": ":recycle:", + "description": "Refactor code.", + "name": "recycle", + "semver": null + }, + { + "emoji": "โž•", + "entity": "➕", + "code": ":heavy_plus_sign:", + "description": "Add a dependency.", + "name": "heavy-plus-sign", + "semver": "patch" + }, + { + "emoji": "โž–", + "entity": "➖", + "code": ":heavy_minus_sign:", + "description": "Remove a dependency.", + "name": "heavy-minus-sign", + "semver": "patch" + }, + { + "emoji": "๐Ÿ”ง", + "entity": "🔧", + "code": ":wrench:", + "description": "Add or update configuration files.", + "name": "wrench", + "semver": "patch" + }, + { + "emoji": "๐Ÿ”จ", + "entity": "🔨", + "code": ":hammer:", + "description": "Add or update development scripts.", + "name": "hammer", + "semver": null + }, + { + "emoji": "๐ŸŒ", + "entity": "🌐", + "code": ":globe_with_meridians:", + "description": "Internationalization and localization.", + "name": "globe-with-meridians", + "semver": "patch" + }, + { + "emoji": "โœ๏ธ", + "entity": "", + "code": ":pencil2:", + "description": "Fix typos.", + "name": "pencil2", + "semver": "patch" + }, + { + "emoji": "๐Ÿ’ฉ", + "entity": "", + "code": ":poop:", + "description": "Write bad code that needs to be improved.", + "name": "poop", + "semver": null + }, + { + "emoji": "โช๏ธ", + "entity": "⏪", + "code": ":rewind:", + "description": "Revert changes.", + "name": "rewind", + "semver": "patch" + }, + { + "emoji": "๐Ÿ”€", + "entity": "🔀", + "code": ":twisted_rightwards_arrows:", + "description": "Merge branches.", + "name": "twisted-rightwards-arrows", + "semver": null + }, + { + "emoji": "๐Ÿ“ฆ๏ธ", + "entity": "F4E6;", + "code": ":package:", + "description": "Add or update compiled files or packages.", + "name": "package", + "semver": "patch" + }, + { + "emoji": "๐Ÿ‘ฝ๏ธ", + "entity": "F47D;", + "code": ":alien:", + "description": "Update code due to external API changes.", + "name": "alien", + "semver": "patch" + }, + { + "emoji": "๐Ÿšš", + "entity": "F69A;", + "code": ":truck:", + "description": "Move or rename resources (e.g.: files, paths, routes).", + "name": "truck", + "semver": null + }, + { + "emoji": "๐Ÿ“„", + "entity": "F4C4;", + "code": ":page_facing_up:", + "description": "Add or update license.", + "name": "page-facing-up", + "semver": null + }, + { + "emoji": "๐Ÿ’ฅ", + "entity": "💥", + "code": ":boom:", + "description": "Introduce breaking changes.", + "name": "boom", + "semver": "major" + }, + { + "emoji": "๐Ÿฑ", + "entity": "F371", + "code": ":bento:", + "description": "Add or update assets.", + "name": "bento", + "semver": "patch" + }, + { + "emoji": "โ™ฟ๏ธ", + "entity": "♿", + "code": ":wheelchair:", + "description": "Improve accessibility.", + "name": "wheelchair", + "semver": "patch" + }, + { + "emoji": "๐Ÿ’ก", + "entity": "💡", + "code": ":bulb:", + "description": "Add or update comments in source code.", + "name": "bulb", + "semver": null + }, + { + "emoji": "๐Ÿป", + "entity": "🍻", + "code": ":beers:", + "description": "Write code drunkenly.", + "name": "beers", + "semver": null + }, + { + "emoji": "๐Ÿ’ฌ", + "entity": "💬", + "code": ":speech_balloon:", + "description": "Add or update text and literals.", + "name": "speech-balloon", + "semver": "patch" + }, + { + "emoji": "๐Ÿ—ƒ๏ธ", + "entity": "🗃", + "code": ":card_file_box:", + "description": "Perform database related changes.", + "name": "card-file-box", + "semver": "patch" + }, + { + "emoji": "๐Ÿ”Š", + "entity": "🔊", + "code": ":loud_sound:", + "description": "Add or update logs.", + "name": "loud-sound", + "semver": null + }, + { + "emoji": "๐Ÿ”‡", + "entity": "🔇", + "code": ":mute:", + "description": "Remove logs.", + "name": "mute", + "semver": null + }, + { + "emoji": "๐Ÿ‘ฅ", + "entity": "👥", + "code": ":busts_in_silhouette:", + "description": "Add or update contributor(s).", + "name": "busts-in-silhouette", + "semver": null + }, + { + "emoji": "๐Ÿšธ", + "entity": "🚸", + "code": ":children_crossing:", + "description": "Improve user experience / usability.", + "name": "children-crossing", + "semver": "patch" + }, + { + "emoji": "๐Ÿ—๏ธ", + "entity": "f3d7;", + "code": ":building_construction:", + "description": "Make architectural changes.", + "name": "building-construction", + "semver": null + }, + { + "emoji": "๐Ÿ“ฑ", + "entity": "📱", + "code": ":iphone:", + "description": "Work on responsive design.", + "name": "iphone", + "semver": "patch" + }, + { + "emoji": "๐Ÿคก", + "entity": "🤡", + "code": ":clown_face:", + "description": "Mock things.", + "name": "clown-face", + "semver": null + }, + { + "emoji": "๐Ÿฅš", + "entity": "🥚", + "code": ":egg:", + "description": "Add or update an easter egg.", + "name": "egg", + "semver": "patch" + }, + { + "emoji": "๐Ÿ™ˆ", + "entity": "bdfe7;", + "code": ":see_no_evil:", + "description": "Add or update a .gitignore file.", + "name": "see-no-evil", + "semver": null + }, + { + "emoji": "๐Ÿ“ธ", + "entity": "📸", + "code": ":camera_flash:", + "description": "Add or update snapshots.", + "name": "camera-flash", + "semver": null + }, + { + "emoji": "โš—๏ธ", + "entity": "⚗", + "code": ":alembic:", + "description": "Perform experiments.", + "name": "alembic", + "semver": "patch" + }, + { + "emoji": "๐Ÿ”๏ธ", + "entity": "🔍", + "code": ":mag:", + "description": "Improve SEO.", + "name": "mag", + "semver": "patch" + }, + { + "emoji": "๐Ÿท๏ธ", + "entity": "🏷", + "code": ":label:", + "description": "Add or update types.", + "name": "label", + "semver": "patch" + }, + { + "emoji": "๐ŸŒฑ", + "entity": "🌱", + "code": ":seedling:", + "description": "Add or update seed files.", + "name": "seedling", + "semver": null + }, + { + "emoji": "๐Ÿšฉ", + "entity": "🚩", + "code": ":triangular_flag_on_post:", + "description": "Add, update, or remove feature flags.", + "name": "triangular-flag-on-post", + "semver": "patch" + }, + { + "emoji": "๐Ÿฅ…", + "entity": "🥅", + "code": ":goal_net:", + "description": "Catch errors.", + "name": "goal-net", + "semver": "patch" + }, + { + "emoji": "๐Ÿ’ซ", + "entity": "💫", + "code": ":dizzy:", + "description": "Add or update animations and transitions.", + "name": "dizzy", + "semver": "patch" + }, + { + "emoji": "๐Ÿ—‘๏ธ", + "entity": "🗑", + "code": ":wastebasket:", + "description": "Deprecate code that needs to be cleaned up.", + "name": "wastebasket", + "semver": "patch" + }, + { + "emoji": "๐Ÿ›‚", + "entity": "🛂", + "code": ":passport_control:", + "description": "Work on code related to authorization, roles and permissions.", + "name": "passport-control", + "semver": "patch" + }, + { + "emoji": "๐Ÿฉน", + "entity": "🩹", + "code": ":adhesive_bandage:", + "description": "Simple fix for a non-critical issue.", + "name": "adhesive-bandage", + "semver": "patch" + }, + { + "emoji": "๐Ÿง", + "entity": "🧐", + "code": ":monocle_face:", + "description": "Data exploration/inspection.", + "name": "monocle-face", + "semver": null + }, + { + "emoji": "โšฐ๏ธ", + "entity": "⚰", + "code": ":coffin:", + "description": "Remove dead code.", + "name": "coffin", + "semver": null + }, + { + "emoji": "๐Ÿงช", + "entity": "🧪", + "code": ":test_tube:", + "description": "Add a failing test.", + "name": "test-tube", + "semver": null + }, + { + "emoji": "๐Ÿ‘”", + "entity": "👔", + "code": ":necktie:", + "description": "Add or update business logic.", + "name": "necktie", + "semver": "patch" + }, + { + "emoji": "๐Ÿฉบ", + "entity": "🩺", + "code": ":stethoscope:", + "description": "Add or update healthcheck.", + "name": "stethoscope", + "semver": null + }, + { + "emoji": "๐Ÿงฑ", + "entity": "🧱", + "code": ":bricks:", + "description": "Infrastructure related changes.", + "name": "bricks", + "semver": null + }, + { + "emoji": "๐Ÿง‘โ€๐Ÿ’ป", + "entity": "🧑‍💻", + "code": ":technologist:", + "description": "Improve developer experience.", + "name": "technologist", + "semver": null + }, + { + "emoji": "๐Ÿ’ธ", + "entity": "💸", + "code": ":money_with_wings:", + "description": "Add sponsorships or money related infrastructure.", + "name": "money-with-wings", + "semver": null + }, + { + "emoji": "๐Ÿงต", + "entity": "🧵", + "code": ":thread:", + "description": "Add or update code related to multithreading or concurrency.", + "name": "thread", + "semver": null + }, + { + "emoji": "๐Ÿฆบ", + "entity": "🦺", + "code": ":safety_vest:", + "description": "Add or update code related to validation.", + "name": "safety-vest", + "semver": null + } + ] +} \ No newline at end of file