大家好,我是农村程序员,独立开发者,编程记者,前端之虎陈随易。
我会在这里分享代码技术,编程资讯,行业热点等内容,欢迎关注。
- 个人网站 1️⃣:chensuiyi.me
- 个人网站 2️⃣:me.yicode.tech
- 技术群,搞钱群,闲聊群,自驾群,想入群的在我个人网站联系我。
一键三连 (点赞
、评论
、转发
),可以给我提供曝光,带来一份早餐收入,谢谢大家~~
2024年6月10日,Gitea 发布了 v1.24.0 版本,这是一个包含了重大功能更新和性能改进的版本。让我们一起看看这次更新带来了哪些激动人心的新特性。
🚀 重大变更 (需要注意)
配置文件隔离
Gitea 现在完全使用内部配置,不再读取系统的 /etc/gitconfig
文件。这意味着 Gitea 的 Git 配置更加独立,不会受到系统配置的影响。
案例:之前如果系统设置了全局的 Git 代理,可能会影响 Gitea 的运行。现在 Gitea 完全独立管理自己的配置,避免了这类冲突。
日志格式改进
日志格式得到了优化,让开发者能更轻松地追踪和调试问题。
Markdown 渲染行为修正
修复了 Markdown 渲染的一些不一致行为,现在渲染结果更接近 GitHub 的表现。
🎯 核心新功能
强制双因素认证 (2FA)
管理员现在可以强制要求用户启用双因素认证,支持:
- TOTP (基于时间的一次性密码)
- WebAuthn (硬件密钥)
这大大提升了代码仓库的安全性。
应用场景:
- 企业内部的代码仓库可以强制所有开发者使用 2FA
- 管理员可以在组织设置中一键启用此功能
- 新用户注册后会被要求设置 2FA 才能继续使用
项目全屏模式
新增了全屏模式,让你在查看项目时能获得更沉浸式的体验,特别适合在大屏幕上工作。
使用场景:
- 代码评审时,全屏模式能让你专注于代码本身
- 在会议展示时,全屏模式能提供更好的演示效果
- 使用快捷键
F11
即可快速切换
私有仓库的公开访问
这是一个非常实用的功能:
- 支持匿名访问私有仓库的特定内容
- 可以将私有仓库的代码和 Issue 设置为公开访问
- 适合需要部分开放的企业项目
实际案例:
diff
场景1:企业内部项目需要对外展示
- 保持仓库为私有,但允许外部用户查看代码
- Issue 和 PR 仍然需要登录才能创建
- 适合开源预览或技术分享
场景2:客户支持场景
- 私有项目的 Issue 可以公开,让客户查看问题进展
- 代码仍然保持私有,保护知识产权
文件树视图
在查看文件时,左侧会显示完整的文件树结构,让导航变得更加便捷。类似 VS Code 的文件浏览体验。
体验提升:
- 快速跳转到任意文件,无需返回上级目录
- 支持折叠/展开目录
- 记住上次浏览的位置
组织级别的 README
组织现在可以拥有私有的 README.md 文件,用于内部文档说明。
使用示例:
markdown
# 我们的开发团队
## 🏗️ 项目结构
- frontend/ - 前端项目
- backend/ - 后端服务
- docs/ - 文档中心
## 📋 开发规范
- 代码提交前必须通过 CI 检查
- PR 需要至少一位同事 Review
- 遵循语义化版本规范
## 🔗 常用链接
- [开发文档](./docs)
- [API 文档](./api-docs)
- [部署指南](./deployment)
⚡ 性能优化
查询性能大幅提升
- 优化了包查询的缓存机制
- Issue 置顶功能移到独立表,提升查询速度
- 提交列表加载时减少了不必要的数据库查询
- 热力图查询得到优化
性能对比:
- 大型仓库 (10 万+ commits) 的提交历史加载速度提升 60%
- Issue 列表 (1000+ issues) 的加载时间从 3 秒降到 1 秒
- 用户主页的活动热力图渲染速度提升 40%
标签同步性能优化
大幅提升了 Git 标签同步的性能,对于标签数量多的项目尤其明显。
GPG 密钥缓存
在显示提交列表时,GPG 密钥、邮箱和用户信息会被缓存,减少重复查询。
🎨 用户体验改进
Actions (CI/CD) 增强
- 新增扁平方形风格的状态徽章
- 支持通过 API 下载 Actions 日志
- 运行中的步骤会自动展开
- 添加了自动滚动功能
实用技巧:
yaml
# 在 README 中展示构建状态

# API 下载日志示例
curl -H "Authorization: token YOUR_TOKEN" \
https://your-gitea.com/api/v1/repos/owner/repo/actions/runs/123/logs
Pull Request 体验优化
- "新建 PR" 表单会自动展开
- 当所有文件都已查看时,父目录会自动标记为已查看
- 自动合并功能支持合并后自动删除分支
工作流程改进:
- 创建 PR 时,描述框自动展开,鼓励写详细说明
- Code Review 时,查看过的文件会有标记,不会重复查看
- 设置自动合并后,CI 通过即可自动完成合并和清理
Issue 管理改进
- 支持按任意指派人筛选 Issue
- 编辑评论或标题时,离开页面会有警告提示
- 新增 "最近关闭" 的排序选项
筛选器示例:
makefile
# 查找分配给多人的 Issue
assignee:user1 assignee:user2
# 查找最近7天关闭的 Issue
is:closed sort:recentclose
代码浏览增强
- 完整文件的语法高亮现在也能在 diff 页面使用
- 支持使用 Tea CLI 克隆仓库
- 子模块现在会显示链接,点击可直接跳转
Tea CLI 使用示例:
bash
# 安装 Tea CLI
brew install tea
# 登录 Gitea
tea login add -u https://your-gitea.com -t YOUR_TOKEN
# 克隆仓库
tea repo clone owner/repo
🔧 管理员功能
请求优先级中间件
可以对不同类型的请求设置优先级,确保重要操作不受影响。
配置示例:
ini
[server]
; API 请求优先级最高
REQUEST_PRIORITY_API = high
; Web 界面中等优先级
REQUEST_PRIORITY_WEB = medium
; Webhook 低优先级
REQUEST_PRIORITY_WEBHOOK = low
性能追踪
新增性能追踪功能,帮助定位性能瓶颈。
使用方法:
bash
# 启用性能追踪
gitea admin perf-trace --enable
# 查看追踪结果
gitea admin perf-trace --report
🔌 API 增强
Actions Runner API
新增了完整的 Actions Runner REST API。
API 示例:
bash
# 列出所有 Runner
GET /api/v1/admin/runners
# 创建新的 Runner 注册令牌
POST /api/v1/repos/{owner}/{repo}/actions/runners/registration-token
# 删除 Runner
DELETE /api/v1/repos/{owner}/{repo}/actions/runners/{id}
组织重命名 API
现在可以通过 API 重命名组织。
使用示例:
bash
curl -X PATCH https://your-gitea.com/api/v1/orgs/old-name \
-H "Authorization: token YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "new-name"}'
包管理 API
支持将包链接到仓库,以及取消链接。
实际应用:
bash
# 将 npm 包链接到仓库
POST /api/v1/packages/{owner}/npm/{package}/link
{
"repo_id": 123
}
# 取消链接
DELETE /api/v1/packages/{owner}/npm/{package}/link/{repo_id}
多文件内容 API
一次请求可以获取多个文件的内容,提高效率。
批量获取示例:
bash
POST /api/v1/repos/{owner}/{repo}/contents/batch
{
"files": [
"README.md",
"package.json",
".gitignore"
]
}
Issue 锁定 API
新增锁定和解锁 Issue 的 API 接口。
使用场景:
bash
# 锁定已解决的争议性 Issue
PUT /api/v1/repos/{owner}/{repo}/issues/{index}/lock
{
"reason": "resolved"
}
# 解锁 Issue
DELETE /api/v1/repos/{owner}/{repo}/issues/{index}/lock
🐛 重要修复
- 修复了 LFS 文件在 Web UI 中可编辑的问题
- 修复了仅 text/* 类型文件可在 Web UI 查看的限制
- 修复了切换默认分支后分支差异缓存不正确的问题
- 修复了用户通过仓库转移绕过限制的漏洞
- 修复了多个 UI 相关的问题,提升了整体稳定性
📦 依赖更新
- 升级到 Alpine 3.22
- 支持 Go 1.24
- 更新了大量 JavaScript 和 Python 依赖
总结
Gitea v1.24.0 是一个非常值得升级的版本,它不仅带来了许多实用的新功能,还在性能和用户体验方面做了大量优化。特别是:
- 安全性提升:强制 2FA 功能让企业用户更安心
- 性能改进:各种查询优化让大型项目运行更流畅
- 用户体验:文件树、全屏模式等功能让日常使用更便捷
- 灵活性增强:私有仓库公开访问等功能满足了更多使用场景
如果你正在使用 Gitea,强烈建议升级到这个版本。如果你还在寻找一个轻量级的 Git 服务,Gitea v1.24.0 绝对值得一试!
💡 升级提示:由于包含重大变更,升级前请务必备份数据,并仔细阅读官方升级指南。
快速开始
想要体验 Gitea v1.24.0?可以通过以下方式快速开始:
bash
# 使用 Docker 运行
docker run -p 3000:3000 gitea/gitea:1.24.0
# 或使用 Docker Compose
wget https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/docker-compose.yml
docker-compose up -d
访问 http://localhost:3000
即可开始配置你的 Gitea 实例!