|
11 | 11 | - [Commits, changelog, release note, versioning](#commits-changelog-release-note-versioning) |
12 | 12 | * [About commits](#about-commits) |
13 | 13 | * [About release note and changelog](#about-release-note-and-changelog) |
| 14 | + * [Integration of tokenator updates](#integration-of-tokenator-updates) |
| 15 | + * [Verifying commits cryptographic signatures](#verifying-commits-cryptographic-signatures) |
14 | 16 | - [Use of Gitleaks](#use-of-gitleaks) |
15 | 17 | - [Linter](#linter) |
16 | 18 | - [Formater](#formater) |
@@ -272,6 +274,41 @@ chore(🤖): update `OpacityRawTokens` (tokenator generation 20241021134644) (#2 |
272 | 274 | Tokens library v0.4.1 |
273 | 275 | ``` |
274 | 276 |
|
| 277 | +#### Verifying commits cryptographic signatures |
| 278 | + |
| 279 | +Some core maintainers in the project use GPG so cryptographically sign their commits. |
| 280 | +You can check the commits status with the commands below: |
| 281 | +```shell |
| 282 | +# Of course we suppose you are a bit used to GPG and have it installed |
| 283 | +# Update your keychain of GPG keys and getthe online the ones for the maintainers |
| 284 | +# For example GPG key identifier of @pylapp is "8030BBE06B4F48F95BD082DA7D5AE4DCFF3A3435" |
| 285 | + |
| 286 | +# This command can take a lot of time, maybe try the next one |
| 287 | +gpg --refresh-keys |
| 288 | +gpg --keyserver https://key.openpgp.org --recv-keys 8030BBE06B4F48F95BD082DA7D5AE4DCFF3A3435 |
| 289 | + |
| 290 | +# If none of this command works, contact the maintainers to get their public key to add in your keychain and run |
| 291 | +gpg --import path/to/asc/key/file |
| 292 | + |
| 293 | +# Then check if the key is in your keychain |
| 294 | +gpg --list-keys --keyid-format=short |
| 295 | + |
| 296 | +# If you run "gpg --check-sigs" you may notice they keys are not signed (unknown trust), that's not unexpected |
| 297 | + |
| 298 | +# Then run the command to verify the commit status using for example its hash |
| 299 | +git verify-commit the-commit-hash |
| 300 | +# Or get more logs |
| 301 | +git log --show-signature |
| 302 | +``` |
| 303 | + |
| 304 | +In addition, GitHub also provides a feature of commits veritification named [Vigilant mode](https://docs.github.com/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits). |
| 305 | +In few words, if the commit was signed with the committer's verified signature, the commit is *verified*. |
| 306 | + |
| 307 | +> [!CAUTION] |
| 308 | +> Some maintainers do not use GPG or SSH signing for commits, so the documentation commits can be seen as "unverified" |
| 309 | +> and some commits can have empty status because GitHub Vigilant Mode is not enabled for everyone |
| 310 | +> and some commits can be unsigned. |
| 311 | +
|
275 | 312 | ### About release note and changelog |
276 | 313 |
|
277 | 314 | We try also to apply [keep a changelog](https://keepachangelog.com/en/1.0.0/), and [semantic versioning](https://semver.org/spec/v2.0.0.html) both with [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). |
@@ -425,15 +462,20 @@ To update dependencies of the project, supossing *Renovate* for example provides |
425 | 462 |
|
426 | 463 | ### GitHub Action |
427 | 464 |
|
428 | | -We use *GitHub Actions* so as to define a workflow with some actions to build and test the library. |
| 465 | +We use *GitHub Actions* so as to define several workflows with some actions to build, test, check, documentation and audit the library. |
| 466 | + |
429 | 467 | It will help us to ensure code on pull requests or being merged compiles and has all tests green. |
| 468 | + |
430 | 469 | Workflows are the following: |
431 | | -- [build and run unit tests](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/build-and-test.yml) |
432 | | -- [check if there are secrets leaks](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/gitleaks.yml). |
433 | | -- [check if there are localizations troubles](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/swiftpolyglot.yml) |
434 | | -- [check if there is dead code](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/periphery.yml) |
435 | | -- [run linter](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/swiftlint.yml) |
436 | | -- [generate documentation](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/build-documentation.yml) |
| 470 | +- [build-and-test](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/build-and-test.yml) to build and run unit tests |
| 471 | +- [build-documentation](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/build-documentation.yml) to ensure documentation can be built from sources without warnings |
| 472 | +- [codeql](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/codeql.yml) to automated security checks |
| 473 | +- [dependency-review](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/codeql.yml) to scan dependency manifest files surfacing known-vulnerable versions of the packages declared or updated in pull requests |
| 474 | +- [gitleaks](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/gitleaks.yml) to check if there are secrets leaks |
| 475 | +- [periphery](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/periphery.yml) to check if there is dead code |
| 476 | +- [scorecard](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/scorecard.yml) to buold the OpenSSF score card on README |
| 477 | +- [swiftlint](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/swiftlint.yml) to check if there is no linter warnings |
| 478 | +- [swiftpolyglot](https://github.com/Orange-OpenSource/ouds-ios/blob/develop/.github/workflows/swiftpolyglot.yml) to check if there are localizations troubles |
437 | 479 |
|
438 | 480 | We use also two GitHub apps making controls on pull requests and defining wether or not prerequisites are filled or not. |
439 | 481 | There is one control to check if [PR template are all defined ](https://github.com/stilliard/github-task-list-completed), and one if [DCO is applied](https://probot.github.io/apps/dco/). |
|
0 commit comments