Search code examples
javajira-rest-apijira-rest-java-api

setAssignee not working while adding Jira Issue


I created Jira issue by using jira library

<dependency>
    <groupId>com.atlassian.jira</groupId>
    <artifactId>jira-rest-java-client-app</artifactId>
    <version>5.2.1</version>
</dependency>

But while creating I am not able to set Assignee or AssigneeName for created JiraIssue.

This is my code

        BasicUser user = projectType.get().getLead();
        System.out.println(user.getDisplayName());
        builder = new IssueInputBuilder(project, issueType, issueDTO.getIssueSummery());
        builder.setProject(project);
        builder.setDescription(issueDTO.getIssueDescription());
        IssueInput input = builder.build();
        IssueRestClient client = restClient.getIssueClient();
        BasicIssue issue = client.createIssue(input).claim();
        //input = IssueInput.createWithFields(new FieldInput(IssueFieldId.ASSIGNEE_FIELD, ComplexIssueInputFieldValue.with("name", "Wraplive User")));
        builder.setPriorityId(1L);
        builder.setAssigneeName("Wraplive User");
        IssueInput issueInput = builder.build();
        client.updateIssue(issue.getKey(), issueInput);

I tried builder.setAssignee(user); // here it sets AssigneeName as Project lead which I don't require, I want to set another user or logged in username.

Can anyone help me where I am going wrong?

I tried with FieldInput which is commented in above code.


Solution

  • public JiraRestClient getJiraRestClient()
       {
        return new AsynchronousJiraRestClientFactory().createWithBasicHttpAuthentication(getJiraUri(), JIRA_USERNAME, JIRA_PASSWORD);
       }
    
    public URI getJiraUri()
    {
        return URI.create(JIRA_URL);
    }       
    

    //loadConnectionProperties(); restClient = getJiraRestClient();

        BasicProject project = null;
        IssueType issueType = null;
        IssueInputBuilder builder = null;
        try
        {
            final Iterable<BasicProject> projects = restClient.getProjectClient().getAllProjects().claim();
    
            for(BasicProject projectStr : projects)
            {
                if(projectStr.getKey().equalsIgnoreCase(PROJECT_KEY))
                {
                    project = projectStr;
                }
            }
    
            Promise<Project> projectType = restClient.getProjectClient().getProject(PROJECT_KEY);
    
            for(IssueType type : (projectType.get()).getIssueTypes())
            {
                if(type.getName().equalsIgnoreCase(Issue_Type))
                {
                    issueType = type;
                }
            }
    
            builder = new IssueInputBuilder(project, issueType, issueDTO.getIssueSummery());
            builder.setProject(project);
            builder.setDescription(issueDTO.getIssueDescription());
            builder.setPriorityId(1L);
            ***builder.setFieldInput(new FieldInput("assignee", ComplexIssueInputFieldValue.with("accountId", "557058:0fa57746-30a2-498c-9e34-9306679d0be7")));***
    
            IssueInput input = builder.build();
    
            IssueRestClient client = restClient.getIssueClient();
            BasicIssue issue = client.createIssue(input).claim();
    
            System.out.println(issue.getKey());
            LOG.error("Jira Created for  " + issueDTO.getIssueSummery() + " ID is :: " + issue.getKey());
    
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return false;
        }
    
        return true;