LoginSignup
1
0

More than 1 year has passed since last update.

Go 言語で GitLab Bot の作成

Last updated at Posted at 2021-12-21

準備

以下の 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 が作成されます。

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0