62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"bufio"
|
|
"os"
|
|
|
|
"code.gitea.io/sdk/gitea"
|
|
)
|
|
|
|
func main() {
|
|
client, _ := gitea.NewClient("_REPO_", gitea.SetToken("_TOKEN_"))
|
|
|
|
users_to_delete := []*gitea.User{}
|
|
|
|
users, _, _ := client.SearchUsers(gitea.SearchUsersOption{
|
|
ListOptions: gitea.ListOptions{
|
|
PageSize: 100,
|
|
},
|
|
})
|
|
|
|
for _, user := range users {
|
|
repos, _, _ := client.ListUserRepos( user.UserName, gitea.ListReposOptions{
|
|
ListOptions: gitea.ListOptions{
|
|
PageSize: 100,
|
|
},
|
|
})
|
|
orgs, _, _ := client.ListUserOrgs( user.UserName, gitea.ListOrgsOptions{
|
|
ListOptions: gitea.ListOptions{
|
|
PageSize: 100,
|
|
},
|
|
})
|
|
all_repos, _, _ := client.SearchRepos( gitea.SearchRepoOptions{
|
|
ListOptions: gitea.ListOptions{
|
|
PageSize: 100,
|
|
},
|
|
})
|
|
is_collaborator := false
|
|
for _, x := range all_repos {
|
|
result, _, _ := client.IsCollaborator(x.Owner.UserName, x.Name, user.UserName)
|
|
if result {
|
|
is_collaborator = true
|
|
}
|
|
}
|
|
|
|
if user.StarredRepoCount == 0 && len(repos) == 0 && len(orgs) == 0 && !is_collaborator {
|
|
fmt.Printf("%+v - %+v\n", user.UserName, user.FullName)
|
|
users_to_delete = append(users_to_delete, user)
|
|
}
|
|
}
|
|
|
|
fmt.Print("These okay to delete? [y/n] ")
|
|
input := bufio.NewScanner(os.Stdin)
|
|
input.Scan()
|
|
fmt.Println(input.Text())
|
|
|
|
for _, x := range users_to_delete {
|
|
client.AdminDeleteUser(x.UserName)
|
|
}
|
|
|
|
}
|