VB.NET Jira - Issues: Add a Comment

Back to Index

Adds a new comment to an issue. This example adds a comment for the issue with key = "SCRUM-15".

Documentation: https://developers.atlassian.com/cloud/jira/platform/rest/#api-api-2-issue-issueIdOrKey-comment-post

CURL Command

curl --user jira@example.com:JIRA_API_TOKEN \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '
    {
      "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eget venenatis elit. Duis eu justo eget augue iaculis fermentum. Sed semper quam laoreet nisi egestas at posuere augue semper.",
      "visibility": {
        "type": "role",
        "value": "Administrators"
      }
    }' \
  --url 'https://your-domain.atlassian.net/rest/api/2/issue/SCRUM-15/comment'

VB.NET Example

Dim rest As New Chilkat.Rest
Dim success As Boolean

'  URL: https://your-domain.atlassian.net/rest/api/2/issue/SCRUM-15/comment
Dim bTls As Boolean = True
Dim port As Integer = 443
Dim bAutoReconnect As Boolean = True
success = rest.Connect("your-domain.atlassian.net",port,bTls,bAutoReconnect)
If (success <> True) Then
    Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
    Debug.WriteLine(rest.LastErrorText)
    Exit Sub
End If


rest.SetAuthBasic("jira@example.com","JIRA_API_TOKEN")

Dim json As New Chilkat.JsonObject
json.UpdateString("body","Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eget venenatis elit. Duis eu justo eget augue iaculis fermentum. Sed semper quam laoreet nisi egestas at posuere augue semper.")
json.UpdateString("visibility.type","role")
json.UpdateString("visibility.value","Administrators")

rest.AddHeader("Content-Type","application/json")
rest.AddHeader("Accept","application/json")

Dim sbRequestBody As New Chilkat.StringBuilder
json.EmitSb(sbRequestBody)
Dim sbResponseBody As New Chilkat.StringBuilder
success = rest.FullRequestSb("POST","/rest/api/2/issue/SCRUM-15/comment",sbRequestBody,sbResponseBody)
If (success <> True) Then
    Debug.WriteLine(rest.LastErrorText)
    Exit Sub
End If

Dim respStatusCode As Integer = rest.ResponseStatusCode
If (respStatusCode >= 400) Then
    Debug.WriteLine("Response Status Code = " & respStatusCode)
    Debug.WriteLine("Response Header:")
    Debug.WriteLine(rest.ResponseHeader)
    Debug.WriteLine("Response Body:")
    Debug.WriteLine(sbResponseBody.GetAsString())
    Exit Sub
End If


Dim jsonResponse As New Chilkat.JsonObject
jsonResponse.LoadSb(sbResponseBody)

Dim self As String
Dim id As String
Dim authorSelf As String
Dim authorName As String
Dim authorKey As String
Dim authorAccountId As String
Dim authorEmailAddress As String
Dim authorAvatarUrls48x48 As String
Dim authorAvatarUrls24x24 As String
Dim authorAvatarUrls16x16 As String
Dim authorAvatarUrls32x32 As String
Dim authorDisplayName As String
Dim authorActive As Boolean
Dim authorTimeZone As String
Dim body As String
Dim updateAuthorSelf As String
Dim updateAuthorName As String
Dim updateAuthorKey As String
Dim updateAuthorAccountId As String
Dim updateAuthorEmailAddress As String
Dim updateAuthorAvatarUrls48x48 As String
Dim updateAuthorAvatarUrls24x24 As String
Dim updateAuthorAvatarUrls16x16 As String
Dim updateAuthorAvatarUrls32x32 As String
Dim updateAuthorDisplayName As String
Dim updateAuthorActive As Boolean
Dim updateAuthorTimeZone As String
Dim created As String
Dim updated As String
Dim visibilityType As String
Dim visibilityValue As String

self = jsonResponse.StringOf("self")
id = jsonResponse.StringOf("id")
authorSelf = jsonResponse.StringOf("author.self")
authorName = jsonResponse.StringOf("author.name")
authorKey = jsonResponse.StringOf("author.key")
authorAccountId = jsonResponse.StringOf("author.accountId")
authorEmailAddress = jsonResponse.StringOf("author.emailAddress")
authorAvatarUrls48x48 = jsonResponse.StringOf("author.avatarUrls.48x48")
authorAvatarUrls24x24 = jsonResponse.StringOf("author.avatarUrls.24x24")
authorAvatarUrls16x16 = jsonResponse.StringOf("author.avatarUrls.16x16")
authorAvatarUrls32x32 = jsonResponse.StringOf("author.avatarUrls.32x32")
authorDisplayName = jsonResponse.StringOf("author.displayName")
authorActive = jsonResponse.BoolOf("author.active")
authorTimeZone = jsonResponse.StringOf("author.timeZone")
body = jsonResponse.StringOf("body")
updateAuthorSelf = jsonResponse.StringOf("updateAuthor.self")
updateAuthorName = jsonResponse.StringOf("updateAuthor.name")
updateAuthorKey = jsonResponse.StringOf("updateAuthor.key")
updateAuthorAccountId = jsonResponse.StringOf("updateAuthor.accountId")
updateAuthorEmailAddress = jsonResponse.StringOf("updateAuthor.emailAddress")
updateAuthorAvatarUrls48x48 = jsonResponse.StringOf("updateAuthor.avatarUrls.48x48")
updateAuthorAvatarUrls24x24 = jsonResponse.StringOf("updateAuthor.avatarUrls.24x24")
updateAuthorAvatarUrls16x16 = jsonResponse.StringOf("updateAuthor.avatarUrls.16x16")
updateAuthorAvatarUrls32x32 = jsonResponse.StringOf("updateAuthor.avatarUrls.32x32")
updateAuthorDisplayName = jsonResponse.StringOf("updateAuthor.displayName")
updateAuthorActive = jsonResponse.BoolOf("updateAuthor.active")
updateAuthorTimeZone = jsonResponse.StringOf("updateAuthor.timeZone")
created = jsonResponse.StringOf("created")
updated = jsonResponse.StringOf("updated")
visibilityType = jsonResponse.StringOf("visibility.type")
visibilityValue = jsonResponse.StringOf("visibility.value")

Sample JSON Response Body

{
  "self": "https://chilkat.atlassian.net/rest/api/2/issue/10014/comment/10019",
  "id": "10019",
  "author": {
    "self": "https://chilkat.atlassian.net/rest/api/2/user?username=admin",
    "name": "admin",
    "key": "admin",
    "accountId": "557058:be8b47b5-3bc0-43f6-b6b2-2cca0de12204",
    "emailAddress": "admin@chilkatsoft.com",
    "avatarUrls": {
      "48x48": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
      "24x24": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
      "16x16": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
      "32x32": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
    },
    "displayName": "Chilkat Admin",
    "active": true,
    "timeZone": "America/Chicago"
  },
  "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eget venenatis elit. Duis eu justo eget augue iaculis fermentum. Sed semper quam laoreet nisi egestas at posuere augue semper.",
  "updateAuthor": {
    "self": "https://chilkat.atlassian.net/rest/api/2/user?username=admin",
    "name": "admin",
    "key": "admin",
    "accountId": "557058:be8b47b5-3bc0-43f6-b6b2-2cca0de12204",
    "emailAddress": "admin@chilkatsoft.com",
    "avatarUrls": {
      "48x48": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=48&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D48%26noRedirect%3Dtrue",
      "24x24": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=24&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D24%26noRedirect%3Dtrue",
      "16x16": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=16&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D16%26noRedirect%3Dtrue",
      "32x32": "https://avatar-cdn.atlassian.com/16d54dcc6d4bef86fd7ee62a7cf6334a?s=32&d=https%3A%2F%2Fsecure.gravatar.com%2Favatar%2F16d54dcc6d4bef86fd7ee62a7cf6334a%3Fd%3Dmm%26s%3D32%26noRedirect%3Dtrue"
    },
    "displayName": "Chilkat Admin",
    "active": true,
    "timeZone": "America/Chicago"
  },
  "created": "2018-04-14T10:14:41.741-0500",
  "updated": "2018-04-14T10:14:41.741-0500",
  "visibility": {
    "type": "role",
    "value": "Administrators"
  }
}