116 releases
| 0.6.30 | Jul 31, 2026 |
|---|---|
| 0.6.28 | Jun 26, 2026 |
| 0.6.15 | Mar 28, 2026 |
| 0.6.2 | Nov 28, 2025 |
| 0.1.24 | Jul 25, 2024 |
#283 in Build Utils
2,217 downloads per month
Used in 3 crates
1MB
17K
SLoC
Pcu
A CI utility to update the Unreleased section of the changelog with the title of the pull request and include a link to the pull request.
Feature set
- Use GitHub as source control system
- Use of CircleCI as CI
Cargo features
| Feature | Default | Provides |
|---|---|---|
attest |
yes | SLSA v0.2 provenance attestation via Sigstore keyless signing (pcu release attest) |
Using pcu as a library for git and GitHub operations only — staging, signed commits, pushes, releases — you can drop the attestation surface:
pcu = { version = "0.6", default-features = false }
That removes openidconnect, sigstore and, with them, rsa. rsa carries
RUSTSEC-2023-0071 (Marvin Attack) which has no fixed version, so a
consumer that never signs anything would otherwise have to suppress an advisory
it cannot act on. Verify with:
$ cargo tree --no-default-features --invert rsa
The pcu binary keeps attest on by default, so cargo install pcu and every
CI pipeline are unaffected.
One caveat: Cargo unifies features across a dependency graph. If anything else
in your graph depends on pcu with default features, attest is re-enabled for
everyone and rsa returns.
CLI Usage
LinkedIn announcements
pcu can share a release announcement to LinkedIn in two ways:
-
As a dedicated subcommand
- Build content from PRLOG or pass your own text
- Optionally include a GitHub release link
Examples:
# Provide text directly pcu linkedin share --author-urn "urn:li:organization:123" --text "v0.6.2 released" # Build from PRLOG release notes pcu linkedin share --author-urn "urn:li:organization:123" --from-release --version 0.6.2 --prefix v -
As part of the release flow
- Add the flag to share after the GitHub release is created
pcu release version 0.6.2 --prefix v --linkedin-share
Configuration (environment variables or pcu.toml):
- LINKEDIN_ACCESS_TOKEN or key
linkedin_access_token - LINKEDIN_AUTHOR_URN or key
linkedin_author_urn - Optional:
dev_platform,username,reponameto compute the GitHub release URL
Notes:
- The LinkedIn client posts to the Posts REST API and requires header
X-Restli-Protocol-Version: 2.0.0(handled internally). - Tokens must be stored in CI secrets; never commit them.
Install the CLI using cargo install.
cargo install pcu
Run in the CI script following successful completion of build tests.
pcu
The change log will be amended and committed as part of the change, triggering a recheck. On the recheck pcu will exit early as the change has already been applied.
Help provides all the options
$ pcu -h
A CI tool to update change log in a PR
Usage: pcu [OPTIONS]
Options:
-v, --verbose... Increase logging verbosity
-q, --quiet... Decrease logging verbosity
-s, --sign <SIGN> [possible values: gpg, none]
-h, --help Print help
-V, --version Print version
$
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~57–100MB
~2M SLoC