Ai
135 Star 513 Fork 122

GVP悬镜安全/OpenSCA-cli

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
repo.go 1.35 KB
一键复制 编辑 原始数据 按行查看 历史
骆天奇 提交于 2024-06-28 11:32 +08:00 . fix: mvn download
package common
import (
"fmt"
"io"
"net/http"
"strings"
"github.com/xmirrorsecurity/opensca-cli/v3/opensca/logs"
)
type RepoConfig struct {
Url string `json:"url"`
Username string `json:"username"`
Password string `json:"password"`
}
func TrimRepo(repos ...RepoConfig) []RepoConfig {
var newRepos []RepoConfig
for _, repo := range repos {
if repo.Url != "" {
newRepos = append(newRepos, repo)
}
}
return newRepos
}
func DownloadUrlFromRepos(route string, do func(repo RepoConfig, r io.Reader), repos ...RepoConfig) bool {
repoSet := map[string]bool{}
for _, repo := range repos {
if repo.Url == "" {
continue
}
if repoSet[repo.Url] {
continue
}
repoSet[repo.Url] = true
url := fmt.Sprintf("%s/%s", strings.TrimRight(repo.Url, "/"), strings.TrimLeft(route, "/"))
req, err := http.NewRequest("GET", url, nil)
if err != nil {
logs.Warn(err)
return false
}
if repo.Username+repo.Password != "" {
req.SetBasicAuth(repo.Username, repo.Password)
}
resp, err := HttpDownloadClient.Do(req)
if err != nil {
logs.Warn(err)
continue
}
if resp.StatusCode != 200 {
logs.Warnf("%d %s", resp.StatusCode, url)
io.Copy(io.Discard, resp.Body)
resp.Body.Close()
} else {
logs.Debugf("%d %s", resp.StatusCode, url)
do(repo, resp.Body)
resp.Body.Close()
return true
}
}
return false
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/XmirrorSecurity/OpenSCA-cli.git
git@gitee.com:XmirrorSecurity/OpenSCA-cli.git
XmirrorSecurity
OpenSCA-cli
OpenSCA-cli
master

搜索帮助