Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
f0e53d1
fix(drivers/alias): default sort & substitute link (#1917)
KirCute Jan 26, 2026
29fcf59
fix(drivers/cloudreve_v4): add IsFolder attribute to Getter response …
xrgzs Jan 28, 2026
27732cc
fix(drivers/quark): apply html escaping in quark (#2046)
mkitsdts Jan 29, 2026
d685bbf
fix(api/remove): add validation for empty items in delete file list (…
datao2001 Jan 29, 2026
7b78fed
Merge commit from fork
jyxjjj Jan 31, 2026
e3c664f
Merge commit from fork
jyxjjj Jan 31, 2026
f542187
fix(drivers/teldrive): enhance file listing and upload functionality …
totza2010 Feb 1, 2026
5d9fc83
fix(115_share): adjust 115 share driver for official API update (#2068)
SheltonZhu Feb 2, 2026
6861cb4
chore(ci): add breaking change guideline to PR title check (#2087)
xrgzs Feb 6, 2026
a121f86
feat(drivers/123open): support sha1 reuse api (#2089)
gdm257 Feb 8, 2026
8431c1b
fix(deps): update go4.org digest to a507140 (#2095)
renovate[bot] Feb 8, 2026
a8d1c0d
fix(‎drivers/quark_uc_tv) : Update error code judgment (#2080)
jenfonro Feb 8, 2026
5fab0d2
feat(docs): add CLAUDE.md for project guidance and development instru…
Jan 4, 2026
fd159f3
fix(driver): fix file copy failure to 123pan due to incorrect etag
Dec 28, 2025
8cd09c2
feat: Implement streaming upload for Baidu Netdisk
Jan 1, 2026
2e78ac4
feat(upload): enhance hash calculation and upload logic for various s…
Jan 4, 2026
18a33f3
feat(link): add link refresh capability for expired download links
Jan 4, 2026
7a8210f
feat(network): 增加对慢速网络的支持,调整超时和重试机制
Jan 5, 2026
0771e71
fix: 修复500 panic和NaN问题
Jan 9, 2026
442fdcb
fix(alias): update storage retrieval method in listRoot function
Jan 4, 2026
88aafb9
fix(copy_move): 将预创建子目录的深度从2级调整为1级,以避免深度递归问题
Jan 11, 2026
b931280
fix(driver): 增加夸克分片大小调整逻辑,支持重试机制以应对超限错误
Jan 12, 2026
1cf3718
refactor(stream): 移除过时的链接刷新逻辑,添加自愈读取器以处理0字节读取
Jan 13, 2026
7acabb6
fix(google_drive): 更新Put方法以支持可重复读取流和不可重复读取流的MD5校验
Jan 13, 2026
f61d147
ci: use Ironboxplus/OpenList-Frontend for beta builds
Jan 13, 2026
cb6fc92
perf: optimize CI build speed with smart caching
Jan 13, 2026
ce5b1af
fix(stream): 修复链接过期检测逻辑,避免将上下文取消视为链接过期
Jan 14, 2026
9140dee
refactor(workflow): 使用默认前端仓库,移除自定义前端仓库配置
Jan 14, 2026
5048375
feat(google_drive): 添加处理重复文件名的功能,确保文件名唯一
Jan 14, 2026
0cabf12
feat(quark_open): 添加速率限制和重试逻辑,优化文件上传处理
Jan 17, 2026
e252189
feat(google_drive): 添加文件夹创建的锁机制和重试逻辑,确保文件夹唯一性
Jan 17, 2026
4127d4c
refactor(link): 优化链接缓存逻辑,移除对 SyncClosers 的依赖,简化过期判断
Jan 18, 2026
caa7772
fix(stream): 更新过期链接检查逻辑,支持所有4xx客户端错误
Jan 18, 2026
f83e7a8
fix(115_open): 修复重复链接错误处理,通过检测错误码10008自动删除并重试
Jan 27, 2026
79db1cd
feat(offline_download): 优化任务列表获取逻辑,支持多页任务获取并更新任务状态提示
Feb 1, 2026
3406a08
fix(google_drive): 增加 MakeDir 方法中的等待时间,以处理 Google Drive API 的同步延迟
Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
Provide a general summary of your changes in the Title above.
The PR title must start with `feat(): `, `docs(): `, `fix(): `, `style(): `, or `refactor(): `, `chore(): `. For example: `feat(component): add new feature`.
If it spans multiple components, use the main component as the prefix and enumerate in the title, describe in the body.
For breaking changes, add `!` after the type, e.g., `feat(component)!: breaking change`.
-->
<!--
在上方标题中提供您更改的总体摘要。
PR 标题需以 `feat(): `, `docs(): `, `fix(): `, `style(): `, `refactor(): `, `chore(): ` 其中之一开头,例如:`feat(component): 新增功能`。
如果跨多个组件,请使用主要组件作为前缀,并在标题中枚举、描述中说明。
如果是破坏性变更,请在类型后添加 `!`,例如 `feat(component)!: 破坏性变更`。
-->

## Description / 描述
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/issue_pr_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,14 @@ jobs:
with:
script: |
const title = context.payload.pull_request.title || "";
const ok = /^(feat|docs|fix|style|refactor|chore)\(.+?\): /i.test(title);
const ok = /^(feat|docs|fix|style|refactor|chore)\(.+?\)!?: /i.test(title);
if (!ok) {
let comment = "⚠️ PR 标题需以 `feat(): `, `docs(): `, `fix(): `, `style(): `, `refactor(): `, `chore(): ` 其中之一开头,例如:`feat(component): 新增功能`。\n";
comment += "⚠️ The PR title must start with `feat(): `, `docs(): `, `fix(): `, `style(): `, or `refactor(): `, `chore(): `. For example: `feat(component): add new feature`.\n\n";
comment += "如果跨多个组件,请使用主要组件作为前缀,并在标题中枚举、描述中说明。\n";
comment += "If it spans multiple components, use the main component as the prefix and enumerate in the title, describe in the body.\n\n";
comment += "如果是破坏性变更,请在类型后添加 `!`,例如 `feat(component)!: 破坏性变更`。\n";
comment += "For breaking changes, add `!` after the type, e.g., `feat(component)!: breaking change`.\n\n";
await github.rest.issues.createComment({
...context.repo,
issue_number: context.issue.number,
Expand Down
83 changes: 52 additions & 31 deletions .github/workflows/test_docker.yml
Original file line number Diff line number Diff line change
@@ -1,43 +1,74 @@
name: Beta Release (Docker)

on:
workflow_dispatch:
push:
branches:
- main
pull_request:
branches:
- main
- copy


concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
DOCKERHUB_ORG_NAME: ${{ vars.DOCKERHUB_ORG_NAME || 'openlistteam' }}
GHCR_ORG_NAME: ${{ vars.GHCR_ORG_NAME || 'openlistteam' }}
IMAGE_NAME: openlist-git
IMAGE_NAME_DOCKERHUB: openlist
GHCR_ORG_NAME: ${{ vars.GHCR_ORG_NAME || 'ironboxplus' }} # 👈 最好改成你的用户名,防止推错地方
IMAGE_NAME: openlist
REGISTRY: ghcr.io
ARTIFACT_NAME: 'binaries_docker_release'
RELEASE_PLATFORMS: 'linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/arm/v6,linux/ppc64le,linux/riscv64,linux/loong64' ### Temporarily disable Docker builds for linux/s390x architectures for unknown reasons.
IMAGE_PUSH: ${{ github.event_name == 'push' }}
# 👇 关键修改:只保留 linux/amd64,删掉后面一长串
RELEASE_PLATFORMS: 'linux/amd64'
# 👇 关键修改:强制允许推送,不用管是不是 push 事件
IMAGE_PUSH: 'true'
# 👇 使用默认的前端仓库 (OpenListTeam/OpenList-Frontend)
# FRONTEND_REPO: 'Ironboxplus/OpenList-Frontend'
IMAGE_TAGS_BETA: |
type=ref,event=pr
type=raw,value=beta,enable={{is_default_branch}}
type=raw,value=beta-retry

jobs:
build_binary:
name: Build Binaries for Docker Release (Beta)
name: Build Binaries (x64 Only)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- uses: actions/setup-go@v5
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.25.0'
cache: true
cache-dependency-path: go.sum

# 获取前端仓库的最新commit SHA
- name: Get Frontend Commit SHA
id: frontend-sha
run: |
FRONTEND_REPO="${{ env.FRONTEND_REPO }}"
# 如果未设置FRONTEND_REPO,使用默认值
if [ -z "$FRONTEND_REPO" ]; then
FRONTEND_REPO="OpenListTeam/OpenList-Frontend"
fi
FRONTEND_SHA=$(curl -s https://api.github.com/repos/$FRONTEND_REPO/commits/main | jq -r '.sha')
echo "sha=$FRONTEND_SHA" >> $GITHUB_OUTPUT
echo "repo=$FRONTEND_REPO" >> $GITHUB_OUTPUT
echo "Frontend repo: $FRONTEND_REPO"
echo "Frontend repo latest commit: $FRONTEND_SHA"

# 缓存前端下载 - key包含前端仓库的commit SHA
- name: Cache Frontend
id: cache-frontend
uses: actions/cache@v4
with:
path: public/dist
key: frontend-${{ steps.frontend-sha.outputs.repo }}-${{ steps.frontend-sha.outputs.sha }}
restore-keys: |
frontend-${{ steps.frontend-sha.outputs.repo }}-

# 即使只构建 x64,我们也需要 musl 工具链(因为 BuildDockerMultiplatform 默认会检查它)
- name: Cache Musl
id: cache-musl
uses: actions/cache@v4
Expand All @@ -51,11 +82,12 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Build go binary (beta)
- name: Build go binary
# 这里还是跑 docker-multiplatform,虽然会多编译一些架构,但这是兼容 Dockerfile 路径最稳妥的方法
run: bash build.sh beta docker-multiplatform
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FRONTEND_REPO: ${{ vars.FRONTEND_REPO }}
# FRONTEND_REPO 使用 build.sh 默认值 (OpenListTeam/OpenList-Frontend)

- name: Upload artifacts
uses: actions/upload-artifact@v4
Expand All @@ -69,12 +101,13 @@ jobs:

release_docker:
needs: build_binary
name: Release Docker image (Beta)
name: Release Docker (x64)
runs-on: ubuntu-latest
permissions:
packages: write
strategy:
matrix:
# 构建所有变体
image: ["latest", "ffmpeg", "aria2", "aio"]
include:
- image: "latest"
Expand Down Expand Up @@ -102,49 +135,37 @@ jobs:
with:
name: ${{ env.ARTIFACT_NAME }}
path: 'build/'

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

# 👇 只保留 GitHub 登录,删除了 DockerHub 登录
- name: Login to GitHub Container Registry
if: env.IMAGE_PUSH == 'true'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Login to DockerHub Container Registry
if: env.IMAGE_PUSH == 'true'
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_ORG_NAME_BACKUP || env.DOCKERHUB_ORG_NAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.REGISTRY }}/${{ env.GHCR_ORG_NAME }}/${{ env.IMAGE_NAME }}
${{ env.DOCKERHUB_ORG_NAME }}/${{ env.IMAGE_NAME_DOCKERHUB }}
tags: ${{ env.IMAGE_TAGS_BETA }}
flavor: |
${{ matrix.tag_favor }}
flavor: ${{ matrix.tag_favor }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile.ci
push: ${{ env.IMAGE_PUSH == 'true' }}
push: true
build-args: |
BASE_IMAGE_TAG=${{ matrix.base_image_tag }}
${{ matrix.build_arg }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: ${{ env.RELEASE_PLATFORMS }}
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.GHCR_ORG_NAME }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.image }}
cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.GHCR_ORG_NAME }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.image }},mode=max
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,5 @@ output/
/public/dist/*
/!public/dist/README.md

.VSCodeCounter
.VSCodeCounter
nul
Loading