Gitea 1.20.0 正式发布。
这次发布包含了 1091 个拉取请求,使其成为 Gitea 历史上最大的版本!
你可以从我们的 下载页面下载它。 更多安装信息请查看我们的 安装指南 。
我们要感谢在 Open Collective 上支持我们的所有赞助者,他们帮助我们在财务上持续发展。
Breaking Changes
❗ 重构了作用域令牌机制 (#24767)
个人访问令牌(PATs)的权限发生了变化(后文将更详细地描述变化)。 虽然我们已经尽可能将所有旧令牌迁移到新格式,但由于两个系统具有完全不同的设计,有一些边缘情况,现在的旧令牌可能拥有更多或更少的权限。 如果对您来说是这种情况,请考虑重新生成令牌,以防止 API 调用失败或令牌范围过广。
❗ 移除/更改的配置项 (#25010, #24958, #24754, #24628, #24505, #24430, #24270, #23798, #23733, #23333, #25604)
-
我们已经移除了
service worker
功能, 因为它没有带来任何明显的益处, 反而增加了许多 Bug, 并且已经从1.17版本开始默认禁用。 已移除配置项:[ui].USE_SERVICE_WORKER
-
[server].LFS_HTTP_AUTH_EXPIRY
的默认值从20m
增加到24h
。
如果您想使用以前的值,请重置这个选项。 -
如下面所述,您现在可以在
app.ini
中设置任何 git 配置。 因此,我们移除了[git.reflog]
部分,其键已移到以下替代项:[git.reflog].ENABLED
→[git.config].core.logAllRefUpdates
[git.reflog].EXPIRATION
→[git.config].gc.reflogExpire
-
除了
[queue]
中已经被弃用的选项之外,还删除了许多选项。 这些选项是WRAP_IF_NECESSARY
,MAX_ATTEMPTS
,TIMEOUT
,WORKERS
,BLOCK_TIMEOUT
,BOOST_TIMEOUT
,BOOST_WORKERS
。 您现在可以从您的app.ini
中删除它们。
此外,该部分的某些默认值也已更改。 -
[time].FORMAT
选项将不再被使用。 -
[other].SHOW_FOOTER_BRANDING
选项已经被移除, 因为其预期用途已由[other].SHOW_FOOTER_VERSION
选项取代。 -
[server].SSH_KEYGEN_PATH
的默认值已经从ssh-keygen
更改为 -
[repository].DEFAULT_REPO_UNITS
和[repository].DISABLED_REPO_UNITS
曾短暂将actions.actions
视为合法值,然后正确的值应该是repo.actions
。 -
[repository.editor].PREVIEWABLE_FILE_MODES
存在问题且无效,因此已被移除。 -
[actions].DEFAULT_ACTIONS_URL
之前可以设置为任何自定义 URL, 如https://gitea.com
和http://your-git-server
, 并且默认值为https://gitea.com
。但是现在DEFAULT_ACTIONS_URL
只支持github
(https://github.com) 或者self
(当前 Gitea 实例的根 URL),并且默认值为github
。这一变更是为了使 actions 名称在大多数情况下可以全局解析。
❗ .profile 仓库中的 README.md 发布 (#23260)
如下面的新特性中将要讨论的那样,Gitea 现在会显示用户个人资料的 README.md
文件。
显示 的内容是 .profile
仓库中的 README.md
文件。
如果您已经有一个该名称的仓库,其 README.md
将在公开状态下可访问,即使该仓库是私有的。
如果您不希望泄露这些信息,请考虑重命名现有的仓库。
❗ 任意 URL scheme 可用于链接 (#24805)
此前, 默认情况下,我们不会渲染非标准 URL (如 matrix:
)。 现在, 我们允许通过修改 markdown.CUSTOM_URL_SCHEMES
添加自定义URL,这些 URL 将在 markdown 中渲染为链接, 但没有选项允许所有的 scheme。
如果未配置 markdown.CUSTOM_URL_SCHEMES
, 我们将渲染所有显式的 markdown 链接 ([label](URL)
) 为链接。
此前
matrix:
和 cbthunderlink://
不会被渲染为链接。
之后
matrix:
和 cbthunderlink://
以 [label](URL)
的形式出现时会被渲染为链接。
❗ 新保留的用户名 (#23992)
用户和组织名称不再能以 .png
为结尾。
❗ 更改 access log 格式 (#24085)
以前,access log 中的内容在不必要的位置进行了转义。
现在,它们不再转义。
此外,字段 {{.Ctx.RemoteAddr}}
已重命名为 {{.Ctx.RemoteHost}}
以省略端口号。
❗ API 路由 teams/{id}/members
改为正确的分页 (#24754)
以前,这个 API 是基于 0 的分页,与所有其他 API 不同。 这个 bug 现在已经被修复。
❗ 重构路径和配置系统 (#25416)
Gitea 的路径系统长期以来一直相当复杂: 它经常尝试猜测路径,导致了无数问题。 现在,Gitea 尝试自动将路径存储在配置中。 如果它无法这样做,它将无法启动。 在这种情况下,请按照日志中的错误消息执行,问题应该解决了。
❗ 移除 actions
表度量收集器 (#25062)
actions
表中记录活动的条目数量的统计一直以来都相当无用,因为此表将始终非常庞大。
因此,我们移除了用于 promethues 的它的度量收集器。
请不要再依赖它的输出。
这与 Gitea Actions 无关。
❗ 重构存储设置 (#23911)
所有存储设置现在应该只存储在一个部分中。 您不能再使用多个部分来覆盖设置。 现在存储设置的优先级是:
[attachment]
[storage.attachments]
|[storage.<another>]
[storage]
default
对于额外的重写配置项,目前只有 SERVE_DIRECT
、 MINIO_BASE_PATH
和 MINIO_BUCKET
, 可以在另一个 section 中配置。
重写配置项的优先级是 [attachment]
> [storage.attachments]
> default
。
❗ 重构模板中的 ctx (#23105)
如果您正在使用自定义模板,您可能需要对它们进行更改:
我们已经将所有出现的.ctx
内参数改为 .ctxData
。
任何当前使用 .ctx
的自定义模板都需要遵循这种方式。
❗ 重构日志系统 (#24726)
已删除 log.<mode>.<logger>
配置项。如果您使用了它,请检查新的配置手册和 app.example.ini
,以使您的实例输出预期的日志。
SMTP 记录器已删除,因为 SMTP 不适合收集日志。
显著改进
🚀 新增加的软件包注册表
Gitea 现在还支持以下软件包注册表:
- Alpine (#23714)
- CRAN (#22331)
- Debian (#24426)
- Go (#24687)
- RPM (#23380)
- Swift (#22404)
因此,完整的受支持软件包注册表列表 现在包括
名称 | 语言 | 软件包客户端 |
---|---|---|
Alpine | - | apk |
Cargo | Rust | cargo |
Chef | - | knife |
Composer | PHP | composer |
Conan | C++ | conan |
Conda | - | conda |
Container | - | 任何 OCI 兼容客户端 |
CRAN | R | - |
Debian | - | apt |
Generic | - | 任何 HTTP 客户端 |
Go | Go | go |
Helm | - | 任何 HTTP 客户端, cm-push |
Maven | Java | mvn , gradle |
npm | JavaScript | npm , yarn , pnpm |
NuGet | .NET | nuget |
Pub | Dart | dart , flutter |
PyPI | Python | pip , twine |
RPM | - | yum , dnf |
RubyGems | Ruby | gem , Bundler |
Swift | Swift | swift |
Vagrant | - | vagrant |
🚀 Gitea Actions
自从 1.19.0 版本开始,Gitea Actions 已经增加了许多新功能。 尽管如此,它仍处于试验状态。 以下是 Gitea 侧支持的新功能:
- Gitea 不再在无效的工作流文件上崩溃 (#23972)
- 支持更多的可用变量 (#24356)
- 支持
needs
和outputs
(#24230) - 通过 CLI 注册 Runner token (#23762)
- 需要来自 fork 的 PR 的批准 (#22803)
- 重新设计的用户界面
- 上传 Actions 文件 (#22738)
🚀 新的 API
Gitea 1.20 版本包含了许多新的 API ,包括:
- 活动订阅 (#23494)
- 管理员: 重命名用户 (#22789)
- 管理员: 显示用户电子邮件地址 (#22792)
- 一次更改多个文件 (#24887)
- .gitignore 模板 (#22783)
- 工单依赖 (#17935)
- 工单置顶 (#24406)
- 标签模板 (#24602)
- LICENSE 模板 (#23009)
🚀 工单配置 (#20956)
现在,您可以通过创建以下文件之一来创建工单配置:
.gitea/ISSUE_TEMPLATE/config.y(a)ml
.gitea/issue_template/config.y(a)ml
.github/ISSUE_TEMPLATE/config.y(a)ml
.github/issue_template/config.y(a)ml
(这些文件按照完全相同的优先级顺序进行查询) 工单配置可用于影响用户创建工单的方式。 使用它,您可以强制用户在模板中创建工单,或者显示附加链接,例如,提示用户使用其他工作流程(例如发送电子邮件报告安全问题而不是公开报告)。
blank_issues_enabled: false
contact_links:
- name: Gitea
url: https://gitea.io
about: Visit the Gitea Website
- name: Security issues
url: mailto:security@gitea.io
about: Mail us a security issue instead of opening a public issue
例如,在“新工单”页面上显示如下的配置结果(假设有一个 Bug Report 问题模板):
您可以在文档中找到更多信息。
🚀 改进编辑器 (#23876)
之前,Gitea 使用一种伪“所见即所得”编辑器来 显示文本区域。 这意味着你会立即看到你正在编写的文本的显示效果。 然而,这带来了许多缺点:
- 如前所述,它没有使用实际结果,而是计算了自己的结果。这意味着结果仍然可能(而且经常是)不同的。
- 缺少可访问性:这个编辑器在智能手机上和视觉障碍用户身上都无法使用。
- 焦点问题:一旦你切换到编辑器中,你就会被困在里面。
- 太多的 Bug。
所以,Gitea 现在将它更改为以下机制:
- 默认情况下是一个普通的文本区域,因此不再有语法高亮,但具有完全的可访问性。
- 如果你想查看文本的呈现效果,请点击 “预览” 选项卡。
- 你仍然可以在文本区域上方的按钮栏中切换回旧的废弃的编辑器。
- 新功能只会添加到普通的文本区域,而不是废弃的编辑器。
- 我们不再为废弃的编辑器修复任何错误。
- 我们计划在未来的版本中删除废弃的文本编辑器,即在一两年内。
🚀 重构作用域 PAT (#24767)
我们注意到,现有的创建作用域“个人访问令牌”(PAT)的方法非常令人困惑,即使你之前已经创建过一个。
因此,我们对其进行了重写,使其更加易于使用。
这是新的设计:
同时,这是 API 页面:
现在你应该可以猜出每 个新的范围意味着什么了。
🚀 用户个人资料 README (#23260)
如果你的用户账户包含一个名为 .profile
的仓库,它的 README.md
文件将会公开显示在你的个人资料中。这允许用户在个人资料页面上展示更多关于自己的信息。
🚀 用户 Webhooks (#21563)
现在,你不仅可以为组织添加 Webhooks,还可以为用户添加 Webhooks。
🚀 存档仓库日期 (#22664)
存档的仓库现在存储了何时被存档的信息:
🚀 可取消的仓库迁移 (#24605)
在等待仓库迁移完成时,现在有一个按钮 可以取消这个过程。
🚀 工单置顶 (#24406)
仓库维护者现在可以置顶工单和拉取请求,以便它们始终显示在列表的顶部。每个仓库中可固定的工单/拉取请求数量可以在你的 app.ini
中设置。
🚀 仪表盘上的最新提交状态 (#24638)
我们现在在仪表盘的仓库列表中显示默认分支的最新提交状态。
🚀 竖直而非水平设置菜单 (#24246)
我们没有足够的空间添加新的设置分类:
如果你需要无尽滚动来找到一个分类,那是不可接受的。
因此,我们重新排列了设置顺序,现在设置分类在左侧而不是顶部显示:
🚀 展开/折叠 PR 的所有文件 (#23639)
当查看 PR 的文件时,现在可以展示或隐藏所有更改。 当你重新访问已经审查过的 PR 时,这是特别有用的。
🚀 切换文本区域为等宽字体 (#24034)
在使用文本区域时,你现在可以切换为等宽字体。
🚀 可预测的发布下载 URL (#23891)
发布文件的下载 URL 现在有一个可预测的结构:
<repo>/releases/download/<tag>/<filename>
例如,https://gitea.com/gitea/act_runner/releases/download/v0.2.3/act_runner-0.2.3-linux-amd64
可以获取到标签 v0.2.3
的 Act Runner 中的文件 act_runner-0.2.3-linux-amd64
。
如果有多个文件具有相同的名称,则将继续使用旧的基于 UUID 的 URL。
🚀 自动更新和本地化时间戳 (#23988)
以前,每个渲染的时间戳都是静态的,现在我们展示事件发生后的实际时间。如果在页面渲染前添加了一条评论,它将显示为“2 分钟前”,如果再过了 8 分钟,没有页面刷新,你将看到“10 分钟前”。
以前,所有的时间戳都以英文显示,现在我们根据用户选择的语言区域渲染这些时间戳。
🚀 分支保护中的通配符必要状态检查 (#24633)
如果受保护的分支需要在合并前通过状态检查,现在可以使用通配符模式来指定所需的检查。
🚀 支持 Systemd-notify (#21151)
现在,Gitea 可以在准备就绪时通知 systemd
。
若要启用它,你的 systemd 服务文件应该包含 [Service].Type=notify
,
就像在提供的示例文件 中看到的那样。
附注:我们知道应该在发布版本后才更新 示例文件。很多人抱怨 systemd 在几秒钟后会重新启动他们的(1.20.0 之前的版本)Gitea,因为它期望状态报告,而之前的 Gitea 版本显然无法提供。对于可能导致的任何不便,我们深表歉意。
🚀 通过 app.ini
配置 Git (#24860)
现在,你的 app.ini
中在 [git.config]
部分中的任何条目都将用于自定义 Gitea 的 Git 内部行为。换句话说,
[git.config]
a.key=value1
b.key=value2
等价于:
git config a.key value1;
git config b.key value2;