[  
   {  
      "name":"repository",
      "displayName":"Repository",
      "type":"string",
      "description":"The repository the ConflictsBot will be attached to."
   },
   {  
      "name":"branchPrefix",
      "displayName":"Branch prefix",
      "type":"string",
      "description":"The prefix of the branches to check if they have conflicts with trunk branch. Example: 'PRJ-' prefix will consider branches named like 'PRJ-1234'. This is the same prefix that you use to link branches to the issue tracker (if any configured). Leave this field empty to track all branches in the repository."
   },
   {  
      "name":"trunkBranch",
      "displayName":"Trunk branch (Merge destination branch)",
      "type":"string",
      "description":"ConflicsBot will check if a tracked branch has manual conflicts with this one (e.g. '/main' or 'main')."
   },
   {  
      "name":"plasticBotUserToken",
      "displayName":"Bot User",
      "type":"user_api_key",
      "description":"The API Key of the Plastic SCM user the ConflicsBot will use to run the try-merge operation and other required queries."
   },
   {  
      "name":"plasticStatusAttributeGroup",
      "displayName":"Branch 'status' attribute",
      "type":"group",
      "description":"Configuration of 'status' attribute and its possible values.",
      "items":[  
         {  
            "name":"statusAttribute",
            "displayName":"Name of 'status' attribute",
            "type":"string",
            "description":"The attribute name that defines the lifecycle's status of a branch (e.g. 'status')."
         },
         {  
            "name":"resolvedValue",
            "displayName":"'Resolved' status value",
            "type":"string",
            "description":"The status value that means a branch is ready to be processed by ConflictsBot and hence to check whether the branch has manual merge conflicts (e.g. 'resolved')."
         },
         {  
            "name":"failedValue",
            "displayName":"Failed status value",
            "type":"string",
            "description":"The status value to set if the branch has manual merge conflicts (e.g. 'failed')."
         },
         {  
            "name":"mergedValue",
            "displayName":"Merged status value",
            "type":"string",
            "description":"The status value that means a branch is integrated. Once a branch is integrated, ConflicsBot won't process that branch anymore (e.g. 'merged')."
         }
      ]
   },
   {  
      "name":"issuesGroup",
      "displayName":"Issue Tracker Integration",
      "type":"group",
      "description":"All fields are case-sensitive!",
      "items":[  
         {  
            "name":"plugName",
            "displayName":"Plug",
            "type":"issuetracker_plug",
            "description":"The name of the 'issue tracker plug' that the bot uses to get task status. You probably need to configure it first."
         },
         {  
            "name":"projectKey",
            "displayName":"Project key",
            "type":"string",
            "description":"Key of the project whose issues will be related to the Plastic branches (if any)."
         },
         {  
            "name":"statusFieldGroup",
            "displayName":"Task status field",
            "type":"group",
            "description":"Task status field name and values.",
            "items":[  
               {  
                  "name":"statusAttribute",
                  "displayName":"Task status field name",
                  "type":"string",
                  "description":"The issue tracker field that defines the 'status' of related task branch. (e.g. 'status' in Jira)."
               },
               {  
                  "name":"resolvedValue",
                  "displayName":"Resolved status value(s)",
                  "type":"string",
                  "description":"The value (or values) of the 'status' field in the issue tracker that defines whether a task branch is ready to be processed by ConflictsBot (case-sensitive). You can specify several comma-separated status values for this matter."
               },
               {  
                  "name":"failedValue",
                  "displayName":"Failed status value",
                  "type":"string",
                  "description":"The value of the 'status' field in the issue tracker to set when a task fails if the task branch has manual merge conflicts (case-sensitive)."
               }
            ]
         }
      ]
   },
   {  
      "name":"notifierEmailGroup",
      "displayName":"Notifications",
      "type":"group",
      "description":"",
      "items":[  
         {  
            "name":"plugName",
            "displayName":"Plug",
            "type":"notifier_plug",
            "description":"The name of the 'notifier plug' to use to send notifications to the team."
         },
         {  
            "name":"introductionMessage",
            "displayName":"Custom message to prepend to the report:",
            "type":"string",
            "description":"A custom message to show before writing the result of the manual conflicts checks."
         },
         {  
            "name":"trailingMessage",
            "displayName":"Custom message to append at the end of the report on conflicts:",
            "type":"string",
            "description":"A custom message to show when the manual conflicts were detected."
         },
         {
            "name":"notifyOnSuccessfulTryMerge",
            "displayName":"Notify also if no conflicts were detected",
            "type":"bool",
            "description":"Send a notification even if no conflicts were detected when ConflictsBot checks a branch."
         },
         {  
            "name":"userProfileFieldName",
            "displayName":"User profile field",
            "type":"profile_field",
            "description":"The field in the profile to use to identify the correct user to notify. Either this field or the \"Always notify to\" one are mandatory if you're configuring a notifier plug (you should probably fill-in both)."
         },
         {  
            "name":"fixedRecipientsPlasticUsers",
            "displayName":"Always notify to:",
            "type":"string",
            "description":"Comma-separated list of users to notify on every event (plus the branch owner). Either this field or the \"User profile field\" one are mandatory if you're configuring a notifier plug (you should probably fill-in both)."
         }
      ]
   }
]