Skip to content

Commit e0fa5a7

Browse files
alliepipermiscco
andauthored
Add section about SSH signing keys to developer docs. (NVIDIA#1755)
* Add section about SSH signing keys to developer docs. [skip-tests] * Update CONTRIBUTING.md [skip-tests] Co-authored-by: Michael Schellenberger Costa <[email protected]> * Moved, reworded. [skip-tests] * Address review feedback. [skip-tests] --------- Co-authored-by: Michael Schellenberger Costa <[email protected]>
1 parent 8ded7aa commit e0fa5a7

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

CONTRIBUTING.md

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Thank you for your interest in contributing to the CUDA C++ Core Libraries (CCCL
3333
For more details on building and testing, refer to the [Building and Testing](#building-and-testing) section below.
3434

3535
4. **Commit Changes**:
36+
3637
```bash
3738
git commit -m "Brief description of the change"
3839
```

ci-overview.md

+29
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,35 @@ CCCL uses [NVIDIA's self-hosted action runners](https://docs.gha-runners.nvidia.
9595
9696
The CI pipeline will not start automatically for external contributors. A repository member will first review the changes and initiate the CI pipeline with an `/ok to test` comment.
9797
98+
### SSH Signing Keys
99+
100+
[Signed commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) are required for any internal NVIDIA contributors who want the convenience of CI running automatically whenever a commit is pushed to a branch (i.e., doesn't require using `/ok to test`).
101+
102+
This is not required for external contributions, which will always require an explicit `/ok to test` comment from an approved account for each CI run.
103+
104+
To enable commit signing using your existing ssh key, set the following git options:
105+
106+
```bash
107+
git config --global gpg.format ssh
108+
git config --global user.signingKey ~/.ssh/YOUR_PUBLIC_KEY_FILE_HERE.pub
109+
110+
# These settings are optional. They tell git to automatically sign all new commits and tags.
111+
# If these are set to false, use `git commit -S` to manually sign each commit.
112+
git config --global commit.gpgsign true
113+
git config --global tag.gpgsign true
114+
```
115+
116+
Git is now configured to sign commits with your ssh key.
117+
118+
To complete the process, upload the public key to your [Github Signing Keys](https://github.com/settings/keys) in your browser or using the `gh` CLI tool:
119+
120+
```
121+
gh ssh-key add ~/.ssh/YOUR_PUBLIC_KEY_FILE_HERE.pub --type signing
122+
```
123+
124+
Make sure that the key is uploaded to 'Signing Keys', not just 'Authentication Keys'.
125+
The same key may be used for both.
126+
98127
## Troubleshooting CI Failures
99128

100129
1. **Review CI logs**: Examine CI logs for specific error messages (see [Viewing CI Workflow Results](#viewing-ci-workflow-results))

0 commit comments

Comments
 (0)