PCM Development/Roles and rights management

Aus SDQ-Wiki

Overview

We currently use the following technologies to administrate the Palladio development process:

Motivation

  • Current situation: Project participants must be recorded and managed redundantly in GitHub organization and JIRA
  • Problem: change of team members too dynamic, results in high maintenance effort
  • Thus: Team structures (team organization) should not be mapped in GitHub organization and JIRA, but only access management (technical rights view)

Goal

  • Unification of roles & rights management for GitHub organization and JIRA
  • MDSD Tools GitHub organization should also be managed with downstream rules for Palladio GitHub organization.

General role concept

Overview on the identified cross-organizational roles

Cross-organizational roles
Cross-organizational roles Member
Administrators JIRA: Rollen/PCM Strategisch, Rollen/Jira] (https://sdqweb.ipd.kit.edu/wiki-intern/Rollen)
Employees Doktoranden, Professoren; Lehrstuhl KIT, FZI, Lehrstuhl Stuttgart
studentische wissenschaftliche Mitarbeiter in the context of Palladio HIWIs
Students & external partners e.g. Industriepartner

Overview on the role assignment for GitHub organization and JIRA (incl. read/write rights); these are statically guaranteed by the GitHub rights management.

Overview Role assignment GitHub organization and JIRA
General GitHub-Orga Jira
Administrators Owner site-admins/jira-administrators
Employees Member (in Repos Write/Maintain/Admin) jira-developers
studentische wissenschaftliche Mitarbeiter Member (NO admin in repos) jira-developers
Students & external partners outside collaborator (min. in 1 Repo.) (NO admin in repos) jira-user
Others outside collaborator (first time contributor) jira-software-users

Further information on GitHub roles:

Best practices: Rules for working with GitHub

  • Employees can add their own students as admins, but must also remove them
  • Employees can create their own repositories in the organization
    • follow naming convention
    • define (normally creator of the repo)
    • topic 'incubation' should be assigned (repo is therefore not part of the update site, the release and the product)
  • Employees are responsible for the maintenance of their created repos (i.e. archiving, making decisions about end-of-life, transferring responsibility to the community if necessary) -> Assume responsibilities according to https://sdqweb.ipd.kit.edu/wiki/Code_Repositories#Repository_Owners
  • Best practice in dealing with merge strategy

Workflows

JIRA

  • Registration: Developers/users must log in to JIRA by registering (the same workplace email address should be used as for git account to enable assignment during development work)
  • Joining the group:
    • by default (role: jira-software-users); have only read rights but no write permissions
    • for write permissions: JIRA admins must become active and assign a role to the registered user( default: jira-user, for developers jira-developer)

GitHub

  • Registration with GitHub: Create user account on GitHub
  • Joining the organization 'Palladio' (as member or outside collaborator)
    • member: GitHub administrators must become active and assign corresponding roles according to table see above.
    • outside collaborator: repository owner must become active and assign corresponding roles to repo access