Comments
-
So while you are root while running, the startup routine changes the user to "jira" (the first column). But that shouldn't matter since the dbconfig is owned by jira and the owner has read and write permission (the first rw in -rwxr-xr-x) You can be sure by running: $ runuser jira -c 'cat /srv/jira/jira-data/dbconfig.xml'
-
Depending on how it was setup before, it's possible there is some user impersonation set up. After you star jira, can you confirm who owns the java process? $ ps -ef |grep jira
-
Next thing to check is to make sure that the process has access to the dbconfig.xml file. What user is your process running as? Who owns the dbconfig and what's the permission mask? Can you confirm that the jira user can read the file?
-
Review catalina.out, you might get some clues. Also look for hidden files in jira-home. If you see an empty file called .jira-home.lock (and with a created date that matches your start time) that means that jira found the jira-home and is using it. Then you can further review the <jira-home>/log/atlassian-jira.log If the…
-
It would seem that perhaps Jira is not finding your jira-home directory. How were you specifying that before? Using the JIRA_HOME environment variable? If unsure, you can try to set it in the <jira_install_dir>/atlassian-jira/WEB-INF/classes/jira-application.properties
-
Can you elaborate on what you mean by "each item in the array is mostly a duplicate"? Perhaps provide some example of what you are getting and how it differs from what you expect? I tested this scenario in my environment and the JSON appears correct in both cases.
-
Reverse engineering using browser developer tools is exactly how I came to my understanding. Do an action in the browser with developer tools open, examine the URL and payload in the network request tab. Try to make the same or similar call in postman or other similar tool. Rinse and repeat
-
I'm not familiar with the MAM or the XML structure, but sure... you could do that with scriptrunner. As part of designing the code for this in the workflow post function, you would need to know all the Jira fields and custom fields that you want to map to the XML. The best way to achieve that would be with the…
-
A few issues with your approach ... SchemeEntity (expected by getRecipient) != Scheme (result of getSchemeFor) IssueEvent (expected by getRecipient) != EventType (result of getEventTypes) The getRecipient is really expected to work in the context of a specific issue since some of the recipients could be based on field…
-
I haven't worked with IssueInputParamters much ... but based on the method description it looks like it expects only string values (and multiple arguments if you have multiple values. Try this for a single select addCustomFieldValue(inquiryTypeField.id, inquiryTypeValue.optionId.toString() ); Or this for a multi-select…
-
Yeah, building a whole custom form to avoid an extra comment seems overkill. Another option is to use a custom comment field on your request issue type that is only visible in the approve/reject transition. This would be easier to clear out the value with minimal history (or perhaps even before it is stored by the post…
-
Why don't you build that into the Request workflow rather than trying to use custom buttons? Create global transitions where the target status is the current status (so your request issue won't actually change). * Add a transition screen with only the comment * The workflow condition can determine when to show or hide the…
-
Yes, in the REST endpoint that returns your dialog. But don't mix MarkupBuilder with raw HTML sting. In your example, you'd want to include def dialog = """ <section role="dialog" id="sr-dialog" class="aui-layer aui-dialog2 aui-dialog2-medium" aria-hidden="true" data-aui-remove-on-hide="true"> <header>...</header> <div…
-
If I didn't include this link in my original response, here is the Adaptavist rudimentary documentation: https://docs.adaptavist.com/sr4js/6.23.0/features/script-fragments/custom-fragments/web-item#id-.WebItemv6.19.0-Dialogs(Advanced) But yes, the answer is to write some javascript that your dialog will trigger and that…
-
I would expect the word "Map" to be in lower case. But that depends on whether you have an actual variable called "map". But if you could share a larger snippet of the script I can help further debug.
-
I was clearly not paying very good attention ... I also didn't notice the "cloud" tag. My response only applies to server/DC, unfortunately.
-
Oops, I didn't read carefully ... this assumes both fields are on the same issue. If they are in different issue/project, you need to have a way to find the issue where the csv will be. But the approach will be similar except for how you get the csvValue.
-
Yes, that's possible using the Select List Conversion in scriptrunner behaviours. On the initializer and your multiline text field, place a script that looks like this: def csvFieldName = 'csv Field' def targetSelectFieldName = 'field to convert to select' def csvField = getFieldByName(csvFieldName) def targetSelectField =…
-
You can use the "simple scripted validator" for this. I would write the condition like this: import com.atlassian.jira.component.ComponentAccessor def linkMgr = ComponentAccessor.issueLinkManager linkMgr.getLinkCollection(issue, currentUser).allIssues.findAll{it != issue}.every{it.resolution}
-
My understanding of the requirement is that you want to show issues where the linked issue is unresolved. Many of the answers so far are only showing you how to limit the results based on the status or resolution of the issue you want to display in the search, not status on the other side of the link. I'm not a cloud user,…
-
Here is how I would implement this using behaviours. You will need to create a server-side initializer script, and a server-side script for your checkbox field. Place this code in both script boxes (adjust for field name and actual option values): import com.atlassian.jira.component.ComponentAccessor def customFieldManager…
-
I've encountered this and raised a support request a few years back. They pointed me to https://productsupport.adaptavist.com/browse/SRJIRA-2168 but that was ultimately fixed with the issue picker custom field rather than adjusting the convertToSingleSelect() functionality. I never tried the solution you pointed to... I…
-
The IssueManager has a getAllIssueKeys() method that makes this pretty easy. You could create a scripted field called "Previous Issue Keys" And add this script: import com.atlassian.jira.component.ComponentAccessor def issueManager= ComponentAccessor.issueManager def allKeys = issueManager.getAllIssueKeys(issue.id) return…
-
Probably a difference in jira version or version field display configuration difference. Try this: In behaviours, add the fixVersion Field and save your behaviour. Look at the URL Now, change the plugins/sevlet/scriptrunner/admin/behaviours/edit part of the URL with wih rest/scriptrunner/behaviour/latest/config This will…
-
Any errors in your atlassian-jira.log file when you open your create form and expect the field to be hidden? It should definitely work with getFieldById('fixVersions')
-
I don't think that's knowable. If you examine the URL when you access the form from one group or another, you will see they are identical. If that's a critical requirement, you will have to duplicate the request type and have each request type in a single group.
-
Static type checking errors are not always indicators of bad code. Just that the scriptrunner script editor can't confirm if the code is good or not. In this case, the "requestTypeService.getRequestTypes" returns a "PagedResponse" object that could contain different kind of items. So the code checker can't know we expect…
-
I can never wrap my head around for loops ... I'm so much more confortable with groovy methods. Here is how I would write a function that takes a list of rootOptions and returns all the child values based on the supplied parent value: import com.atlassian.jira.issue.customfields.option.Options def getChildOptions(Options…
-
Hey Leo Behaviours only gives you the request type name with getRequestTypeName() There may be a simpler way ... but the only way I know how to get the full request type object (which includes a getGroups method) from it's name is to pull a couple of services and managers and string them together like this: import…
-
Thanks for the heads-up @Benz Kek _Adaptavist_ please check it now.