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.

89 linesCodeBlameRaw
1---
2title: Issues became work items
3description: Issues moved out of repositories into workspace-level work items. What happened to the issues, labels and milestones you had, why old links still work, and what to change in scripts and agents.
4---
5
6Issues used to belong to one repository each. They are now
7[work items](/guides/work-items/), which belong to the workspace and can
8link several repositories. **Work**, after **Home** and **Explore** in
9the left rail, replaces each repository's **Issues** tab.
10
11## What happened to your issues
12
13Every issue became a work item, with everything it had: its title and
14description, comments, reactions, labels, assignees, milestone, claims,
15sessions, pull requests and what it was blocked by.
16
17- **It has a new number.** Work items are numbered once for the whole
18 workspace, and each issue was given the next number, oldest first, above
19 every number any of the workspace's repositories had used. So an issue
20 number and a work item number never mean two things.
21- **Its repository is its origin.** The work item links the repository
22 the issue was in as its `origin`, and keeps the old number there. Its
23 pull requests' repositories are linked as `touched`.
24- **Pull requests kept their numbers.** New ones take the workspace's next
25 number.
26- **Who can see it did not change.** Anyone who could read the repository
27 still sees the work item filed there. Members of the workspace now see
28 every work item in it.
29
30## Old links still work
31
32- `g1t.sh/<owner>/<repo>/issues/12` redirects to the work item that issue
33 became, at `g1t.sh/<owner>/-/work/<number>`. **Issues**, **New issue**,
34 **Labels** and **Milestones** under a repository redirect to **Work**:
35 the repository's issue list to the Work list filtered to it, and its
36 labels and milestones to the workspace's. A milestone's own old address,
37 `…/milestones/3`, lands on the milestones list, since milestones were
38 renumbered.
39- A person's **Issues** tab is their **Work items** tab, at
40 `g1t.sh/u/<name>/items`.
41- `#12` and `owner/repo#12` in descriptions, comments and commit messages
42 written before still link to that issue's work item.
43- `Closes #12` in history still points at the right work item.
44- A repository has no **Work** or **Sessions** page of its own, and
45 `g1t.sh/<owner>/<repo>/work` and `…/sessions` are not found. Its claims
46 and sessions are on Work's
47 [Sessions](/guides/sessions/#the-sessions-page), filtered to it:
48 `g1t.sh/<workspace>/-/work/sessions?repo=<name>`. A session's page is
49 `g1t.sh/<workspace>/-/work/sessions/<id>`, and a pull request's recorded
50 session is its **Session** tab, `…/pull/<number>/session`.
51
52## Labels and milestones
53
54Labels and milestones now belong to the workspace, too.
55
56- Labels with the same name in several repositories became one label. The
57 one made first kept its color and description.
58- Milestones were renumbered in the workspace. Each records the
59 repository it came from, and every work item and pull request in it
60 stayed in it.
61
62## What to change
63
64Nothing that reads links or references needs to change. What calls g1t by
65name does:
66
67| Was | Now |
68| --- | --- |
69| `g1t issue …` | `g1t work …`: `list`, `view`, `new`, `comment`, `edit`, `close`, `reopen` |
70| `g1t browse --issues` | `g1t browse --work` |
71| `g1t work context N` | `g1t work view N` |
72| `g1t work list` (claims and sessions) | `g1t work status` |
73| `--issue N` on `g1t pr create`, `g1t session …` and `g1t work events` | `--item N` |
74| The MCP `issue` tool | `work_item`, with `workspace` and `number` |
75| `pull_request` `create` with `issue` | `pull_request` `create` with `item` |
76| `/repos/{owner}/{name}/issues…` | `/workspaces/{workspace}/work…` |
77| Repository labels and milestones routes | `/workspaces/{workspace}/labels` and `/workspaces/{workspace}/milestones` |
78| `issue.*` events and webhooks | `work_item.*`. Webhooks you had were moved over for you. |
79| `issue` and `other_issue` in event payloads | `item` and `other_item` |
80| Workflows `on: issues` and `on: issue_comment`, and `permissions: { issues: … }` | `on: work_item`, `on: work_item_comment` and `permissions: { work: … }`. The old names still read but start and grant nothing, and the workflow's page says so. |
81| The repository settings `has_issues` and `auto_close_issues` | `has_work_items` and `auto_close_items` |
82| Search `is:issue` and `type: issues` | `is:item` and `type: items` |
83| `issues:read`, `issues:write` scopes | `work:read`, `work:write` |
84| `/g1t:work-on-issue` in Claude Code | `/g1t:work-on-item`, with the plugin 0.3.0 and the CLI 0.4.0 or later |
85
86There are no aliases for the old names: a script that calls one gets an
87error, not a silent change. Numbers in your own data, such as a tracker
88that stored `owner/repo#12`, still resolve, but a work item's own number
89is the one to keep from now on.