enum

package
v0.67.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RunEnum

func RunEnum(gitlabUrl, gitlabApiToken string, minAccessLevel int)

RunEnum performs the enumeration of GitLab access rights

func RunEnumWithOptions added in v0.67.0

func RunEnumWithOptions(gitlabUrl, gitlabApiToken string, minAccessLevel int, opts ExportOptions)

RunEnumWithOptions performs enumeration and optionally writes export artifacts.

func WriteHTMLReport added in v0.67.0

func WriteHTMLReport(result *EnumResult, outputPath string) error

WriteHTMLReport writes a standalone HTML report for the current enum result.

Types

type EnumResult added in v0.67.0

type EnumResult struct {
	GeneratedAt     time.Time          `json:"generated_at"`
	GitLabURL       string             `json:"gitlab_url"`
	MinAccessLevel  int                `json:"min_access_level"`
	UsersEnumerated bool               `json:"users_enumerated"`
	User            *gitlab.User       `json:"user"`
	Users           []*gitlab.User     `json:"users"`
	Token           *SelfToken         `json:"token"`
	Associations    *TokenAssociations `json:"associations"`
}

EnumResult contains collected user, token and access association data.

type ExportOptions added in v0.67.0

type ExportOptions struct {
	HTMLReportPath string
	EnumerateUsers bool
}

ExportOptions controls optional enum artifact generation.

type SelfToken

type SelfToken struct {
	ID          int       `json:"id"`
	Name        string    `json:"name"`
	Revoked     bool      `json:"revoked"`
	CreatedAt   time.Time `json:"created_at"`
	Description string    `json:"description"`
	Scopes      []string  `json:"scopes"`
	UserID      int       `json:"user_id"`
	LastUsedAt  time.Time `json:"last_used_at"`
	Active      bool      `json:"active"`
	ExpiresAt   string    `json:"expires_at"`
	LastUsedIps []string  `json:"last_used_ips"`
}

type TokenAssociationGroup added in v0.67.0

type TokenAssociationGroup struct {
	ID                int                      `json:"id"`
	WebURL            string                   `json:"web_url"`
	Name              string                   `json:"name"`
	ParentID          interface{}              `json:"parent_id"`
	OrganizationID    int                      `json:"organization_id"`
	AccessLevels      int                      `json:"access_levels"`
	Visibility        string                   `json:"visibility"`
	Members           []TokenAssociationMember `json:"members,omitempty"`
	MembersEnumerated bool                     `json:"members_enumerated,omitempty"`
	MembersAccessible bool                     `json:"members_accessible,omitempty"`
	MembersError      string                   `json:"members_error,omitempty"`
	MemberCount       int                      `json:"member_count,omitempty"`
}

type TokenAssociationMember added in v0.67.0

type TokenAssociationMember struct {
	ID          int64  `json:"id"`
	Username    string `json:"username"`
	Name        string `json:"name"`
	Email       string `json:"email"`
	WebURL      string `json:"web_url"`
	State       string `json:"state"`
	AccessLevel int    `json:"access_level"`
}

type TokenAssociationProject added in v0.67.0

type TokenAssociationProject struct {
	ID                int                              `json:"id"`
	Description       string                           `json:"description"`
	Name              string                           `json:"name"`
	NameWithNamespace string                           `json:"name_with_namespace"`
	Path              string                           `json:"path"`
	PathWithNamespace string                           `json:"path_with_namespace"`
	CreatedAt         time.Time                        `json:"created_at"`
	AccessLevels      TokenAssociationProjectAccess    `json:"access_levels"`
	Visibility        string                           `json:"visibility"`
	WebURL            string                           `json:"web_url"`
	Namespace         TokenAssociationProjectNamespace `json:"namespace"`
	Members           []TokenAssociationMember         `json:"members,omitempty"`
	MembersEnumerated bool                             `json:"members_enumerated,omitempty"`
	MembersAccessible bool                             `json:"members_accessible,omitempty"`
	MembersError      string                           `json:"members_error,omitempty"`
	MemberCount       int                              `json:"member_count,omitempty"`
}

type TokenAssociationProjectAccess added in v0.67.0

type TokenAssociationProjectAccess struct {
	ProjectAccessLevel int `json:"project_access_level"`
	GroupAccessLevel   int `json:"group_access_level"`
}

type TokenAssociationProjectNamespace added in v0.67.0

type TokenAssociationProjectNamespace struct {
	ID        int         `json:"id"`
	Name      string      `json:"name"`
	Path      string      `json:"path"`
	Kind      string      `json:"kind"`
	FullPath  string      `json:"full_path"`
	ParentID  interface{} `json:"parent_id"`
	AvatarURL string      `json:"avatar_url"`
	WebURL    string      `json:"web_url"`
}

type TokenAssociations

type TokenAssociations struct {
	Groups   []TokenAssociationGroup   `json:"groups"`
	Projects []TokenAssociationProject `json:"projects"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL