Git 和团队
通过 Git 共享工作区,以小型差异审阅更改,并让机密和个人设置不进入仓库。
工作区是为存入 Git 而写的一个文本文件夹:每个请求一个文件,相同的内容生成相同的字节,里面没有任何私密内容。提交并推送它,你的团队就能基于同样的请求工作,各自使用自己的凭据。
为差异而设计的文件
- 每个请求一个文件。更改一个请求,只改动一个文件。添加一个请求,只增加一个文件。
- 确定性。Echolot 每次都以同样的方式写入同样的内容:相同的键、相同的顺序,所以不做更改就存储不会改变任何东西,差异只显示你更改的部分。
- 可读。请求是 TOML;正文作为单独的文件放在请求旁边(
create-order.body.json),GraphQL 查询则是.graphql,因此它们的差异按 JSON 和 GraphQL 显示,而不是转义后的字符串。 - 顺序记在文件夹文件中。文件夹中项目的顺序是其
_folder.toml里的一个列表,而不是文件名的一部分,所以重新排序只改动一行。 - 你的注释会保留。你手动写在文件里的注释(
# why this header)在 Echolot 存储时会保留:顶部的注释块、键或表上方的注释,以及值后面的注释。针对已不存在的键的注释会被丢弃。
重新命名请求会同时重新命名它的文件,以及旁边的正文和脚本文件。重新命名环境则保留它的文件名。
提交什么
提交整个工作区文件夹。里面没有需要忽略的内容:Echolot 绝不会把机密值、历史记录、响应正文或你的个人设置写进去。
| 在工作区中(共享) | 仅在你的 Mac 上(不共享) |
|---|---|
| 请求、文件夹、它们的顺序、文档、认证和脚本 | 机密值,在钥匙串中 |
| 变量及其非机密值 | 全局变量 |
| 环境,以及哪些是受保护的 | 使用中的环境 |
| MCP 服务器、规范、模拟、流程 | 历史记录和响应正文 |
| 工作区的智能体规则、代理和证书 | 窗格布局和其他 App 设置 |
| 你选择共享的助手对话 | 你信任了哪些脚本和智能体规则 |
请保持 workspace.toml 中的工作区 ID 不变。Echolot 靠它找到每个人的机密值。
直接输入在字段中、而不是通过机密变量设置的值,会原样写入文件。Echolot 会在包含这类值的认证和代理字段下方发出警告(以纯文本形式存储在工作区文件中。);提交之前请点按移到钥匙串。见机密。
开始共享
- 把工作区放进 Git 仓库:在
.echolot文件夹中创建仓库,或把工作区作为文件夹保留在项目的仓库内。任何带有workspace.toml的文件夹都能在 Echolot 中打开。 - 提交并推送。
- 同事克隆仓库,并用文件 › 打开工作区… 打开工作区。
- 每位同事在自己的 Mac 上设置一次机密值:环境页面会为每一个显示未在这台 Mac 上设置。
命令行工具读取同样的文件,因此 CI 会运行你提交的请求。见在 CI 中测试。
来自 Git、编辑器和智能体的更改
Echolot 会监视工作区文件夹。文件在 Echolot 之外发生变化时(git pull、切换分支、编辑器、智能体),窗口会重新载入它们:边栏、打开的请求、环境、规范、模拟和流程会立即随之更新。
没有未存储编辑的已打开请求会直接采用新版本,不会询问。
请求的标签页中有未存储的编辑时,Echolot 不会偏向任何一方。请求上方会出现一个栏:此请求已在磁盘上更改,“你在此处有未存储的编辑时,另一个 App 或 Git 更改了该文件。”
- 保留我的版本保留标签页中的编辑,并把它们写到文件上。
- 使用文件中的版本丢弃标签页中的编辑,并从磁盘载入该文件。
在你选择之前,Echolot 不会存储这个请求,因此磁盘上的更改保持原样。
冲突期间关闭标签页
如果你在选择之前关闭标签页,Echolot 会询问:你有未存储的编辑时,“Create order”已在磁盘上更改。“关闭标签页后只会保留一个版本。”请选择保留我的版本、使用文件中的版本,或选择取消以保持标签页打开。 在冲突尚未解决时关闭窗口或退出,Echolot 会告诉你这项编辑无法存储,并在放弃它之前先询问,因此未经你同意,两个版本都不会丢失。
合并冲突
请在你的编辑器或 Git 工具中解决 Git 合并冲突,就像处理任何文本文件一样。仍含有冲突标记的文件不是有效的 TOML。文件无法读取期间,已打开的窗口会保留之前读取的内容;打开该工作区则会失败,欢迎窗口中的信息会指出文件名:“…”无法读取。修复该文件,工作区就能再次读取。
来自 Git 的脚本和智能体规则
脚本可以发送请求并读取工作区的变量,因此 Echolot 只有在你于自己的 Mac 上信任脚本之后才会运行它。你在 Echolot 中编写的脚本是受信任的。通过 Git、导入或其他编辑器到达的脚本,或其代码在那里被更改过的脚本,会显示这些脚本来自 Echolot 之外,直到你阅读它并点按信任脚本。见脚本和测试。
工作区的智能体规则也是如此:文件中收紧智能体权限的规则立即生效;放宽权限的规则,要在你于自己的 Mac 上信任该版本之后才算数。见智能体。
不用 Git 共享
要把工作区交给不使用 Git 的人,请将其导出为 Echolot 工作区。副本会获得新的 ID,所以它的机密与你的互相独立,机密值也绝不会写进去。
在访达中拷贝工作区文件夹会保留它的 ID。在同一台 Mac 上,副本和原件会从钥匙串读取相同的机密值。