Groups Command Group ==================== The ``yt groups`` command group provides user group and permissions management capabilities. This is a flatter alternative to ``yt admin user-groups`` that offers the same group management functionality in a more convenient format. .. contents:: Table of Contents :local: :depth: 2 Overview -------- The groups command group allows you to: * Create new user groups for organizing team members and permissions * List all available user groups in your YouTrack instance * Manage group membership and permission assignments * Organize users by roles, teams, or project access requirements User groups in YouTrack are essential for managing permissions at scale, allowing you to assign project access, workflow permissions, and system capabilities to multiple users simultaneously. Base Command ------------ .. code-block:: bash yt groups [OPTIONS] COMMAND [ARGS]... Group Management Commands ------------------------- Create User Groups ~~~~~~~~~~~~~~~~~ Create a new user group for organizing users and permissions. .. code-block:: bash yt groups create [OPTIONS] **Options:** * ``--name TEXT`` - Name of the group to create (required) * ``--description TEXT`` - Optional description of the group's purpose **Examples:** .. code-block:: bash # Create a basic user group yt groups create --name "Development Team" # Create a group with description yt groups create --name "QA Engineers" --description "Quality Assurance team members" # Create project-specific groups yt groups create --name "Web Project Contributors" --description "Contributors to web development project" List User Groups ~~~~~~~~~~~~~~~ List all user groups in your YouTrack instance. .. code-block:: bash yt groups list [OPTIONS] **Options:** * ``--format [table|json|csv]`` - Output format (default: table) **Examples:** .. code-block:: bash # List all user groups yt groups list # List groups in JSON format for processing yt groups list --format json # Export group list for reporting yt groups list --format csv > user-groups.csv Understanding User Groups ------------------------- Group Types and Purposes ~~~~~~~~~~~~~~~~~~~~~~~~ YouTrack user groups serve various organizational purposes: **Role-Based Groups:** * **Developers** - Software development team members * **QA Engineers** - Quality assurance and testing personnel * **Product Managers** - Product ownership and management roles * **Designers** - UI/UX design team members **Project-Based Groups:** * **Project Alpha Team** - Members working on specific project * **Mobile Development** - Cross-functional mobile development team * **Infrastructure Team** - DevOps and infrastructure specialists * **Client Services** - Customer-facing team members **Permission-Based Groups:** * **Administrators** - Users with system administration privileges * **Project Leads** - Users with project management permissions * **Reporters** - Users who can create and view issues but not resolve them * **Viewers** - Read-only access users Group Membership and Permissions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ User groups enable efficient permission management: **Permission Inheritance:** * Users inherit permissions from all groups they belong to * Group permissions can be assigned at project, workflow, and system levels * Multiple group memberships provide cumulative permission access **Dynamic Group Management:** * Group membership can be updated as team composition changes * New projects can leverage existing groups for consistent access control * Groups can be nested or have hierarchical relationships Integration with Admin Commands ------------------------------- The ``yt groups`` command is functionally identical to ``yt admin user-groups``. Both commands provide the same group management capabilities: .. code-block:: bash # These commands are equivalent: yt groups create --name "New Team" yt admin user-groups create --name "New Team" # These commands are equivalent: yt groups list --format json yt admin user-groups list --format json Choose the command style that fits your workflow: * Use ``yt groups`` for quick, direct access to group management * Use ``yt admin user-groups`` when working with other administrative operations Use Cases and Applications -------------------------- Team Organization ~~~~~~~~~~~~~~~~ Organize users by functional teams and roles: .. code-block:: bash # Create functional team groups yt groups create --name "Frontend Developers" --description "UI and frontend development team" yt groups create --name "Backend Developers" --description "API and backend development team" yt groups create --name "DevOps Engineers" --description "Infrastructure and deployment team" **Benefits:** * Clear team structure and responsibilities * Simplified permission management for team-based access * Easy identification of team members and their roles * Streamlined onboarding for new team members Project Access Control ~~~~~~~~~~~~~~~~~~~~~ Create project-specific groups for access management: .. code-block:: bash # Create project-specific access groups yt groups create --name "Project Phoenix Contributors" --description "All contributors to Project Phoenix" yt groups create --name "Project Phoenix Reviewers" --description "Code and issue reviewers for Project Phoenix" **Applications:** * Granular control over project access and visibility * Separate permissions for different project phases or components * Clear access boundaries between different projects or clients * Support for project-based team structures Permission Management ~~~~~~~~~~~~~~~~~~~~ Organize users by permission levels and access requirements: .. code-block:: bash # Create permission-based groups yt groups create --name "Issue Reporters" --description "Users who can create and comment on issues" yt groups create --name "Issue Resolvers" --description "Users who can resolve and close issues" yt groups create --name "Project Administrators" --description "Users with full project management access" **Use Cases:** * Hierarchical permission structures * Role-based access control implementation * Separation of duties for compliance requirements * Flexible permission assignment without individual user management Client and Stakeholder Management ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Organize external stakeholders and client representatives: .. code-block:: bash # Create stakeholder groups yt groups create --name "Client Stakeholders" --description "External client representatives" yt groups create --name "Business Analysts" --description "Internal business analysis team" **Benefits:** * Clear separation between internal team members and external stakeholders * Controlled access to client-facing information and projects * Simplified client onboarding and offboarding processes * Appropriate visibility levels for different stakeholder types Best Practices -------------- Group Naming Conventions ~~~~~~~~~~~~~~~~~~~~~~~~ Establish consistent naming patterns for groups: **Descriptive Names:** * Use clear, descriptive names that indicate the group's purpose * Include team function, project name, or permission level in the name * Avoid abbreviations that might be unclear to new team members **Consistent Patterns:** .. code-block:: bash # Team-based naming pattern yt groups create --name "Frontend Development Team" yt groups create --name "Backend Development Team" yt groups create --name "Quality Assurance Team" # Project-based naming pattern yt groups create --name "Project Alpha - Contributors" yt groups create --name "Project Alpha - Reviewers" yt groups create --name "Project Alpha - Stakeholders" Group Structure and Hierarchy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Plan group structure to support organizational needs: **Functional Organization:** * Create groups that mirror your organizational structure * Align groups with reporting relationships and team boundaries * Consider both permanent roles and temporary project assignments **Permission Levels:** * Create groups that correspond to different permission requirements * Plan for permission escalation and temporary access needs * Design groups that support both permanent and temporary access Group Lifecycle Management ~~~~~~~~~~~~~~~~~~~~~~~~~~ Manage groups throughout their lifecycle: **Creation:** * Plan group purpose and membership before creation * Document group responsibilities and access levels * Establish processes for adding and removing members **Maintenance:** * Regularly review group membership for accuracy * Update group descriptions as purposes evolve * Archive or remove groups that are no longer needed Automation and Integration -------------------------- Automated Group Management ~~~~~~~~~~~~~~~~~~~~~~~~~ Automate group creation for consistent organizational structures: .. code-block:: bash #!/bin/bash # Team onboarding script PROJECT_NAME="$1" if [ -z "$PROJECT_NAME" ]; then echo "Usage: $0 PROJECT_NAME" exit 1 fi # Create standard project groups yt groups create --name "$PROJECT_NAME - Contributors" --description "All contributors to $PROJECT_NAME" yt groups create --name "$PROJECT_NAME - Reviewers" --description "Code and issue reviewers for $PROJECT_NAME" yt groups create --name "$PROJECT_NAME - Stakeholders" --description "Business stakeholders for $PROJECT_NAME" echo "Groups created for project: $PROJECT_NAME" Group Reporting and Analysis ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Generate reports on group structure and membership: .. code-block:: bash # Export group information for analysis yt groups list --format json > groups-export.json # Create group summary report cat groups-export.json | jq -r ' ["Group Name", "Member Count", "Description"], (.[] | [.name, (.members | length), .description]) | @csv ' > groups-report.csv Integration with User Management ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Combine group management with user operations: .. code-block:: bash # Create groups and add users in batch operations yt groups create --name "New Project Team" # Add multiple users to the group (would require additional user management commands) # This demonstrates the integration pattern even if specific commands aren't implemented yet Directory Services Integration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For enterprise environments, groups often integrate with directory services: .. code-block:: bash # Example pattern for integrating with external directory systems # (Implementation would depend on specific directory service) # Export current groups for comparison with directory groups yt groups list --format json > youtrack-groups.json # Process directory information to maintain group synchronization # (This would be part of a larger integration solution) Security and Compliance ----------------------- Access Control Best Practices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Implement security-focused group management: **Principle of Least Privilege:** * Create groups with minimal necessary permissions * Regularly review and audit group permissions * Remove unused or overprivileged groups **Separation of Duties:** * Create distinct groups for different functional responsibilities * Avoid combining conflicting permissions in single groups * Implement approval processes for sensitive group membership changes Audit and Compliance ~~~~~~~~~~~~~~~~~~~~ Maintain compliance through group management: **Regular Reviews:** * Schedule periodic group membership reviews * Document group purposes and access justifications * Track group creation, modification, and deletion activities **Reporting:** * Generate regular reports on group structure and membership * Monitor for unused or inactive groups * Document group-based access decisions for compliance audits Troubleshooting --------------- Common Issues ~~~~~~~~~~~~~ **Group Creation Failures:** * Verify you have administrative permissions for group management * Check that group names don't conflict with existing groups * Ensure group names meet system naming requirements **Permission Issues:** * Confirm your user account has group management permissions * Verify you have access to the YouTrack administrative functions * Check that your authentication token includes administrative scopes **Group Listing Problems:** * Ensure you have permission to view user groups * Check network connectivity to YouTrack instance * Verify your authentication status is valid Authentication -------------- Group management requires administrative authentication and permissions. Make sure you're logged in with appropriate privileges: .. code-block:: bash yt auth login See Also -------- * :doc:`admin` - Complete administrative functionality including group management * :doc:`users` - User management and account administration * :doc:`projects` - Project management and access control * YouTrack User Group documentation for detailed permission configuration