divekit role
Deprecated: use ‘members role’ to update member access levels
Synopsis
DEPRECATED: Please use ‘divekit members role’ instead.
Update GitLab access level for members in a distribution.
Changes the permission level for all project members across all repositories in a distribution by default. Pass specific members to update only those users. Downgrades also revoke overprivileged Project Access Tokens on affected work projects. Useful for adjusting access after deadlines or during different phases of an assignment.
Access Levels
guest Can view project but not clone/download
reporter Can clone and view issues
developer Can push to non-protected branches
maintainer Full access including protected branches
Use Cases
- Restrict access after submission deadline (developer → guest)
- Grant access for collaboration phase (guest → developer)
- Emergency lockdown of all repositories
Usage
divekit role [access-level] [member...] [flags]
Examples
# Set all members to developer access
divekit members role -d ST2M4 developer
# Restrict all members to guest (read-only)
divekit members role -d ST2M4 guest
# Using flag instead of positional argument
divekit members role -d ST2M4 --access-level reporter
# Re-enable specific members only
divekit members role -d ST2M4 developer alice bob
# Re-enable specific members with an interactive access-level prompt
divekit members role -d ST2M4 --member alice --member bob
# Interactive access level selection
divekit members role -d ST2M4
# Deprecated alias, still supported
divekit role -d ST2M4 developer alice bob
Flags
--access-level string New access level: guest|reporter|developer|maintainer
-d, --distribution string Distribution name
--member strings GitLab username to update; may be used multiple times
-r, --remote string Remote repository URL (e.g. GitLab instance)
-t, --token string GitLab token or token file path (file:///...)
Inherited Flags
-l, --loglevel string log level (debug, info, warn, error, fatal) (default "info")
--no-index skip project index update
--non-interactive run in non-interactive mode (fails if interactive input is required)
-y, --yes assume yes/default for all prompts (non-interactive with automatic defaults)