Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(github_releases): add support for github_releases driver #7844

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

YangRucheng
Copy link
Contributor

@YangRucheng YangRucheng commented Jan 19, 2025

resolve #7842

添加对 GitHub Releases 的支持,将多个仓库的最新版 Releases 挂载到 AList,方便不了解 GitHub 的用户下载。
同时可选是否获取仓库根目录下的 *.mdLICENSE 文件。

配置项:

配置项 类型 是否必填 描述
RepoStructure text 仓库结构
ShowReadme bool 是否显示 *.mdLICENSE 文件
Token string GitHub 访问令牌,用于私有仓库 和 避免访问速率限制
ShowAllVersion bool 开启后以子目录的形式显示所有版本

RepoStructure 使用类似地址树的方式,但不使用缩进表示目录,支持多级路径。
image

效果示例(不显示所有版本):
image

效果示例(显示所有版本):
image

补充说明:

  • 目录大小由子目录相加得到,未计算 *.mdLICENSE 文件的大小。
  • 使用 map 缓存接口响应,减少访问速率限制的影响。

@YangRucheng
Copy link
Contributor Author

YangRucheng commented Jan 19, 2025

我构建了此 pr 的镜像 docker.io/yangrucheng/alist:pr-7844

构建过程和进度:GitHub Action

@YangRucheng YangRucheng changed the title feat: add support for github_releases driver feat(github_releases): add support for github_releases driver Jan 23, 2025
@itsHenry35
Copy link
Contributor

itsHenry35 commented Jan 24, 2025

我感觉像是#7859 这个另一个PR的文件结构会不会更好一些呢?就是一个仓库作为一个储存,这样,如果我只挂载一个仓库,更好能直接挂载到一个目录中直接进入,而不是要进入两次。如果我要挂载多个仓库,那我就添加多次这个储存就行了

@itsHenry35
Copy link
Contributor

此外,这个pr与#7859 功能相近。两个功能相近的pr是不是合并一下更好呢,一个开发者给另外一个开发者fork的仓库进行pr,然后最后让xhofe把merge commit去author两个人

@YangRucheng
Copy link
Contributor Author

YangRucheng commented Jan 24, 2025

此外,这个pr与#7859 功能相近。两个功能相近的pr是不是合并一下更好呢,一个开发者给另外一个开发者fork的仓库进行pr,然后最后让xhofe把merge commit去author两个人

我已经尽力在兼容了。以下三种写法都支持,其中 第1种#7859 效果相似。

一开始我是用地址树来实现我的需求,更新版本不便才有了这个 pr,我没法预知新 pr 的出现呐。

alistGo/alist
/alist-gh:AlistGo/alist
alistGo/alist
/path/to/alist-gh:AlistGo/alist

@YangRucheng
Copy link
Contributor Author

YangRucheng commented Jan 24, 2025

我感觉像是#7859 这个另一个PR的文件结构会不会更好一些呢?就是一个仓库作为一个储存,这样,如果我只挂载一个仓库,更好能直接挂载到一个目录中直接进入,而不是要进入两次。如果我要挂载多个仓库,那我就添加多次这个储存就行了

如果你想 只挂载一个仓库,可以这么做。只需要填 /:alistGo/alist

我刚才 进一步改进,填 alistGo/alist 即可。

有需要的人也可以在一个储存中挂载多个 GitHub Release,避免更新令牌时需要改很多次。 也可以实现复杂的树形结构。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

适配 GitHub Releases
2 participants