準備
以下の Github を参考にして、Bot を作成します。
go get github.com/xanzy/go-gitlab
ユーザー名の取得
以下でユーザー名を取得することができます。
package main
import (
"log"
"github.com/xanzy/go-gitlab"
)
func main() {
git, err := gitlab.NewClient("-eo1D7ZVkyczkvTt4G7V",gitlab.WithBaseURL("http://192.168.202.129:9010/api/v4"))
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
users,_,err := git.Users.ListUsers(nil)
for _,i := range users {
fmt.Println(i.Name)
}
}
出力結果
>> go run git-bot-test.go
Golang
Administrator
新しい Issue を作成する
基本的には、option で詳しい内容などを設定してから create してあげる流れとなっています。
newTask := &gitlab.CreateIssueOptions{
Title: gitlab.String("CreateTaskTest"),
Description: gitlab.String("This is test from git-bot-test.go"),
}
_, _, err = git.Issues.CreateIssue(34,newTask)
if err != nil {
log.Fatal(err)
}
CreateIssueOptions は以下が指定できます。
type CreateIssueOptions struct {
IID *int
Title *string
Description *string
Confidential *bool
AssigneeIDs []int
MilestoneID *int
Labels Labels
CreatedAt *time.Time
DueDate *ISOTime
MergeRequestToResolveDiscussionsOf *int
DiscussionToResolve *string
Weight *int
IssueType *string
}
今回は、Title
と、Description
を編集しました。
また、CreateIssue 関数を用いることで、Issue の作成が行えます。
ここには、前半にプロジェクトの ID である PID と、先ほど設定した CreateIssueOptions を引数に持ちます。
以下のように、Issue が作成されます。