
๐Edit Jira Issue (Implicit)
In this article, I would be showing you how to edit a Jira issue with the VERB operation using the "go-atlassian" library.
Step 1: Set up the project
Create a new directory for your project.
Open a terminal and navigate to the project directory.
Initialize a new Go module using the following command:
go mod init <module-name>
Step 2: Install the "go-atlassian" library
In the terminal, run the following command to install the "go-atlassian" library:
go get -v github.com/ctreminiom/go-atlassian
Step 3: Import the necessary packages
Create a new Go file (e.g.,
main.go
) in your project directory.Open the file and import the required packages:
package main
import (
"fmt"
"log"
"os"
jira "github.com/ctreminiom/go-atlassian/jira/v2"
)
You can use the V2 and V3 Jira endpoint versions.
Step 4: Authenticate with Jira
In the main
function, create a new Jira client and authenticate using your Jira URL, username, and API token:
func main() {
jiraHost := "https://<_jira_instance_>.atlassian.net"
mailAddress := "<your_mail>"
apiToken := "<your_api_token>"
client, err := jira.New(nil, jiraHost)
if err != nil {
log.Fatal(err)
}
client.Auth.SetBasicAuth(mailAddress, apiToken)
}
Step 5: Create Issue Payload
The fields of an issue may also be updated in more flexible ways using the SET, ADD and REMOVE operations. Not all fields support all operations, but as a general rule single value fields support SET, whereas multi-value fields support SET, ADD and REMOVE, where SET replaces the field contents while ADD and REMOVE add or remove one or more values from the the current list of values.
var operations = &models.UpdateOperations{}
err = operations.AddStringOperation("summary", "set", "Big block Chevy")
if err != nil {
log.Fatal(err)
}
err = operations.AddArrayOperation("components", map[string]string{
"name": "Trans/A",
})
err = operations.AddArrayOperation("labels", map[string]string{
"triaged": "remove",
"triaged-2": "add",
})
// If the need to add multi-array customfields, you can the following method:
// In this particular example, we're going to the manipulate the fixVersions field.
operations.AddMultiRawOperation("fixVersions", []map[string]interface{}{
{
"remove": map[string]interface{}{
"name": "Version 00",
},
},
{
"remove": map[string]interface{}{
"name": "Version 101",
},
},
{
"add": map[string]interface{}{
"name": "Version 301",
},
},
})
var payload = models.IssueSchemeV2{
Fields: &models.IssueFieldsSchemeV2{
Summary: "New summary test",
Priority: &models.PriorityScheme{Name: "Minor"},
},
}
Finally, call the Issue.Update() method and update the issue
_, err = client.Issue.Update(context.Background(), "KP-2", false, &payload, nil, operations)
if err != nil {
log.Fatal(err)
}
Step 6: Run the program
Save the
main.go
file.In the terminal, navigate to your project directory.
Execute the following command to run the program:
go run main.go
Last updated
Was this helpful?