Skip to content

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

Commit

Say work item where issue was left

Contracts, connectors, token examples and the release scripts named the tracker issues; the Homebrew formula's test runs g1t work --help.

G1T-Session:
ses_01m56adwzvenhby748vvbn96c5
syntaqxcommitted Parentc306117Browse files
16 files+53−530/16 viewed
+1−1
3333 /// it is purged.
3434 pub const ACCOUNT_RESTORE_DAYS: u64 = 30;
3535
36−/// Who wrote what a purged account wrote: issues, pull requests, comments,
36+/// Who wrote what a purged account wrote: work items, pull requests, comments,
3737 /// reviews, and commits made with its noreply address. Reserved: nobody may
3838 /// register it.
3939 pub const GHOST_USERNAME: &str = "ghost";
+3−3
2323 #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
2424 #[serde(rename_all = "snake_case")]
2525 pub enum RunKind {
26− /// Making the change an issue asks for.
26+ /// Making the change a work item asks for.
2727 Implement,
2828 /// Addressing failed checks or a review on its own pull request.
2929 Revise,
3333 Answer,
3434 /// Merging in the branch a pull request will land on.
3535 Update,
36− /// Turning an outcome into a plan of issues.
36+ /// Turning an outcome into a plan of work items.
3737 Plan,
38− /// Running an issue's acceptance checks. Not an agent: a sandbox.
38+ /// Running a work item's acceptance checks. Not an agent: a sandbox.
3939 Checks,
4040 /// Building and checking a state of the merge queue. Not an agent.
4141 Queue,
+2−2
156156 pub workspace: String,
157157 /// `owner/name`, when the action was about one repository.
158158 pub repo: Option<String>,
159− /// The issue or pull request.
159+ /// The work item or pull request.
160160 pub number: Option<u32>,
161161 /// A full git ref, such as `refs/heads/main`.
162162 pub git_ref: Option<String>,
170170 pub struct NewAuditEntry {
171171 #[serde(flatten)]
172172 pub actor: AuditActor,
173− /// An API or MCP operation, such as `create_issue`, or `git.push` and
173+ /// An API or MCP operation, such as `open_work_item`, or `git.push` and
174174 /// `git.fetch`.
175175 pub action: String,
176176 pub surface: Surface,
+3−3
2727 #[serde(default)]
2828 pub parent_id: Option<String>,
2929 /// The repository this one was made a fork of, kept when it is
30− /// detached: what forks start with (Actions and issues off) holds for
30+ /// detached: what forks start with (Actions and work items off) holds for
3131 /// it until someone chooses, and pull requests opened while it was a
3232 /// fork still merge.
3333 #[serde(default)]
6868 self.archived_at.is_some()
6969 }
7070
71− /// Why it takes no pushes, merges, issues or agents now: it is
71+ /// Why it takes no pushes, merges, work items or agents now: it is
7272 /// archived. `None` when it takes them.
7373 pub fn read_only_reason(&self) -> Option<String> {
7474 self.archived().then(|| archived_message(&self.namespace, &self.name))
16431643
16441644 /// `archive`: makes a repository read-only (`archived: true`), or writable
16451645 /// again. Owners only. While archived, pushes and merges are refused,
1646−/// issues and pull requests are locked, and agents and workflows do not
1646+/// work items and pull requests are locked, and agents and workflows do not
16471647 /// run; deployments keep serving. Publishes `repo.archived` or
16481648 /// `repo.unarchived`. Returns `Outcome<Repo>`.
16491649 #[derive(Debug, Serialize, Deserialize)]
+2−2
44 //! There is one kind of access token. It belongs to a person (and acts as
55 //! them) or to a workspace (and acts as it), and it has:
66 //!
7−//! - **permissions**: a level for each resource, such as issues: write or
7+//! - **permissions**: a level for each resource, such as work: write or
88 //! repositories: read ([`crate::scopes::resolve_permissions`]). They are
99 //! stored as scopes, the highest of each resource, and every check (the
1010 //! API, the MCP server, git, the registries) reads those scopes.
107107 /// workspace. At most [`MAX_SELECTED_REPOSITORIES`].
108108 #[serde(default)]
109109 pub repositories: Vec<String>,
110− /// Each resource's level by name, such as `{"issues": "write"}`; left
110+ /// Each resource's level by name, such as `{"work": "write"}`; left
111111 /// out or `none` is no access. See [`crate::scopes::resolve_permissions`].
112112 #[serde(default)]
113113 pub permissions: BTreeMap<String, String>,
+1−1
9393 runId: string | null;
9494 runKind: string | null;
9595 credentialId: string | null;
96− /** An operation such as `create_issue`, or `git.push` and `git.fetch`. */
96+ /** An operation such as `open_work_item`, or `git.push` and `git.fetch`. */
9797 action: string;
9898 surface: AuditSurface;
9999 workspace: string;
+27−27
4242 export type ConnectorCapability =
4343 | "Agents can read"
4444 | "Agents can act"
45− | "Opens issues"
45+ | "Opens work items"
4646 | "Writes back"
4747 | "Imports repositories"
4848 | "Signs you in"
166166 id: "linear",
167167 name: "Linear",
168168 category: "issues",
169− description: "Agents read ENG-42 when work mentions it; import issues, and they hear back when the work lands.",
169+ description: "Agents read ENG-42 when work mentions it; import them as work items, and they hear back when the work lands.",
170170 scopes: BOTH,
171171 status: "available",
172172 href: { workspace: "/:workspace/-/integrations/trackers?add=linear#add" },
193193 },
194194 soon("shortcut", "Shortcut", "issues", W, "Stories agents read when work mentions them, updated when the work lands.", ["Agents can read", "Writes back"]),
195195 soon("clickup", "ClickUp", "issues", W, "Tasks agents can read and import, kept in step with their pull requests.", ["Agents can read", "Writes back"]),
196− soon("trello", "Trello", "issues", W, "Cards become issues, and move along their board as the work does.", ["Opens issues", "Writes back"]),
196+ soon("trello", "Trello", "issues", W, "Cards become work items, and move along their board as the work does.", ["Opens work items", "Writes back"]),
197197
198198 // Chat & meetings -------------------------------------------------------
199199 soon("slack", "Slack", "chat", BOTH, "Alerts and updates in the channels your team already reads.", ["Alerts into chat"], {
214214 // Calendar & email ------------------------------------------------------
215215 soon("google-calendar", "Google Calendar", "calendar", P, "Sets your status to In a meeting while you are in one.", ["Sets your status"]),
216216 soon("outlook-calendar", "Outlook Calendar", "calendar", P, "Sets your status to In a meeting while you are in one.", ["Sets your status"]),
217− soon("gmail", "Gmail", "calendar", P, "Turn an email into an issue, from your own inbox.", ["Opens issues"]),
218− soon("outlook-mail", "Outlook Mail", "calendar", P, "Turn an email into an issue, from your own inbox.", ["Opens issues"]),
217+ soon("gmail", "Gmail", "calendar", P, "Turn an email into a work item, from your own inbox.", ["Opens work items"]),
218+ soon("outlook-mail", "Outlook Mail", "calendar", P, "Turn an email into a work item, from your own inbox.", ["Opens work items"]),
219219
220220 // Docs & knowledge ------------------------------------------------------
221− soon("google-docs", "Google Docs", "docs", BOTH, "Agents read the specs and plans linked from issues and chat.", ["Agents can read"], {
221+ soon("google-docs", "Google Docs", "docs", BOTH, "Agents read the specs and plans linked from work items and chat.", ["Agents can read"], {
222222 description: "Docs you share in chat open for agents as well as people.",
223223 capabilities: ["Agents can read"],
224224 }),
225− soon("coda", "Coda", "docs", W, "Agents read the docs and tables linked from issues and chat.", ["Agents can read"]),
225+ soon("coda", "Coda", "docs", W, "Agents read the docs and tables linked from work items and chat.", ["Agents can read"]),
226226
227227 // Monitoring & incidents ------------------------------------------------
228228 {
229229 id: "sentry",
230230 name: "Sentry",
231231 category: "monitoring",
232− description: "New errors open issues with the stack trace, and resolve in Sentry when the fix merges.",
232+ description: "New errors open work items with the stack trace, and resolve in Sentry when the fix merges.",
233233 scopes: W,
234234 status: "available",
235235 href: { workspace: "/:workspace/-/integrations/alerts?add=sentry#add" },
236− capabilities: ["Opens issues", "Agents can read", "Writes back"],
236+ capabilities: ["Opens work items", "Agents can read", "Writes back"],
237237 provider: "sentry",
238238 keywords: ["errors", "alerts", "exceptions"],
239239 },
241241 id: "datadog",
242242 name: "Datadog",
243243 category: "monitoring",
244− description: "Monitors that trigger open issues, and recoveries are noted on them.",
244+ description: "Monitors that trigger open work items, and recoveries are noted on them.",
245245 scopes: W,
246246 status: "available",
247247 href: { workspace: "/:workspace/-/integrations/alerts?add=datadog#add" },
248− capabilities: ["Opens issues"],
248+ capabilities: ["Opens work items"],
249249 provider: "datadog",
250250 keywords: ["monitors", "alerts", "apm"],
251251 },
253253 id: "alerts-webhook",
254254 name: "Alerts webhook",
255255 category: "monitoring",
256− description: "Anything that can send signed JSON opens issues: your own scripts, or any monitoring tool.",
256+ description: "Anything that can send signed JSON opens work items: your own scripts, or any monitoring tool.",
257257 scopes: W,
258258 status: "available",
259259 href: { workspace: "/:workspace/-/integrations/alerts?add=webhook#add" },
260− capabilities: ["Opens issues"],
260+ capabilities: ["Opens work items"],
261261 provider: "webhook",
262262 keywords: ["incoming", "http", "alerts", "pagerduty", "grafana"],
263263 },
264− soon("pagerduty", "PagerDuty", "monitoring", BOTH, "Incidents open issues, and resolve when the fix lands.", ["Opens issues", "Writes back"], {
264+ soon("pagerduty", "PagerDuty", "monitoring", BOTH, "Incidents open work items, and resolve when the fix lands.", ["Opens work items", "Writes back"], {
265265 description: "Sets your status to On call while you are on call.",
266266 capabilities: ["Sets your status"],
267267 }),
268− soon("opsgenie", "Opsgenie", "monitoring", W, "Alerts open issues, and close when the fix lands.", ["Opens issues", "Writes back"]),
269− soon("incident-io", "incident.io", "monitoring", W, "Incidents get a channel in g1t, with what changed alongside.", ["Opens issues", "Alerts into chat"]),
270− soon("grafana", "Grafana", "monitoring", W, "Alert rules open issues, and agents read the dashboards they link to.", ["Opens issues", "Agents can read"]),
271− soon("new-relic", "New Relic", "monitoring", W, "Alerts open issues, with the traces agents need to find the cause.", ["Opens issues", "Agents can read"]),
272− soon("honeycomb", "Honeycomb", "monitoring", W, "Triggers open issues, and agents query traces while they work.", ["Opens issues", "Agents can read"]),
273− soon("better-stack", "Better Stack", "monitoring", W, "Uptime incidents and log alerts open issues.", ["Opens issues"]),
268+ soon("opsgenie", "Opsgenie", "monitoring", W, "Alerts open work items, and close when the fix lands.", ["Opens work items", "Writes back"]),
269+ soon("incident-io", "incident.io", "monitoring", W, "Incidents get a channel in g1t, with what changed alongside.", ["Opens work items", "Alerts into chat"]),
270+ soon("grafana", "Grafana", "monitoring", W, "Alert rules open work items, and agents read the dashboards they link to.", ["Opens work items", "Agents can read"]),
271+ soon("new-relic", "New Relic", "monitoring", W, "Alerts open work items, with the traces agents need to find the cause.", ["Opens work items", "Agents can read"]),
272+ soon("honeycomb", "Honeycomb", "monitoring", W, "Triggers open work items, and agents query traces while they work.", ["Opens work items", "Agents can read"]),
273+ soon("better-stack", "Better Stack", "monitoring", W, "Uptime incidents and log alerts open work items.", ["Opens work items"]),
274274
275275 // Cloud & deploy --------------------------------------------------------
276276 soon("aws", "Amazon Web Services", "cloud", W, "Workflows and deployments reach AWS with short-lived credentials, no stored keys.", ["Deploys"]),
302302 soon("segment", "Segment", "data", W, "Agents read your tracking plan, and check new events against it.", ["Agents can read"]),
303303
304304 // CRM & support ---------------------------------------------------------
305− soon("zendesk", "Zendesk", "crm", W, "Turn a ticket into an issue, and tell the customer when the fix ships.", ["Opens issues", "Writes back"]),
305+ soon("zendesk", "Zendesk", "crm", W, "Turn a ticket into a work item, and tell the customer when the fix ships.", ["Opens work items", "Writes back"]),
306306 soon("salesforce", "Salesforce", "crm", W, "Agents read the account and case behind a request.", ["Agents can read"]),
307307
308308 // Design ----------------------------------------------------------------
309− soon("miro", "Miro", "design", W, "Agents read the boards linked from issues and chat.", ["Agents can read"]),
309+ soon("miro", "Miro", "design", W, "Agents read the boards linked from work items and chat.", ["Agents can read"]),
310310 soon("storybook", "Storybook", "design", W, "Each pull request's stories as a check, with what changed.", ["Agents can read"]),
311311
312312 // Security & identity ---------------------------------------------------
317317 capabilities: ["Signs you in"],
318318 }),
319319 soon("1password", "1Password", "security", W, "Secrets from a vault, read by workflows and deployments when they run.", ["Deploys"]),
320− soon("snyk", "Snyk", "security", W, "Findings open issues, and an agent opens the fix.", ["Opens issues"]),
320+ soon("snyk", "Snyk", "security", W, "Findings open work items, and an agent opens the fix.", ["Opens work items"]),
321321
322322 // Files & storage -------------------------------------------------------
323− soon("google-drive", "Google Drive", "files", BOTH, "Agents read the files linked from issues and chat.", ["Agents can read"], {
323+ soon("google-drive", "Google Drive", "files", BOTH, "Agents read the files linked from work items and chat.", ["Agents can read"], {
324324 description: "Attach files from your Drive in chat, without downloading them first.",
325325 capabilities: ["Agents can read"],
326326 }),
327− soon("dropbox", "Dropbox", "files", BOTH, "Agents read the files linked from issues and chat.", ["Agents can read"], {
327+ soon("dropbox", "Dropbox", "files", BOTH, "Agents read the files linked from work items and chat.", ["Agents can read"], {
328328 description: "Attach files from your Dropbox in chat.",
329329 capabilities: ["Agents can read"],
330330 }),
331− soon("onedrive", "OneDrive and SharePoint", "files", BOTH, "Agents read the files linked from issues and chat.", ["Agents can read"], {
331+ soon("onedrive", "OneDrive and SharePoint", "files", BOTH, "Agents read the files linked from work items and chat.", ["Agents can read"], {
332332 description: "Attach files from your OneDrive in chat.",
333333 capabilities: ["Agents can read"],
334334 }),
335− soon("box", "Box", "files", W, "Agents read the files linked from issues and chat.", ["Agents can read"]),
335+ soon("box", "Box", "files", W, "Agents read the files linked from work items and chat.", ["Agents can read"]),
336336 ];
337337
338338 /** The connector by its id. */
+1−1
192192 "repo.purged": { repoId: string; namespace: string; name: string };
193193 /**
194194 * A repository was archived (read-only: pushes, merges, agents and
195− * workflows refused; issues and pull requests locked; deployments keep
195+ * workflows refused; work items and pull requests locked; deployments keep
196196 * serving), or unarchived.
197197 */
198198 "repo.archived": { repoId: string; namespace: string; name: string; archived: true };
+1−1
117117 /** What the workspace lets its members do. Absent means the defaults. */
118118 privileges?: MemberPrivileges;
119119 /**
120− * Whether this member uses Code: repositories, issues, pull requests,
120+ * Whether this member uses Code: repositories, pull requests,
121121 * checks, deploys. False for people who only use Chat, Docs and agents
122122 * (support, sales, finance): they see no repository, whatever the base
123123 * permission, and agents treat them as unable to change code. Absent
+1−1
6565 /** RFC 3339: when its repository was last pushed to; null until it is, after projects began keeping it. */
6666 pushedAt: string | null;
6767 /**
68− * How active it is lately: each push, issue or pull request opened or
68+ * How active it is lately: each push, work item or pull request opened or
6969 * closed, review, comment and deployment counts one, halving every week.
7070 * 0 for none.
7171 */
+2−2
2424 parentId?: string | null;
2525 /**
2626 * What it was made a fork of, kept when it is detached: Actions and
27− * issues stay off by default, and its pull requests into the parent
27+ * work items stay off by default, and its pull requests into the parent
2828 * still merge.
2929 */
3030 forkedFrom?: string | null;
5050 website?: string | null;
5151 /**
5252 * RFC 3339: when it was archived. While archived it is read-only:
53− * pushes, merges, agents and workflows are refused, and issues and pull
53+ * pushes, merges, agents and workflows are refused, and work items and pull
5454 * requests are locked. Null when it is not archived.
5555 */
5656 archivedAt?: string | null;
+2−2
1717 });
1818 return `# Generated by scripts/cli-homebrew.mjs from a verified release manifest.
1919 class G1t < Formula
20− desc "Work with g1t repositories, issues and pull requests"
20+ desc "Work with g1t repositories, work items and pull requests"
2121 homepage "https://g1t.sh"
2222 version "${manifest.version}"
2323 license "MIT"
3232
3333 test do
3434 assert_match version.to_s, shell_output("#{bin}/g1t --version")
35− assert_match "Usage:", shell_output("#{bin}/g1t issue --help")
35+ assert_match "Usage:", shell_output("#{bin}/g1t work --help")
3636 end
3737 end
3838 `;
+1−1
1616 }
1717 assert.ok(!formula.includes("/latest/"));
1818 assert.match(formula, /bin.install .* => "g1t"/);
19− assert.match(formula, /g1t issue --help/);
19+ assert.match(formula, /g1t work --help/);
2020 });
2121
2222 test("reject incomplete manifests and unsafe Ruby interpolations", () => {
+3−3
3434 [string]$Base = "https://g1t.sh",
3535 [string]$Repo = "flagon-io/g1t",
3636 [int]$Pull = 1,
37− [int]$Issue = 2,
37+ [int]$Item = 2,
3838 [int]$Runs = 5,
3939 [string[]]$Paths = @(),
4040 [string]$Out = "",
5454 "/explore",
5555 "/$Repo",
5656 "/$Repo/pulls",
57− "/$Repo/issues",
57+ "/$($Repo.Split("/")[0])/-/work",
5858 "/$Repo/pull/$Pull",
59− "/$Repo/issues/$Issue",
59+ "/$($Repo.Split("/")[0])/-/work/$Item",
6060 "/$Repo/pull/$Pull.data?_routes=routes%2Frepo%2Fpull",
6161 "/$Repo/pulls.data?_routes=routes%2Frepo%2Fpulls",
6262 "/pricing"
+2−2
128128 ## Claude Code
129129
130130 The Claude Code plugin, \`g1t\` (${version}),
131−records your Claude Code sessions on g1t, gives Claude the issue it is
131+records your Claude Code sessions on g1t, gives Claude the work item it is
132132 working on, claims and hands off work, and adds g1t's MCP server, skills
133133 and commands.
134134
222222 In the ChatGPT desktop app's Plugins directory, choose the g1t marketplace,
223223 install g1t and authorize its MCP connection. Restart the app if needed.
224224 The Codex plugin (${codexManifest(root).version}) bundles the remote MCP server and
225−an issue/session workflow skill. It records sessions through MCP calls, not
225+a work item/session workflow skill. It records sessions through MCP calls, not
226226 Claude Code hooks. Disable a duplicate standalone g1t MCP connection if installed.
227227 Direct MCP setup and ChatGPT instructions: https://docs.g1t.sh/guides/bring-your-own-agent/
228228 `);
+1−1
256256
257257 /// What a workspace's own token reaches: that workspace only, all of its
258258 /// repositories or the ones chosen. Never none: without a reach a token
259−/// is not held to a workspace, and could open issues or comment on any
259+/// is not held to a workspace, and could open work items or comment on any
260260 /// public repository as the workspace.
261261 fn workspace_token_reach(slug: String, selection: RepositorySelection, repo_ids: Vec<String>) -> TokenReach {
262262 let selection = if selection == RepositorySelection::Selected { selection } else { RepositorySelection::All };

Comments

Sign in to comment.