Golang으로 Jira 자동화

9476 단어
오늘 기사에서는 Golang으로 Jira를 자동화하는 방법을 보여드리겠습니다.
Jira Software는 모든 유형의 팀이 작업을 관리할 수 있도록 설계된 제품군의 일부입니다. 원래 Jira는 버그 및 문제 추적기로 설계되었습니다. 그러나 오늘날 Jira는 요구 사항 및 테스트 사례 관리에서 민첩한 소프트웨어 개발에 이르기까지 모든 종류의 사용 사례를 위한 강력한 작업 관리 도구로 발전했습니다.
이 기사에서는 go-jira 라이브러리를 사용합니다. 시작하려면 jira atlas으로 이동하여 API 토큰을 생성해야 합니다. 나중에 볼 수 없으므로 생성 후 복사 버튼이 표시되면 토큰을 복사해야 합니다.
인증을 위해서는 다음이 필요합니다.
  • 귀하의 jira 토큰
  • 귀하의 jira 사용자 이름
  • 귀하의 jira 클라우드 URL

  • .env 파일에 다음과 같이 저장됩니다.

    JIRA_TOKEN=<jira token can be generated here: https://id.atlassian.com/manage-profile/security/api-tokens>
    JIRA_USER=<your email address>
    JIRA_URL=<jira url can be gotten from the url (https://username.atlassian.net/jira/software/projects/<projectname>/boards) by extracting this (https://name.atlassian.net) only >
    


    이제 코드를 작성하는 재미있는 부분으로 이동하겠습니다. :)

    
    package main
    
    import (
        "fmt"
        "os"
        "github.com/joho/godotenv"
        jira "github.com/andygrunwald/go-jira"
    )
    
    func init() {
        if envErr := godotenv.Load(".env"); envErr != nil {
            fmt.Println(".env file missing")
        }
    }
    
    func jiraClient() *jira.Client {
        jt := jira.BasicAuthTransport{
            Username: os.Getenv("JIRA_USER"),
            Password: os.Getenv("JIRA_TOKEN"),
        }
    
        client, err := jira.NewClient(jt.Client(), os.Getenv("JIRA_URL"))
        if err != nil {
            fmt.Println(err)
        }
    
        me, _, err := client.User.GetSelf()
        if err != nil {
            fmt.Println(err)
        }
    
        fmt.Println(me)
    
        return client
    }
    


    jira에서 새 문제를 생성하려면
  • go-jira repo의 Create an issue 예제는 아래에서 제공할 예제와 약간 다를 수 있으며 이는 현재 패키지의 버그로 인한 것입니다. 문제를 생성하기 위해 go-jira 저장소의 예제 코드를 사용하려고 하면 오류가 발생합니다. Jira에서 문제를 생성하기 위해 아래 예제를 생성한 방법입니다.

  • func CreateNewIssue() {
    
        client := jiraClient()
        i := jira.Issue{
            Fields: &jira.IssueFields{
                Description: "your issue description",
                Type: jira.IssueType{
                    Name: "you issue type e.g Bug, Task e.t.c",
                },
                Project: jira.Project{
                    Key: "your project key- this can be found under the project settings",
                },
                Summary: "your issue summary",
            },
        }
        issue, _, err := client.Issue.Create(&i)
        if err != nil {
            fmt.Println(err)
        }
    
        //update the assignee on the issue just created
        _, assignErr := client.Issue.UpdateAssignee(issue.ID, &jira.User{
            AccountID: "the assignee Id",
    //to get the assignee id, on your dashboard click on people.
    //From the dropdown menu click on search people and teams and then click on the user you wish to assign a task to
    //and then you should see this in ur url https://name.atlassian.net/jira/people/62e45a423780798663d14427.
    //The id <62e45a423780798663d14427> after people endpoint is the assignee id    
    })
    
        if assignErr != nil {
            fmt.Println(assignErr)
        }
    
        fmt.Println(issue)
    }
    

    좋은 웹페이지 즐겨찾기