Range-diff !531
back to !531 Saved queries for issues and merge requests across repositories
1: 4d805b1 ! 1: efe33ae store: saved queries and a cross-repository issue and MR query
@@ Commit message
Ref #292
- ## internal/store/migrations/0068_saved_queries.down.sql (new) ##
+ ## internal/store/migrations/0071_saved_queries.down.sql (new) ##
@@
+DROP TABLE saved_queries;
- ## internal/store/migrations/0068_saved_queries.up.sql (new) ##
+ ## internal/store/migrations/0071_saved_queries.up.sql (new) ##
@@
+-- A user's named issue and merge request queries (#292). query is the
+-- canonical text of the query; it is parsed again on every run, and @me
2: 46da2c4 ! 2: 7b68821 control: query save|list|show|run|remove|pin|unpin, issue and mr list --query/--q, pinned queries on dashboard
@@ Commit message
Ref #292
## cmd/gitbay/local.go ##
-@@ cmd/gitbay/local.go: func worktreeDirty() (bool, error) {
+@@ cmd/gitbay/local.go: func gitRaw(env, stdin string, args ...string) (string, int) {
}
- return strings.TrimSpace(string(out)) != "", nil
+ return string(out), 0
}
+
+// anyFlag reports whether any of flags is in args.
3: bd6f535 ! 3: 6194895 web: pinned queries on the dashboard, /{owner}/-/queries and /{owner}/-/queries/{name}
@@ internal/httpd/queries_test.go (new)
## internal/httpd/routes.go ##
@@ internal/httpd/routes.go: func (s *Server) Routes() []Route {
- Route{Method: "POST", Pattern: "/{owner}/{repo}/labels", Mutating: true,
- Handler: s.checkOrigin(s.requireUser(s.labelSubmit))},
+ Route{Method: "POST", Pattern: "/{owner}/-/milestones", Mutating: true,
+ Handler: s.checkOrigin(s.requireUser(s.orgMilestoneSubmit))},
Route{Method: "GET", Pattern: "/bookmarks", Handler: s.requireUser(s.bookmarksPage)},
+ Route{Method: "GET", Pattern: "/{owner}/-/queries", Handler: s.requireUser(s.queriesPage)},
+ Route{Method: "GET", Pattern: "/{owner}/-/queries/{name}", Handler: s.requireUser(s.queriesPage)},
4: f820162 = 4: 04879db e2e: saved queries over ssh and the web; query reads in the read-only sweep
5: 6a20806 ! 5: d5176c7 saved queries: cap saved at 50 and pinned at 10, readability per repository, repo_id/created_at indexes, refuse is:merged assignee:
@@ internal/control/querylang_test.go: func TestParseItemQueryRefuses(t *testing.T)
{"repo:krz", "repo:krz"},
{"repo:*/gitbay", "repo:*/gitbay"},
- ## internal/store/migrations/0068_saved_queries.down.sql ##
+ ## internal/store/migrations/0071_saved_queries.down.sql ##
@@
+DROP INDEX merge_requests_repo_created;
+DROP INDEX issues_repo_created;
DROP TABLE saved_queries;
- ## internal/store/migrations/0068_saved_queries.up.sql ##
-@@ internal/store/migrations/0068_saved_queries.up.sql: CREATE TABLE saved_queries (
+ ## internal/store/migrations/0071_saved_queries.up.sql ##
+@@ internal/store/migrations/0071_saved_queries.up.sql: CREATE TABLE saved_queries (
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
UNIQUE (user_id, name)
);
6: ee6b442 ! 6: 418efce wiki, changelog: saved queries
@@ .gitbay/wiki/Users.org: Lists narrow the same way on every surface: =issue list
carry it, and =label remove= takes one off all of them. =issue label
## CHANGELOG.org ##
-@@ CHANGELOG.org: Versioning follows semver from v0.1.0. Database migrations run
- automatically on daemon start; upgrade notes appear per release when
- anything beyond "replace the binary and restart" is needed.
-
-+* Unreleased
-+
+@@ CHANGELOG.org: anything beyond "replace the binary and restart" is needed.
+ - Reactions on issues, merge requests and their comments: =issue react=
+ and =mr react= with a fixed set of eight, counts and your own in
+ =show=, comment ids in =show=, and buttons on the web pages (#291).
+- Saved queries: =query save|list|show|run|remove|pin|unpin= keep a
+ named query over issues and merge requests across every repository
+ the caller can read (=repo:=, =owner:=, =is:=, =label:=, =no:=,
@@ CHANGELOG.org: Versioning follows semver from v0.1.0. Database migrations run
+ with ={items, next}=. =dashboard= gains =queries= for pinned ones; the
+ web shows them on the dashboard and at =/<you>/-/queries=. An account
+ keeps at most 50 saved queries, 10 pinned (#292).
-+
+
* v1.38.0 — 2026-09-29
- Merge when ready, build egress by trust class, and restore-drill