Skip to content

Commit 13746f0

Browse files
kolaentelunnywxiaoguangdelvh
authored
feat: add button to quickly clear merge message (#21548)
This PR adds a button to allow quickly clearing the merge message of a PR. The button will remove everything but the git trailers. I found myself often pruning the commit message before merging, especially for PRs generated by renovate - renovate puts a very long and detailed comment with the full changelog in each PR it opens. This clutters the commit message. However, I want to explicitly preserve the git commit trailers. Doing this manually works, but having a button is a lot easier. Screenshot: ![image](https://user-images.githubusercontent.com/13721712/197337525-d456d0f8-1f7c-43a9-815d-ca93b1e7a90a.png) Co-authored-by: Lunny Xiao <[email protected]> Co-authored-by: wxiaoguang <[email protected]> Co-authored-by: delvh <[email protected]>
1 parent 4d42cbb commit 13746f0

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

options/locale/locale_en-US.ini

+2
Original file line numberDiff line numberDiff line change
@@ -1630,6 +1630,8 @@ pulls.reopened_at = `reopened this pull request <a id="%[1]s" href="#%[1]s">%[2]
16301630
pulls.merge_instruction_hint = `You can also view <a class="show-instruction">command line instructions</a>.`
16311631
pulls.merge_instruction_step1_desc = From your project repository, check out a new branch and test the changes.
16321632
pulls.merge_instruction_step2_desc = Merge the changes and update on Gitea.
1633+
pulls.clear_merge_message = Clear merge message
1634+
pulls.clear_merge_message_hint = Clearing the merge message will only remove the commit message content and keep generated git trailers such as "Co-Authored-By …".
16331635

16341636
pulls.auto_merge_button_when_succeed = (When checks succeed)
16351637
pulls.auto_merge_when_succeed = Auto merge when all checks succeed

templates/repo/issue/view_content/pull.tmpl

+3
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,8 @@
351351
'textAutoMergeButtonWhenSucceed': {{$.locale.Tr "repo.pulls.auto_merge_button_when_succeed"}},
352352
'textAutoMergeWhenSucceed': {{$.locale.Tr "repo.pulls.auto_merge_when_succeed"}},
353353
'textAutoMergeCancelSchedule': {{$.locale.Tr "repo.pulls.auto_merge_cancel_schedule"}},
354+
'textClearMergeMessage': {{$.locale.Tr "repo.pulls.clear_merge_message"}},
355+
'textClearMergeMessageHint': {{$.locale.Tr "repo.pulls.clear_merge_message_hint"}},
354356

355357
'canMergeNow': {{$canMergeNow}},
356358
'allOverridableChecksOk': {{not $notAllOverridableChecksOk}},
@@ -360,6 +362,7 @@
360362
'defaultMergeStyle': {{.MergeStyle}},
361363
'defaultDeleteBranchAfterMerge': {{$prUnit.PullRequestsConfig.DefaultDeleteBranchAfterMerge}},
362364
'mergeMessageFieldPlaceHolder': {{$.locale.Tr "repo.editor.commit_message_desc"}},
365+
'defaultMergeMessage': defaultMergeMessage,
363366

364367
'hasPendingPullRequestMerge': {{.HasPendingPullRequestMerge}},
365368
'hasPendingPullRequestMergeTip': {{$hasPendingPullRequestMergeTip}},

web_src/js/components/PullRequestMergeForm.vue

+11
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@
2525
</div>
2626
<div class="field">
2727
<textarea name="merge_message_field" rows="5" :placeholder="mergeForm.mergeMessageFieldPlaceHolder" v-model="mergeMessageFieldValue"/>
28+
<template v-if="mergeMessageFieldValue !== mergeForm.defaultMergeMessage">
29+
<button @click.prevent="clearMergeMessage" class="ui tertiary button">
30+
{{ mergeForm.textClearMergeMessage }}
31+
</button>
32+
<div class="ui label"><!-- TODO: Convert to tooltip once we can use tooltips in Vue templates -->
33+
{{ mergeForm.textClearMergeMessageHint }}
34+
</div>
35+
</template>
2836
</div>
2937
</template>
3038

@@ -174,6 +182,9 @@ export default {
174182
this.mergeStyle = name;
175183
this.autoMergeWhenSucceed = autoMerge;
176184
},
185+
clearMergeMessage() {
186+
this.mergeMessageFieldValue = this.mergeForm.defaultMergeMessage;
187+
},
177188
},
178189
};
179190
</script>

0 commit comments

Comments
 (0)