#identity #command-line #git #service #cargo #identities

app identity-cli

一个用于从命令行管理您的身份的工具

1 个不稳定版本

0.1.0 2023年2月23日

#314 in 电子邮件

GPL-3.0 许可证

49KB
1.5K SLoC

Rust 889 SLoC Shell 468 SLoC // 0.0% comments

identity

一个用于从命令行管理您的身份的工具。

如果您在同一台机器上拥有多个身份,例如工作和个人,那么 identity 可以帮助您。它目前支持Git和Cargo。以下将描述各自的用法。如果您愿意,还可以使用提供的源代码中的功能测试集。

配置身份

identity 命令行界面会在 ~/.config/identity.toml 查找配置文件。您可以使用 identity --verify 创建或升级您的身份文件。

version = "1.0"

[[identity]]
id = "personal"
email = "[email protected]"

[[identity.account]]
service = "git"
user = "my-username"
match_url = "https://github.com/my-username/*"
description = "my personal github"

[[identity.account]]
service = "cargo"
user = "my-username"
token = "a-token"

[[identity]]
id = "work"
email = "[email protected]"

[[identity.account]]
service = "git"
user = "company-username"
match_url = "https://github.com/company-username/*"
description = "my work github"

这会配置两个身份,personalwork。个人身份有一个GitHub账户和一个Cargo(crates.io)账户。工作身份只拥有一个GitHub账户。

Git

您的用户名和电子邮件地址是最先需要分开的。Git为您提供了一些配置这些选项的方法,您可以使用 identity 来找出当前正在使用什么。

identity whoami --service git

注意:您可以省略 --service git 参数,您将被提示。

这将输出类似以下内容:

user.name  = ThetaSinner
user.email = [email protected]

了解是一回事,但防止使用错误用户信息进行提交才是目标。在Git存储库中运行

identity git install

它将在每次提交时验证您的身份。原始URL将与配置文件中的身份进行匹配,如果当前Git身份与匹配的身份不同,则将阻止提交。

如果您已经在使用pre-commit hooks,则可以通过将 identity git hook --pre-commit 放入 .git/hooks/pre-commit 来手动添加检查。

要检查存储库是否当前配置为使用 identity 以及身份是否配置正确,您可以运行

identity git --check

Cargo

Cargo 并没有账户的概念。您有一个用于发布crate的令牌,这也是 identity 所关心的您的身份。

要检查您的当前身份,请使用

identity whoami --service cargo

或者切换到新的身份

identity switch --service cargo

系统会提示您选择要切换的身份。

其他服务

我计划根据需要添加更多服务,如果您希望支持其他服务,请在GitHub上创建一个issue或PR。

依赖关系

约7-18MB
约250K SLoC