Thanks @Nic Brough for taking the time to answer my question.
Here are snippets of code that helped to create a project , issue and subtask :
Project p = ComponentAccessor.getProjectManager().createProject(name, key, description, lead, url, AssigneeTypes.PROJECT_LEAD);
ComponentAccessor.getPermissionSchemeManager().addDefaultSchemeToProject(p);
ComponentAccessor.getIssueTypeScreenSchemeManager().addSchemeAssociation(p,
IssueManager issueManager = ComponentAccessor.getIssueManager();
IssueFactory issueFactory = ComponentAccessor.getIssueFactory();
JiraAuthenticationContext authenticationContext = ComponentAccessor.getJiraAuthenticationContext();
MutableIssue issueObject = issueFactory.getIssue();
issueObject.setProjectObject(project);
IssueType issueType = MyIssueType.getIssueType("Task");
issueObject.setIssueTypeId(issueType.getId());
issueObject.setSummary(summary);
issueObject.setAssignee(authenticationContext.getUser().getDirectoryUser());
Date today = new Date();
issueObject.setCreated(new java.sql.Timestamp(today.getTime()));
issueObject.setDescription(description);
Issue issue;
issue = issueManager.createIssueObject(authenticationContext.getUser().getDirectoryUser(), issueObject);
IssueManager issueManager = ComponentAccessor.getIssueManager();
IssueFactory issueFactory = ComponentAccessor.getIssueFactory();
JiraAuthenticationContext authenticationContext = ComponentAccessor.getJiraAuthenticationContext();
MutableIssue issueObject = issueFactory.getIssue();
issueObject.setIssueTypeId(subtaskType.getId());
issueObject.setParentId(parentIssue.getId());
issueObject.setFixVersions(parentIssue.getFixVersions());
issueObject.setAffectedVersions(parentIssue.getAffectedVersions());
issueObject.setPriorityObject(parentIssue.getPriorityObject());
issueObject.setSummary(summary);
issueObject.setAssignee(authenticationContext.getUser().getDirectoryUser());
Date today = new Date();
issueObject.setCreated(new java.sql.Timestamp(today.getTime()));
issueObject.setDescription(description);
Issue subTask;
subTaskManager.createSubTaskIssueLink(parentIssue,subTask,authenticationContext.getUser().getDirectoryUser());
There are three basic possibilities here:
You want to write an addon for Server versions of JIRA - addons like this can hook into the core of JIRA and do many powerful things, but can NOT be used on Cloud (unless Atlassian Cloud support adopt them, which is not easy to achieve). Start at https://developer.atlassian.com/jiradev/
You want to write an addon for Cloud JIRA - you can use Atlassian Connect to do this - see https://developer.atlassian.com/static/connect/docs/latest/guides/introduction.html (development guides are linked off there, but I think it's worth a quick read of the concepts too)
You want to write stuff that will run outside JIRA and tell it to do stuff via REST - see https://developer.atlassian.com/jiradev/api-reference/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-version-2-tutorial (there's more dry REST docs, but I prefer this one as a starting point)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.