git-sync-web 自动提交 2026-09-09 13:46:40
This commit is contained in:
@@ -55,6 +55,7 @@ func NewServer(e *Engine, static fs.FS, password string) *Server {
|
||||
mux.HandleFunc("PUT /api/repos/{name}/file", s.wrapRepo(s.fileWriteRepo))
|
||||
mux.HandleFunc("POST /api/repos/{name}/commit", s.wrapRepo(s.commitFileRepo))
|
||||
mux.HandleFunc("GET /api/repos/{name}/diff", s.wrapRepo(s.diffRepo))
|
||||
mux.HandleFunc("GET /api/cron-next", s.handleCronNext)
|
||||
mux.Handle("/", http.FileServer(http.FS(static)))
|
||||
return s
|
||||
}
|
||||
@@ -401,10 +402,26 @@ func (s *Server) diffRepo(w http.ResponseWriter, r *http.Request, name string) {
|
||||
if scope == "" {
|
||||
scope = "working"
|
||||
}
|
||||
res, err := s.engine.WorkingDiff(name, scope)
|
||||
// path 可选:传入时只对比该文件(用于编辑器「对比此文件」)
|
||||
res, err := s.engine.WorkingDiff(name, scope, r.URL.Query().Get("path"))
|
||||
if err != nil {
|
||||
writeErr(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
writeJSON(w, 200, res)
|
||||
}
|
||||
|
||||
// handleCronNext 返回 cron 表达式的下次执行时间,供配置表单实时预览
|
||||
func (s *Server) handleCronNext(w http.ResponseWriter, r *http.Request) {
|
||||
expr := r.URL.Query().Get("expr")
|
||||
if expr == "" {
|
||||
writeErr(w, 400, "缺少 expr 参数")
|
||||
return
|
||||
}
|
||||
next, err := cronNextString(expr)
|
||||
if err != nil {
|
||||
writeErr(w, 400, err.Error())
|
||||
return
|
||||
}
|
||||
writeJSON(w, 200, map[string]any{"next": next})
|
||||
}
|
||||
Reference in New Issue
Block a user