dashboard / erock/git-pr / feat: range diff #16 rss

accepted · opened on 2024-08-19T21:12:53Z by erock
Help
checkout latest patchset:
ssh pr.pico.sh print pr-16 | git am -3
checkout any patchset in a patch request:
ssh pr.pico.sh print ps-X | git am -3
add changes to patch request:
git format-patch main --stdout | ssh pr.pico.sh pr add 16
add review to patch request:
git format-patch main --stdout | ssh pr.pico.sh pr add --review 16
accept PR:
ssh pr.pico.sh pr accept 16
close PR:
ssh pr.pico.sh pr close 16

Logs

erock created pr with ps-28 on 2024-08-18T15:28:14Z
erock added ps-29 on 2024-08-18T15:31:36Z
erock changed status on 2024-08-18T15:31:36Z {"status":"open"}
erock added ps-30 on 2024-08-18T16:05:53Z
erock changed status on 2024-08-18T16:05:53Z {"status":"open"}
erock changed pr name on 2024-08-18T16:06:30Z {"name":"feat: private obj store service"}
erock added ps-31 on 2024-08-18T16:39:07Z
erock changed status on 2024-08-18T16:39:07Z {"status":"open"}
erock added ps-32 on 2024-08-19T02:01:34Z
erock changed status on 2024-08-19T02:01:34Z {"status":"open"}
erock changed status on 2024-08-19T20:50:01Z {"status":"closed"}
erock changed status on 2024-11-06T15:04:22Z {"status":"accepted"}

Patchsets

ps-28 by erock on 2024-08-18T15:28:14Z
Range Diff ↕ rd-29
1: 3bd44da ! 1: 9002592 chore(pgs): add validation to project names
ps-29 by erock on 2024-08-18T15:31:36Z
Range Diff ↕ rd-30
1: 9002592 = 1: 9002592 chore(pgs): add validation to project names
-: ------- > 2: cd17cf4 chore: update pobj
-: ------- > 3: a00def2 chore: complete impl
ps-30 by erock on 2024-08-18T16:05:53Z
Range Diff ↕ rd-31
1: 9002592 = 1: 9002592 chore(pgs): add validation to project names
2: cd17cf4 = 2: cd17cf4 chore: update pobj
3: a00def2 = 3: a00def2 chore: complete impl
-: ------- > 4: 0ed7dc9 chore: update pobj
-: ------- > 5: 8ff1131 working!
ps-31 by erock on 2024-08-18T16:39:07Z
Range Diff ↕ rd-32
1: 9002592 = 1: 9002592 chore(pgs): add validation to project names
2: cd17cf4 = 2: cd17cf4 chore: update pobj
3: a00def2 = 3: a00def2 chore: complete impl
4: 0ed7dc9 = 4: 0ed7dc9 chore: update pobj
5: 8ff1131 = 5: 8ff1131 working!
-: ------- > 6: 0c8ad0d chore(obj): prep service def
ps-32 by erock on 2024-08-19T02:01:34Z

chore(pgs): add validation to project names

filehandlers/assets/handler.go link
+5 -0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
diff --git a/filehandlers/assets/handler.go b/filehandlers/assets/handler.go
index 22edce6..1c32d82 100644
--- a/filehandlers/assets/handler.go
+++ b/filehandlers/assets/handler.go
@@ -268,6 +268,11 @@ func (h *UploadAssetHandler) Write(s ssh.Session, entry *utils.FileEntry) (strin
 
 	project := getProject(s)
 	projectName := shared.GetProjectName(entry)
+	err = shared.ValidateProjectName(projectName)
+	if err != nil {
+		return "", err
+	}
+
 	logger = logger.With("project", projectName)
 
 	// find, create, or update project if we haven't already done it
pgs/cli.go link
+6 -1
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
diff --git a/pgs/cli.go b/pgs/cli.go
index 0af5802..8e82241 100644
--- a/pgs/cli.go
+++ b/pgs/cli.go
@@ -374,8 +374,13 @@ func (c *Cmd) unlink(projectName string) error {
 func (c *Cmd) link(projectName, linkTo string) error {
 	c.Log.Info("user running `link` command", "user", c.User.Name, "project", projectName, "link", linkTo)
 
+	err := shared.ValidateProjectName(projectName)
+	if err != nil {
+		return err
+	}
+
 	projectDir := linkTo
-	_, err := c.Dbpool.FindProjectByName(c.User.ID, linkTo)
+	_, err = c.Dbpool.FindProjectByName(c.User.ID, linkTo)
 	if err != nil {
 		e := fmt.Errorf("(%s) project doesn't exist", linkTo)
 		return e
shared/bucket.go link
+7 -0
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
diff --git a/shared/bucket.go b/shared/bucket.go
index 1257b55..e906cf0 100644
--- a/shared/bucket.go
+++ b/shared/bucket.go
@@ -17,6 +17,13 @@ func GetAssetBucketName(userID string) string {
 	return fmt.Sprintf("static-%s", userID)
 }
 
+func ValidateProjectName(projectName string) error {
+	if projectName == "pico-private" || projectName == "pico-imgs" {
+		return fmt.Errorf("%s is an invalid project name", projectName)
+	}
+	return nil
+}
+
 func GetProjectName(entry *utils.FileEntry) string {
 	if entry.Mode.IsDir() && strings.Count(entry.Filepath, string(os.PathSeparator)) == 0 {
 		return entry.Filepath