Add a project Page tab and a page origin per worktree and repo

This commit is contained in:
Ian Gulliver
2026-10-23 19:33:26 -07:00
parent 1f61bf7cf5
commit c52b8839bd
12 changed files with 327 additions and 161 deletions
+122 -78
View File
@@ -1904,6 +1904,12 @@ type GetProjectRawParams struct {
Path string `form:"path" json:"path"`
}
// GetRawParams defines parameters for GetRaw.
type GetRawParams struct {
// Path Slash-separated and absolute.
Path string `form:"path" json:"path"`
}
// GetTaskChangesParams defines parameters for GetTaskChanges.
type GetTaskChangesParams struct {
// Since A commit to compare with instead of the merge-base, such as a user.message event's head. Not allowed with snapshot.
@@ -2222,6 +2228,9 @@ type ServerInterface interface {
// (POST /api/projects/{projectId}/todo/tasks)
StartTodoItem(w http.ResponseWriter, r *http.Request, projectId string)
// (GET /api/raw)
GetRaw(w http.ResponseWriter, r *http.Request, params GetRawParams)
// (PUT /api/reviews/{reviewId}/findings/{index})
SetFindingState(w http.ResponseWriter, r *http.Request, reviewId string, index int)
@@ -3411,6 +3420,39 @@ func (siw *ServerInterfaceWrapper) StartTodoItem(w http.ResponseWriter, r *http.
handler.ServeHTTP(w, r)
}
// GetRaw operation middleware
func (siw *ServerInterfaceWrapper) GetRaw(w http.ResponseWriter, r *http.Request) {
var err error
_ = err
// Parameter object where we will unmarshal all parameters from the context
var params GetRawParams
// ------------- Required query parameter "path" -------------
err = runtime.BindQueryParameterWithOptions("form", true, true, "path", r.URL.Query(), &params.Path, runtime.BindQueryParameterOptions{Type: "string", Format: ""})
if err != nil {
var requiredError *runtime.RequiredParameterError
if errors.As(err, &requiredError) {
siw.ErrorHandlerFunc(w, r, &RequiredParamError{ParamName: "path"})
} else {
siw.ErrorHandlerFunc(w, r, &InvalidParamFormatError{ParamName: "path", Err: err})
}
return
}
handler := http.Handler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
siw.Handler.GetRaw(w, r, params)
}))
for _, middleware := range siw.HandlerMiddlewares {
handler = middleware(handler)
}
handler.ServeHTTP(w, r)
}
// SetFindingState operation middleware
func (siw *ServerInterfaceWrapper) SetFindingState(w http.ResponseWriter, r *http.Request) {
@@ -4855,6 +4897,7 @@ func HandlerWithOptions(si ServerInterface, options StdHTTPServerOptions) http.H
m.HandleFunc(http.MethodPost+" "+options.BaseURL+"/api/sessions/{sessionId}/interrupt", wrapper.InterruptSession)
m.HandleFunc(http.MethodPost+" "+options.BaseURL+"/api/sessions/{sessionId}/pause", wrapper.PauseSession)
m.HandleFunc(http.MethodPost+" "+options.BaseURL+"/api/sessions/{sessionId}/resume", wrapper.ResumeSession)
m.HandleFunc(http.MethodGet+" "+options.BaseURL+"/api/raw", wrapper.GetRaw)
m.HandleFunc(http.MethodPost+" "+options.BaseURL+"/api/blobs", wrapper.UploadBlob)
m.HandleFunc(http.MethodGet+" "+options.BaseURL+"/api/blobs/{blobId}", wrapper.GetBlob)
m.HandleFunc(http.MethodGet+" "+options.BaseURL+"/api/inbox", wrapper.ListInbox)
@@ -5173,84 +5216,85 @@ var swaggerSpec = []string{
"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",
"/CqAKbT9crWKRiSwfGp8wAC5RNa/MbXsx4///wA=",
"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",
"2Y8f//8BAA==",
}
// decodeSpec returns the embedded OpenAPI spec as raw JSON bytes,
+8
View File
@@ -240,6 +240,14 @@ func (s *Server) GetProjectRaw(w http.ResponseWriter, r *http.Request, projectID
serveRaw(w, r, p.RepoPath, params.Path)
}
func (s *Server) GetRaw(w http.ResponseWriter, r *http.Request, params api.GetRawParams) {
if !path.IsAbs(params.Path) {
writeError(w, http.StatusBadRequest, fmt.Errorf("%s is not an absolute path", params.Path))
return
}
serveRaw(w, r, "/", params.Path)
}
func serveRaw(w http.ResponseWriter, r *http.Request, root, rel string) {
if rel == "" {
writeError(w, http.StatusBadRequest, errors.New("path is required"))