Skip to content

Credentials helpers such as git config credential.helper "store --file /path/to/credentials" interpreted wrongly #1136

@aibaars

Description

@aibaars

The implementation of CredentialsHelper::add_command of git2-rs is different from that of the git CLI.

While git2-rs checks whether a command contains a / or \ anywhere, the git CLI checks whether the command is an absolute path (roughly whether it starts with / or \)

Compare

git2-rs/src/cred.rs

Lines 302 to 303 in d1ae3b6

} else if cmd.contains("/") || cmd.contains("\\") {
self.commands.push(cmd.to_string());

with
https://github.com/git/git/blob/6a64ac7b014fa2cfa7a69af3c253bcd53a94b428/credential.c#L492-L493

This leads to rather surprise behaviour when using the store helper with a nontrivial --file argument. For example git config credential.helper "store --file /path/to/credentials" should be interpreted as git credential-store --file /path/to/credentials, but it is not .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions