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.

244 linesCodeBlameRaw
1---
2title: Home
3description: Your workspace's front page. Where you're needed now, what happened since you were last here, what is running, and the one item to start with. How every number is worked out.
4---
5
6**Home** is the first page of your workspace, at `/<workspace>/-/home`.
7It answers three questions, in this order:
8
91. **Where you're needed**: everything waiting on you, however long ago
10 it started, with the action beside each item.
112. **What happened while you were away**: what people did; what landed;
12 deploys, decisions and spend, since you were last here.
133. **What is running now**: workflow runs and builds still going.
14
15**Start here** picks the one item to do first.
16
17Every number on the page comes from what g1t has recorded. Nothing is
18estimated. When a part of g1t does not answer, the section it feeds says
19so, and the rest of the page still shows.
20
21## Where you're needed
22
23This list has no time window: something that started waiting a week ago
24is here until you deal with it. Each row says what it is, what is at
25stake, how long it has waited, and has its action beside it.
26
27| Source | Rows |
28| --- | --- |
29| Code | A failed production build; your open pull request that can't land until you act (it conflicts, a required check fails, someone asked for changes, approvals are missing); your pull request that meets everything its branch asks for, ready for you to merge; a review asked of you by name; an invitation to a repository; a job waiting for a self-hosted runner |
30| Notifications | An unread notification in this workspace that is a warning (someone or something is waiting) or a failure. One whose cause is over, such as a workflow that has passed since or a pull request that merged, has [settled](/guides/notifications/#threads-that-settle-themselves) and is not here |
31| Chat | A conversation that mentions you, or a direct message you haven't read. Muted conversations are left out |
32
33A notification about something already on the list, such as a pull
34request whose row is there, is left out.
35
36Rows are ordered most pressing first, by tier, then by how long each has
37waited, longest first:
38
391. A failed production build.
402. Your pull request that can't land until you act on it.
413. Finished work that only waits for you: your pull request to merge, a
42 review, an invitation.
434. Something that may be stuck: a job without a runner.
445. Unread warnings and failures in your notifications.
456. Mentions and direct messages.
46
47The list shows the first eight rows; **Show more** opens the rest. The
48sentence under the page's heading starts with how many things need you.
49
50## Start here
51
52**Start here** is the first row of Where you're needed: the most pressing
53tier, and within it the row that has waited longest. g1t picks it with
54that rule, so the same rows always give the same pick.
55The card shows who is on it, the next action, how long it has waited, what
56is at stake, and why it was picked.
57
58## Since you were last here
59
60Home remembers when you were last on it, for each workspace, with your
61account, so it is the same on your laptop and your phone. The second half
62of the page covers what happened since then, and its heading says the span
63in words, such as **Since Tuesday evening · 2 days** or **Since 40
64minutes ago**.
65
66| Switch | What it covers |
67| --- | --- |
68| **Since last visit** | From the end of your last visit to now. The default. |
69| **Last 24 hours** | The 24 hours up to now. |
70| **Last 7 days** | The 7 days up to now. |
71
72The switch is part of the address (`?window=24h`, `?window=7d`), so you
73can bookmark a span.
74
75How a visit is counted:
76
77- A visit counts once the page has been in view for five seconds. A quick
78 refresh does not count, so it never wipes what you haven't looked at.
79- What it records is when the page loaded, so anything that happens while
80 you are reading shows next time.
81- Visits less than 30 minutes apart are one visit. Going to a pull request
82 and coming back, or refreshing, keeps the same span until you have been
83 away for half an hour.
84- With no visit on record, Home shows the last 24 hours and says so. After
85 more than 14 days away, it shows the last 14 days.
86
87The sentence under the heading sums it up, for example:
88
89> 8 things need you. Since Tuesday evening, 3 people pushed 41 commits and
90> merged 5 changes, and 12 changes landed.
91
92It says what people did first (the commits they pushed and the changes
93they merged; if neither, the messages they sent), then everything that
94[landed](#landed). When nothing at
95all was counted, it says so plainly:
96
97> Quiet since Tuesday evening: nothing pushed, merged, deployed or said.
98
99When Code and Chat both failed to answer, the sentence ends with "what
100people did couldn't be read" rather than reading as quiet.
101
102### People
103
104The first card, **People**, lists what people did in the span, one line
105per kind of thing with its count, and each line opens the place that lists
106them: a project's Activity tab for pushes, its pull requests or issues,
107Artifacts, Chat. Beside the heading are the faces of the five most active,
108and how many more there were.
109
110| Line | What counts | From |
111| --- | --- | --- |
112| *3 people pushed 41 commits to 4 projects* | Every push to a branch of one of the workspace's repositories (`git.push`; tags are not pushes). The commits are the ones each push brought to its branch, along the branch's first-parent line from where it is now back to where it was, at most 50, and one for a new branch. A push recorded before commits were counted counts as one commit. | Events |
113| *opened 2 pull requests, merged 5, closed 1 without merging* | `pull.opened`, `pull.merged`, `pull.closed` | Events |
114| *reviewed 3 pull requests* | A review is a comment with a verdict | Events |
115| *opened 4 issues, closed 6* | `issue.opened`, `issue.closed` | Events |
116| *left 9 comments* | `comment.created` without a verdict | Events |
117| *2 deploys went out, 1 failed* | `deployment.succeeded` and `deployment.failed`, by who set the build off | Events |
118| *published 1 release*, *published 2 package versions* | `release.published`, `package.published` | Events |
119| *created 1 doc, edited 7 docs* | Artifacts made (`folio.created`), and artifacts whose content changed (`folio.updated`): each artifact once, and everyone whose changes a version holds edited it. "Docs" when every one is a doc, else "artifacts". Counts only: Home never shows an artifact's title here. | Events |
120| *sent 120 messages in 5 conversations* | Text messages and thread replies that were not deleted, in the conversations you can read: every public channel, and the private channels and direct messages you are in. Conversations are those with at least one message. | Chat |
121
122A push an import made names nobody, so it is counted without a face.
123
124The card says when it has nothing to show, and names the part that didn't
125answer (Code or Chat) so an empty card never reads as a quiet day.
126
127### Landed
128
129Everything that landed in the span, newest first:
130
131| Row | What it is |
132| --- | --- |
133| A pull request merged | With who wrote it, and who merged it when that was someone else |
134| Commits pushed to a default branch | One row per project with any: how many commits landed on its default branch without a pull request, in how many pushes, and by whom |
135| A production build that went live | A project's production build that built and was served (previews stay under Deploys) |
136| A release published | Its tag and name, and who released it |
137| A package version published | Its name and version, and who published it |
138
139The card's line counts them by kind. The first
140five show; **Show more** opens the rest. When one of its sources (pull
141requests, pushes and releases, deployments) didn't answer, the card says
142so under the list.
143
144### Deploys
145
146Every build that finished in the span, production and previews: **Went
147live** when it built and was served (it may have been replaced since), or
148**Failed**. Skipped builds are left out. A workspace whose projects did not
149build in the span has no Deploys card.
150
151### Spent
152
153What the workspace spent over the span, from its
154[statement](/guides/usage-and-billing/), with each line at its price: what
155was charged plus what your plan's included usage, a trial, a pool or a
156discount paid of it. The lines are the statement's kinds of charge, such
157as **Runner minutes, 2-core**, **Self-hosted runner time** and
158**Deployments**, most first. Payments, credits, refunds and tax
159are money in, not spend, and are left out. Under the total are the days
160counted and the month so far, at price.
161
162The statement keeps whole days, midnight to midnight UTC, so spend counts
163from the start of the UTC day the span began: a span since 3 p.m. UTC
164yesterday counts all of yesterday. Usage that g1t measures through the
165month, such as hosting requests and storage, shows on the day it is added
166to the statement.
167
168## Running now
169
170What is going right now, longest-going first:
171
172| Kind | What it is |
173| --- | --- |
174| Workflow run | A [workflow](/guides/actions/) run that is queued, waiting, running, or waiting for approval, in the ten projects pushed to most in the span (their newest 20 runs each) |
175| Build | A project's newest build, queued or building |
176
177## Without Code access
178
179A member whose membership does not include Code sees Home without anything
180from Code:
181
182- People shows what was said and the artifacts edited; nothing from
183 repositories.
184- Where you're needed has no rows from Code, and no notifications about a
185 repository.
186- Landed, Deploys and Running now are not shown.
187- Spent is the same for every member.
188
189## When something doesn't answer
190
191Each section reads its own part of g1t and shows as soon as it has it.
192When one does not answer:
193
194- Where you're needed and Running now name the parts that didn't answer,
195 so an empty list never reads as nothing waiting.
196- People counts what could be read, and names the part that is missing
197 (Code or Chat). If nothing could be read, the card says so, and the
198 sentence under the heading says what people did couldn't be read.
199- Landed, Deploys and Spent each say their part didn't answer.
200- If your last visit can't be read, the span is the last 24 hours and the
201 page says why.
202
203When a list g1t reads is longer than it reads at once (100 pull requests
204per project and state, 50 projects, builds
205of 20 projects, 5,000 events of the span), the page says that some work
206may be missing or some counts are low.
207
208## How it scales
209
210Every event in g1t is in one log, and its ids sort by time, so a span is a
211range of ids. Home asks the events service for one digest of the span: for
212each of the workspace's repositories (the first 50) and each kind of event
213it counts, that is one range scan of an index on repository, type and id,
214and the workspace's artifact events are the same range under no
215repository. A busy week of tens of repositories is a few thousand rows,
216read in one round trip; chat's count is one query over the conversations
217you can read. When a workspace has hundreds of repositories, the next step
218is a daily rollup per workspace that the digest reads instead of the log.
219It is not built yet.
220
221## For services: activity_digest and activity
222
223Home's counts come from two methods other services can call too.
224
225**`activity_digest`** on the events service (`repo_ids`, `workspace`,
226`from`, `until`; RFC 3339, `[from, until)`; the caller has checked the
227viewer may read each repository) returns, per repository that had any
228event: `pushes` (`count`, `commits`, `branches`, `by` with each actor's
229pushes and commits, and `default_branch` with the same for pushes straight
230to it and `last_at`), `pulls` (`opened`, `merged`, `closed`), `issues`
231(`opened`, `closed`), `reviews`, `comments`, `deployments` (`succeeded`,
232`failed`, `production`), `releases` and `packages` (newest first, at most
23350 each); and for the workspace named, `folios` (`created`, `edited` with
234each folio's authors, `edited_count`). Every count by actor is a list of
235`{ actor, count }`, where `actor` is a member key: `user:<id>` for an
236account (g1t is `user:usr_g1t_agent`), `agent:<id>` for an agent, or
237empty for nobody. `complete` is
238false when more than 5,000 events fell in the span, or more than 50
239repositories were named.
240
241**`activity`** on the chat service (`workspace`, `viewer`, `from`,
242`until`) returns `messages`, `channels` (conversations with at least one)
243and `authors` (`key`, `messages`; most first), over text messages and
244thread replies not deleted in the conversations the viewer can read.