.gitignore
被忽略 。
流程中的挑战从流程的角度,一起来看看在过程中可能遇到的一些困难和挑战,以及如何处理解决 。
更新机密更新机密时 , 请确保先解密文件,从而避免使用可能仍存在本地的旧文件 。可以通过检查最新的 main 分支并运行
git secret reveal
,来获得最新版本的机密文件 。也可以使用 post-merge
Git hook 自动执行此操作,不过要注意覆盖本地机密文件的风险哦 。代码审查和合并冲突由于无法对加密文件进行很好的区分,因此当涉及机密时代码审查变得更加困难 。这是可以尝试使用 GitLab 进行审查 , 首先检查
.gitsecret/paths/mapping.cfg
文件的差异,在 UI 中查看哪些文件已更改 。此外,可以根据以下步骤来查看:
- 检查
main
分支 。
- 【下 git-secret:在 Git 存储库中加密和存储密钥】通过
git secret reveal -f
解密文件
- 查看
feature-branch
.
- 运行
git secret changes
来查看main
的解密文件和feature-branch
中加密文件之间的差异 。
本地 git-secret 和 gpg 设置当团队的所有人员将
git-secret
安装在本地 , 并且使用他们自己的 gpg
密钥,这也意味着团队的成本会随之增加,原因如下:- 新加入开发团队的人员需要:
- 本地安装
git-secret
(*) - 在本地安装和设置
gpg
(*) - 创建
gpg
密钥对
- 本地安装
- 必须由所有其他团队成员 (*) 添加公钥 。
- 必须通过添加密钥的用户
git secret tell
。 - 机密需要重新加密 。
- 所有其他团队成员(*) 都需要删除公钥 。
- 通过
git secret killperson
删除密钥的用户 。 - 机密需要重新加密 。
git-secret
和gpg
版本保持最新 , 避免遇到任何兼容性问题 。作为替代方案,也可以通过 Docker 处理,而上述步骤中标注(*) 则可以省去,也就是不需要设置本地的 git-secret
和gpg
。为了更加便捷,将存储库中每个开发人员的公共
gpg
密钥放在 .dev/gpg-keys/
,而私钥命名为 secret.gpg
并放在代码库的根目录中 。在此设置中,
secret.gpg
还必须被添加到 .gitignore
文件中 。# File: .gitignore#...vendor/secret.gpg
然后可以使用make
目标简化导入:# gpgDEFAULT_SECRET_GPG_KEY?=secret.gpgDEFAULT_PUBLIC_GPG_KEYS?=.dev/gpg-keys/*.PHONY: gpggpg: ## Run gpg commands. Specify the command e.g. via ARGS="--list-keys"$(EXECUTE_IN_APPLICATION_CONTAINER) gpg $(ARGS).PHONY: gpg-importgpg-import: ## Import a gpg key file e.g. via GPG_KEY_FILES="/path/to/file /path/to/file2"@$(if $(GPG_KEY_FILES),,$(error GPG_KEY_FILES is undefined))"$(MAKE)" -s gpg ARGS="--import --batch --yes --pinentry-mode loopback $(GPG_KEY_FILES)".PHONY: gpg-import-default-secret-keygpg-import-default-secret-key: ## Import the default secret key"$(MAKE)" -s gpg-import GPG_KEY_FILES="$(DEFAULT_SECRET_GPG_KEY)".PHONY: gpg-import-default-public-keysgpg-import-default-public-keys: ## Import the default public keys"$(MAKE)" -s gpg-import GPG_KEY_FILES="$(DEFAULT_PUBLIC_GPG_KEYS)" .PHONY: gpg-initgpg-init: gpg-import-default-secret-key gpg-import-default-public-keys ## Initialize gpg in the container, i.e. import all public and private keys
上述操作需要在容器启动后运行一次 。场景先假设以下这些条件:
- 已检查过 Git 存储库 。
git checkout part-6-git-secret-encrypt-repository-docker
- 没有正在运行的 Docker 容器 。
make docker-down
- 已删除现有
git-secret
文件夹、中的密钥.dev/gpg-keys
、secret.gpg
密钥和passwords.*
文件 。rm -rf .gitsecret/ .dev/gpg-keys/* secret.gpg passwords.*
推荐阅读
- Vue中使用Switch开关用来控制商品的上架与下架情况、同时根据数据库商品的状态反应到前台、前台修改商品状态保存到数据库
- qq文件zip文件怎么打开(qq群文件zip下载不了)
- 赵云是死在什么地方的怎么死的(赵云晚年斩死4员大将)
- 5 10 15 20划拳怎么玩(划拳上下左右怎么玩)
- 原神圣金虫位置在哪些地方
- 原神赤念果在什么位置
- 荣耀平板v7pro和小米平板5哪个好_荣耀平板v7pro和小米平板5对比
- 桃花诺邓紫棋mp3下载 樱花诺邓紫棋含义
- zip文件在电脑上怎么打开(电脑下载zip怎么打开)
- 驱动开发:内核枚举LoadImage映像回调