Ivan Galakhov 4 yıl önce
ebeveyn
işleme
28771cf8fc
2 değiştirilmiş dosya ile 33 ekleme ve 6 silme
  1. 15 3
      dashboard/src/shared/api.tsx
  2. 18 3
      server/api/git_repo_handler.go

+ 15 - 3
dashboard/src/shared/api.tsx

@@ -356,7 +356,11 @@ const detectBuildpack = baseApi<
     branch: string;
   }
 >("GET", (pathParams) => {
-  return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/${pathParams.branch}/buildpack/detect`;
+  return `/api/projects/${pathParams.project_id}/gitrepos/${
+    pathParams.git_repo_id
+  }/repos/${pathParams.kind}/${pathParams.owner}/${
+    pathParams.name
+  }/${encodeURIComponent(pathParams.branch)}/buildpack/detect`;
 });
 
 const getBranchContents = baseApi<
@@ -372,7 +376,11 @@ const getBranchContents = baseApi<
     branch: string;
   }
 >("GET", (pathParams) => {
-  return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/${pathParams.branch}/contents`;
+  return `/api/projects/${pathParams.project_id}/gitrepos/${
+    pathParams.git_repo_id
+  }/repos/${pathParams.kind}/${pathParams.owner}/${
+    pathParams.name
+  }/${encodeURIComponent(pathParams.branch)}/contents`;
 });
 
 const getProcfileContents = baseApi<
@@ -388,7 +396,11 @@ const getProcfileContents = baseApi<
     branch: string;
   }
 >("GET", (pathParams) => {
-  return `/api/projects/${pathParams.project_id}/gitrepos/${pathParams.git_repo_id}/repos/${pathParams.kind}/${pathParams.owner}/${pathParams.name}/${pathParams.branch}/procfile`;
+  return `/api/projects/${pathParams.project_id}/gitrepos/${
+    pathParams.git_repo_id
+  }/repos/${pathParams.kind}/${pathParams.owner}/${
+    pathParams.name
+  }/${encodeURIComponent(pathParams.branch)}/procfile`;
 });
 
 const getBranches = baseApi<

+ 18 - 3
server/api/git_repo_handler.go

@@ -355,7 +355,12 @@ func (app *App) HandleGetBranchContents(w http.ResponseWriter, r *http.Request)
 
 	owner := chi.URLParam(r, "owner")
 	name := chi.URLParam(r, "name")
-	branch := chi.URLParam(r, "branch")
+	branch, err := url.QueryUnescape(chi.URLParam(r, "branch"))
+
+	if err != nil {
+		app.handleErrorInternal(err, w)
+		return
+	}
 
 	repoContentOptions := github.RepositoryContentGetOptions{}
 	repoContentOptions.Ref = branch
@@ -394,7 +399,12 @@ func (app *App) HandleGetProcfileContents(w http.ResponseWriter, r *http.Request
 
 	owner := chi.URLParam(r, "owner")
 	name := chi.URLParam(r, "name")
-	branch := chi.URLParam(r, "branch")
+	branch, err := url.QueryUnescape(chi.URLParam(r, "branch"))
+
+	if err != nil {
+		app.handleErrorInternal(err, w)
+		return
+	}
 
 	queryParams, err := url.ParseQuery(r.URL.RawQuery)
 
@@ -455,7 +465,12 @@ func (app *App) HandleGetRepoZIPDownloadURL(w http.ResponseWriter, r *http.Reque
 
 	owner := chi.URLParam(r, "owner")
 	name := chi.URLParam(r, "name")
-	branch := chi.URLParam(r, "branch")
+	branch, err := url.QueryUnescape(chi.URLParam(r, "branch"))
+
+	if err != nil {
+		app.handleErrorInternal(err, w)
+		return
+	}
 
 	branchResp, _, err := client.Repositories.GetBranch(
 		context.TODO(),