Edits history of script submission #23050 for ' Update User Group Members (slack)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    import { WebClient } from "@slack/web-api"
    
    export type DynSelect_usergroup = string
    
    // Dropdown of the workspace's user groups; needs usergroups:read.
    export async function usergroup(auth: RT.Slack) {
      if (!auth?.token) return []
      const { usergroups } = await new WebClient(auth.token).usergroups.list()
      return (usergroups ?? []).map((g) => ({
        value: g.id!,
        label: `@${g.handle} (${g.name})`,
      }))
    }
    
    /**
     * Update User Group Members
     * Replace the full member list of a user group (e.g. @oncall) with the given user IDs — users not listed are removed. Workspace settings decide who may edit user groups; a bot token often gets permission_denied, so use a user token from someone allowed to. Requires usergroups:write on the connection (and usergroups:read for the group dropdown).
     */
    export async function main(
      auth: RT.Slack,
      usergroup: DynSelect_usergroup,
      users: string[]
    ) {
      const client = new WebClient(auth.token)
      return await client.usergroups.users.update({
        usergroup,
        users: users.join(","),
      })
    }
    

    Submitted by hugo989 10 days ago

  • bun
    import { WebClient } from "@slack/web-api"
    
    /**
     * Update User Group Members
     * Replace the full member list of a user group (e.g. @oncall) with the given user IDs — users not listed are removed. Workspace settings decide who may edit user groups; a bot token often gets permission_denied, so use a user token from someone allowed to. Requires usergroups:write on the connection.
     */
    export async function main(auth: RT.Slack, usergroup: string, users: string[]) {
      const client = new WebClient(auth.token)
      return await client.usergroups.users.update({
        usergroup,
        users: users.join(","),
      })
    }
    

    Submitted by hugo989 21 days ago