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

Download history 324/week @ 2026-05-15 401/week @ 2026-05-22 152/week @ 2026-05-29 139/week @ 2026-06-05 535/week @ 2026-06-12 732/week @ 2026-06-19 347/week @ 2026-06-26 626/week @ 2026-07-03 408/week @ 2026-07-10 704/week @ 2026-07-17 396/week @ 2026-07-24 608/week @ 2026-07-31

2,217 downloads per month
Used in 3 crates

MIT/Apache

1MB
17K SLoC

Pcu

Crates.io MIT licensed circleci-badge Rust 1.89+ FOSSA Status Docs BuyMeaCoffee GitHubSponsors

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:

  1. 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
    
  2. 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, reponame to 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

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