Compare commits

..

No commits in common. "c13dd9082be57c73fc980a9fd00adaba40a810c0" and "96c30889f480bb9eba50d87f1735794cbf6eccb0" have entirely different histories.

5 changed files with 10 additions and 45 deletions

View file

@ -1,14 +1,5 @@
# 更新日志 # 更新日志
3.5.5 - 2025-06-14
---
- CHANGE: 修正新匹配器的覆盖问题, 同时增加test的覆盖
25w47a - 2025-06-14
---
- PRE-RELEASE: 此版本是v3.5.5预发布版本,请勿在生产环境中使用;
- CHANGE: 修正新匹配器的覆盖问题, 同时增加test的覆盖
3.5.4 - 2025-06-14 3.5.4 - 2025-06-14
--- ---
- CHANGE: 移植来自于[GHProxy-Touka](https://github.com/WJQSERVER-STUDIO/ghproxy-touka)的blob处理逻辑与302处理逻辑 - CHANGE: 移植来自于[GHProxy-Touka](https://github.com/WJQSERVER-STUDIO/ghproxy-touka)的blob处理逻辑与302处理逻辑

View file

@ -1 +1 @@
25w47a 25w46c

View file

@ -1 +1 @@
3.5.5 3.5.4

View file

@ -10,16 +10,14 @@ import (
) )
var ( var (
githubPrefix = "https://github.com/" githubPrefix = "https://github.com/"
rawPrefix = "https://raw.githubusercontent.com/" rawPrefix = "https://raw.githubusercontent.com/"
gistPrefix = "https://gist.github.com/" gistPrefix = "https://gist.github.com/"
gistContentPrefix = "https://gist.githubusercontent.com/" apiPrefix = "https://api.github.com/"
apiPrefix = "https://api.github.com/" githubPrefixLen int
githubPrefixLen int rawPrefixLen int
rawPrefixLen int gistPrefixLen int
gistPrefixLen int apiPrefixLen int
gistContentPrefixLen int
apiPrefixLen int
) )
func init() { func init() {
@ -27,7 +25,6 @@ func init() {
rawPrefixLen = len(rawPrefix) rawPrefixLen = len(rawPrefix)
gistPrefixLen = len(gistPrefix) gistPrefixLen = len(gistPrefix)
apiPrefixLen = len(apiPrefix) apiPrefixLen = len(apiPrefix)
gistContentPrefixLen = len(gistContentPrefix)
//log.Printf("githubPrefixLen: %d, rawPrefixLen: %d, gistPrefixLen: %d, apiPrefixLen: %d", githubPrefixLen, rawPrefixLen, gistPrefixLen, apiPrefixLen) //log.Printf("githubPrefixLen: %d, rawPrefixLen: %d, gistPrefixLen: %d, apiPrefixLen: %d", githubPrefixLen, rawPrefixLen, gistPrefixLen, apiPrefixLen)
} }
@ -117,23 +114,6 @@ func Matcher(rawPath string, cfg *config.Config) (string, string, string, *GHPro
return user, "", "gist", nil return user, "", "gist", nil
} }
// 匹配 "https://gist.githubusercontent.com/"
if strings.HasPrefix(rawPath, gistContentPrefix) {
remaining := rawPath[gistContentPrefixLen:]
i := strings.IndexByte(remaining, '/')
if i <= 0 {
// case: https://gist.githubusercontent.com/user
// 这种情况下, gist_id 缺失, 但我们仍然可以认为 user 是有效的
if len(remaining) > 0 {
return remaining, "", "gist", nil
}
return "", "", "", NewErrorWithStatusLookup(400, "malformed gist url: missing user")
}
// case: https://gist.githubusercontent.com/user/gist_id...
user := remaining[:i]
return user, "", "gist", nil
}
// 匹配 "https://api.github.com/" // 匹配 "https://api.github.com/"
if strings.HasPrefix(rawPath, apiPrefix) { if strings.HasPrefix(rawPath, apiPrefix) {
if !cfg.Auth.ForceAllowApi && (cfg.Auth.Method != "header" || !cfg.Auth.Enabled) { if !cfg.Auth.ForceAllowApi && (cfg.Auth.Method != "header" || !cfg.Auth.Enabled) {

View file

@ -87,12 +87,6 @@ func TestMatcher_Compatibility(t *testing.T) {
config: cfgWithAuth, config: cfgWithAuth,
expectedUser: "user", expectedRepo: "", expectedMatcher: "gist", expectedUser: "user", expectedRepo: "", expectedMatcher: "gist",
}, },
{
name: "Gist UserContent Path",
rawPath: "https://gist.githubusercontent.com/user/abcdef1234567890",
config: cfgWithAuth,
expectedUser: "user", expectedRepo: "", expectedMatcher: "gist",
},
{ {
name: "API Repos Path (with Auth)", name: "API Repos Path (with Auth)",
rawPath: "https://api.github.com/repos/owner/repo/pulls", rawPath: "https://api.github.com/repos/owner/repo/pulls",