xanzy / go-gitlab

GitLab Go SDK
Apache License 2.0
2.37k stars 940 forks source link

Allow setting custom roles to users on projects #1868

Closed dfredell closed 7 months ago

dfredell commented 7 months ago

Closes https://github.com/xanzy/go-gitlab/issues/1867 Prerequisite for https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/issues/6186

Documented API https://docs.gitlab.com/ee/api/members.html#add-a-member-to-a-group-or-project

dfredell commented 7 months ago

I wired it up locally to terraform and confirmed that project and group setting of member_role_id worked.


locals {
  # Guest role w/ Read code permission
  # https://gitlab.com/groups/flywheel-io/-/settings/roles_and_permissions
  custom_role_readonly_id = 1000640
  # group ID of the readonly team users
  team_readonly_id = 81031499
}

// Create membership entries for each
resource "gitlab_group_membership" "members" {
  # for_each = local.user_group_access_map

  group_id     = local.team_readonly_id
  user_id      = 19712725
  access_level = "guest"
  member_role_id = local.custom_role_readonly_id
}

// Create membership entries for each
resource "gitlab_project_membership" "members" {
  # for_each = local.user_group_access_map

  project     = 14305943
  user_id      = 19712725
  access_level = "guest"
  member_role_id = local.custom_role_readonly_id
}

image

On a group: image

On a project: image