用途:向指定 JFrog Platform 项目添加用户和组,并分配角色,适合项目成员管理、开发者入职等场景。
主要能力:以 project_key 加 members 对象(可含 users、groups 数组)为输入,通过 jf api 调用 /access/api/v1/projects/ 接口为成员分配角色。支持内置角色 Project Admin、Developer、Contributor、Viewer,也支持项目中定义的自定义角色(需使用准确角色名)。可列出当前项目用户和组。
使用方式:优先使用 jf api,curl 为回退方案。若未设置 JFROG_URL 或 JFROG_ACCESS_TOKEN,会尝试从 .env 加载。添加用户示例:jf api "/access/api/v1/projects/$PROJECT_KEY/users/$JFROG_USER_NAME" -X PUT -H "Content-Type: application/json" -d '{"name": "'"$JFROG_USER_NAME"'", "roles": ["Developer"]}';添加组将路径改为 /groups/$GROUPNAME。列出成员:jf api "/access/api/v1/projects/$PROJECT_KEY/users" | jq . 及 groups 路径。
强制校验:分配前必须校验所有用户和组在平台中存在,使用 /access/api/v2/users/ 和 /access/api/v2/groups/ 检查 HTTP 200。若任一缺失,不进行任何分配,列出全部缺失项,并询问是否调用 jfrog-create-users-groups 创建;创建时先建组后建用户,再用 jfrog.default_password;创建后重新校验。
批量处理注意:循环中不要使用 USERNAME 变量名,改用 JFROG_USER_NAME 等前缀名。
错误处理:409 视为成功(成员已存在且角色相同);404 应被前置校验拦截,若仍出现则中止并报告;400 表示角色名无效,需报告可用角色。
限制:具体价格、平台兼容性、所需权限细节暂未提供。