Skip to content

Commit 6d21508

Browse files
Add documentation for disabling persistent commit verification on GHES 3.17+ (#55727)
Co-authored-by: Isaac Brown <[email protected]>
1 parent b630e0a commit 6d21508

File tree

5 files changed

+79
-1
lines changed

5 files changed

+79
-1
lines changed

content/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-web-commit-signing.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,18 @@ If you enable web commit signing, {% data variables.product.prodname_ghe_server
2323

2424
You can enable web commit signing, rotate the private key used for web commit signing, and disable web commit signing.
2525

26+
{% ifversion ghes > 3.16 %}
27+
28+
### About persistent commit signature verification
29+
30+
Persistent commit signature verification is related but separate from web commit signing. This feature ensures that the verified status of commits is retained, even if signing keys are changed or revoked.
31+
32+
Persistent commit signature verification helps maintain long-term integrity and trust in your repository’s commit history. However, you may choose to disable it in environments where minimizing disk usage is a priority, especially for large installations with a high number of verified commits.
33+
34+
For information about disabling persistent commit signature verification, see [AUTOTITLE](/admin/configuring-settings/configuring-user-applications-for-your-enterprise/disabling-persistent-commit-verification).
35+
36+
{% endif %}
37+
2638
## Enabling web commit signing
2739

2840
{% data reusables.enterprise_site_admin_settings.create-pgp-key-web-commit-signing %}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
title: Disabling persistent commit verification
3+
shortTitle: Disable persistent commit verification
4+
intro: 'You can disable persistent commit verification on {% data variables.product.prodname_ghe_server %} to reduce disk usage.'
5+
versions:
6+
ghes: '>=3.17'
7+
type: how_to
8+
topics:
9+
- Access management
10+
- Enterprise
11+
- Fundamentals
12+
- Identity
13+
- Security
14+
permissions: 'Site administrators'
15+
---
16+
17+
## About persistent commit verification
18+
19+
When persistent commit verification is enabled, {% data variables.product.prodname_ghe_server %} stores a verification record alongside each commit when its signature is verified. This record ensures that verified commits maintain their verification status even if signing keys are later rotated, expired, or revoked. For more information about persistent commit verification, see [AUTOTITLE](/authentication/managing-commit-signature-verification/about-commit-signature-verification#persistent-commit-signature-verification).
20+
21+
By default, persistent commit verification is enabled on {% data variables.product.prodname_ghe_server %} 3.17 and later.
22+
23+
Each verified commit requires approximately 80 bytes of storage. For large installations with a large number of verified commits (e.g., hundreds of thousands or more), you may want to disable this feature to limit data growth.
24+
25+
## Disabling persistent commit verification
26+
27+
You can disable persistent commit verification for {% data variables.location.product_location %}.
28+
29+
1. In the administrative shell, run the following command.
30+
31+
```bash copy
32+
ghe-config app.persist-commit-signature-verification.enabled false
33+
```
34+
35+
1. Apply the configuration.
36+
37+
```bash copy
38+
ghe-config-apply
39+
```
40+
41+
## Enabling persistent commit verification
42+
43+
If you previously disabled persistent commit verification, you can re-enable it.
44+
45+
1. In the administrative shell, run the following command.
46+
47+
```bash copy
48+
ghe-config app.persist-commit-signature-verification.enabled true
49+
```
50+
51+
1. Apply the configuration.
52+
53+
```bash copy
54+
ghe-config-apply
55+
```

content/admin/configuring-settings/configuring-user-applications-for-your-enterprise/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ children:
1616
- /configuring-interactive-maps
1717
- /managing-github-mobile-for-your-enterprise
1818
- /verifying-or-approving-a-domain-for-your-enterprise
19+
- /disabling-persistent-commit-verification
1920
redirect_from:
2021
- /admin/configuration/configuring-user-applications-for-your-enterprise
2122
---

content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ Signing commits differs from signing off on a commit. For more information about
4242
| **Unverified** | The commit is signed but the signature could not be verified.
4343
| No verification status | The commit is not signed.
4444

45+
{% endif %}
46+
47+
{% ifversion fpt or ghec or ghes > 3.16 %}
48+
4549
### Persistent commit signature verification
4650

4751
Regardless of the signature choice - GPG, SSH, or S/MIME - once a commit signature is verified, it remains verified within its repository's network. See [AUTOTITLE](/repositories/viewing-activity-and-data-for-your-repository/understanding-connections-between-repositories).
@@ -52,6 +56,12 @@ The verification record includes a timestamp marking when the verification was c
5256

5357
Persistent commit signature verification applies to new commits pushed to {% data variables.product.github %}. For any commits that predate this feature, a persistent record will be created the next time the commit's signature is verified on {% data variables.product.github %}, helping ensure that verified statuses remain stable and reliable across the repository's history.
5458

59+
{% ifversion ghes %}
60+
61+
For information about disabling persistent commit signature verification, see [AUTOTITLE](/admin/configuring-settings/configuring-user-applications-for-your-enterprise/disabling-persistent-commit-verification).
62+
63+
{% endif %}
64+
5565
#### Records persist even after revocation and expiration
5666

5767
Persistent commit signature verification reflects the verified state of a commit at the time of verification. This means that if a signing key is later revoked, expired, or otherwise altered, previously verified commits retain their verified status based on the record created during the initial verification. {% data variables.product.github %} will not re-verify previously signed commits or retroactively adjust their verification status in response to changes in the key's state. Organizations may need to manage key states directly to align with their security policies, especially if frequent key rotation or revocation is planned.

data/release-notes/enterprise-server/3-17/0-rc1.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ sections:
146146
- |
147147
Verified commits are attached to persistent verification records, allowing users to identify the first actor to introduce a commit to a repository. Users can rotate, expire, or revoke their signing key without impacting existing verifications.
148148
149-
Verification records consume approximately 80 bytes on disk per signed commit. To limit data growth on large instances, site administrators can run `ghe-config app.persist-commit-signature-verification.enabled false` to disable persistent records.
149+
Verification records consume approximately 80 bytes on disk per signed commit. To limit data growth on large instances, site administrators can run `ghe-config app.persist-commit-signature-verification.enabled false` to disable persistent records. See [AUTOTITLE](/admin/configuring-settings/configuring-user-applications-for-your-enterprise/disabling-persistent-commit-verification).
150150
151151
- heading: GitHub Mobile
152152
notes:

0 commit comments

Comments
 (0)