Development Tool

On This Page

    The Development Tool module allows an app to: - send Development Information to JIRA. This development information will be displayed in the development information panel when an issue is viewed. - Integrate the development tool into the Atlassian toolchain. This enables users to manually associate development entities, such as repositories, with Jira projects.

    When a user uninstalls an app, all the data that the app sent to Jira is deleted. If the app is reinstalled, this data won't be added back unless the app resends historical information to Jira.

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 { "modules": { "jiraDevelopmentTool": { "url": "https://bitbucket.org", "application": { "value": "Bitbucket" }, "logoUrl": "https://www.atlassian.com/dam/jcr:bd56917e-e361-4f03-b672-9f5ef5b06e80/Bitbucket-blue.svg", "capabilities": [ "commit" ], "name": { "value": "Bitbucket" }, "key": "bitbucket-integration" } } }

    Properties

    application
    Type
    i18n Property
    Required
    Yes
    Description

    The application behind this development tool

    Represents a string that can be resolved via a localization properties file. You can use the same i18n Property key and value in multiple places if you like, but identical keys must have identical values.

    Example

    1
    2
    3
    4
    {
      "value": "My text"
    }
    

    Properties

    value
    Type
    string
    Max length
    1500
    Required
    Yes
    Description

    The human-readable default value. This will be used if no translation exists. Only the following HTML tags are supported: b, i, strong, em, and code.

    i18n
    Type
    string
    Max length
    300
    Description

    The localization key for the human-readable value. Translations for the keys are defined at the top level of the add-on descriptor.


    capabilities
    Type
    [string,...]
    Required
    Yes
    Description

    What development information the tool offers


    key
    Type
    string
    Max length
    100
    Required
    Yes
    Pattern
    ^[a-zA-Z0-9-]+$
    Description

    A key to identify this module.

    This key must be unique relative to the add on, with the exception of Confluence macros: Their keys need to be globally unique.

    Keys must only contain alphanumeric characters and dashes.

    The key is used to generate the url to your add-on's module. The url is generated as a combination of your add-on key and module key. For example, an add-on which looks like:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
        "key": "my-addon",
        "modules": {
            "configurePage": {
                "key": "configure-me",
            }
        }
    }
    

    Will have a configuration page module with a URL of /plugins/servlet/ac/my-addon/configure-me.


    logoUrl
    Type
    string
    Format
    uri
    Required
    Yes
    Description

    The logo for the development tool, will be displayed in an area 16 by 16 pixels


    name
    Type
    i18n Property
    Required
    Yes
    Description

    A human readable name.

    Represents a string that can be resolved via a localization properties file. You can use the same i18n Property key and value in multiple places if you like, but identical keys must have identical values.

    Example

    1
    2
    3
    4
    {
      "value": "My text"
    }
    

    Properties

    value
    Type
    string
    Max length
    1500
    Required
    Yes
    Description

    The human-readable default value. This will be used if no translation exists. Only the following HTML tags are supported: b, i, strong, em, and code.

    i18n
    Type
    string
    Max length
    300
    Description

    The localization key for the human-readable value. Translations for the keys are defined at the top level of the add-on descriptor.


    url
    Type
    string
    Format
    uri
    Required
    Yes
    Description

    A URL to the development tool


    actions
    Type
    Development Actions
    Description

    Optional actions that can be performed by Jira users, e.g., create branch, etc.

    Development actions that can be performed by Jira users.

    Each action is optional (unless indicated otherwise). The absence of an action indicates that the action is not supported by the provider.

    Properties

    associateRepository
    Type
    object
    Description

    Action for fetching development repository for a given repository ID.

    If a repository with the given ID does not exist, the response should be a HTTP 404.

    Example request

    The templateUrl property of this action will receive a POST request when this action is invoked. The repository ID to be fetched will be included in the body.

    1
    2
    3
    4
    5
    
     {
       "id": "XXXX"
     }
     

    Example response

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
     {
       // Identifier of the repository which will be used to hydrate repository details. The ID does not need to conform to any specific format.
       id: "f730ce9c-3442-4f8a-93a4-a44f3b35c46b/target/111-222-333"
       // Human readable name of the repository
       name: "my-repo-name"
       // Url allowing Jira to link directly to the provider's repository
       url: "https://my.devinfo.provider.com/f730ce9c-3442-4f8a-93a4-a44f3b35c46b/container/f730ce9c-3442-4f8a-93a4-a44f3b35c46b"
       // Optional, url providing the avatar for the repository.
       avatarUrl: "https://res.cloudinary.com/snyk/image/upload/v1584038122/groups/Atlassian_Logo.png"
       // The date and time this repository was last scanned/updated
       lastUpdatedDate: "2022-01-19T23:27:25+00:00"
     }
     

    Defines the URL template that is used when an action is invoked.

    For the create branch action, the following context parameters are supported: {issue.key}, {issue.summary}.

    createBranch
    Type
    object
    Description

    Defines the URL template that is used when an action is invoked.

    For the create branch action, the following context parameters are supported: {issue.key}, {issue.summary}.

    createRepository
    Type
    object
    Description

    Action for creating a new repository.

    Example request

    The templateUrl property of this action will receive a POST request with request body when this action is invoked. The request body will be a JOSN payload consisting of: - workspaceId: The ID of the workspace in which to create the repository. This will be an ID which was supplied via the searchRepositories action within this same module. - name: The name of the repository to create.

    If the input provided is invalid, then the response should be a HTTP 400.

    1
    2
    3
    4
    5
    6
    7
    8
    
     "https://my.devinfo.provider.com/repos/create"
    
    Body: {
         "workspaceId": "12345",
         "name": "my-repo-name"
     }
     

    Example response

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
     {
       // Identifier of the repository which will be used to hydrate repository details
       "id": "f730ce9c-3442-4f8a-93a4-a44f3b35c46b/target/111-222-333"
       // Human readable name of the repository
       "name": "my-repo-name"
       // Url allowing Jira to link directly to the provider's repository
       "url": "https://my.devinfo.provider.com/f730ce9c-3442-4f8a-93a4-a44f3b35c46b/repo/f730ce9c-3442-4f8a-93a4-a44f3b35c46b"
       // Optional, url providing the avatar for the repository.
       "avatarUrl": "https://res.cloudinary.com/snyk/image/upload/v1584038122/groups/Atlassian_Logo.png"
       // The date and time this repository was last scanned/updated
       "lastUpdatedDate": "2022-01-19T23:27:25+00:00"
     }
     

    Defines the URL template that is used when an action is invoked.

    For the create branch action, the following context parameters are supported: {issue.key}, {issue.summary}.

    disassociateRepository
    Type
    object
    Description

    The disassociate action is called when a container is disassociated from the Jira project which it was previously associated with. This action is called to notify the provider to stop syncing this container with Jira.

    Example request

    The templateUrl property of this action will receive a POST request when this action is invoked. The repository ID will be included in the request body.

    1
    2
    3
    4
    5
    
     {
       "id": "XXXX"
     }
     

    Defines the URL template that is used when an action is invoked.

    For the create branch action, the following context parameters are supported: {issue.key}, {issue.summary}.

    searchConnectedWorkspaces
    Type
    object
    Description

    Action for showing any partial or full matches using a search on the connected development workspace name.

    Example request

    The templateUrl property of this action will receive a GET request with searchQuery when this action is invoked. The searchQuery param will be the users input. This query parameter is optional. This should be searched for against the workspace names, i.e. results for searchQuery="my-workspace-n" should include "my-workspace-name".

    1
    2
    3
    
     "https://my.devinfo.provider.com/repos/search?searchQuery=my-workspace-name"
     

    Example response

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
     {
       "workspaces": [
         {
           // Identifier of the workspace which will be used to hydrate workspace details. The ID does not need to conform to any specific format.
           "id": "f730ce9c-3442-4f8a-93a4-a44f3b35c46b/target/111-222-333"
           // Human readable name of the workspace
           "name": "my-workspace-name"
           // Optional, url allowing Jira to link directly to the provider's workspace
           "url": "https://my.devinfo.provider.com/f730ce9c-3442-4f8a-93a4-a44f3b35c46b/repo/f730ce9c-3442-4f8a-93a4-a44f3b35c46b"
           // Optional, url providing the avatar for the workspace.
           "avatarUrl": "https://res.cloudinary.com/snyk/image/upload/v1584038122/groups/Atlassian_Logo.png"
         }
       ]
     }
     

    Defines the URL template that is used when an action is invoked.

    For the create branch action, the following context parameters are supported: {issue.key}, {issue.summary}.

    searchRepositories
    Type
    object
    Description

    Action for showing any partial or full matches using a search on the repository name.

    Note that the workspace which each repository is contained within must be returned as a property of each repository.

    Example request

    The templateUrl property of this action will receive a GET request with optional query params searchQuery,page and limit when this action is invoked. - searchQuery: Optional, the users input. This should be searched for against the repository names, i.e. results for searchQuery="my-repo-n" should include "my-repo-name". - page: Optional, the current page for returning paginated results (default to 1) - limit: Optional, the number of items per page (default to 100)

    1
    2
    3
    
     "https://my.devinfo.provider.com/repos/search?searchQuery=my-repo-name&page=3&limit=50"
     

    Example response

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
     {
       "containers": [
         {
           // Identifier of the repository which will be used to hydrate repository details
           "id": "f730ce9c-3442-4f8a-93a4-a44f3b35c46b/target/111-222-333"
           // Human readable name of the repository
           "name": "my-repo-name"
           // Url allowing Jira to link directly to the provider's repository
           "url": "https://my.devinfo.provider.com/f730ce9c-3442-4f8a-93a4-a44f3b35c46b/repo/f730ce9c-3442-4f8a-93a4-a44f3b35c46b"
           // Optional, url providing the avatar for the repository.
           "avatarUrl": "https://res.cloudinary.com/snyk/image/upload/v1584038122/groups/Atlassian_Logo.png"
           // The date and time this repository was last scanned/updated
           "lastUpdatedDate": "2022-01-19T23:27:25+00:00"
           // The details of the workspace which this repository is in.
           "workspace": {
              // Identifier of the workspace
              "id": "f730ce9c-3442-4f8a-93a4-a44f3b35c46b/target/111-222-333"
              // Human readable name of the workspace
              "name": "my-workspace-name"
           }
         }
       ]
     }
     

    Defines the URL template that is used when an action is invoked.

    For the create branch action, the following context parameters are supported: {issue.key}, {issue.summary}.


    Rate this page: