|
38 | 38 | * "mode": "append|prepend", |
39 | 39 | * "prefix": "", |
40 | 40 | * "suffix": "", |
| 41 | + * "modify": "lowercase|uppercase", |
41 | 42 | * "force": true |
42 | 43 | * } |
43 | 44 | * } |
@@ -139,16 +140,18 @@ private function createNewCommitMessage(Options $options, CommitMessage $msg, st |
139 | 140 | $target = $options->get('into', self::TARGET_BODY); |
140 | 141 | $mode = $options->get('mode', self::MODE_APPEND); |
141 | 142 |
|
| 143 | + $issueID = $this->modify($issueID, (string) $options->get('modify', '')); |
| 144 | + |
142 | 145 | // overwrite either subject or body |
143 | 146 | $pattern = $this->handlePrefixAndSuffix($mode, $options); |
144 | 147 | $msgData = [self::TARGET_SUBJECT => $msg->getSubject(), self::TARGET_BODY => $msg->getBody()]; |
145 | 148 | $msgData[$target] = $this->injectIssueId($issueID, $msgData[$target], $mode, $pattern); |
146 | 149 |
|
147 | 150 | // combine all the parts to create a new commit message |
148 | 151 | $msgText = $msgData[self::TARGET_SUBJECT] . PHP_EOL |
149 | | - . PHP_EOL |
150 | | - . $msgData[self::TARGET_BODY] . PHP_EOL |
151 | | - . $msg->getComments(); |
| 152 | + . PHP_EOL |
| 153 | + . $msgData[self::TARGET_BODY] . PHP_EOL |
| 154 | + . $msg->getComments(); |
152 | 155 |
|
153 | 156 | return new CommitMessage($msgText, $msg->getCommentCharacter()); |
154 | 157 | } |
@@ -195,4 +198,28 @@ private function handlePrefixAndSuffix(string $mode, Options $options): string |
195 | 198 | $suffix = $options->get('suffix', $mode == 'prepend' ? $space : ''); |
196 | 199 | return $prefix . $pattern . $suffix; |
197 | 200 | } |
| 201 | + |
| 202 | + /** |
| 203 | + * Run modifier |
| 204 | + * |
| 205 | + * @param string $issueID |
| 206 | + * @param string $modify |
| 207 | + * @return string |
| 208 | + */ |
| 209 | + private function modify(string $issueID, string $modify): string |
| 210 | + { |
| 211 | + if (empty($modify)) { |
| 212 | + return $issueID; |
| 213 | + } |
| 214 | + |
| 215 | + $availableModifiers = [ |
| 216 | + 'lowercase' => fn (string $str): string => strtolower($str), |
| 217 | + 'uppercase' => fn (string $str): string => strtoupper($str), |
| 218 | + ]; |
| 219 | + |
| 220 | + if (array_key_exists($modify, $availableModifiers)) { |
| 221 | + $issueID = $availableModifiers[$modify]($issueID); |
| 222 | + } |
| 223 | + return $issueID; |
| 224 | + } |
198 | 225 | } |
0 commit comments