#!/usr/bin/env fish source /run/secrets/auamost/secrets.fish for i in (seq 1 (count $groups)) set team $teams[$i] set group $groups[$i] set users (curl -u $uffd_token --basic https://login.infra4future.de/api/v1/getusers -d group="$group") set usernames (echo "$users" | jq -c "[.[] | .loginname]") for user in (echo "$users" | jq -c ".[]") set id (echo "$user" | jq .id) set username (echo "$user" | jq .loginname) set email (echo "$user" | jq .email) curl -H $mattermost_token \ -H "Content-Type: application/json" https://mattermost.infra4future.de/api/v4/users \ -d '{"email": '"$email"', "username": '"$username"', "auth_service": "gitlab", "auth_data": "'"$id"'"}' end set userids (curl -H $mattermost_token \ -H "Content-Type: application/json" https://mattermost.infra4future.de/api/v4/users/usernames \ -d "$usernames" | jq '[.[] | {user_id: .id, team_id: "'$team'"} ]') curl -H $mattermost_token \ -H "Content-Type: application/json" https://mattermost.infra4future.de/api/v4/teams/"$team"/members/batch \ -d "$userids" if test "$group" = "hacc" continue end set current_members (curl -H $mattermost_token \ -H "Content-Type: application/json" https://mattermost.infra4future.de/api/v4/teams/"$team"/members | jq '[.[] | .user_id]') # membership relations don't contain e.g. usernames, so fetch those, too set current_users (curl -H $mattermost_token \ -H "Content-Type: application/json" https://mattermost.infra4future.de/api/v4/users/ids \ -d "$current_members" | jq -c '.[]') set userids (echo "$userids" | jq -c ".[].user_id") for member in $current_users set id (echo $member | jq .id) if not contains -i $id $userids > /dev/null then set id_unquoted (echo $member | jq -r .id) echo removing $id_unquoted (echo $member | jq '.email') from $team \($group\) curl -X DELETE -H $mattermost_token \ -H "Content-Type: application/json" https://mattermost.infra4future.de/api/v4/teams/"$team"/members/"$id_unquoted" end end end