Workspaces
Get a workspace's activity
What happened across a workspace's repositories that you can read, newest first: pull requests merged, opened and closed, issues opened and closed, releases published, deployments that succeeded or failed, pushes (with default_branch true for what landed on the default branch without a pull request), reviews, packages, and workflow runs that finished (workflow, run_number, conclusion, run_id for workflow get_run).
/workspaces/{workspace}/activityEach event has its kind, time, repo (owner/name), actor (a username), and where it has them its number, title, url (its page on g1t), branch, commit, commits, tag and error. summary counts merged pull requests, releases, production deployments, default-branch pushes and failed runs: what shipped, and what broke. landed lists the commits made on default branches in the span, one line each (repo, commit, subject, author, time, url): what shipped where it was pushed rather than merged. The span is since to until (RFC 3339; the last 24 hours when since is left out, at most 31 days); narrow it with kinds (merged, pulls, issues, releases, deployments, pushes, reviews, comments, packages, runs; all but comments when left out) and limit (100 unless you say, at most 200). complete is false when more happened than was read: narrow the span or the kinds. For one repository’s full timeline use list_events.
What shipped today across a workspace: since at midnight UTC and kinds=merged,releases,deployments,pushes. Each event links to its page on g1t (url). Ask g1t reads this to answer questions about a workspace.
- Authentication: Required. Send an access token as
Authorization: Bearer. - MCP tool:
workspacewithactionactivity, and the same inputs - Scope: An access token needs
repo:read.
Path parameters
Section titled “Path parameters”| Name | Type | Required | Description |
|---|---|---|---|
workspace |
string | Yes | The workspace’s slug, e.g. “flagon-io”. |
Query parameters
Section titled “Query parameters”| Name | Type | Required | Description |
|---|---|---|---|
since |
string | No | RFC 3339: the start of the span, inclusive. The last 24 hours when left out; for “today”, midnight UTC. |
until |
string | No | RFC 3339: the end of the span, exclusive. Now when left out. |
kinds |
array of strings | No | What to read: merged (merged pull requests only), pulls, issues, releases, deployments, pushes, reviews, comments, packages, runs (workflow runs that finished). All but comments when left out. One of merged, pulls, issues, releases, deployments, pushes, reviews, comments, packages, runs. |
limit |
integer | No | The most events to return, newest first: 100 unless you say, at most 200. |
Example request
Section titled “Example request”curl "https://api.g1t.sh/workspaces/flagon-io/activity?since=2026-10-12T00%3A00%3A00Z&kinds=merged%2Creleases%2Cdeployments" \ -H "Authorization: Bearer $G1T_TOKEN"Example response
Section titled “Example response”A successful request answers 200 with:
{ "workspace": "flagon-io", "since": "2026-10-12T00:00:00Z", "until": "2026-10-12T21:40:00Z", "repositories": 4, "summary": { "merged_pull_requests": 1, "releases": 1, "production_deployments": 1, "failed_deployments": 0, "default_branch_pushes": 0, "failed_runs": 0 }, "events": [ { "kind": "deployment_succeeded", "time": "2026-10-12T21:12:04Z", "repo": "flagon-io/g1t", "actor": "syntaqx", "environment": "production", "project": "g1t", "branch": "main", "commit": "75c6704f2b1a", "url": "https://g1t.sh/flagon-io/g1t/deployments/dpl_01kkp3m8w2f6t9qh4c7d1r5n0x" }, { "kind": "release_published", "time": "2026-10-12T19:30:51Z", "repo": "flagon-io/runner", "actor": "syntaqx", "tag": "v0.3.3", "title": "Runner 0.3.3", "url": "https://g1t.sh/flagon-io/runner/releases/tag/v0.3.3" }, { "kind": "pull_merged", "time": "2026-10-12T18:02:17Z", "repo": "flagon-io/g1t", "actor": "syntaqx", "number": 412, "title": "Ask g1t answers with the workspace's own AI provider", "url": "https://g1t.sh/flagon-io/g1t/pull/412", "issue": 398 } ], "complete": true}Errors
Section titled “Errors”A failed request answers with one of these statuses and a body like {"error": {"code": "not_found", "message": "Repository not found."}}. See errors.
| Status | Code | When |
|---|---|---|
| 401 | unauthenticated |
A token is required, or the one sent is not valid. |
| 403 | forbidden |
The token is valid but not allowed to do this, such as a member-only change, or a token without the scope it needs. |
| 404 | not_found |
It does not exist, or you cannot see it. |
| 422 | invalid |
The input is not valid. message says which field and why. |