Skip to content

Commit 5277c8a

Browse files
authored
Merge branch 'main' into fix-16092
2 parents 7663239 + 8fa3bbc commit 5277c8a

File tree

9 files changed

+100
-9
lines changed

9 files changed

+100
-9
lines changed

docs/content/doc/advanced/config-cheat-sheet.en-us.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,11 @@ Values containing `#` or `;` must be quoted using `` ` `` or `"""`.
9494
- `REOPEN_KEYWORDS`: **reopen**, **reopens**, **reopened**: List of keywords used in Pull Request comments to automatically reopen
9595
a related issue
9696
- `DEFAULT_MERGE_MESSAGE_COMMITS_LIMIT`: **50**: In the default merge message for squash commits include at most this many commits. Set to `-1` to include all commits
97-
- `DEFAULT_MERGE_MESSAGE_SIZE`: **5120**: In the default merge message for squash commits limit the size of the commit messages. Set to `-1` to have no limit.
97+
- `DEFAULT_MERGE_MESSAGE_SIZE`: **5120**: In the default merge message for squash commits limit the size of the commit messages. Set to `-1` to have no limit. Only used if `POPULATE_SQUASH_COMMENT_WITH_COMMIT_MESSAGES` is `true`.
9898
- `DEFAULT_MERGE_MESSAGE_ALL_AUTHORS`: **false**: In the default merge message for squash commits walk all commits to include all authors in the Co-authored-by otherwise just use those in the limited list
9999
- `DEFAULT_MERGE_MESSAGE_MAX_APPROVERS`: **10**: In default merge messages limit the number of approvers listed as `Reviewed-by:`. Set to `-1` to include all.
100100
- `DEFAULT_MERGE_MESSAGE_OFFICIAL_APPROVERS_ONLY`: **true**: In default merge messages only include approvers who are officially allowed to review.
101+
- `POPULATE_SQUASH_COMMENT_WITH_COMMIT_MESSAGES`: **false**: In default squash-merge messages include the commit message of all commits comprising the pull request.
101102

102103
### Repository - Issue (`repository.issue`)
103104

modules/setting/repository.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ var (
7878
DefaultMergeMessageAllAuthors bool
7979
DefaultMergeMessageMaxApprovers int
8080
DefaultMergeMessageOfficialApproversOnly bool
81+
PopulateSquashCommentWithCommitMessages bool
8182
} `ini:"repository.pull-request"`
8283

8384
// Issue Setting
@@ -199,6 +200,7 @@ var (
199200
DefaultMergeMessageAllAuthors bool
200201
DefaultMergeMessageMaxApprovers int
201202
DefaultMergeMessageOfficialApproversOnly bool
203+
PopulateSquashCommentWithCommitMessages bool
202204
}{
203205
WorkInProgressPrefixes: []string{"WIP:", "[WIP]"},
204206
// Same as GitHub. See
@@ -210,6 +212,7 @@ var (
210212
DefaultMergeMessageAllAuthors: false,
211213
DefaultMergeMessageMaxApprovers: 10,
212214
DefaultMergeMessageOfficialApproversOnly: true,
215+
PopulateSquashCommentWithCommitMessages: false,
213216
},
214217

215218
// Issue settings

options/locale/locale_de-DE.ini

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,10 @@ loading=Laden…
9191
step1=Schritt 1:
9292
step2=Schritt 2:
9393

94+
error=Fehler
9495
error404=Die Seite, die du gerade versuchst aufzurufen, <strong>existiert entweder nicht</strong> oder <strong>du bist nicht berechtigt</strong>, diese anzusehen.
9596

97+
never=Niemals
9698

9799
[error]
98100
occurred=Ein Fehler ist aufgetreten
@@ -724,13 +726,17 @@ mirror_prune_desc=Entferne veraltete remote-tracking Referenzen
724726
mirror_interval=Spiegel-Intervall (gültige Zeiteinheiten sind 'h', 'm', 's'). 0 schaltet die automatische Synchronisierung aus.
725727
mirror_interval_invalid=Das Spiegel-Intervall ist ungültig.
726728
mirror_address=Klonen via URL
729+
mirror_address_desc=Gib alle erforderlichen Anmeldedaten im Abschnitt "Authentifizierung" ein.
727730
mirror_address_url_invalid=Die angegebene URL ist ungültig. Achte darauf, alle URL-Komponenten korrekt zu maskieren.
728731
mirror_address_protocol_invalid=Die angegebene URL ist ungültig. Nur Pfade beginnend mit http(s):// oder git:// können gespiegelt werden.
729732
mirror_lfs=Großdatei-Speicher (LFS)
730733
mirror_lfs_desc=Mirroring von LFS-Dateien aktivieren.
731734
mirror_lfs_endpoint=LFS-Endpunkt
732735
mirror_lfs_endpoint_desc=Sync wird versuchen, die Klon-URL zu verwenden, um <a target="_blank" rel="noopener noreferrer" href="%s">den LFS-Server zu bestimmen</a>. Du kannst auch einen eigenen Endpunkt angeben, wenn die LFS-Dateien woanders gespeichert werden.
733736
mirror_last_synced=Zuletzt synchronisiert
737+
mirror_password_placeholder=(unverändert)
738+
mirror_password_blank_placeholder=(Nicht gesetzt)
739+
mirror_password_help=Ändere den Benutzernamen, um ein gespeichertes Passwort zu löschen.
734740
watchers=Beobachter
735741
stargazers=Favorisiert von
736742
forks=Forks
@@ -783,6 +789,7 @@ form.reach_limit_of_creation_n=Du hast bereits dein Limit von %d Repositories er
783789
form.name_reserved=Der Repository-Name „%s“ ist reserviert.
784790
form.name_pattern_not_allowed='%s' ist nicht erlaubt für Repository-Namen.
785791
792+
need_auth=Authentifizierung
786793
migrate_options=Migrationsoptionen
787794
migrate_service=Migrationsdienst
788795
migrate_options_mirror_helper=Dieses Repository wird ein <span class="text blue">Mirror</span> sein
@@ -816,11 +823,17 @@ migrated_from_fake=Migriert von %[1]s
816823
migrate.migrate=Migrieren von %s
817824
migrate.migrating=Migriere von <b>%s</b> ...
818825
migrate.migrating_failed=Migrieren von <b>%s</b> fehlgeschlagen.
826+
migrate.migrating_failed.error=Fehler: %s
819827
migrate.github.description=Migriere Daten von Github.com oder Github Enterprise.
820828
migrate.git.description=Migriere oder spiegele git-Daten von Git-Services
821829
migrate.gitlab.description=Migriere Daten von GitLab.com oder einem selbst gehostetem gitlab Server.
822830
migrate.gitea.description=Migriere Daten von Gitea.com oder einem selbst gehostetem Gitea Server.
823831
migrate.gogs.description=Migriere Daten von notabug.org oder einem anderen, selbst gehosteten Gogs Server.
832+
migrate.migrating_milestones=Meilensteine werden migriert
833+
migrate.migrating_labels=Labels werden migriert
834+
migrate.migrating_releases=Releases werden migriert
835+
migrate.migrating_issues=Issues werden migriert
836+
migrate.migrating_pulls=Pull Requests werden migriert
824837
825838
mirror_from=Mirror von
826839
forked_from=geforkt von
@@ -1314,6 +1327,10 @@ pulls.manually_merged_as=Dieser Pull Request wurde manuell als <a rel="nofollow"
13141327
pulls.is_closed=Der Pull-Request wurde geschlossen.
13151328
pulls.has_merged=Der Pull-Request wurde gemergt.
13161329
pulls.title_wip_desc=`<a href="#">Beginne den Titel mit <strong>%s</strong></a> um zu verhindern, dass der Pull Request versehentlich gemergt wird.`
1330+
pulls.cannot_merge_work_in_progress=Dieser Pull Request ist als Work in Progress markiert.
1331+
pulls.still_in_progress=Noch in Bearbeitung?
1332+
pulls.add_prefix=<strong>%s</strong> Präfix hinzufügen
1333+
pulls.remove_prefix=<strong>%s</strong> Präfix entfernen
13171334
pulls.data_broken=Dieser Pull-Requests ist kaputt, da Fork-Informationen gelöscht wurden.
13181335
pulls.files_conflicted=Dieser Pull-Request hat Änderungen, die im Widerspruch zum Ziel-Branch stehen.
13191336
pulls.is_checking=Die Konfliktprüfung läuft noch. Bitte aktualisiere die Seite in wenigen Augenblicken.
@@ -1539,6 +1556,11 @@ settings.hooks=Webhooks
15391556
settings.githooks=Git-Hooks
15401557
settings.basic_settings=Grundeinstellungen
15411558
settings.mirror_settings=Mirror-Einstellungen
1559+
settings.mirror_settings.direction=Richtung
1560+
settings.mirror_settings.direction.pull=Pull
1561+
settings.mirror_settings.direction.push=Push
1562+
settings.mirror_settings.last_update=Letzte Aktualisierung
1563+
settings.mirror_settings.push_mirror.none=Keine Push-Mirrors konfiguriert
15421564
settings.sync_mirror=Jetzt synchronisieren
15431565
settings.mirror_sync_in_progress=Mirror-Synchronisierung wird zurzeit ausgeführt. Komm in ein paar Minuten zurück.
15441566
settings.email_notifications.enable=E-Mail Benachrichtigungen aktivieren

options/locale/locale_es-ES.ini

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,10 @@ loading=Cargando…
9191
step1=Paso 1:
9292
step2=Paso 2:
9393

94+
error=Error
9495
error404=La página a la que está intentando acceder o <strong>no existe</strong> o <strong>no está autorizado</strong> para verla.
9596

97+
never=Nunca
9698

9799
[error]
98100
occurred=Se ha producido un error
@@ -731,6 +733,7 @@ mirror_lfs_desc=Activar la reproducción de datos LFS.
731733
mirror_lfs_endpoint=Punto final de LFS
732734
mirror_lfs_endpoint_desc=Sync intentará usar la url del clon para <a target="_blank" rel="noopener noreferrer" href="%s">determinar el servidor LFS</a>. También puede especificar un punto final personalizado si los datos LFS del repositorio se almacenan en otro lugar.
733735
mirror_last_synced=Sincronizado por última vez
736+
mirror_password_placeholder=(Sin cambios)
734737
watchers=Seguidores
735738
stargazers=Fans
736739
forks=Forks
@@ -783,6 +786,7 @@ form.reach_limit_of_creation_n=Ya han alcanzado su límite de repositorios de %d
783786
form.name_reserved=El nombre de repositorio '%s' está reservado.
784787
form.name_pattern_not_allowed=El patrón '%s' no está permitido en un nombre de repositorio.
785788

789+
need_auth=Autorización
786790
migrate_options=Opciones de migración
787791
migrate_service=Servicio de Migración
788792
migrate_options_mirror_helper=Este repositorio será uno <span class="text blue">replicado</span>
@@ -1314,6 +1318,7 @@ pulls.manually_merged_as=El Pull Request se ha fusionado manualmente como <a rel
13141318
pulls.is_closed=El pull request ha sido cerrado.
13151319
pulls.has_merged=El pull request ha sido fusionado.
13161320
pulls.title_wip_desc=`<a href="#">Comience el título con <strong>%s</strong></a> para prevenir que el pull request se fusione accidentalmente.`
1321+
pulls.still_in_progress=¿Aún en curso?
13171322
pulls.data_broken=Este pull request está rota debido a que falta información del fork.
13181323
pulls.files_conflicted=Este pull request tiene cambios en conflicto con la rama de destino.
13191324
pulls.is_checking=La comprobación de conflicto de fusión está en progreso. Inténtalo de nuevo en unos momentos.
@@ -1539,6 +1544,11 @@ settings.hooks=Webhooks
15391544
settings.githooks=Git Hooks
15401545
settings.basic_settings=Configuración Básica
15411546
settings.mirror_settings=Configuración de réplica
1547+
settings.mirror_settings.docs=Configure su proyecto para insertar y/o extraer automáticamente los cambios hacia/desde otro repositorio. Las ramas, etiquetas y commits se sincronizarán automáticamente. <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/repo-mirror/">¿Cómo replico los repositorios?</a>
1548+
settings.mirror_settings.direction=Dirección
1549+
settings.mirror_settings.direction.pull=Pull
1550+
settings.mirror_settings.last_update=Última actualización
1551+
settings.mirror_settings.push_mirror.remote_url=URL del repositorio remoto de Git
15421552
settings.sync_mirror=Sincronizar ahora
15431553
settings.mirror_sync_in_progress=La sincronización del repositorio replicado está en curso. Vuelva a intentarlo más tarde.
15441554
settings.email_notifications.enable=Habilitar las notificaciones por correo electrónico
@@ -1604,6 +1614,7 @@ settings.transfer_form_title=Escriba el nombre del repositorio como confirmació
16041614
settings.transfer_in_progress=Actualmente hay una transferencia en curso. Por favor, cancela si quieres transferir este repositorio a otro usuario.
16051615
settings.transfer_notices_1=- Perderá el acceso al repositorio si lo transfiere a un usuario individual.
16061616
settings.transfer_notices_2=- Mantendrá el acceso al repositorio si lo transfiere a una organización que usted (co-)posee.
1617+
settings.transfer_notices_3=- Si el repositorio es privado y se transfiere a un usuario individual, esta acción se asegura de que el usuario tenga al menos permisos de lectura (y cambie los permisos si es necesario).
16071618
settings.transfer_owner=Nuevo Propietario
16081619
settings.transfer_perform=Realizar transferencia
16091620
settings.transfer_started=Este repositorio ha sido marcado para transferencia y espera confirmación de "%s"
@@ -1974,6 +1985,10 @@ branch.restore=Restaurar rama '%s'
19741985
branch.download=Descargar rama '%s'
19751986
branch.included_desc=Esta rama forma parte de la predeterminada
19761987
branch.included=Incluida
1988+
branch.create_new_branch=Crear rama desde la rama:
1989+
branch.confirm_create_branch=Crear rama
1990+
branch.new_branch=Crear nueva rama
1991+
branch.new_branch_from=Crear nueva rama desde '%s'
19771992

19781993
tag.create_tag=Crear etiqueta <strong>%s</strong>
19791994
tag.create_success=La etiqueta '%s' ha sido creada.

options/locale/locale_fr-FR.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,8 +1263,8 @@ issues.review.dismissed_label=Rejeté
12631263
issues.review.left_comment=laisser un commentaire
12641264
issues.review.content.empty=Vous devez laisser un commentaire indiquant le(s) changement(s) demandé(s).
12651265
issues.review.reject=a requis les changements %s
1266-
issues.review.wait=a demandé une révision pour %s
1267-
issues.review.add_review_request=demande de révision de %s %s
1266+
issues.review.wait=a été sollicité pour une révision %s
1267+
issues.review.add_review_request=a demandé une révision de %s %s
12681268
issues.review.remove_review_request=a supprimé la demande de révision pour %s %s
12691269
issues.review.remove_review_request_self=a refusé la revue %s
12701270
issues.review.pending=En attente

options/locale/locale_ru-RU.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1995,7 +1995,7 @@ settings.visibility.public=Публичный
19951995
settings.visibility.limited=Ограничено (Видно только для авторизованных пользователей)
19961996
settings.visibility.limited_shortname=Ограничить
19971997
settings.visibility.private=Частный (Видимый только для участников организации)
1998-
settings.visibility.private_shortname=Приватизировать
1998+
settings.visibility.private_shortname=Приватный
19991999

20002000
settings.update_settings=Обновить настройки
20012001
settings.update_setting_success=Настройки организации обновлены.

options/locale/locale_zh-CN.ini

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,10 @@ loading=正在加载...
9191
step1=第一步:
9292
step2=第二步:
9393

94+
error=错误
9495
error404=您正尝试访问的页面 <strong>不存在</strong> 或 <strong>您尚未被授权</strong> 查看该页面。
9596

97+
never=从不
9698

9799
[error]
98100
occurred=发生错误
@@ -724,6 +726,7 @@ mirror_prune_desc=删除过时的远程跟踪引用
724726
mirror_interval=镜像间隔 (有效时间单位为 "h"、"m"、"s")。0将禁用自动同步。
725727
mirror_interval_invalid=镜像间隔无效。
726728
mirror_address=从URL克隆
729+
mirror_address_desc=在授权框中输入必要的凭据。
727730
mirror_address_url_invalid=URL无效。请检查您所输入的URL是否正确。
728731
mirror_address_protocol_invalid=提供的 url 无效。只能从 http(s):// 或 git:// 位置进行镜像。
729732
mirror_lfs=大文件存储 (LFS)
@@ -786,6 +789,7 @@ form.reach_limit_of_creation_n=你已经达到了 %d 个仓库的上限。
786789
form.name_reserved=仓库名称 '%s' 是被保留的。
787790
form.name_pattern_not_allowed=仓库名称中不允许使用模式 "%s"。
788791
792+
need_auth=授权
789793
migrate_options=迁移选项
790794
migrate_service=迁移服务
791795
migrate_options_mirror_helper=该仓库将是一个 <span class="text blue">镜像</span>
@@ -819,11 +823,19 @@ migrated_from_fake=从 %[1]s 迁移成功
819823
migrate.migrate=从 %s 迁移
820824
migrate.migrating=正在从 <b>%s</b> 迁移...
821825
migrate.migrating_failed=从 <b>%s</b> 迁移失败。
826+
migrate.migrating_failed.error=错误:%s
822827
migrate.github.description=从 Github.com 或者 Github Enterprise 迁移数据
823828
migrate.git.description=从 Git 迁移数据
824829
migrate.gitlab.description=从 GitLab.com 或者 自部署 GitLab 迁移数据
825830
migrate.gitea.description=从 Gitea.com 或 自托管 Gitea 服务器迁移数据。
826831
migrate.gogs.description=正从 notabug.org 或其他自托管 Gogs 服务器迁移数据。
832+
migrate.migrating_git=迁移Git数据
833+
migrate.migrating_topics=迁移主题
834+
migrate.migrating_milestones=迁移里程碑
835+
migrate.migrating_labels=迁移标签
836+
migrate.migrating_releases=迁移发布
837+
migrate.migrating_issues=迁移工单
838+
migrate.migrating_pulls=迁移合并请求
827839
828840
mirror_from=镜像自地址
829841
forked_from=派生自
@@ -1546,6 +1558,15 @@ settings.hooks=Web 钩子
15461558
settings.githooks=管理 Git 钩子
15471559
settings.basic_settings=基本设置
15481560
settings.mirror_settings=镜像设置
1561+
settings.mirror_settings.docs=将你的项目设置成自动从其它存储库推送或拉取变更。分支、标签以及提交将会自动同步。<a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io/en-us/repo-mirror/">如何镜像存储库?</a>
1562+
settings.mirror_settings.mirrored_repository=镜像库
1563+
settings.mirror_settings.direction=方向
1564+
settings.mirror_settings.direction.pull=拉取
1565+
settings.mirror_settings.direction.push=推送
1566+
settings.mirror_settings.last_update=最后更新
1567+
settings.mirror_settings.push_mirror.none=未配置推送镜像
1568+
settings.mirror_settings.push_mirror.remote_url=Git 远程存储库链接
1569+
settings.mirror_settings.push_mirror.add=添加推送镜像
15491570
settings.sync_mirror=同步
15501571
settings.mirror_sync_in_progress=镜像同步正在进行中,请稍后后再试。
15511572
settings.email_notifications.enable=启用邮件通知
@@ -1611,6 +1632,7 @@ settings.transfer_form_title=输入仓库名称以做确认:
16111632
settings.transfer_in_progress=当前正在进行转让。 如果你想将此代码库转让给另一个用户,请取消它。
16121633
settings.transfer_notices_1=-如果将其传输给单个用户, 您将失去对存储库的访问权限。
16131634
settings.transfer_notices_2=-如果将其转移到您 (共同) 拥有的组织,您可以继续访问该仓库。
1635+
settings.transfer_notices_3=- 如果存储库是私有的并且被转移给某个用户,那么此操作可以确保该用户至少具有读权限(以及必要时的更改权限)。
16141636
settings.transfer_owner=新拥有者
16151637
settings.transfer_perform=执行转让
16161638
settings.transfer_started=该代码库已被标记为转让并等待来自 %s 的确认

options/locale/locale_zh-TW.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ email_notifications.disable=關閉郵件通知
676676
email_notifications.submit=套用郵件偏好設定
677677

678678
[repo]
679-
new_repo_helper=儲存庫包含所以專案檔案,包含修訂歷史。已經存放於別處了嗎?<a href="%s">遷移儲存庫。</a>
679+
new_repo_helper=儲存庫包含所有專案檔案,包含修訂歷史。已經存放於別處了嗎?<a href="%s">遷移儲存庫。</a>
680680
owner=擁有者
681681
owner_helper=組織可能因為儲存庫數量上限而未列入此選單。
682682
repo_name=儲存庫名稱

services/pull/pull.go

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -570,16 +570,44 @@ func GetSquashMergeCommitMessages(pr *models.PullRequest) string {
570570
authors := make([]string, 0, list.Len())
571571
stringBuilder := strings.Builder{}
572572

573-
stringBuilder.WriteString(pr.Issue.Content)
574-
if stringBuilder.Len() > 0 {
575-
stringBuilder.WriteRune('\n')
576-
stringBuilder.WriteRune('\n')
573+
if !setting.Repository.PullRequest.PopulateSquashCommentWithCommitMessages {
574+
stringBuilder.WriteString(pr.Issue.Content)
575+
if stringBuilder.Len() > 0 {
576+
stringBuilder.WriteRune('\n')
577+
stringBuilder.WriteRune('\n')
578+
}
577579
}
578580

579581
// commits list is in reverse chronological order
580582
element := list.Back()
581583
for element != nil {
582584
commit := element.Value.(*git.Commit)
585+
586+
if setting.Repository.PullRequest.PopulateSquashCommentWithCommitMessages {
587+
maxSize := setting.Repository.PullRequest.DefaultMergeMessageSize
588+
if maxSize < 0 || stringBuilder.Len() < maxSize {
589+
var toWrite []byte
590+
if element == list.Back() {
591+
toWrite = []byte(strings.TrimPrefix(commit.CommitMessage, pr.Issue.Title))
592+
} else {
593+
toWrite = []byte(commit.CommitMessage)
594+
}
595+
596+
if len(toWrite) > maxSize-stringBuilder.Len() && maxSize > -1 {
597+
toWrite = append(toWrite[:maxSize-stringBuilder.Len()], "..."...)
598+
}
599+
if _, err := stringBuilder.Write(toWrite); err != nil {
600+
log.Error("Unable to write commit message Error: %v", err)
601+
return ""
602+
}
603+
604+
if _, err := stringBuilder.WriteRune('\n'); err != nil {
605+
log.Error("Unable to write commit message Error: %v", err)
606+
return ""
607+
}
608+
}
609+
}
610+
583611
authorString := commit.Author.String()
584612
if !authorsMap[authorString] && authorString != posterSig {
585613
authors = append(authors, authorString)

0 commit comments

Comments
 (0)