/
main.go
53 lines (45 loc) · 1.08 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main
import (
"fmt"
"github.com/mattermost/mattermost-server/v6/model"
fn "github.com/thoas/go-funk"
"github.com/xanzy/go-gitlab"
)
const (
MMDOMAIN = ""
MMTOKEN = ""
MMCHANNELID = ""
GITLAB_URL = ""
GITLAB_TOKEN = ""
)
type User struct {
Username string
Email string
}
func main() {
client := model.NewAPIv4Client(MMDOMAIN)
client.SetToken(MMTOKEN)
users, resp, err := client.GetUsersInChannel(MMCHANNELID, 0, 200, "")
if err != nil {
fmt.Errorf("Error: %v", err)
}
if resp.StatusCode != 200 {
fmt.Errorf("Error: %v", resp)
}
// for _, user := range users {
// fmt.Println(user.Username)
// }
git, err := gitlab.NewClient(GITLAB_TOKEN, gitlab.WithBaseURL(GITLAB_URL))
if err != nil {
fmt.Errorf("Error: %v", err)
}
fu := fn.Filter(fn.Map(users, func(user *model.User) User {
return User{user.Username, user.Email}
}), func(user User) bool {
u, _, _ := git.Search.Users(user.Username, &gitlab.SearchOptions{})
return !fn.Contains(fn.Map(u, func(u *gitlab.User) string {
return u.Username
}), user.Username)
})
fmt.Println(fu)
}