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

The docs for merging, reviews and repository settings use the site's own words, and git's guide says what a push merges and closes (#52).

Repository settings named each setting by a paraphrase ("Delete branches when they merge", "Require sign-off on web commits", "Close issues when pull requests merge", "Limit how many branches and tags a push can update") and did not say which page holds it; each row now has the label on the page, the pull request settings are placed on Settings → Branches and merging (Merge methods, Updating branches, Auto-merge, After merging) and the rest on Settings → Repository (Features, Commits, Pushes, Archives), the default message choices are named as the menus name them, and the settings page's table lists Commits, Pushes and Archives. Pull requests gains Reviewing: Comment, Approve and Request changes, a verdict with nothing written shown as one line ("approved these changes", "requested changes") with no Edit or Delete, and an agent's review with its Agent badge and Advisory chip, counting toward nothing. The Code owners box, in pull requests and the CODEOWNERS guide, says Approval not required and No approval yet when the rules do not require code owners. The checks section points at Re-run dependency review. Git gains Pushes that merge pull requests and close issues, linking to merging by pushing and closing issues. Supply chain sent people to Settings → Branches to require Dependency review; required checks are set in a ruleset under Settings → Rules. Forks' working copies said a behind pull request is only told so when someone tries to merge it; merging now brings it up to date by itself and the merge box offers the update. The fork's header says "forked from", lowercase.

Checked:
settings labels against apps/web/app/routes/repo/settings-repository.tsx, settings-branches.tsx, components/merge-settings.tsx and lib/merge.ts (MESSAGE_CHOICES); the repository settings nav in components/shell.tsx; review buttons and the one-line verdict in components/work.tsx (TimelineVerdict, VERDICTS, AdvisoryChip) and who may review in routes/repo/pull.tsx (canJudge); the Code owners box in components/codeowners.tsx; Re-run dependency review in components/merge-box.tsx and the check name in crates/contracts/src/security_suite.rs; push merges and commit closes in services/work/src/pushed.rs and MAX_PUSHED (250) in crates/contracts/src/repos.rs; the header in routes/repo/layout.tsx. The docs build passes and every new anchor resolves in dist.
G1t-Session:
ses_01m4ynr1peevvs8zwaqakycv2e
syntaqxcommitted Parent2e90f6fBrowse files
7 files+99−210/7 viewed
+7−4
178178
179179 They are not free of trade-offs.
180180
181−- **Falling behind is silent.** A branch sees new commits on `main` at the
181+- **Falling behind is quieter.** A branch sees new commits on `main` at the
182182 next fetch. A working copy has to pull from the original repository,
183− which is a second remote. g1t tells a pull request it is behind when
184− someone tries to merge it, and the fix is one pull, but its author has to
185− do it.
183+ which is a second remote. The merge box says when a pull request is
184+ behind, merging brings it up to date by itself unless the branch must be
185+ up to date first, and its author can
186+ [update the branch](/guides/pull-requests/#keeping-it-up-to-date) from
187+ the merge box; but a clone of the working copy only has the new commits
188+ once its author pulls them.
186189 - **Merging does more work.** Merging from a working copy copies the new
187190 objects into the repository before moving `main`. From a branch they are
188191 already there.
+5−1
226226 A pull request whose target has a CODEOWNERS file shows **Code owners**:
227227 which rule owns which changed files, each with its section, its owners,
228228 how many approvals it needs, who has approved, and who has asked for
229−changes. A rule that is satisfied, or optional, is marked so.
229+changes. A rule that is satisfied, or optional, is marked so. The box's
230+badge says **Approval required** or **Approval not required**. Where it is
231+not required, a rule nobody has approved yet says **No approval yet**
232+rather than how many approvals it waits for, since merging does not wait
233+on it; a code owner who asked for changes is still shown.
230234
231235 When the repository requires code owners' approval, the merge box lists
232236 what is missing:
+2−2
4040 branch, or turn it off to copy every branch and tag.
4141 5. Choose **Create fork**.
4242
43−You land on the fork. Its header says **Forked from** and links to the
44−parent.
43+You land on the fork. Under its name, its header says **forked from** and
44+links to the parent.
4545
4646 From the CLI, `g1t repo fork` forks the current repository, or the one you
4747 name, into your personal workspace unless you say `--workspace`. With
+26−0
315315 `git push origin --all && git push origin --tags`. A push with `--atomic`
316316 that names one is refused whole.
317317
318+## Pushes that merge pull requests and close issues
319+
320+A push does the same bookkeeping as merging on the site:
321+
322+- **It merges the pull requests it lands.** When a push to a branch brings
323+ in the head commit of an open pull request into that branch, by merging
324+ it in a clone or pushing its commits straight there, the pull request is
325+ marked merged by whoever pushed. The issues it closes close, as with any
326+ merge, and it leaves the merge queue. See [merging by pushing](/guides/pull-requests/#merging-by-pushing).
327+- **It closes the issues its commits name.** A commit pushed to the
328+ default branch whose message says `Fixes #12`, `Closes #12` or another
329+ closing keyword closes that issue as completed, and the issue says which
330+ commit closed it and who pushed it. Up to 250 commits of a push are
331+ read. See [closing issues](/guides/pull-requests/#closing-issues).
332+
333+```sh
334+git commit -m "Greet the caller by name
335+
336+Closes #12"
337+git push origin main
338+```
339+
340+A repository whose **Auto-close issues with merged linked pull requests**
341+setting is off closes no issues either way. In a commit message on g1t,
342+`#12` links to that issue or pull request.
343+
318344 ## Limits
319345
320346 ### Size limits
+31−10
114114 | **Details** | Its website and topics, shown on its page, in [search and Explore](/guides/search/). Its description is its project's, on **General**. |
115115 | **Branches** | The default branch, renaming a branch, and a link to **Branches and merging**: [branch protection](/guides/git/#protected-branches), [required status checks](/guides/pull-requests/#required-status-checks), required approvals, and the [merge queue](/guides/merge-queue/). What a sandbox may reach is under **Guardrails**; see [guardrails](/guides/guardrails/). |
116116 | **Artifacts** | How many days the files workflow runs upload are kept, 1 to 90 (14 unless changed). See [artifacts](/guides/actions/#artifacts). |
117−| **Features** | Whether it has issues. A [fork](/concepts/forks/) starts with them off. |
117+| **Features** | Whether it has issues (a [fork](/concepts/forks/) starts with them off), and whether merges and commits close issues. See [issues](#issues). |
118+| **Commits** | Sign-off on commits made on g1t, and comments on commits. See [commits](#commits). |
119+| **Pushes** | How many branches and tags one push may update. See [pushes](#pushes). |
120+| **Archives** | Whether downloads hold Git LFS objects. Coming soon. |
118121 | **Forking** | For a private repository, whether people who can read it may [fork it](/guides/forking-repositories/#allow-forking-a-private-repository). Public repositories can always be forked. |
119122 | **Danger zone** | Change visibility, archive, [transfer](/guides/transferring-repositories/), [detach a fork](/guides/forking-repositories/#detach-a-fork) and delete. Shown to people with the Admin role. |
120123
131134 [`PATCH /repos/{owner}/{name}`](/reference/api/repositories/update-repo/)'s.
132135 Fields you leave out stay as they are. Changing them needs the Maintain
133136 [role](/guides/access-and-roles/) or higher; `max_ref_updates` needs Admin.
137+The pull request settings are on the repository's **Settings → Branches
138+and merging** page; the rest are on **Settings → Repository**, in the
139+sections named below.
134140
135141 ### Pull requests
136142
143+On **Settings → Branches and merging**, under **Merge methods**,
144+**Updating branches**, **Auto-merge** and **After merging**. Merge commits
145+and squash merging, the two methods that write a commit message, each have
146+a **Default commit message** and, with **Custom template**, a **Template**,
147+with a preview of the message it makes.
148+
137149 | Setting | Field | Default | What it does |
138150 | --- | --- | --- | --- |
139151 | Allow merge commits | `allow_merge_commit` | On | Pull requests may merge with a merge commit (`merge`). |
141153 | Allow rebase merging | `allow_rebase_merge` | On | They may merge by making each commit again on the base (`rebase`). |
142154 | Allow fast-forward merging | `allow_fast_forward` | Off | They may merge by moving the base to their head, with no new commit (`fast_forward`). |
143155 | Default merge method | `default_merge_method` | `merge` | The method the merge button offers first, and the one a merge that names none uses. It must be allowed. |
144−| Default merge commit message | `merge_commit_message` | `default` | What a merge commit says unless its merger writes it: `default`, `pull_title`, `pull_title_and_description` or `custom`. |
145−| Default squash commit message | `squash_commit_message` | `default` | What a squash commit says: the same, and `pull_title_and_commits`. |
146−| Merge and squash commit templates | `merge_commit_template`, `squash_commit_template` | None | The message used with `custom`, with [placeholders](/guides/pull-requests/#commit-messages). An empty string clears it. |
147−| Always suggest updating branches | `suggest_updating_branches` | On | Offer to update a pull request's branch whenever its base has new commits, not only when it must be up to date. |
156+| Default commit message, under Allow merge commits | `merge_commit_message` | `default` | What a merge commit says unless its merger writes it: **Default message** (`default`), **Pull request title** (`pull_title`), **Pull request title and description** (`pull_title_and_description`) or **Custom template** (`custom`). |
157+| Default commit message, under Allow squash merging | `squash_commit_message` | `default` | What a squash commit says: the same, and **Pull request title and commit details** (`pull_title_and_commits`). |
158+| Template | `merge_commit_template`, `squash_commit_template` | None | The message used with `custom`, with [placeholders](/guides/pull-requests/#commit-messages). An empty string clears it. |
159+| Always suggest updating pull request branches | `suggest_updating_branches` | On | Offer to update a pull request's branch whenever its base has new commits, not only when it must be up to date. |
148160 | Allow auto-merge | `allow_auto_merge` | On | People may turn on [auto-merge](/guides/pull-requests/#auto-merge) for a pull request. |
149−| Delete branches when they merge | `delete_branch_on_merge` | Off | A pull request's branch is deleted once it merges. It can be [restored](/guides/pull-requests/#deleting-the-branch) from the pull request. |
161+| Automatically delete head branches | `delete_branch_on_merge` | Off | A pull request's branch is deleted once it merges. It can be [restored](/guides/pull-requests/#deleting-the-branch) from the pull request. |
150162
151163 At least one method stays allowed. [Rules](/guides/rules/#pull-requests-and-checks)
152164 can narrow the methods for a branch, with `allowed_merge_methods` and
154166
155167 ### Commits
156168
169+On **Settings → Repository**, under **Commits**.
170+
157171 | Setting | Field | Default | What it does |
158172 | --- | --- | --- | --- |
159−| Require sign-off on web commits | `require_web_commit_sign_off` | Off | Commits made on g1t (web edits, merge and squash commits) end with a `Signed-off-by:` trailer for whoever made them, agreeing to the repository's terms, commonly the Developer Certificate of Origin. |
160−| Allow comments on commits | `allow_commit_comments` | On | Anyone who can read the repository may [comment on its commits](/guides/pull-requests/#commit-comments). Off keeps existing comments readable and refuses new ones. |
173+| Require contributors to sign off on web-based commits | `require_web_commit_sign_off` | Off | Commits made on g1t (web edits, merge and squash commits) end with a `Signed-off-by:` trailer for whoever made them, agreeing to the repository's terms, commonly the Developer Certificate of Origin. |
174+| Allow comments on individual commits | `allow_commit_comments` | On | Anyone who can read the repository may [comment on its commits](/guides/pull-requests/#commit-comments). Off keeps existing comments readable and refuses new ones. |
161175
162176 ### Pushes
163177
178+On **Settings → Repository**, under **Pushes**. Turned on, it asks for
179+**Most branches and tags per push**.
180+
164181 | Setting | Field | Default | What it does |
165182 | --- | --- | --- | --- |
166−| Limit how many branches and tags a push can update | `max_ref_updates` | No limit | The most branches and tags one push may create, move or delete, 1 to 1,000. A push that would change more is declined whole, so nothing of it lands: "This push changes N branches and tags; owner/name takes at most M at a time. Push fewer at once." `0` removes the limit. |
183+| Limit how many branches and tags can be updated in a single push | `max_ref_updates` | No limit | The most branches and tags one push may create, move or delete, 1 to 1,000. A push that would change more is declined whole, so nothing of it lands: "This push changes N branches and tags; owner/name takes at most M at a time. Push fewer at once." `0` removes the limit. |
167184
168185 ### Archives
169186
187+On **Settings → Repository**, under **Archives**.
188+
170189 | Setting | Field | Default | What it does |
171190 | --- | --- | --- | --- |
172191 | Include Git LFS objects in archives | None yet | Off | Coming soon. g1t does not store Git LFS files yet (see [limitations](/about/limitations/)), so archives hold what git stores; the setting is shown, turned off, until it does. |
173192
174193 ### Issues
175194
195+On **Settings → Repository**, under **Features**.
196+
176197 | Setting | Field | Default | What it does |
177198 | --- | --- | --- | --- |
178199 | Issues | `has_issues` | On; off for a [fork](/concepts/forks/) | Whether issues can be opened. Off keeps existing issues readable. `null` goes back to the default. `issues_enabled` says whether they can be opened now. |
179−| Close issues when pull requests merge | `auto_close_issues` | On | A pull request that merges into the default branch closes its issue and those it names after a [closing keyword](/guides/pull-requests/#closing-issues), and so does a commit pushed to the default branch whose message names them. |
200+| Auto-close issues with merged linked pull requests | `auto_close_issues` | On | A pull request that merges into the default branch closes its issue and those it names after a [closing keyword](/guides/pull-requests/#closing-issues), and so does a commit pushed to the default branch whose message names them. |
180201
181202 ```sh
182203 curl -X PATCH https://api.g1t.sh/repos/acme/rocket/settings \
+24−2
6464 again on the same commit. Every push to the pull request runs its workflows
6565 again on the new head.
6666
67+g1t's own **Dependency review** check has **Re-run dependency review**
68+beside it, for the same people, since advisories are published every day:
69+it reviews the head again and updates the check and its one comment. See
70+[dependency review](/guides/security/supply-chain/#dependency-review).
71+
6772 ### A repository with no checks
6873
6974 When a repository has no workflows, the merge box says **This repository
171176 When the repository has a [CODEOWNERS file](/guides/codeowners/), the
172177 owners of the files a pull request changes are asked by themselves, and
173178 the pull request shows **Code owners**: who owns which files and whose
174−approval is still needed.
179+approval is still needed. Where the rules do not require code owners'
180+approval, the box says **Approval not required**, and a rule nobody has
181+approved yet says **No approval yet**: nothing is waiting on it.
175182
176183 Through the API, `POST /repos/{owner}/{name}/pulls/{number}/requested_reviewers`
177184 takes `reviewers` (usernames) and `team_reviewers` (teams, as
180187 the MCP server they are the `pull_request` tool's `request_reviewers` and
181188 `remove_requested_reviewers` actions.
182189
190+### Reviewing
191+
192+Anyone signed in other than its author can review an open pull request.
193+Write in the comment box under the conversation, then choose **Comment**,
194+**Approve** or **Request changes**.
195+
196+A review that only approves or requests changes, with nothing written and
197+no line it is about, shows as one line in the conversation, the way an
198+event does: who reviewed, **approved these changes** or **requested
199+changes**, and when. A coding agent's review shows its name with its
200+**Agent** badge and an **Advisory** chip: an agent's review never counts
201+toward required approvals or code owners. A review with text, or one on a
202+line of a file, keeps a card of its own, like a comment.
203+
183204 ## Sessions
184205
185206 Each session that works on a pull request, or on its issue, shows in the
286307 removed for everyone and cannot be brought back.
287308
288309 A review that approved or requested changes can be edited but not deleted,
289−so its verdict stays on record. The notes in the timeline of what happened,
310+so its verdict stays on record. One with nothing written has nothing to
311+edit, so it has neither. The notes in the timeline of what happened,
290312 such as "closed this", cannot be edited or deleted.
291313
292314 Through the API, `PATCH /repos/{owner}/{name}/issues/comments/{comment_id}`
+4−2
7777
7878 The review's summary is commented on the pull request, a table per
7979 lockfile of what was added and removed, and the check links to
80−`g1t.sh/<owner>/<project>/security/pulls/<number>`. Require **Dependency
81−review** under **Settings → Branches** to block merges on it.
80+`g1t.sh/<owner>/<project>/security/pulls/<number>`. To block merges on it,
81+add **Dependency review** to a ruleset's **Require status checks to pass**
82+rule under **Settings → Rules** (see
83+[required status checks](/guides/pull-requests/#required-status-checks)).
8284
8385 A pull request has one review comment. When a later review says something
8486 new, that comment is changed in place; when it says the same, the comment

Comments

Sign in to comment.