flagon-io/g1t

public

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

g1t/services/work/migrations/0001_init.sql

131 lines4,078 bytesCodeBlame

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Issues and pull requests replace intents and attempts1-- Issues, pull requests, comments and sessions.
2-- Every timestamp is RFC 3339 UTC text.
3
4-- Issues and pull requests share one sequence of numbers per repository.
5CREATE TABLE counters (
6 repo_id TEXT PRIMARY KEY,
7 last INTEGER NOT NULL
8);
9
10CREATE TABLE issues (
Initial g1t: services, event bus, intents and attempts11 id TEXT PRIMARY KEY,
12 repo_id TEXT NOT NULL,
13 number INTEGER NOT NULL,
14 title TEXT NOT NULL,
Issues and pull requests replace intents and attempts15 body TEXT NOT NULL,
16 -- JSON array of label names.
17 labels TEXT NOT NULL DEFAULT '[]',
Initial g1t: services, event bus, intents and attempts18 -- JSON array of commands.
19 checks TEXT NOT NULL DEFAULT '[]',
Issues and pull requests replace intents and attempts20 state TEXT NOT NULL DEFAULT 'open',
21 -- Why it was closed: completed or not_planned.
22 reason TEXT,
23 -- The number of the pull request whose merge closed it.
24 resolved_by INTEGER,
Initial g1t: services, event bus, intents and attempts25 author_id TEXT NOT NULL,
26 author_name TEXT NOT NULL,
Issues and pull requests replace intents and attempts27 created_at TEXT NOT NULL,
28 updated_at TEXT NOT NULL,
29 closed_at TEXT,
Initial g1t: services, event bus, intents and attempts30 UNIQUE (repo_id, number)
31);
Issues and pull requests replace intents and attempts32CREATE INDEX issues_by_state ON issues (repo_id, state, number);
Initial g1t: services, event bus, intents and attempts33
Issues and pull requests replace intents and attempts34CREATE TABLE pulls (
Initial g1t: services, event bus, intents and attempts35 id TEXT PRIMARY KEY,
36 repo_id TEXT NOT NULL,
37 number INTEGER NOT NULL,
Issues and pull requests replace intents and attempts38 -- The issue it is for, if any, and that issue's number.
39 issue_id TEXT REFERENCES issues (id),
40 issue_number INTEGER,
41 title TEXT NOT NULL,
42 body TEXT,
Initial g1t: services, event bus, intents and attempts43 agent TEXT NOT NULL,
44 runtime TEXT NOT NULL,
Issues and pull requests replace intents and attempts45 status TEXT NOT NULL DEFAULT 'draft',
Pull requests from branches46 -- Where the change is: a fork made for the pull request, or a branch of
47 -- the repository itself.
48 fork_repo_id TEXT UNIQUE,
49 fork_namespace TEXT,
50 fork_name TEXT,
51 source_branch TEXT,
Initial g1t: services, event bus, intents and attempts52 head_commit TEXT,
Issues and pull requests replace intents and attempts53 -- What the branch pointed to before a merged pull request landed.
54 merge_base TEXT,
55 merged_by TEXT,
56 merged_at TEXT,
57 -- The pull request merged instead of this one.
58 superseded_by INTEGER,
Agents as a team: lifecycle, merge queue, billing and a new shell59 -- JSON array of { path, additions, deletions }: what it changes, as of
60 -- its latest push. NULL until first worked out.
61 files TEXT,
Acceptance checks in sandboxes, line comments and review verdicts62 -- The latest run of the issue's acceptance checks, and where it stands.
63 check_run_id TEXT,
64 check_status TEXT,
Issues and pull requests replace intents and attempts65 author_id TEXT NOT NULL,
66 author_name TEXT NOT NULL,
67 created_at TEXT NOT NULL,
68 updated_at TEXT NOT NULL,
69 UNIQUE (repo_id, number)
Initial g1t: services, event bus, intents and attempts70);
Issues and pull requests replace intents and attempts71CREATE INDEX pulls_by_status ON pulls (repo_id, status, number);
72CREATE INDEX pulls_by_issue ON pulls (issue_id);
73CREATE INDEX pulls_by_author ON pulls (author_id, status);
Initial g1t: services, event bus, intents and attempts74
Issues and pull requests replace intents and attempts75-- On an issue or a pull request: the two share numbers.
76CREATE TABLE comments (
77 id TEXT PRIMARY KEY,
78 repo_id TEXT NOT NULL,
79 number INTEGER NOT NULL,
80 author_id TEXT NOT NULL,
81 author_name TEXT NOT NULL,
82 body TEXT NOT NULL,
Acceptance checks in sandboxes, line comments and review verdicts83 -- For a comment on one line of a pull request's change: the file, and
84 -- the line as numbered after the change.
85 path TEXT,
86 line INTEGER,
87 -- A reviewer's decision: approve or request_changes.
88 verdict TEXT,
Issues and pull requests replace intents and attempts89 created_at TEXT NOT NULL
90);
91CREATE INDEX comments_by_subject ON comments (repo_id, number, id);
92
Initial g1t: services, event bus, intents and attempts93CREATE TABLE session_entries (
Issues and pull requests replace intents and attempts94 pull_id TEXT NOT NULL REFERENCES pulls (id),
Initial g1t: services, event bus, intents and attempts95 seq INTEGER NOT NULL,
96 kind TEXT NOT NULL,
97 text TEXT NOT NULL,
98 tool TEXT,
99 -- The fork's head when the entry was recorded: links reasoning to code.
100 "commit" TEXT,
Issues and pull requests replace intents and attempts101 at TEXT NOT NULL,
102 PRIMARY KEY (pull_id, seq)
Initial g1t: services, event bus, intents and attempts103);
Acceptance checks in sandboxes, line comments and review verdicts104
105-- Runs of an issue's acceptance checks against a pull request's head.
106CREATE TABLE check_runs (
107 id TEXT PRIMARY KEY,
108 pull_id TEXT NOT NULL REFERENCES pulls (id),
109 head_commit TEXT NOT NULL,
110 -- queued, running, passed, failed or errored.
111 status TEXT NOT NULL DEFAULT 'queued',
112 -- JSON array of { command, passed, exitCode, output, durationMs }.
113 results TEXT NOT NULL DEFAULT '[]',
114 error TEXT,
115 -- SHA-256 of the token the sandbox reports with.
116 token_hash TEXT NOT NULL,
117 created_at TEXT NOT NULL,
118 finished_at TEXT
119);
120CREATE INDEX check_runs_by_pull ON check_runs (pull_id, id);
Agents as a team: lifecycle, merge queue, billing and a new shell121
122-- Reviews of a pull request being written by a g1t agent in a sandbox.
123CREATE TABLE review_runs (
124 id TEXT PRIMARY KEY,
125 pull_id TEXT NOT NULL REFERENCES pulls (id),
126 -- SHA-256 of the token the sandbox reports with.
127 token_hash TEXT NOT NULL,
128 created_at TEXT NOT NULL,
129 finished_at TEXT
130);
131CREATE INDEX review_runs_by_pull ON review_runs (pull_id, id);