feat: add security improvements to CI (#142)
## Summary - Add dual commit signature verification (trusted PRs with comments, forked PRs read-only) - Split security job into audit-only (forked PRs) and SonarCloud-enabled (trusted branches) - Add forked PR isolation filter on `update_prlog` - Add signature verification as gating requirement for `update_prlog` Part of Phase 3 security improvements rollout across jerus-org repos. ## Test plan - [ ] Signature verification jobs run on PRs - [ ] Security jobs split correctly (audit-only vs SonarCloud) - [ ] `update_prlog` filters forked PRs - [ ] `update_prlog` requires signature verification 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This commit is contained in:
@@ -49,6 +49,25 @@ workflows:
|
|||||||
- << pipeline.parameters.validation_flag >>
|
- << pipeline.parameters.validation_flag >>
|
||||||
- not: << pipeline.parameters.release_flag >>
|
- not: << pipeline.parameters.release_flag >>
|
||||||
jobs:
|
jobs:
|
||||||
|
# Signature verification for trusted PRs (with write access for comments)
|
||||||
|
- toolkit/verify_commit_signatures:
|
||||||
|
name: verify_commit_signatures_trusted
|
||||||
|
context: bot-check
|
||||||
|
post_comment: true
|
||||||
|
update_pcu: false
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
ignore:
|
||||||
|
- main
|
||||||
|
- /pull\/[0-9]+/
|
||||||
|
# Signature verification for forked PRs (read-only, no comments)
|
||||||
|
- toolkit/verify_commit_signatures:
|
||||||
|
name: verify_commit_signatures_forked
|
||||||
|
post_comment: false
|
||||||
|
update_pcu: false
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: /pull\/[0-9]+/
|
||||||
- toolkit/label:
|
- toolkit/label:
|
||||||
min_rust_version: << pipeline.parameters.min_rust_version >>
|
min_rust_version: << pipeline.parameters.min_rust_version >>
|
||||||
context: pcu-app
|
context: pcu-app
|
||||||
@@ -73,18 +92,34 @@ workflows:
|
|||||||
- toolkit/idiomatic_rust:
|
- toolkit/idiomatic_rust:
|
||||||
min_rust_version: << pipeline.parameters.min_rust_version >>
|
min_rust_version: << pipeline.parameters.min_rust_version >>
|
||||||
- toolkit/security:
|
- toolkit/security:
|
||||||
|
name: security audit only
|
||||||
|
sonarcloud: false
|
||||||
|
ignore_advisories: RUSTSEC-2025-0066
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: /pull\/[0-9]+/
|
||||||
|
- toolkit/security:
|
||||||
|
name: security with sonarcloud
|
||||||
context: SonarCloud
|
context: SonarCloud
|
||||||
ignore_advisories: RUSTSEC-2025-0066
|
ignore_advisories: RUSTSEC-2025-0066
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
ignore:
|
||||||
|
- /pull\/[0-9]+/
|
||||||
|
- main
|
||||||
- toolkit/update_prlog:
|
- toolkit/update_prlog:
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
ignore:
|
ignore:
|
||||||
|
- /pull\/[0-9]+/
|
||||||
- main
|
- main
|
||||||
requires:
|
requires:
|
||||||
|
- verify_commit_signatures_trusted
|
||||||
- toolkit/required_builds
|
- toolkit/required_builds
|
||||||
- toolkit/test_doc_build
|
- toolkit/test_doc_build
|
||||||
- toolkit/idiomatic_rust
|
- toolkit/idiomatic_rust
|
||||||
- toolkit/security
|
- security audit only
|
||||||
|
- security with sonarcloud
|
||||||
- toolkit/common_tests
|
- toolkit/common_tests
|
||||||
context:
|
context:
|
||||||
- release
|
- release
|
||||||
|
|||||||
22
Cargo.lock
generated
22
Cargo.lock
generated
@@ -222,9 +222,9 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytes"
|
name = "bytes"
|
||||||
version = "1.11.0"
|
version = "1.11.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
|
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
@@ -1422,9 +1422,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-conv"
|
name = "num-conv"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
|
checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-traits"
|
name = "num-traits"
|
||||||
@@ -2090,9 +2090,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time"
|
name = "time"
|
||||||
version = "0.3.44"
|
version = "0.3.47"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
|
checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"deranged",
|
"deranged",
|
||||||
"itoa",
|
"itoa",
|
||||||
@@ -2100,22 +2100,22 @@ dependencies = [
|
|||||||
"num-conv",
|
"num-conv",
|
||||||
"num_threads",
|
"num_threads",
|
||||||
"powerfmt",
|
"powerfmt",
|
||||||
"serde",
|
"serde_core",
|
||||||
"time-core",
|
"time-core",
|
||||||
"time-macros",
|
"time-macros",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time-core"
|
name = "time-core"
|
||||||
version = "0.1.6"
|
version = "0.1.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
|
checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time-macros"
|
name = "time-macros"
|
||||||
version = "0.2.24"
|
version = "0.2.27"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
|
checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-conv",
|
"num-conv",
|
||||||
"time-core",
|
"time-core",
|
||||||
|
|||||||
2
PRLOG.md
2
PRLOG.md
@@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- ✨ add optional rules path argument to cli(pr [#110])
|
- ✨ add optional rules path argument to cli(pr [#110])
|
||||||
- ✨ enhance rules configuration(pr [#112])
|
- ✨ enhance rules configuration(pr [#112])
|
||||||
- BREAKING: migrate to circleci-toolkit v4.2.1(pr [#134])
|
- BREAKING: migrate to circleci-toolkit v4.2.1(pr [#134])
|
||||||
|
- add security improvements to CI(pr [#142])
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@@ -413,6 +414,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
[#139]: https://github.com/jerus-org/cull-gmail/pull/139
|
[#139]: https://github.com/jerus-org/cull-gmail/pull/139
|
||||||
[#140]: https://github.com/jerus-org/cull-gmail/pull/140
|
[#140]: https://github.com/jerus-org/cull-gmail/pull/140
|
||||||
[#141]: https://github.com/jerus-org/cull-gmail/pull/141
|
[#141]: https://github.com/jerus-org/cull-gmail/pull/141
|
||||||
|
[#142]: https://github.com/jerus-org/cull-gmail/pull/142
|
||||||
[Unreleased]: https://github.com/jerus-org/cull-gmail/compare/v0.0.16...HEAD
|
[Unreleased]: https://github.com/jerus-org/cull-gmail/compare/v0.0.16...HEAD
|
||||||
[0.0.16]: https://github.com/jerus-org/cull-gmail/compare/v0.0.15...v0.0.16
|
[0.0.16]: https://github.com/jerus-org/cull-gmail/compare/v0.0.15...v0.0.16
|
||||||
[0.0.15]: https://github.com/jerus-org/cull-gmail/compare/v0.0.14...v0.0.15
|
[0.0.15]: https://github.com/jerus-org/cull-gmail/compare/v0.0.14...v0.0.15
|
||||||
|
|||||||
Reference in New Issue
Block a user