Backport 1.23 (#32868)

Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
wxiaoguang 2024-12-17 11:58:27 +08:00 committed by GitHub
parent 22c4599542
commit e98dd6ee5b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 208 additions and 7 deletions

View File

@ -69,7 +69,7 @@ func TestAggregateJobStatus(t *testing.T) {
{[]Status{StatusFailure, StatusBlocked}, StatusFailure},
// skipped with other status
// TODO: need to clarify whether a PR with "skipped" job status is considered as "mergeable" or not.
// "all skipped" is also considered as "mergeable" by "services/actions.toCommitStatus", the same as GitHub
{[]Status{StatusSkipped}, StatusSkipped},
{[]Status{StatusSkipped, StatusSuccess}, StatusSuccess},
{[]Status{StatusSkipped, StatusFailure}, StatusFailure},

View File

@ -129,7 +129,8 @@ func SpecializedMarkdown(ctx *markup.RenderContext) *GlodmarkRender {
Enabled: setting.Markdown.EnableMath,
ParseDollarInline: true,
ParseDollarBlock: true,
ParseSquareBlock: true, // TODO: this is a bad syntax, it should be deprecated in the future (by some config options)
ParseSquareBlock: true, // TODO: this is a bad syntax "\[ ... \]", it conflicts with normal markdown escaping, it should be deprecated in the future (by some config options)
// ParseBracketInline: true, // TODO: this is also a bad syntax "\( ... \)", it also conflicts, it should be deprecated in the future
}),
meta.Meta,
),

View File

@ -12,6 +12,9 @@ import (
"code.gitea.io/gitea/modules/setting"
)
// CanUserForkBetweenOwners returns true if user can fork between owners.
// By default, a user can fork a repository from another owner, but not from themselves.
// Many users really like to fork their own repositories, so add an experimental setting to allow this.
func CanUserForkBetweenOwners(id1, id2 int64) bool {
if id1 != id2 {
return true

View File

@ -1676,7 +1676,6 @@ issues.timetracker_timer_stop=Arrêter le minuteur
issues.timetracker_timer_discard=Annuler le minuteur
issues.timetracker_timer_manually_add=Pointer du temps
issues.time_estimate_placeholder=1h 2m
issues.time_estimate_set=Définir le temps estimé
issues.time_estimate_display=Estimation : %s
issues.change_time_estimate_at=a changé le temps estimé à <b>%s</b> %s

View File

@ -1676,7 +1676,6 @@ issues.timetracker_timer_stop=Stop an t-amadóir
issues.timetracker_timer_discard=Déan an t-amadóir a scriosadh
issues.timetracker_timer_manually_add=Cuir Am leis
issues.time_estimate_placeholder=1u 2n
issues.time_estimate_set=Socraigh am measta
issues.time_estimate_display=Meastachán: %s
issues.change_time_estimate_at=d'athraigh an meastachán ama go <b>%s</b> %s

View File

@ -1679,7 +1679,6 @@ issues.timetracker_timer_stop=Parar cronómetro
issues.timetracker_timer_discard=Descartar cronómetro
issues.timetracker_timer_manually_add=Adicionar tempo
issues.time_estimate_placeholder=1h 2m
issues.time_estimate_set=Definir tempo estimado
issues.time_estimate_display=Estimativa: %s
issues.change_time_estimate_at=alterou a estimativa de tempo para <b>%s</b> %s
@ -2632,6 +2631,7 @@ release.new_release=Novo lançamento
release.draft=Rascunho
release.prerelease=Pré-lançamento
release.stable=Estável
release.latest=Mais recente
release.compare=Comparar
release.edit=editar
release.ahead.commits=<strong>%d</strong> cometimentos

View File

@ -93,6 +93,7 @@ remove_all=移除所有
remove_label_str=`删除标签 "%s"`
edit=编辑
view=查看
test=测试
enabled=启用
disabled=禁用
@ -103,6 +104,7 @@ copy_url=复制网址
copy_hash=复制哈希值
copy_content=复制内容
copy_branch=复制分支名
copy_path=复制路径
copy_success=复制成功!
copy_error=复制失败
copy_type_unsupported=无法复制此类型的文件内容
@ -143,6 +145,7 @@ confirm_delete_selected=确认删除所有选中项目?
name=名称
value=
readme=自述文档
filter=过滤
filter.clear=清除筛选器
@ -178,6 +181,7 @@ package_kind=搜索软件包...
project_kind=搜索项目...
branch_kind=搜索分支...
tag_kind=搜索标签...
tag_tooltip=搜索匹配的标签。使用“%”来匹配任何序列的数字
commit_kind=搜索提交记录...
runner_kind=搜索runners...
no_results=未找到匹配结果
@ -223,16 +227,20 @@ string.desc=Z - A
[error]
occurred=发生了一个错误
report_message=如果您确定这是一个 Gitea bug请在 <a href="%s" target="_blank">这里</a> 搜索问题,或在必要时创建一个新工单。
not_found=找不到目标。
network_error=网络错误
[startpage]
app_desc=一款极易搭建的自助 Git 服务
install=易安装
install_desc=通过 <a target="_blank" rel="noopener noreferrer" href="%[1]s">二进制</a> 来运行;或者通过 <a target="_blank" rel="noopener noreferrer" href="%[2]s">Docker</a> 来运行;或者通过 <a target="_blank" rel="noopener noreferrer" href="%[3]s">安装包</a> 来运行。
platform=跨平台
platform_desc=任何 <a target="_blank" rel="noopener noreferrer" href="%s">Go 语言</a> 支持的平台都可以运行 Gitea包括 Windows、Mac、Linux 以及 ARM。挑一个您喜欢的就行
lightweight=轻量级
lightweight_desc=一个廉价的树莓派的配置足以满足 Gitea 的最低系统硬件要求。最大程度上节省您的服务器资源!
license=开源化
license_desc=所有的代码都开源在 <a target="_blank" rel="noopener noreferrer" href="%[1]s">%[2]s</a> 上,赶快加入我们来<a target="_blank" rel="noopener noreferrer" href="%[3]s">共同发展</a>这个伟大的项目!还等什么?成为贡献者吧!
[install]
install=安装页面
@ -346,6 +354,7 @@ enable_update_checker=启用更新检查
enable_update_checker_helper=通过连接到 gitea.io 定期检查新版本发布。
env_config_keys=环境配置
env_config_keys_prompt=以下环境变量也将应用于您的配置文件:
config_write_file_prompt=这些配置选项将写入以下位置: %s
[home]
nav_menu=导航菜单
@ -386,6 +395,7 @@ relevant_repositories=只显示相关的仓库, <a href="%s">显示未过滤
[auth]
create_new_account=注册帐号
already_have_account=已有账号?
sign_in_now=立即登录
disable_register_prompt=对不起,注册功能已被关闭。请联系网站管理员。
disable_register_mail=已禁用注册的电子邮件确认。
@ -394,6 +404,7 @@ remember_me=记住此设备
remember_me.compromised=登录令牌不再有效,因为它可能表明帐户已被破坏。请检查您的帐户是否有异常活动。
forgot_password_title=忘记密码
forgot_password=忘记密码?
need_account=需要一个帐户?
sign_up_now=还没账号?马上注册。
sign_up_successful=帐户创建成功。欢迎!
confirmation_mail_sent_prompt_ex=一封新的确认邮件已经发送到 <b>%s</b>请在下一个 %s 中检查您的收件箱以完成注册过程。 如果您的注册电子邮件地址不正确,您可以重新登录并更改它。
@ -449,12 +460,15 @@ authorize_application=应用授权
authorize_redirect_notice=如果您授权此应用,您将会被重定向到 %s。
authorize_application_created_by=此应用由%s创建。
authorize_application_description=如果您允许,它将能够读取和修改您的所有帐户信息,包括私人仓库和组织。
authorize_application_with_scopes=范围: %s
authorize_title=授权 %s 访问您的帐户?
authorization_failed=授权失败
authorization_failed_desc=因为检测到无效请求,授权失败。请尝试联系您授权应用的管理员。
sspi_auth_failed=SSPI 认证失败
password_pwned=此密码出现在 <a target="_blank" rel="noopener noreferrer" href="%s">被盗密码</a> 列表上并且曾经被公开。 请使用另一个密码再试一次。
password_pwned_err=无法完成对 HaveIBeenPwned 的请求
last_admin=您不能删除最后一个管理员。必须至少保留一个管理员。
signin_passkey=使用密钥登录
back_to_sign_in=返回登录页面
[mail]
@ -574,6 +588,8 @@ lang_select_error=从列表中选出语言
username_been_taken=用户名已被使用。
username_change_not_local_user=非本地用户不允许更改用户名。
change_username_disabled=更改用户名已被禁用。
change_full_name_disabled=更改用户全名已禁用
username_has_not_been_changed=用户名未更改
repo_name_been_taken=仓库名称已被使用。
repository_force_private=“强制私有”已启用:私有仓库不能被公开。
@ -623,6 +639,7 @@ org_still_own_repo=该组织仍然是某些仓库的拥有者,请先删除或
org_still_own_packages=该组织仍然是一个或多个软件包的拥有者,请先删除它们。
target_branch_not_exist=目标分支不存在。
target_ref_not_exist=目标引用 %s 不存在
admin_cannot_delete_self=当您是管理员时,您不能删除自己。请先移除您的管理员权限
@ -688,14 +705,18 @@ applications=应用
orgs=管理组织
repos=仓库列表
delete=删除帐户
twofa=两步验证TOTP
account_link=已绑定帐户
organization=组织
uid=UID
webauthn=两步验证(安全密钥)
public_profile=公开信息
biography_placeholder=告诉我们一点您自己! (您可以使用Markdown)
location_placeholder=与他人分享你的大概位置
profile_desc=控制您的个人资料对其他用户的显示方式。您的主要电子邮件地址将用于通知、密码恢复和基于网页界面的 Git 操作
password_username_disabled=不允许非本地用户更改他们的用户名。更多详情请联系您的系统管理员。
password_full_name_disabled=您无权更改他们的全名。请联系您的站点管理员了解更多详情。
full_name=自定义名称
website=个人网站
location=所在地区
@ -745,6 +766,7 @@ uploaded_avatar_not_a_image=上传的文件不是一张图片。
uploaded_avatar_is_too_big=上传的文件大小(%d KiB) 超过最大限制(%d KiB)。
update_avatar_success=您的头像已更新。
update_user_avatar_success=用户头像已更新。
cropper_prompt=您可以在保存前编辑图像。编辑的图像将被保存为 PNG 格式。
change_password=更新密码
old_password=当前密码
@ -787,6 +809,7 @@ add_email_success=新的电子邮件地址已添加。
email_preference_set_success=电子邮件首选项已成功设置。
add_openid_success=新的 OpenID 地址已添加。
keep_email_private=隐藏电子邮件地址
keep_email_private_popup=这将会隐藏您的电子邮件地址不仅在您的个人资料中还在您使用Web界面创建合并请求或编辑文件时。已推送的提交将不会被修改。在提交中使用 %s 以和您的账号关联。
openid_desc=OpenID 让你可以将认证转发到外部服务。
manage_ssh_keys=管理 SSH 密钥
@ -905,6 +928,7 @@ create_oauth2_application_success=您已成功创建了一个新的 OAuth2 应
update_oauth2_application_success=您已成功更新了此 OAuth2 应用。
oauth2_application_name=应用名称
oauth2_confidential_client=机密客户端。是否是能够维持凭据机密性的应用,比如网页应用程序。如果是本地应用程序请不要勾选,包括桌面和移动端应用。
oauth2_skip_secondary_authorization=首次授权后允许公共客户端跳过授权步骤。 <strong>可能会带来安全风险。</strong>
oauth2_redirect_uris=重定向 URI。每行一个 URI。
save_application=保存
oauth2_client_id=客户端ID
@ -915,6 +939,7 @@ oauth2_client_secret_hint=您离开或刷新此页面后将不会再显示此密
oauth2_application_edit=编辑
oauth2_application_create_description=OAuth2 应用允许您的第三方应用程序访问此实例的用户帐户。
oauth2_application_remove_description=移除一个OAuth2应用将会阻止它访问此实例上的已授权用户账户。是否继续
oauth2_application_locked=如果配置启用Gitea预注册一些OAuth2应用程序。 为了防止意外的行为, 这些应用既不能编辑也不能删除。请参阅OAuth2文档以获取更多信息。
authorized_oauth2_applications=已授权的 OAuth2 应用
authorized_oauth2_applications_description=您已授予这些第三方应用程序访问您的个人 Gitea 账户的权限。请撤销那些您不再需要的应用程序的访问权限。
@ -923,20 +948,26 @@ revoke_oauth2_grant=撤回权限
revoke_oauth2_grant_description=确定撤销此三方应用程序的授权,并阻止此应用程序访问您的数据?
revoke_oauth2_grant_success=成功撤销了访问权限。
twofa_desc=为保护你的账号密码安全你可以使用智能手机或其它设备来接收时间强相关的一次性密码TOTP
twofa_recovery_tip=如果您丢失了您的设备,您将能够使用一次性恢复密钥来重新获得对您账户的访问。
twofa_is_enrolled=你的账号<strong>已启用</strong>了两步验证。
twofa_not_enrolled=你的账号未开启两步验证。
twofa_disable=禁用两步认证
twofa_scratch_token_regenerate=重新生成初始令牌
twofa_scratch_token_regenerated=您的初始令牌现在是 %s。将其存放在安全的地方它将不会再次显示。
twofa_enroll=启用两步验证
twofa_disable_note=如果需要, 可以禁用双因素身份验证。
twofa_disable_desc=关掉两步验证会使得您的账号不安全,继续执行?
regenerate_scratch_token_desc=如果您丢失了您的恢复密钥或已经使用它登录, 您可以在这里重置它。
twofa_disabled=两步验证已被禁用。
scan_this_image=使用您的授权应用扫描这张图片:
or_enter_secret=或者输入密钥:%s
then_enter_passcode=并输入应用程序中显示的密码:
passcode_invalid=密码不正确。再试一次。
twofa_enrolled=你的账号已经启用了两步验证。请保存初始令牌(%s到一个安全的地方此令牌仅显示一次。
twofa_failed_get_secret=获取 secret 失败。
webauthn_desc=安全密钥是包含加密密钥的硬件设备。它们可以用于双因素身份验证。安全密钥必须支持 <a rel="noreferrer" target="_blank" href="%s">WebAuthn 身份验证器</a> 标准。
webauthn_register_key=添加安全密钥
webauthn_nickname=昵称
webauthn_delete_key=移除安全密钥
@ -1002,6 +1033,8 @@ fork_to_different_account=派生到其他账号
fork_visibility_helper=无法更改派生仓库的可见性。
fork_branch=要克隆到 Fork 的分支
all_branches=所有分支
view_all_branches=查看所有分支
view_all_tags=查看所有标签
fork_no_valid_owners=这个代码仓库无法被派生,因为没有有效的所有者。
fork.blocked_user=无法克隆仓库,因为您被仓库所有者屏蔽。
use_template=使用此模板
@ -1013,6 +1046,8 @@ generate_repo=生成仓库
generate_from=生成自
repo_desc=仓库描述
repo_desc_helper=输入简要描述 (可选)
repo_no_desc=无详细信息
repo_lang=编程语言
repo_gitignore_helper=选择 .gitignore 模板。
repo_gitignore_helper_desc=从常见语言的模板列表中选择忽略跟踪的文件。默认情况下,由开发或构建工具生成的特殊文件都包含在 .gitignore 中。
issue_labels=工单标签
@ -1074,6 +1109,7 @@ delete_preexisting_success=删除 %s 中未收录的文件
blame_prior=查看此更改前的 blame
blame.ignore_revs=忽略 <a href="%s">.git-blame-ignore-revs</a> 的修订。点击 <a href="%s">绕过</a> 并查看正常的 Blame 视图。
blame.ignore_revs.failed=忽略 <a href="%s">.git-blame-ignore-revs</a> 版本失败。
user_search_tooltip=最多显示30名用户
tree_path_not_found_commit=路径%[1]s 在提交 %[2]s 中不存在
tree_path_not_found_branch=路径 %[1]s 不存在于分支 %[2]s 中。
@ -1222,6 +1258,7 @@ releases=版本发布
tag=Git标签
released_this=发布
tagged_this=已标记
file.title=%s 位于 %s
file_raw=原始文件
file_history=文件历史
file_view_source=源码模式
@ -1238,6 +1275,7 @@ ambiguous_runes_header=`此文件含有模棱两可的 Unicode 字符`
ambiguous_runes_description=`此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。`
invisible_runes_line=`此行含有不可见的 unicode 字符`
ambiguous_runes_line=`此行有模棱两可的 unicode 字符`
ambiguous_character=`%[1]c [U+%04[1]X] 容易和 %[2]c [U+%04[2]X] 混淆`
escape_control_characters=Escape
unescape_control_characters=Unescape
@ -1429,6 +1467,7 @@ issues.new.clear_milestone=取消选中里程碑
issues.new.assignees=指派成员
issues.new.clear_assignees=取消指派成员
issues.new.no_assignees=未指派成员
issues.new.no_reviewers=无审核者
issues.new.blocked_user=无法创建工单,因为您已被仓库所有者屏蔽。
issues.edit.already_changed=无法保存对工单的更改。其内容似乎已被其他用户更改。 请刷新页面并重新编辑以避免覆盖他们的更改
issues.edit.blocked_user=无法编辑内容,因为您已被仓库所有者或工单创建者屏蔽。
@ -1457,6 +1496,7 @@ issues.remove_labels=于 %[2]s 删除了标签 %[1]s
issues.add_remove_labels=于 %[3]s 添加了标签 %[1]s ,删除了标签 %[2]s
issues.add_milestone_at=`于 %[2]s 添加了里程碑 <b>%[1]s</b>`
issues.add_project_at=`于 %[2]s 将此添加到 <b>%[1]s</b> 项目`
issues.move_to_column_of_project=`将此对象移至 %s 的 %s 中在 %s 上`
issues.change_milestone_at=`%[3]s 修改了里程碑从 <b>%[1]s</b> 到 <b>%[2]s</b>`
issues.change_project_at=于 %[3]s 将此从项目 <b>%[1]s</b> 移到 <b>%[2]s</b>
issues.remove_milestone_at=`%[2]s 删除了里程碑 <b>%[1]s</b>`
@ -1488,6 +1528,8 @@ issues.filter_assignee=指派人筛选
issues.filter_assginee_no_select=所有指派成员
issues.filter_assginee_no_assignee=未指派
issues.filter_poster=作者
issues.filter_user_placeholder=搜索用户
issues.filter_user_no_select=所有用户
issues.filter_type=类型筛选
issues.filter_type.all_issues=所有工单
issues.filter_type.assigned_to_you=指派给您的
@ -1541,7 +1583,9 @@ issues.no_content=没有提供说明。
issues.close=关闭工单
issues.comment_pull_merged_at=已合并提交 %[1]s 到 %[2]s %[3]s
issues.comment_manually_pull_merged_at=手动合并提交 %[1]s 到 %[2]s %[3]s
issues.close_comment_issue=评论并关闭
issues.reopen_issue=重新开启
issues.reopen_comment_issue=评论并重新开启
issues.create_comment=评论
issues.comment.blocked_user=无法创建或编辑评论,因为您已被仓库所有者或工单创建者屏蔽。
issues.closed_at=`于 <a id="%[1]s" href="#%[1]s">%[2]s</a> 关闭此工单`
@ -1630,12 +1674,25 @@ issues.delete.title=是否删除工单?
issues.delete.text=您真的要删除这个工单吗?(该操作将会永久删除所有内容。如果您需要保留,请关闭它)
issues.tracker=时间跟踪
issues.timetracker_timer_start=启动计时器
issues.timetracker_timer_stop=停止计时器
issues.timetracker_timer_discard=删除计时器
issues.timetracker_timer_manually_add=添加时间
issues.time_estimate_set=设置预计时间
issues.time_estimate_display=预计: %s
issues.change_time_estimate_at=将预计时间修改为 <b>%s</b> %s
issues.remove_time_estimate_at=删除预计时间 %s
issues.time_estimate_invalid=预计时间格式无效
issues.start_tracking_history=`开始工作 %s`
issues.tracker_auto_close=当此工单关闭时,自动停止计时器
issues.tracking_already_started=`你已经开始对 <a href="%s">另一个工单</a> 进行时间跟踪!`
issues.stop_tracking_history=`停止工作 %s`
issues.cancel_tracking_history=`取消时间跟踪 %s`
issues.del_time=删除此时间跟踪日志
issues.add_time_history=`添加计时 %s`
issues.del_time_history=`已删除时间 %s`
issues.add_time_manually=手动添加时间
issues.add_time_hours=小时
issues.add_time_minutes=分钟
issues.add_time_sum_to_small=没有输入时间。
@ -1695,6 +1752,7 @@ issues.dependency.add_error_dep_not_same_repo=这两个工单必须在同一仓
issues.review.self.approval=您不能批准您自己的合并请求。
issues.review.self.rejection=您不能请求对您自己的合并请求进行更改。
issues.review.approve=于 %s 批准此合并请求
issues.review.comment=评审于 %s
issues.review.dismissed=于 %[2]s 取消了 %[1]s 的评审
issues.review.dismissed_label=已取消
issues.review.left_comment=留下了一条评论
@ -1720,6 +1778,10 @@ issues.review.resolve_conversation=已解决问题
issues.review.un_resolve_conversation=未解决问题
issues.review.resolved_by=标记问题为已解决
issues.review.commented=评论
issues.review.official=已批准
issues.review.requested=等待审核
issues.review.rejected=请求变更
issues.review.stale=批准后已更新
issues.review.unofficial=非官方审批数
issues.assignee.error=因为未知原因,并非所有的指派都成功。
issues.reference_issue.body=内容
@ -1837,7 +1899,9 @@ pulls.unrelated_histories=合并失败:两个分支没有共同历史。提示
pulls.merge_out_of_date=合并失败:在生成合并时,主分支已更新。提示:再试一次。
pulls.head_out_of_date=合并失败在生成合并时head 已更新。提示:再试一次。
pulls.has_merged=失败:合并请求已经被合并,您不能再次合并或更改目标分支。
pulls.push_rejected=推送失败:推送被拒绝。审查此仓库的 Git 钩子。
pulls.push_rejected_summary=详细拒绝信息
pulls.push_rejected_no_message=推送失败:此推送被拒绝但未提供其他信息。请检查此仓库的 Git 钩子。
pulls.open_unmerged_pull_exists=`您不能执行重新打开操作, 因为已经存在相同的合并请求 (#%d)。`
pulls.status_checking=一些检测仍在等待运行
pulls.status_checks_success=所有检测均成功
@ -1881,6 +1945,10 @@ pulls.delete.title=删除此合并请求?
pulls.delete.text=你真的要删除这个合并请求吗? (这将永久删除所有内容。如果你打算将内容存档,请考虑关闭它)
pulls.recently_pushed_new_branches=您已经于%[2]s推送了分支 <strong>%[1]s</strong>
pulls.upstream_diverging_prompt_behind_1=该分支落后于 %s %d 个提交
pulls.upstream_diverging_prompt_behind_n=该分支落后于 %s %d 个提交
pulls.upstream_diverging_prompt_base_newer=基础分支 %s 有新的更改
pulls.upstream_diverging_merge=同步派生
pull.deleted_branch=(已删除): %s
pull.agit_documentation=查看有关 AGit 的文档
@ -1894,6 +1962,7 @@ milestones.no_due_date=暂无截止日期
milestones.open=开启
milestones.close=关闭
milestones.new_subheader=里程碑可以帮助您组织工单并跟踪其进度。
milestones.completeness=<strong>%d%%</strong> 已完成
milestones.create=创建里程碑
milestones.title=标题
milestones.desc=描述
@ -2116,6 +2185,7 @@ settings.pulls.default_delete_branch_after_merge=默认合并后删除合并请
settings.pulls.default_allow_edits_from_maintainers=默认开启允许维护者编辑
settings.releases_desc=启用发布
settings.packages_desc=启用仓库软件包注册中心
settings.projects_desc=启用项目
settings.projects_mode_desc=项目模式 (要显示的项目类型)
settings.projects_mode_repo=仅仓库项目
settings.projects_mode_owner=仅限用户或组织项目
@ -2155,6 +2225,7 @@ settings.transfer_in_progress=当前正在进行转让。 如果你想将此代
settings.transfer_notices_1=- 如果将此仓库转移给其他用户, 您将失去对此仓库的访问权限。
settings.transfer_notices_2=-如果将其转移到您 (共同) 拥有的组织,您可以继续访问该仓库。
settings.transfer_notices_3=- 如果仓库是私有的并且被转移给某个用户,那么此操作可以确保该用户至少具有读权限(以及必要时的更改权限)。
settings.transfer_notices_4=- 如果存储库属于某个组织,而您将其转移给另一个组织或个人,那么您将失去存储库工单与其组织项目系统之间的链接。
settings.transfer_owner=新拥有者
settings.transfer_perform=执行转让
settings.transfer_started=该代码库已被标记为转让并等待来自 %s 的确认
@ -2291,6 +2362,7 @@ settings.event_pull_request_merge=合并请求合并
settings.event_package=软件包
settings.event_package_desc=软件包已在仓库中被创建或删除。
settings.branch_filter=分支过滤
settings.branch_filter_desc=推送、创建,删除分支事件的分支白名单,使用 glob 模式匹配指定。若为空或 <code>*</code>,则将报告所有分支的事件。语法文档见 <a href="%[1]s">%[2]s</a>。示例:<code>master</code>,<code>{master,release*}</code>。
settings.authorization_header=授权标头
settings.authorization_header_desc=当存在时将被作为授权标头包含在内。例如: %s。
settings.active=激活
@ -2336,25 +2408,53 @@ settings.deploy_key_deletion=删除部署密钥
settings.deploy_key_deletion_desc=删除部署密钥将取消此密钥对此仓库的访问权限。继续?
settings.deploy_key_deletion_success=部署密钥已删除。
settings.branches=分支
settings.protected_branch=分支保护
settings.protected_branch.save_rule=保存规则
settings.protected_branch.delete_rule=删除规则
settings.protected_branch_can_push=是否允许推送?
settings.protected_branch_can_push_yes=你可以推
settings.protected_branch_can_push_no=你不能推送
settings.branch_protection=分支 '<b>%s</b>' 的保护规则
settings.protect_this_branch=启用分支保护
settings.protect_this_branch_desc=阻止删除并限制Git推送和合并到分支。
settings.protect_disable_push=禁用推送
settings.protect_disable_push_desc=此分支不允许推送。
settings.protect_disable_force_push=禁用强制推送
settings.protect_disable_force_push_desc=此分支禁止强制推送。
settings.protect_enable_push=启用推送
settings.protect_enable_push_desc=任何拥有写访问权限的人将被允许推送到此分支(但不能强行推送)。
settings.protect_enable_force_push_all=启用强制推送
settings.protect_enable_force_push_all_desc=任何拥有推送权限的人都可以对这个分支进行强制推送。
settings.protect_enable_force_push_allowlist=强制推送白名单
settings.protect_enable_force_push_allowlist_desc=只有白名单中的用户或团队才能强制推送到这个分支。
settings.protect_enable_merge=启用合并
settings.protect_enable_merge_desc=任何具有写入权限的人都可以将合并请求合并到此分支中。
settings.protect_whitelist_committers=受白名单限制的推送
settings.protect_whitelist_committers_desc=只有列入白名单的用户或团队才能被允许推送到此分支(但不能强行推送)。
settings.protect_whitelist_deploy_keys=具有推送权限的部署密钥白名单。
settings.protect_whitelist_users=推送白名单用户:
settings.protect_whitelist_teams=推送白名单团队:
settings.protect_force_push_allowlist_users=允许强制推送的白名单用户:
settings.protect_force_push_allowlist_teams=允许强制推送的白名单团队:
settings.protect_force_push_allowlist_deploy_keys=允许白名单中的部署密钥进行强制推送。
settings.protect_merge_whitelist_committers=启用合并白名单
settings.protect_merge_whitelist_committers_desc=仅允许白名单用户或团队合并合并请求到此分支。
settings.protect_merge_whitelist_users=合并白名单用户:
settings.protect_merge_whitelist_teams=合并白名单团队:
settings.protect_check_status_contexts=启用状态检查
settings.protect_status_check_patterns=状态检查模式:
settings.protect_status_check_patterns_desc=输入模式,指定哪些状态检查必须通过,才能将分支合并到符合此规则的分支中去。每一行指定一个模式,模式不能为空。
settings.protect_check_status_contexts_desc=要求状态检查通过才能合并。如果启用,提交必须先推送到另一个分支,然后再合并或推送到匹配这些保护规则的分支。如果没有选择具体的状态检查上下文,则所有的状态检查都通过才能合并。
settings.protect_check_status_contexts_list=此仓库上周进行过的状态检查
settings.protect_status_check_matched=匹配
settings.protect_invalid_status_check_pattern=无效的状态检查规则:“%s”。
settings.protect_no_valid_status_check_patterns=没有有效的状态检查规则。
settings.protect_required_approvals=所需的批准:
settings.protect_required_approvals_desc=只允许合并有足够审核的合并请求。要求的审核必须来自白名单或者有权限的用户或团队。
settings.protect_approvals_whitelist_enabled=仅列入白名单的用户或团队才可批准
settings.protect_approvals_whitelist_enabled_desc=只有白名单用户或团队的审核才能计数。 如果规则没有批准白名单,来自任何有写访问权限的人的审核都将计数。
settings.protect_approvals_whitelist_users=审查者白名单:
settings.protect_approvals_whitelist_teams=审查团队白名单:
settings.dismiss_stale_approvals=取消过时的批准
settings.dismiss_stale_approvals_desc=当新的提交更改合并请求内容被推送到分支时,旧的批准将被撤销。
settings.ignore_stale_approvals=忽略过期批准
@ -2362,12 +2462,18 @@ settings.ignore_stale_approvals_desc=对旧提交(过期审核)的批准将
settings.require_signed_commits=需要签名提交
settings.require_signed_commits_desc=拒绝推送未签名或无法验证的提交到分支
settings.protect_branch_name_pattern=受保护的分支名称模式
settings.protect_branch_name_pattern_desc=分支保护的名称匹配规则。语法请参阅 <a href="%s">文档</a> 。如main, release/**
settings.protect_patterns=规则
settings.protect_protected_file_patterns=受保护的文件模式(使用分号 ';' 分隔)
settings.protect_protected_file_patterns_desc=即使用户有权添加、编辑或删除此分支中的文件,也不允许直接更改受保护的文件。 可以使用分号 (';') 分隔多个模式。 见<a href='%[1]s'>%[2]s</a>文档了解模式语法。例如: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>
settings.protect_unprotected_file_patterns=不受保护的文件模式(使用分号 ';' 分隔)
settings.protect_unprotected_file_patterns_desc=如果用户有写权限,则允许直接更改的不受保护的文件,以绕过推送限制。可以使用分号分隔多个模式 (';')。 见 <a href='%[1]s'>%[2]s</a> 文档了解模式语法。例如: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>
settings.add_protected_branch=启用保护
settings.delete_protected_branch=禁用保护
settings.update_protect_branch_success=分支保护规则 %s 更新成功。
settings.remove_protected_branch_success=移除分支保护规则"%s"成功。
settings.remove_protected_branch_failed=移除分支保护规则"%s"失败。
settings.protected_branch_deletion=删除分支保护
settings.protected_branch_deletion_desc=禁用分支保护允许具有写入权限的用户推送提交到此分支。继续?
settings.block_rejected_reviews=拒绝审核阻止了此合并
settings.block_rejected_reviews_desc=如果官方审查人员要求作出改动,即使有足够的批准,合并也不允许。
@ -2375,8 +2481,11 @@ settings.block_on_official_review_requests=有官方审核阻止了代码合并
settings.block_on_official_review_requests_desc=处于评审状态时,即使有足够的批准,也不能合并。
settings.block_outdated_branch=如果合并请求已经过时,阻止合并
settings.block_outdated_branch_desc=当头部分支落后基础分支时,不能合并。
settings.block_admin_merge_override=管理员须遵守分支保护规则
settings.block_admin_merge_override_desc=管理员须遵守分支保护规则,不能规避该规则。
settings.default_branch_desc=请选择一个默认的分支用于合并请求和提交:
settings.merge_style_desc=合并方式
settings.default_merge_style_desc=默认合并风格
settings.choose_branch=选择一个分支...
settings.no_protected_branch=没有受保护的分支
settings.edit_protected_branch=编辑
@ -2392,12 +2501,25 @@ settings.tags.protection.allowed.teams=允许的团队
settings.tags.protection.allowed.noone=
settings.tags.protection.create=保护Git标签
settings.tags.protection.none=没有受保护的Git标签
settings.tags.protection.pattern.description=你可以使用单个名称或 glob 模式匹配或正则表达式来匹配多个标签。了解详情请访问 <a target="_blank" rel="noopener" href="%s">保护Git标签指南</a>。
settings.bot_token=Bot 令牌
settings.chat_id=聊天 ID
settings.thread_id=线程 ID
settings.matrix.homeserver_url=主服务器网址
settings.matrix.room_id=房间ID
settings.matrix.message_type=消息类型
settings.visibility.private.button=设为私有
settings.visibility.private.text=将可见性更改为私有不仅会使仓库仅对允许的成员可见,而且可能会消除它与派生仓库、关注者和点赞之间的关系。
settings.visibility.private.bullet_title=<strong>将可见性改为私有将会:</strong>
settings.visibility.private.bullet_one=使仓库只对允许的成员可见。
settings.visibility.private.bullet_two=可能会删除它与 <strong>派生仓库</strong>、 <strong>关注者</strong>和 <strong>点赞</strong> 之间的关系。
settings.visibility.public.button=设为公开
settings.visibility.public.text=将可见性更改为公开会使任何人都可见。
settings.visibility.public.bullet_title=<strong>将可见性改为公开将会:</strong>
settings.visibility.public.bullet_one=使仓库让任何人都可见。
settings.visibility.success=仓库可见性已更改。
settings.visibility.error=试图更改仓库可见性时出错。
settings.visibility.fork_error=无法更改派生仓库的可见性。
settings.archive.button=归档仓库
settings.archive.header=归档此仓库
settings.archive.text=归档仓库将使其完全只读。它将在首页隐藏。没有人(甚至你!)能够进行新的提交,或打开工单及合并请求。
@ -2509,6 +2631,7 @@ release.new_release=发布新版
release.draft=草稿
release.prerelease=预发行
release.stable=稳定
release.latest=最新版本
release.compare=比较
release.edit=编辑
release.ahead.commits=<strong>%d</strong> 次提交
@ -2593,6 +2716,7 @@ tag.create_success=标签"%s"已存在
topic.manage_topics=管理主题
topic.done=保存
topic.count_prompt=您最多选择25个主题
topic.format_prompt=主题必须以字母或数字开头,可以包含连字符 ('-') 和句点 ('.')长度不得超过35个字符。字符必须为小写。
find_file.go_to_file=转到文件
@ -2665,6 +2789,7 @@ settings.delete_prompt=删除操作会永久清除该组织的信息,并且 <s
settings.confirm_delete_account=确认删除组织
settings.delete_org_title=删除组织
settings.delete_org_desc=此组织将会被永久删除,确认继续吗?
settings.hooks_desc=在此处添加的 Web 钩子将会应用到该组织下的 <strong>所有仓库</strong>。
settings.labels_desc=添加能够被该组织下的 <strong>所有仓库</strong> 的工单使用的标签。
@ -2689,6 +2814,7 @@ teams.leave.detail=离开 %s
teams.can_create_org_repo=创建仓库
teams.can_create_org_repo_helper=成员可以在组织中创建仓库。创建者将自动获得创建的仓库的管理员权限。
teams.none_access=无访问权限
teams.none_access_helper=成员无法查看此单元或对其执行任何其他操作。对公开仓库无此影响。
teams.general_access=常规访问
teams.general_access_helper=成员权限将由以下权限表决定。
teams.read_access=可读
@ -2757,6 +2883,7 @@ last_page=末页
total=总计:%d
settings=管理设置
dashboard.new_version_hint=Gitea %s 现已可用,您正在运行 %s。查看 <a target="_blank" rel="noreferrer" href="%s">博客</a> 了解详情。
dashboard.statistic=摘要
dashboard.maintenance_operations=运维
dashboard.system_status=系统状态
@ -2799,6 +2926,7 @@ dashboard.reinit_missing_repos=重新初始化所有丢失的 Git 仓库存在
dashboard.sync_external_users=同步外部用户数据
dashboard.cleanup_hook_task_table=清理 hook_task 表
dashboard.cleanup_packages=清理过期的软件包
dashboard.cleanup_actions=清理过期的 Actions 资源
dashboard.server_uptime=服务运行时间
dashboard.current_goroutine=当前 Goroutines 数量
dashboard.current_memory_usage=当前内存使用量
@ -2828,12 +2956,19 @@ dashboard.total_gc_time=GC 暂停时间总量
dashboard.total_gc_pause=GC 暂停时间总量
dashboard.last_gc_pause=上次 GC 暂停时间
dashboard.gc_times=GC 执行次数
dashboard.delete_old_actions=从数据库中删除所有旧操作记录
dashboard.delete_old_actions.started=已开始从数据库中删除所有旧操作记录。
dashboard.update_checker=更新检查器
dashboard.delete_old_system_notices=从数据库中删除所有旧系统通知
dashboard.gc_lfs=垃圾回收 LFS 元数据
dashboard.stop_zombie_tasks=停止僵尸任务
dashboard.stop_endless_tasks=停止无法停止的任务
dashboard.cancel_abandoned_jobs=取消丢弃的任务
dashboard.start_schedule_tasks=开始Actions调度任务
dashboard.sync_branch.started=分支同步已开始
dashboard.sync_tag.started=标签同步已开始
dashboard.rebuild_issue_indexer=重建工单索引
dashboard.sync_repo_licenses=重新仓库许可证探测
users.user_manage_panel=用户帐户管理
users.new_account=创建新帐户
@ -2905,6 +3040,10 @@ emails.not_updated=无法更新请求的电子邮件地址: %v
emails.duplicate_active=此电子邮件地址已被另一个用户激活使用。
emails.change_email_header=更新电子邮件属性
emails.change_email_text=您确定要更新该电子邮件地址吗?
emails.delete=删除电子邮件
emails.delete_desc=您确定要删除该电子邮件地址?
emails.deletion_success=电子邮件地址已被删除。
emails.delete_primary_email_error=您不能删除主电子邮件。
orgs.org_manage_panel=组织管理
orgs.name=名称
@ -2937,10 +3076,12 @@ packages.size=大小
packages.published=已发布
defaulthooks=默认Web钩子
defaulthooks.desc=当某些 Gitea 事件触发时Web 钩子自动向服务器发出 HTTP POST 请求。这里定义的 Web 钩子是默认配置,将被复制到所有新的仓库中。详情请访问 <a target="_blank" rel="noopener" href="%s">Web 钩子指南</a>。
defaulthooks.add_webhook=添加默认Web 钩子
defaulthooks.update_webhook=更新默认Web钩子
systemhooks=系统 Web 钩子
systemhooks.desc=当某些 Gitea 事件触发时Web 钩子自动向服务器发出HTTP POST请求。这里定义的 Web 钩子将作用于系统上的所有仓库,所以请考虑这可能带来的任何性能影响。了解详情请访问 <a target="_blank" rel="noopener" href="%s">Web 钩子指南</a>。
systemhooks.add_webhook=添加系统 Web 钩子
systemhooks.update_webhook=更新系统 Web 钩子
@ -3035,8 +3176,18 @@ auths.tips=帮助提示
auths.tips.oauth2.general=OAuth2 认证
auths.tips.oauth2.general.tip=当注册新的 OAuth2 身份验证时,回调/重定向 URL 应该是:
auths.tip.oauth2_provider=OAuth2 提供程序
auths.tip.bitbucket=在 %s 注册新的 OAuth 使用者同时添加权限“账号”-“读取”
auths.tip.nextcloud=使用下面的菜单“设置Settings -> 安全Security -> OAuth 2.0 client”在您的实例上注册一个新的 OAuth 客户端。
auths.tip.dropbox=在 %s 上创建一个新的应用程序
auths.tip.facebook=`在 %s 注册一个新的应用,并添加产品"Facebook 登录"`
auths.tip.github=在 %s 注册一个 OAuth 应用程序
auths.tip.gitlab_new=在 %s 注册一个新的应用
auths.tip.google_plus=从谷歌 API 控制台 %s 获得 OAuth2 客户端凭据
auths.tip.openid_connect=使用 OpenID 连接发现 URL ({server}/.well-known/openid-configuration) 来指定终点
auths.tip.twitter=访问 %s创建应用并确保启用了"允许此应用程序用于登录 Twitter"的选项。
auths.tip.discord=在 %s 上注册新应用程序
auths.tip.gitea=注册一个新的 OAuth2 应用程序。可以访问 %s 查看帮助
auths.tip.yandex=在 %s 上创建一个新的应用程序。在“ Yandex.Passport API”这部分中选择以下权限“访问电子邮件地址Access to email address“访问用户头像Access to user avatar”和“访问用户名名字和姓氏性别Access to username, first name and surname, genderAccess to username, first name and surname, gender
auths.tip.mastodon=输入您想要认证的 mastodon 实例的自定义 URL (或使用默认值)
auths.edit=修改认证源
auths.activated=该认证源已经启用
@ -3153,6 +3304,9 @@ config.cache_interval=Cache 周期
config.cache_conn=Cache 连接字符串
config.cache_item_ttl=缓存项目 TTL
config.cache_test=测试缓存
config.cache_test_failed=缓存测试失败: %v。
config.cache_test_slow=缓存测试成功,但响应缓慢: %s。
config.cache_test_succeeded=缓存测试成功,在 %s 时间内得到响应。
config.session_config=Session 配置
config.session_provider=Session 提供者
@ -3199,6 +3353,7 @@ monitor.next=下次执行时间
monitor.previous=上次执行时间
monitor.execute_times=执行次数
monitor.process=运行中进程
monitor.stacktrace=调用栈踪迹
monitor.processes_count=%d 个进程
monitor.download_diagnosis_report=下载诊断报告
monitor.desc=进程描述
@ -3206,6 +3361,8 @@ monitor.start=开始时间
monitor.execute_time=执行时长
monitor.last_execution_result=结果
monitor.process.cancel=中止进程
monitor.process.cancel_desc=中止一个进程可能导致数据丢失
monitor.process.cancel_notices=中止:<strong>%s</strong>
monitor.process.children=子进程
monitor.queues=队列
@ -3307,6 +3464,8 @@ raw_minutes=分钟
[dropzone]
default_message=拖动文件或者点击此处上传。
invalid_input_type=您不能上传该类型的文件
file_too_big=文件体积({{filesize}} MB超过了最大允许体积{{maxFilesize}} MB
remove_file=移除文件
[notification]
@ -3378,6 +3537,8 @@ alpine.repository=仓库信息
alpine.repository.branches=分支
alpine.repository.repositories=仓库管理
alpine.repository.architectures=架构
arch.registry=添加具有相关仓库和架构的服务器到 <code>/etc/pacman.conf</code> 中:
arch.install=使用 pacman 同步软件包:
arch.repository=仓库信息
arch.repository.repositories=仓库管理
arch.repository.architectures=架构
@ -3456,6 +3617,7 @@ settings.link=将此软件包链接到仓库
settings.link.description=如果您将一个软件包与一个代码库链接起来,软件包将显示在代码库的软件包列表中。
settings.link.select=选择仓库
settings.link.button=更新仓库链接
settings.link.success=仓库链接已成功更新。
settings.link.error=更新仓库链接失败。
settings.delete=删除软件包
settings.delete.description=删除软件包是永久性的,无法撤消。
@ -3579,12 +3741,18 @@ runs.no_workflows.quick_start=不知道如何使用 Gitea Actions吗请查看
runs.no_workflows.documentation=关于Gitea Actions的更多信息请参阅 <a target="_blank" rel="noopener noreferrer" href="%s">文档</a>。
runs.no_runs=工作流尚未运行过。
runs.empty_commit_message=(空白的提交消息)
runs.expire_log_message=旧的日志已被清除
workflow.disable=禁用工作流
workflow.disable_success=工作流 '%s' 已成功禁用。
workflow.enable=启用工作流
workflow.enable_success=工作流 '%s' 已成功启用。
workflow.disabled=工作流已禁用。
workflow.run=运行工作流
workflow.not_found=工作流 %s 未找到。
workflow.run_success=工作流 %s 已成功运行。
workflow.from_ref=使用工作流从
workflow.has_workflow_dispatch=此 Workflow 有一个 Workflow_dispatch 事件触发器。
need_approval_desc=该工作流由派生仓库的合并请求所触发,需要批准方可运行。
@ -3605,6 +3773,7 @@ variables.update.failed=编辑变量失败。
variables.update.success=该变量已被编辑。
[projects]
deleted.display_name=已删除项目
type-1.display_name=个人项目
type-2.display_name=仓库项目
type-3.display_name=组织项目

View File

@ -205,8 +205,11 @@ func ViewPost(ctx *context_module.Context) {
}
}
// TODO: "ComposeMetas" (usually for comment) is not quite right, but it is still the same as what template "RenderCommitMessage" does.
// need to be refactored together in the future
metas := ctx.Repo.Repository.ComposeMetas(ctx)
// the title for the "run" is from the commit message
resp.State.Run.Title = run.Title
resp.State.Run.TitleHTML = templates.NewRenderUtils(ctx).RenderCommitMessage(run.Title, metas)
resp.State.Run.Link = run.Link()

View File

@ -12,6 +12,7 @@ import (
"code.gitea.io/gitea/models/auth"
user_model "code.gitea.io/gitea/models/user"
auth_module "code.gitea.io/gitea/modules/auth"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/optional"
asymkey_service "code.gitea.io/gitea/services/asymkey"
source_service "code.gitea.io/gitea/services/auth/source"
@ -31,7 +32,12 @@ func (source *Source) Authenticate(ctx context.Context, user *user_model.User, u
return nil, user_model.ErrUserNotExist{Name: loginName}
}
// Fallback.
// FIXME: this fallback would cause problems when the "Username" attribute is not set and a user inputs their email.
// In this case, the email would be used as the username, and will cause the "CreateUser" failure for the first login.
if sr.Username == "" {
if strings.Contains(userName, "@") {
log.Error("No username in search result (Username Attribute is not set properly?), using email as username might cause problems")
}
sr.Username = userName
}
if sr.Mail == "" {

View File

@ -36,9 +36,10 @@
</thead>
<tbody>
{{range .PackageDescriptor.Metadata.Manifests}}
{{/* "unknown/unknown" is attestation-manifest, so we should skip it */}}
{{if ne .Platform "unknown/unknown"}}
<tr>
<td><a href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .Digest}}">{{StringUtils.TrimPrefix .Digest "sha256:" | ShortSha}}</a></td>
<td><a class="tw-font-mono" href="{{$.PackageDescriptor.PackageWebLink}}/{{PathEscape .Digest}}">{{StringUtils.TrimPrefix .Digest "sha256:" | ShortSha}}</a></td>
<td>{{.Platform}}</td>
<td>{{FileSize .Size}}</td>
</tr>

View File

@ -68,11 +68,13 @@
<p id="cherry-pick-content" class="branch-dropdown"></p>
<form method="get">
{{/*FIXME: CurrentRefShortName seems not making sense here (old code),
because the "commit page" has no "$.BranchName" info, so only using DefaultBranch should be enough */}}
{{template "repo/branch_dropdown" dict
"Repository" .Repository
"ShowTabBranches" true
"CurrentRefType" "branch"
"CurrentRefShortName" (Iif $.BranchName $.Repository.DefaultBranch)
"CurrentRefShortName" (or $.BranchName $.Repository.DefaultBranch)
"RefFormActionTemplate" (print "{RepoLink}/_cherrypick/" .CommitID "/{RefShortName}")
}}
<input type="hidden" id="cherry-pick-type" name="cherry-pick-type"><br>

View File

@ -23,6 +23,9 @@
<div class="divider"></div>
<a class="item label-filter-query-default" href="{{QueryBuild $queryLink "labels" NIL}}">{{ctx.Locale.Tr "repo.issues.filter_label_no_select"}}</a>
<a class="item label-filter-query-not-set" href="{{QueryBuild $queryLink "labels" 0}}">{{ctx.Locale.Tr "repo.issues.filter_label_select_no_label"}}</a>
{{/* The logic here is not the same as the label selector in the issue sidebar.
The one in the issue sidebar renders "repo labels | divider | org labels".
Maybe the logic should be updated to be consistent.*/}}
{{$previousExclusiveScope := "_no_scope"}}
{{range .Labels}}
{{$exclusiveScope := .ExclusiveScope}}

View File

@ -48,6 +48,7 @@
</div>
</form>
{{end}}{{/*if .EnablePasswordSignInForm*/}}
{{/* "oauth_container" contains not only "oauth2" methods, but also "OIDC" and "SSPI" methods */}}
{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
{{if and $showOAuth2Methods .EnablePasswordSignInForm}}
<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>

View File

@ -47,6 +47,8 @@
</button>
</div>
{{end}}
{{/* "oauth_container" contains not only "oauth2" methods, but also "OIDC" and "SSPI" methods */}}
{{/* TODO: it seems that "EnableSSPI" is only set in "sign-in" handlers, but it should use the same logic to control its display */}}
{{$showOAuth2Methods := or .OAuth2Providers .EnableOpenIDSignIn .EnableSSPI}}
{{if $showOAuth2Methods}}
<div class="divider divider-text">{{ctx.Locale.Tr "sign_in_or"}}</div>

View File

@ -61,6 +61,7 @@
{{template "repo/issue/filter_item_label" dict "Labels" .Labels "QueryLink" $queryLinkWithFilter "SupportArchivedLabel" true}}
{{end}}
{{/* at the moment there is no easy way to get poster candidates on this page, so only show a username input, search for what the end user enters */}}
{{if ne $.ViewType "created_by"}}
{{template "repo/issue/filter_item_user_fetch" dict
"QueryParamKey" "poster"
@ -70,6 +71,7 @@
}}
{{end}}
{{/* at the moment there is no easy way to get assignee candidates on this page, so only show a username input, search for what the end user enters */}}
{{if ne $.ViewType "assigned"}}
{{template "repo/issue/filter_item_user_fetch" dict
"QueryParamKey" "assignee"

View File

@ -113,6 +113,16 @@ const sfc = {
if (this.menuVisible) this.menuVisible = false;
});
},
mounted() {
if (this.refFormActionTemplate) {
// if the selector is used in a form and needs to change the form action,
// make a mock item and select it to update the form action
const item: ListItem = {selected: true, refType: this.currentRefType, refShortName: this.currentRefShortName, rssFeedLink: ''};
this.selectItem(item);
}
},
methods: {
selectItem(item: ListItem) {
this.menuVisible = false;