👫
Groups
A Jira group is a convenient way to manage a collection of users. You can use groups throughout Jira to:
- Allow application access.
- Grant global permissions or project-specific access.
- Receive email notifications.
- Access issue filters and dashboards.
- Reference workflow conditions.
- Integrate with project roles.

This resource represents groups of users. Use it to get, create, find, and delete groups as well as add and remove users from groups.
Creates a group
- 🔒 Permissions required: Site administration
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/v2"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
atlassian, err := v2.New(nil, host)
if err != nil {
return
}
atlassian.Auth.SetBasicAuth(mail, token)
group, response, err := atlassian.Group.Create(context.Background(), "jira-users-22")
if err != nil {
log.Fatal(err)
}
log.Println("HTTP Endpoint Used", response.Endpoint)
log.Println("Group created", group.Name)
}
Deletes a group
- 🔒 Permissions required: Site administration
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/v2"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
atlassian, err := v2.New(nil, host)
if err != nil {
return
}
atlassian.Auth.SetBasicAuth(mail, token)
response, err := atlassian.Group.Delete(context.Background(), "jira-users-2")
if err != nil {
log.Fatal(err)
return
}
log.Println("HTTP Endpoint Used", response.Endpoint)
}
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/v2"
"github.com/ctreminiom/go-atlassian/pkg/infra/models"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
atlassian, err := v2.New(nil, host)
if err != nil {
return
}
atlassian.Auth.SetBasicAuth(mail, token)
options := models.GroupBulkOptionsScheme{
GroupIDs: nil,
GroupNames: nil,
}
groups, response, err := atlassian.Group.Bulk(context.Background(), &options, 0, 50)
if err != nil {
return
}
log.Println("HTTP Endpoint Used", response.Endpoint)
log.Println(groups.IsLast)
for index, group := range groups.Values {
log.Printf("#%v, Group: %v", index, group.Name)
}
}
🧚♀️ Tips: You can extract the following struct tags
type BulkGroupScheme struct {
MaxResults int `json:"maxResults,omitempty"`
StartAt int `json:"startAt,omitempty"`
Total int `json:"total,omitempty"`
IsLast bool `json:"isLast,omitempty"`
Values []struct {
Name string `json:"name,omitempty"`
GroupID string `json:"groupId,omitempty"`
} `json:"values,omitempty"`
}
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/v2"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
atlassian, err := v2.New(nil, host)
if err != nil {
return
}
atlassian.Auth.SetBasicAuth(mail, token)
members, response, err := atlassian.Group.Members(context.Background(), "jira-users", false, 0, 100)
if err != nil {
log.Fatal(err)
return
}
log.Println("HTTP Endpoint Used", response.Endpoint)
log.Println(members.IsLast)
for index, member := range members.Values {
log.Printf("#%v - Group %v - Member Mail %v - Member AccountID %v", index, "jira-users", member.EmailAddress, member.AccountID)
}
}
🧚♀️ Tips: You can extract the following struct tags
type GroupMemberPageScheme struct {
Self string `json:"self,omitempty"`
NextPage string `json:"nextPage,omitempty"`
MaxResults int `json:"maxResults,omitempty"`
StartAt int `json:"startAt,omitempty"`
Total int `json:"total,omitempty"`
IsLast bool `json:"isLast,omitempty"`
Values []*GroupUserDetailScheme `json:"values,omitempty"`
}
type GroupUserDetailScheme struct {
Self string `json:"self"`
Name string `json:"name"`
Key string `json:"key"`
AccountID string `json:"accountId"`
EmailAddress string `json:"emailAddress"`
DisplayName string `json:"displayName"`
Active bool `json:"active"`
TimeZone string `json:"timeZone"`
AccountType string `json:"accountType"`
}
Adds a user to a group
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/v2"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
atlassian, err := v2.New(nil, host)
if err != nil {
return
}
atlassian.Auth.SetBasicAuth(mail, token)
_, response, err := atlassian.Group.Add(context.Background(), "groupName", "accountID")
if err != nil {
return
}
log.Println("HTTP Endpoint Used", response.Endpoint)
}
Removes a user from a group
package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/v2"
"log"
"os"
)
func main() {
var (
host = os.Getenv("HOST")
mail = os.Getenv("MAIL")
token = os.Getenv("TOKEN")
)
atlassian, err := v2.New(nil, host)
if err != nil {
return
}
atlassian.Auth.SetBasicAuth(mail, token)
response, err := atlassian.Group.Remove(context.Background(), "groupName", "accountID")
if err != nil {
return
}
log.Println("HTTP Endpoint Used", response.Endpoint)
}
Last modified 1yr ago