Custom url plugin for Jira - jira

Is it possible to make a plugin for Jira that behaves as custom url?
For example, suppose if I have jira on http://jira.example.com and I want to get some data from e.g. http://jira.example.com/record/{id}, where id is parameter for plugin. And output data is audio stream.

You can create a JIRA plugin with a REST module to display arbitrary content with a URL similar to the following:
http://jira.example.com/rest/record/{id}.
If you prefer, you could write it as a straight servlet module instead, with a URL such as this:
http://jira.example.com/plugins/servlet/record/{id}
If you want to expose an endpoint at the main http://jira.example.com/record level, I am not aware of any way to do that within a plugin. (It should be possible, albeit not very portable, by editing the configuration files in the JIRA program directory.)

Related

Is it ok to directly overwrite Dataflow template parameters that are set at build-time?

We would like to prevent certain parameters (namely filesToStage) of our Dataflow template from populating in the Dataflow Job page. Is there a recommended way to achieve this? We've found that simply specifying "filesToStage=" when launching the template via gcloud suffices, but we're not sure if this is robust/stable behavior.
For context, we are hosting this Dataflow template for customer usage and would like to hide as much of the implementation as possible (including classpaths).
Specifically the filesToStage can be sent as blank and the files will be inferred based on the Java classpath:
If filesToStage is blank, Dataflow will infer the files to stage based on the Java classpath.
More information on the considerations for this and other fields can be found here.
For other parameters, the recommendation is to use Cloud KMS to keep the parameters hidden.

I want to get parent issue's custom field data to be inherited to subtask custom field

I want to get parent issue's custom field data to be inherited to subtask custom field without using third party plugins.
Is there any way to do this by Groovy script or any plugin code
How are you going to run your groovy script if you're not going to use a third-party add-on? Typically Script Runner is used to do this because it allows you to easily script fields, postfunctions and/or listeners.
If you want to implement your own add-on, assuming you run a standalone JIRA and not a cloud JIRA, you can start here.
You then have different options to implement what you need. For JIRA Server you could:
Use a listener
Use a postfunction
Use a custom field. For tutorials look here and here.

archiver/publisher for external artifact URL

I'm generating a presigned S3 URL as part of a workflow job, which is passed into a build step that essentially runs outside of the workspace (via ssh). I've been unable to identify an existing publish or archive plugin (workflow compatible or not) that will allow setting an external URL. Is there a plugin or workaround that enables setting a URL as an artifact or the addition of simple metadata to the build results?
I'm a bit surprised that there isn't a way to publish metadata directly from a workflow -- it seems like this would be insanely useful functionally. Have I missed something obvious?
JENKINS-26918 proposes support for some of the features in the Groovy Postbuild plugin. Using core Workflow, you can call
currentBuild.description = "Published"
(or whatever your installation’s markup formatter allows).

remote API to create file under $JENKINS_HOME/jobs/jobName/

jenkins has an existing way to modify jobName/config.xml file through post data to url ../jobName/api/config.xml
is it possible to create other files under /JENKINS_HOME/job using the same way like config.xml?
if not, is there an existing plugin to implement my requirement?
if no existing plugin, I'm afraid I have to develop it by myself, so did jenkins provide the extention point which allow me do so?

Grails: Using "external configuration" to get a plugin's data source

I'm building a plugin that will contain sharable code and configuration for several applications. One things that I'm trying to share is the data source information. Basically I need the application to not have to define it's own data source and instead use the plugin's data source. The best way that I can think of doing this is to take advantage of the external configuration functionality that's available in Grails (http://grails.org/doc/latest/guide/conf.html#3.4%20Externalized%20Configuration). However, I'm not exactly sure how to do this. All the examples I can find online show you how to do this when using an external file on the file system somewhere. I want to use configuration files from the plugin.
According to the documentation linked to above you can specify a "config script" class to use like this:
grails.config.locations = [com.my.app.MyConfig]
This would probably work, however, I can't find documentation on what a "config script" class actually is and how to create one.
By default, the DataSource file of your plugin will not be used (it's ignored in the package stage) but you can create another file that ends with "DataSource" (eg MyPluginDataSource). This is also true for BootStrap and Config.
You will probably need to leave the application DataSource file empty.

Resources