Gitea v1.24.0发布,自建github神器

大家好,我是农村程序员,独立开发者,编程记者,前端之虎陈随易。

我会在这里分享代码技术,编程资讯,行业热点等内容,欢迎关注。

  • 个人网站 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 中展示构建状态
![Build Status](https://your-gitea.com/owner/repo/actions/workflows/build.yml/badge.svg?style=flat-square)

# API 下载日志示例
curl -H "Authorization: token YOUR_TOKEN" \
     https://your-gitea.com/api/v1/repos/owner/repo/actions/runs/123/logs

Pull Request 体验优化

  • "新建 PR" 表单会自动展开
  • 当所有文件都已查看时,父目录会自动标记为已查看
  • 自动合并功能支持合并后自动删除分支

工作流程改进

  1. 创建 PR 时,描述框自动展开,鼓励写详细说明
  2. Code Review 时,查看过的文件会有标记,不会重复查看
  3. 设置自动合并后,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

🐛 重要修复

  1. 修复了 LFS 文件在 Web UI 中可编辑的问题
  2. 修复了仅 text/* 类型文件可在 Web UI 查看的限制
  3. 修复了切换默认分支后分支差异缓存不正确的问题
  4. 修复了用户通过仓库转移绕过限制的漏洞
  5. 修复了多个 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 实例!

相关推荐
袁煦丞7 分钟前
低成本私有云存储方案Nas-Cab:cpolar实验室第508次成功挑战
前端·程序员·远程工作
小公主8 分钟前
「前端必备」Flex 布局全解析:从入门到深度计算,搞懂弹性盒子!
前端·css
江城开朗的豌豆24 分钟前
前端性能救星!用 requestAnimationFrame 丝滑渲染海量数据
前端·javascript·面试
江城开朗的豌豆25 分钟前
src和href:这对'双胞胎'属性,你用对了吗?
前端·javascript·面试
江城开朗的豌豆31 分钟前
forEach遇上await:你的异步代码真的在按顺序执行吗?
前端·javascript·面试
万少40 分钟前
HarmonyOS Next 弹窗系列教程(3)
前端·harmonyos·客户端
七灵微2 小时前
【后端】单点登录
服务器·前端
持久的棒棒君6 小时前
npm安装electron下载太慢,导致报错
前端·electron·npm
why1517 小时前
微服务商城-商品微服务
数据库·后端·golang
crary,记忆8 小时前
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
前端·webpack·angular·angular.js