Skip to content

Commit bbaad03

Browse files
Robert FührichtRobert Führicht
authored andcommitted
changes writeSignoffCommit from Boolean to String, now contains the actual commit header name.
1 parent d9335dc commit bbaad03

File tree

7 files changed

+47
-22
lines changed

7 files changed

+47
-22
lines changed

src/main/distrib/data/defaults.properties

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -638,14 +638,22 @@ tickets.redis.url =
638638
# SINCE 1.4.0
639639
tickets.perPage = 25
640640

641-
# Appends the reviewers on a ticket in
642-
# 'Signed-off-by: author <author@example.com>'
643-
# lines in the merge commit message when the WebUI merge
644-
# button is clicked.
645-
# Set to true to enable.
641+
# Appends the reviewers with a positive on a ticket's
642+
# patchset in the form of 'value: author <author@example.com>'
643+
# (where value is this # parameter's value) lines to the
644+
# merge commit message when the WebUI merge button is clicked.
645+
#
646+
# Set to the desired value to enable, e.g.:
647+
#
648+
# tickets.writeSignoffCommit = Signed-off-by
649+
#
650+
# Defaults to being disabled, can be overridden on repositories.
651+
#
652+
# See the conventions on the meaning of possible values for this
653+
# parameter: https://git.wiki.kernel.org/index.php/CommitMessageConventions
646654
#
647655
# SINCE 1.9.0
648-
tickets.writeSignoffCommit = false
656+
tickets.writeSignoffCommit =
649657

650658
# The folder where plugins are loaded from.
651659
#

src/main/java/com/gitblit/client/EditRepositoryDialog.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public class EditRepositoryDialog extends JDialog {
9898

9999
private JComboBox requireScore;
100100

101-
private JCheckBox writeSignoffCommit;
101+
private JComboBox writeSignoffCommit;
102102

103103
private JComboBox mergeToField;
104104

@@ -225,13 +225,19 @@ private void initialize(int protocolVersion, RepositoryModel anRepository) {
225225
anRepository.acceptNewPatchsets);
226226
requireApproval = new JCheckBox(Translation.get("gb.requireApprovalDescription"),
227227
anRepository.requireApproval);
228-
Integer [] scores = { 0, 2, 4, 5, 6, 8 };
228+
Integer [] scores = { -1, 0, 2, 4, 5, 6, 8 };
229229
requireScore = new JComboBox(scores);
230230
requireScore.setSelectedItem(anRepository.requireScore);
231231
requireScore.setEnabled(anRepository.requireApproval);
232232

233-
writeSignoffCommit = new JCheckBox(Translation.get("gb.writeSignoffDescription"),
234-
anRepository.writeSignoffCommit);
233+
String [] signoffCommitMsgs = {
234+
null,
235+
"Signed-off-by",
236+
"Reviewed-by",
237+
"Acked-by"
238+
};
239+
writeSignoffCommit = new JComboBox(signoffCommitMsgs);
240+
writeSignoffCommit.setSelectedItem(anRepository.writeSignoffCommit);
235241

236242
if (ArrayUtils.isEmpty(anRepository.availableRefs)) {
237243
mergeToField = new JComboBox();
@@ -604,7 +610,8 @@ private boolean validateFields() {
604610
repository.acceptNewTickets = acceptNewTickets.isSelected();
605611
repository.requireApproval = requireApproval.isSelected();
606612
repository.requireScore = (Integer) requireScore.getSelectedItem();
607-
repository.writeSignoffCommit = writeSignoffCommit.isSelected();
613+
repository.writeSignoffCommit = writeSignoffCommit.getSelectedItem() == null ? null
614+
: writeSignoffCommit.getSelectedItem().toString();
608615
repository.mergeTo = mergeToField.getSelectedItem() == null ? null
609616
: Repository.shortenRefName(mergeToField.getSelectedItem().toString());
610617
repository.useIncrementalPushTags = useIncrementalPushTags.isSelected();

src/main/java/com/gitblit/git/PatchsetReceivePack.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1271,16 +1271,19 @@ public MergeStatus merge(TicketModel ticket) {
12711271
StringBuilder messageBuilder = new StringBuilder();
12721272
messageBuilder.append(MessageFormat.format("Merged #{0,number,0} \"{1}\"", ticket.number, ticket.title));
12731273

1274-
// Add Signed-off-by tags to commit message footer if there are reviewers on this patchset
1275-
// and the setting is enabled on this repo.
1276-
if (repository.writeSignoffCommit) {
1274+
// Add sign-off tags to commit message footer if:
1275+
// - there are reviewers on this patchset
1276+
// - their review is positive
1277+
// - the setting is enabled on repo this patchset is for
1278+
if (repository.writeSignoffCommit != null && repository.writeSignoffCommit.length() > 0) {
12771279
messageBuilder.append("\n\n");
12781280
for (Change change : ticket.getReviews(patchset)) {
12791281
// Skip sign-off for negative reviews
12801282
if (change.review.score.getValue() < 0) continue;
12811283
UserModel ruser = gitblit.getUserModel(change.author);
12821284
messageBuilder.append(MessageFormat.format(
1283-
"Signed-off-by: {0} <{1}>\n",
1285+
"{0}: {1} <{2}>\n",
1286+
repository.writeSignoffCommit,
12841287
ruser.getDisplayName(),
12851288
StringUtils.isEmpty(ruser.emailAddress) ? (ruser.username + "@gitblit") : ruser.emailAddress
12861289
)

src/main/java/com/gitblit/manager/RepositoryManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ private RepositoryModel loadRepositoryModel(String repositoryName) {
900900
model.acceptNewTickets = getConfig(config, "acceptNewTickets", true);
901901
model.requireApproval = getConfig(config, "requireApproval", settings.getBoolean(Keys.tickets.requireApproval, false));
902902
model.requireScore = getConfig(config, "requireScore", settings.getInteger(Keys.tickets.requireScore, -1));
903-
model.writeSignoffCommit = getConfig(config, "writeSignoffCommit", settings.getBoolean(Keys.tickets.writeSignoffCommit, false));
903+
model.writeSignoffCommit = getConfig(config, "writeSignoffCommit", settings.getString(Keys.tickets.writeSignoffCommit, null));
904904
model.mergeTo = getConfig(config, "mergeTo", null);
905905
model.mergeType = MergeType.fromName(getConfig(config, "mergeType", settings.getString(Keys.tickets.mergeType, null)));
906906
model.useIncrementalPushTags = getConfig(config, "useIncrementalPushTags", false);
@@ -1559,12 +1559,12 @@ public void updateConfiguration(Repository r, RepositoryModel repository) {
15591559
config.setBoolean(Constants.CONFIG_GITBLIT, null, "requireApproval", repository.requireApproval);
15601560
}
15611561
config.setInt(Constants.CONFIG_GITBLIT, null, "requireScore", repository.requireScore);
1562-
if (settings.getBoolean(Keys.tickets.writeSignoffCommit, false) == repository.writeSignoffCommit) {
1562+
if (settings.getString(Keys.tickets.writeSignoffCommit, null) == repository.writeSignoffCommit) {
15631563
// use default
15641564
config.unset(Constants.CONFIG_GITBLIT, null, "writeSignoffCommit");
15651565
} else {
15661566
// override default
1567-
config.setBoolean(Constants.CONFIG_GITBLIT, null, "writeSignoffCommit", repository.writeSignoffCommit);
1567+
config.setString(Constants.CONFIG_GITBLIT, null, "writeSignoffCommit", repository.writeSignoffCommit);
15681568
}
15691569
if (!StringUtils.isEmpty(repository.mergeTo)) {
15701570
config.setString(Constants.CONFIG_GITBLIT, null, "mergeTo", repository.mergeTo);

src/main/java/com/gitblit/models/RepositoryModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class RepositoryModel implements Serializable, Comparable<RepositoryModel
9090
public boolean acceptNewTickets;
9191
public boolean requireApproval;
9292
public int requireScore;
93-
public boolean writeSignoffCommit;
93+
public String writeSignoffCommit;
9494
public String mergeTo;
9595
public MergeType mergeType;
9696

src/main/java/com/gitblit/wicket/GitBlitWebApp.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ gb.requireApprovalDescription = patchsets must be approved before merge button i
558558
gb.requireScore = require score
559559
gb.requireScoreDescription = patchsets must be rated this high before merge button is enabled
560560
gb.writeSignoffCommit = write signoff commit
561-
gb.writeSignoffCommitDescription = reviewed patchsets will have 'Signed-off-by: reviewer <reviewer@example.com>' commit lines appended on merge
561+
gb.writeSignoffCommitDescription = reviewed patchsets will have lines of the form 'value: reviewer name <reviewer email>' added to their merge commit.\nE.g. if set to <em>Signed-off-by</em>: 'Signed-off-by: reviewer <reviewer@example.com>'. Please see the <a target="_new" href="https://git.wiki.kernel.org/index.php/CommitMessageConventions">conventions</a> on the meaning of possible values for this.
562562
gb.topic = topic
563563
gb.proposalTickets = proposed changes
564564
gb.bugTickets = bugs

src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,10 +461,17 @@ protected void onSubmit() {
461461
new DropDownChoice<Integer>("choice",
462462
new PropertyModel<Integer>(repositoryModel, "requireScore"),
463463
scores)).setEnabled(allowRequireScore));
464-
form.add(new BooleanOption("writeSignoffCommit",
464+
List<String> signoffCommitMsgs = Arrays.asList(
465+
null,
466+
"Signed-off-by",
467+
"Reviewed-by",
468+
"Acked-by"
469+
);
470+
form.add(new ChoiceOption<String>("writeSignoffCommit",
465471
getString("gb.writeSignoffCommit"),
466472
getString("gb.writeSignoffCommitDescription"),
467-
new PropertyModel<Boolean>(repositoryModel, "writeSignoffCommit")));
473+
new PropertyModel<String>(repositoryModel, "writeSignoffCommit"),
474+
signoffCommitMsgs));
468475
form.add(new ChoiceOption<String>("mergeTo",
469476
getString("gb.mergeTo"),
470477
getString("gb.mergeToDescription"),

0 commit comments

Comments
 (0)