Procházet zdrojové kódy

query to create stack in db

Justin Rhee před 3 roky
rodič
revize
0f391ad9f8

+ 16 - 8
api/server/handlers/stacks/create_porter_app.go

@@ -1,7 +1,6 @@
 package stacks
 
 import (
-	"fmt"
 	"net/http"
 
 	"github.com/porter-dev/porter/api/server/authz"
@@ -31,21 +30,30 @@ func (c *CreatePorterAppHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques
 	ctx := r.Context()
 	project, _ := ctx.Value(types.ProjectScope).(*models.Project)
 	cluster, _ := ctx.Value(types.ClusterScope).(*models.Cluster)
-	fmt.Println("congrats on making it!", cluster.ID, project.ID)
+
+	request := &types.CreatePorterAppRequest{}
+
+	ok := c.DecodeAndValidate(w, r, request)
+
+	if !ok {
+		return
+	}
 
 	app := &models.PorterApp{
-		Name:      "test",
+		Name:      request.Name,
 		ClusterID: cluster.ID,
 		ProjectID: project.ID,
-		GitBranch: "main",
+		RepoName:  request.RepoName,
+		GitBranch: request.GitBranch,
 
-		BuildContext: "./",
-		Builder:      "heroku/buildpacks:18",
-		Buildpacks:   "nodejs",
-		Dockerfile:   "",
+		BuildContext: request.BuildContext,
+		Builder:      request.Builder,
+		Buildpacks:   request.Buildpacks,
+		Dockerfile:   request.Dockerfile,
 	}
 
 	_, err := c.Repo().PorterApp().CreatePorterApp(app)
+
 	if err != nil {
 		return
 	}

+ 13 - 0
api/types/stacks.go

@@ -22,6 +22,19 @@ type CreateStackRequest struct {
 	EnvGroups []*CreateStackEnvGroupRequest `json:"env_groups,omitempty" form:"required,dive,required"`
 }
 
+// swagger:model
+type CreatePorterAppRequest struct {
+	Name         string `json:"name" form:"required"`
+	ClusterID    uint   `json:"cluster_id"`
+	ProjectID    uint   `json:"project_id"`
+	RepoName     string `json:"repo_name" form:"required"`
+	GitBranch    string `json:"git_branch" form:"required"`
+	BuildContext string `json:"build_context" form:"required"`
+	Builder      string `json:"builder"`
+	Buildpacks   string `json:"buildpacks"`
+	Dockerfile   string `json:"dockerfile"`
+}
+
 // swagger:model
 type PutStackSourceConfigRequest struct {
 	SourceConfigs []*CreateStackSourceConfigRequest `json:"source_configs,omitempty" form:"required,dive,required"`

+ 7 - 0
dashboard/src/main/home/app-dashboard/new-app-flow/NewAppFlow.tsx

@@ -119,6 +119,13 @@ const NewAppFlow: React.FC<Props> = ({ ...props }) => {
         "<token>",
         {
           name: formState.applicationName,
+          repo_name: actionConfig.git_repo,
+          git_branch: branch,
+          build_context: folderPath,
+          builder: "heroku",
+          buildpacks: "nodejs,ruby",
+          dockerfile: "",
+
         },
         {
           cluster_id: currentCluster.id,

+ 6 - 0
dashboard/src/shared/api.tsx

@@ -167,6 +167,12 @@ const createEmailVerification = baseApi<{}, {}>("POST", (pathParams) => {
 const createPorterApp = baseApi<
   {
     name: string;
+    repo_name: string;
+    git_branch: string;
+    build_context: string;
+    builder: string;
+    buildpacks: string;
+    dockerfile: string;
   },
   {
     project_id: number;