谷歌OpenCode工作空间
通过谷歌的开源,提供了OpenCode代理Gmail,驱动器,日历,文档,表格和谷歌工作区的其余部分 gws 每个更改都先计划好,只有在您批准后才提交。
非正式的;与b谷歌无关。
要求
- OpenCode
>=2.2.3 <2.3.0,在2.2.3和2.2.4上进行了测试。 - macOS (arm64, x64)或Linux (arm64, x64, glibc)。
- 一个谷歌帐户和一个桌面应用程序OAuth客户端:您自己的,或者您的组织提供的。
安装
opencode plugin add @joe-broadhead/opencode-gws
NPM也会安装匹配 @joe-broadhead/opencode-gws-bin-<target> 包,它保存未修改的 gws 二进制版本的插件引脚(细节). 运行时不会下载任何内容,也没有安装脚本。
在没有选项的情况下,插件创建一个只读帐户, default, bgmail,驱动器,日历,文档和工作表。
登录
运行 /connect 并选择 谷歌的工作区. 界面显示登录链接:按 o 或按回车键在浏览器中打开。命令行自动打开浏览器:
opencode auth login gws-default
没有谷歌OAuth客户端附带插件。第一次,表单要求您自己的桌面应用程序OAuth客户端的客户端ID和秘密,除非您的组织设置了一个(参见 组织推广). 要做一个,跟着做 创建桌面客户端. 表单在b谷歌的同意屏幕前列出了确切的范围。只读是默认值;读和写是一个单独的选择,需要确认。每个人都有几个账户 /connect 条目命名为 谷歌工作区(<alias>).
详情及范围表: 文档/ auth.md.
使用
问代理人你需要什么。它分为四个步骤:
gws_catalog查找操作,并且gws_schema显示其参数。gws_read执行读取操作。列表和搜索呼叫需要fields.gws_plan干运行更改并返回planId带有编辑预览。- 由计划的类别(
gws_write,gws_send,gws_share,gws_delete,gws_export或者gws_admin)运行它,只有planId. OpenCode首先会问你。
gws_status 告诉代理帐户别名以及是否丢失了登录。结果中的工作区内容是数据,而不是指令。
在TUI中, 谷歌工作区:状态 在命令面板中,或 /gws,打开状态对话框。在一次会议中, /gws-status 发布具有任何未决计划的相同状态,以及 /gws-doctor 对每个启用的服务进行一次小的读取。他们都不能批准或承诺。
权限
这个插件添加了一个请求规则 gws.write, gws.export, gws.send, gws.share, gws.delete 和 gws.admin 给每个代理,在代理的基本允许规则之后。读书不问,故而也在作工 opencode run.
后面的规则胜出。您自己的允许规则,或 总是 在写入或导出时,删除该提示。发送,分享,删除和管理从不提供总是。您的拒绝规则和Plan代理保持拒绝提交。每条规则都需要 resource:
{ "action": "gws.write", "resource": "work:*", "effect": "allow" }
仅在配置中定义的代理不会获得请求规则。 /gws-status 状态对话框命名这些代理并给出要首先添加的块 代理人自己的 permissions. 不要放在顶层 permissions这将放松Explore。
配置
插件条目上的选项有:帐户及其服务和访问、OAuth客户端、仅拒绝策略规则和管理门。看到 文档/ configuration.md 还有注释的 例子.
组织推广
在组织的谷歌云项目(用户类型)中创建一个桌面应用程序OAuth客户端 内部 将其保留到您的组织),并将其设置在OpenCode的系统配置中: /Library/Application Support/opencode/opencode.json 在macOS上,或者 /etc/opencode/opencode.json 在Linux上。
{
"plugins": [
{
"package": "@joe-broadhead/opencode-gws",
"options": {
"oauthClient": {
"clientId": "<your client ID>.apps.googleusercontent.com",
"clientSecret": "<your client secret>"
}
}
}
]
}
成员只能运行 /connect,选择谷歌Workspace,并选择访问级别:表单隐藏客户端字段并使用这些值。谷歌将桌面客户端的秘密视为非机密;安全性取决于PKCE、环回重定向和用户的同意。
故障排除
/gws-status 将每个帐户显示为 connected, sign-in required 或者 not configured,还有下一步。常见错误码:
| 代码 | 该怎么做 |
|---|---|
AUTH_REQUIRED | 运行 /connect 选择谷歌Workspace,或者运行 opencode auth login gws-<alias>. |
AUTH_SCOPE_MISSING | 再次登录并选择“读写”,或将范围添加到 accounts.<alias>.scopes. 什么跑。 |
AUTH_CLIENT_REQUIRED | 运行 /connect 并选择谷歌Workspace,然后输入您的Desktop OAuth客户端ID和密钥,或者询问您的管理员。 |
API_DISABLED | 在消息中的URL上启用API,等待大约一分钟,然后重试。 /gws-doctor 检查每个服务。 |
HOST_UNTESTED | 使用OpenCode 2.2.3或更高的2.2。X,或者集合 "allowUntestedHost": true. |
GWS_UNAVAILABLE | 重新安装,以便平台包存在或设置 binary.path 到一个 gws 固定版本的可执行文件(细节)。 |
POLICY_DENIED | 策略规则或管理员门拒绝呼叫。拒绝是最后的决定。 |
gws 使用OpenCode服务的代理设置,例如 opencode service set env HTTPS_PROXY http://proxy.example:8080. 所有的代码: 错误.
卸载
opencode plugin remove @joe-broadhead/opencode-gws
然后删除每个谷歌工作区登录 /connect,或 opencode auth logout gws-<alias>.