Repository navigation
build(deps): bump the actions group across 1 directory with 4 updates - #1
Closed
dependabot[bot] wants to merge 57 commits into
Closed
dependabot[bot] wants to merge 57 commits into
dependabot[bot] wants to merge 57 commits into
Conversation
An end-to-end encrypted git remote stored on an ordinary git host: age encryption with SSH-key participants, SSH-signed manifest, incremental transfer over a chained backend branch and compare-and-swap pushes. Includes the design document, Nix-pinned reproducible build image, CI and release pipeline.
The receiving repository's gc --auto can merge the packs a push stored, which made transfers_are_incremental count fewer packs than pushes. The transfers themselves were incremental.
…tion The URL went to `git fetch` / `git push` as a positional argument without `--`, so `enc::--upload-pack=<cmd>` ran <cmd>. Put `--` before it, and refuse an empty URL or one starting with `-` when the remote is opened.
…STSEC-2023-0071) rsa 0.9 has an unfixed timing side channel. age's ssh feature still pulls the crate in, so the advisory stays ignored, with the rationale now that no RSA key ever reaches it. ssh-key no longer enables `rsa`.
Tags are mutable, and these actions run with the release job's write token. Dependabot keeps the pins and the Cargo dependencies moving.
deny.toml admits permissive licences and crates.io only, and refuses wildcard versions; duplicates are reported. Both crates are marked publish = false, which the path-dependency exemption requires.
sbom.sh writes one SBOM per released platform from the pinned image's cargo-cyclonedx. publish attests SLSA build provenance for every archive and build manifest, and each SBOM against its archive, before it writes to main, and publishes the provenance bundle as an asset.
Once a signer list is known (accepted state or configured participants) the parser only sees authenticated text. Trust on first use still has to parse first, since the signer list comes from the manifest itself.
…t use is set A new clone or URL used to accept whoever signed the manifest, so the host chose what it trusted. Now the signer must be in the configured participants, or enc.trustOnFirstUse must opt in. A URL respelling of a repository already known locally reuses its trust state, found by repo id.
…ntly The trust file now ends in an HMAC keyed from the first identity; a tag that does not verify is refused. Missing trust while the tracking ref exists is refused too, instead of a fresh first contact. The error messages that advised deleting .git/enc/ point to a new `git-remote-enc forget`, which clears the state and the tracking ref.
…memory Pack keys, the manifest plaintext and envelope, passphrases and the trust-state MAC key are held in zeroize wrappers or wiped on drop. Memory is not locked; DESIGN.md §6.5 states that residual.
…s --apply` Every push used to overwrite the remote's list with the pusher's configured one, so a stale local list silently ejected participants. A push now keeps the remote's list and warns when the configuration differs; the new subcommand shows the difference and applies it.
Manifest format bumped to 2: new `admin <key>` items. A reader accepts a change to the participant or admin list only if an admin of the accepted manifest signed it, and refuses a manifest dropping every admin. A new remote's admin defaults to its creator. Version 1 is still read; the first push rewrites it as version 2, which 0.1 cannot read.
Backend commits are anonymous by design, so the audit trail comes from the manifests: each push now records a `time` item (format 2, not yet released), and `log` walks the backend branch printing each generation's signer, time and ref, participant and admin changes.
A deterministic mutator (bit flips, insertions, deletions, truncation, line duplication and removal) drives the manifest, envelope, refspec, key, signature and trust-file parsers. They must not panic, what parses must round-trip, and a verifying signature must be the original one.
Section 6.7 names the assets, actors, trust boundaries and data flows, with a threat / mitigation / residual table. Section 6.4 now lists the backend branch name, and that published forge keys let anyone match the ssh recipient tags to participants, with the mitigations.
A trust file with its `mac` line cut off was read as pre-authentication state and then re-signed, so stripping the tag defeated it. Such files, including those written by 0.1.0, are now refused; `forget` recovers.
The host could squash or drop past backend commits unnoticed, and `log` then credited the next remaining signer with every earlier change. Connect now warns when the new tip does not descend from the one fetched before, and `log` flags missing generations and says what each diff is relative to.
Packs from an encrypted remote are indexed by the helper, outside the fetch path where git applies fetch.fsckObjects, so a hostile object (a tree entry named .git) reached collaborators unchecked. index-pack now runs with --fsck-objects unless fetch/transfer.fsckObjects is false, passing git's fetch.fsck.* severities on.
…loor With only the signer pinned, a host could serve a new clone an older manifest (before a participant's removal) or another remote signed by the same key. enc.repo and enc.minGeneration, handed out with the key, are now checked against every manifest, and the first-contact message prints both values.
The guard only protected clones where someone ran `install-hook`. The first contact with an encrypted remote now installs it, unless a pre-push hook exists or core.hooksPath is set (both reported) or enc.installHook=false.
Matching "git lfs" in the hook missed `git lfs`, quoting, variables and hook managers. LFS uploads only from its local storage, so a push is now refused when that storage holds a file and any pre-push hook other than the guard exists.
log checked each historical signature against any key, and took the signer's name from the manifest itself, so the host could insert forged generations naming a participant. Manifests now carry `previous`, the SHA-256 of their predecessor's text (format 2, not yet released); log verifies the chain from the accepted manifest and flags the rest.
A participant could sign generation 2^64-1: readers accepted it, no push could follow, and restoring the branch read as a rollback. Each push adds one commit and one generation, so a manifest may now run ahead of the accepted one only by the commits added since (recorded in the trust state), or on first contact by the branch's length.
hmac 0.12 was already in the tree through age but needs sha2 0.10, so the workspace moves to the sha2 line age and ssh-key build on. Same output (RFC 4231 vectors), so existing trust files still verify.
The previous item joined format 2 after remotes had been written in it, so a format 2 manifest without one could not tell an old remote from a broken chain. Format 3 is written; 1 and 2 are still read. Older binaries cannot read a remote once a version 3 writer has pushed to it.
…st only Another tool can replace the guard at any time (git lfs install --force does), after which a push to a plain remote publishes encrypted commits silently. Every connect now reinstalls a missing guard and reports a foreign, non-executable or core.hooksPath-shadowed one.
A backport whose diff context differed from the fix (a line added within three lines of it) or whose removed lines changed in a conflict resolution got a new blob and a new patch id, and was published. Patch ids are now taken without context, and a pushed hunk adding what an encrypted-only hunk adds, whitespace aside and at least 24 bytes, is refused too.
A manifest that forks from the accepted one was reported and then accepted, so a host serving another view had every client follow it after one warning. It is now refused; enc.refuseForks=false accepts the view the participants settle on, which then becomes the baseline.
…output run_input wrote all of stdin before reading stdout, so a command answering as it reads deadlocked once both pipes filled: the guard's patch-id hung past about 800 encrypted-only commits (64 KiB of output).
With only the guard as pre-push hook, LFS never runs, and the push carried the pointers of LFS-tracked files without their content: the other participants got files they could not resolve, and no error. Such a push is now refused unless enc.allowLfs is set.
Bumps the actions group with 4 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/upload-artifact](https://github.com/actions/upload-artifact), [actions/download-artifact](https://github.com/actions/download-artifact) and [actions/cache](https://github.com/actions/cache). Updates `actions/checkout` from 4.4.0 to 7.0.1 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@11d5960...3d3c42e) Updates `actions/upload-artifact` from 4.6.2 to 7.0.1 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@ea165f8...043fb46) Updates `actions/download-artifact` from 4.3.0 to 8.0.1 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@d3f86a1...3e5f45b) Updates `actions/cache` from 4.3.0 to 6.1.0 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@0057852...55cc834) --- updated-dependencies: - dependency-name: actions/cache dependency-version: 6.1.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/download-artifact dependency-version: 8.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot
Bot
force-pushed
the
dependabot/github_actions/actions-7296014c82
branch
from
September 30, 2026 05:14
5a580dc to
b5b1b41
Compare
Author
|
This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests. To ignore these dependencies, configure ignore rules in dependabot.yml |
dependabot
Bot
deleted the
dependabot/github_actions/actions-7296014c82
branch
October 2, 2026 02:57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps the actions group with 4 updates in the / directory: actions/checkout, actions/upload-artifact, actions/download-artifact and actions/cache.
Updates
actions/checkoutfrom 4.4.0 to 7.0.1Release notes
Sourced from actions/checkout's releases.
... (truncated)
Changelog
Sourced from actions/checkout's changelog.
... (truncated)
Commits
3d3c42eprep v7.0.1 release (#2531)2880268escape values passed to --unset (#2530)12cd223trim only ascii whitespace for branch (#2521)62661c4skip running unsafe pr check if input is default (#2518)e8d4307Bump the minor-actions-dependencies group with 2 updates (#2499)631c942eslint 9 (#2474)4f1f4aeBump actions/upload-artifact from 4 to 7 (#2476)ba09753Bump actions/checkout from 6 to 7 (#2488)b9e0990Bump docker/login-action from 3.3.0 to 4.2.0 (#2479)e8cb398Bump docker/build-push-action from 6.5.0 to 7.2.0 (#2478)Updates
actions/upload-artifactfrom 4.6.2 to 7.0.1Release notes
Sourced from actions/upload-artifact's releases.
... (truncated)
Commits
043fb46Merge pull request #797 from actions/yacaovsnc/update-dependency634250cInclude changes in typespec/ts-http-runtime 0.3.5e454baaReadme: bump all the example versions to v7 (#796)74fad66Update the readme with direct upload details (#795)bbbca2dSupport direct file uploads (#764)589182cUpgrade the module to ESM and bump dependencies (#762)47309c9Merge pull request #754 from actions/Link-/add-proxy-integration-tests02a8460Add proxy integration testb7c566aMerge pull request #745 from actions/upload-artifact-v6-releasee516bc8docs: correct description of Node.js 24 support in READMEUpdates
actions/download-artifactfrom 4.3.0 to 8.0.1Release notes
Sourced from actions/download-artifact's releases.
... (truncated)
Commits
3e5f45bAdd regression tests for CJK characters (#471)e6d03f6Add a regression test for artifact name + content-type mismatches (#472)70fc10cMerge pull request #461 from actions/danwkennedy/digest-mismatch-behaviorf258da9Add change docsccc058eFix linting issuesbd7976bAdd a setting to specify what to do on hash mismatch and default it toerrorac21fcfMerge pull request #460 from actions/danwkennedy/download-no-unzip15999bfAdd note about package bumps974686eBump the version tov8and add release notesfbe48b1Update test names to make it clearer what they doUpdates
actions/cachefrom 4.3.0 to 6.1.0Release notes
Sourced from actions/cache's releases.
... (truncated)
Changelog
Sourced from actions/cache's changelog.
... (truncated)
Commits
55cc834Merge pull request #1768 from jasongin/readonly-cached8cd72fBump@actions/cacheto v6.1.0 - handle cache write error due to RO token2c8a9bdMerge pull request #1760 from actions/samirat/esm_migration_and_package_updatee9b91fdPrettier fixese4884b8Rebuild dist10baf01Fixed licensese39b386Fix test mock return orderb692820PR feedback6074912Rebuild dist bundles as ESM to match type:module5a912e8Fix lint and jest issues