This answer does not affect your whole question, only a small part of it.
To create a problem programmatically, you can use the New Problem function through the URL .
This allows you to create a problem with the title and description (using the template if necessary) through the URL with the parameters.
The URL is as follows:
https://gitlab.instance.url/group_name/project_name/issues/new?issue[title]=Your%20issue%20title&issue[description]=Issue%20description
I wrapped this in an AHK shortcut associated with CTRL ALT T. I have included the URLEncode function for completeness.
;; Create issue on Gitlab tasks list with selected text as issue title ^!t:: ClipSaved := ClipboardAll Sleep, 300 Send ^c title := URLEncode(clipboard) mainURL := "https://gitlab.instance.com/gitlab/group_name/project/issues/new?issue[title]=" fullURL := mainURL title Run, %fullURL% Clipboard := ClipSaved return UrlEncode( String ) { OldFormat := A_FormatInteger SetFormat, Integer, H Loop, Parse, String { if A_LoopField is alnum { Out .= A_LoopField continue } Hex := SubStr( Asc( A_LoopField ), 3 ) Out .= "%" . ( StrLen( Hex ) = 1 ? "0" . Hex : Hex ) } SetFormat, Integer, %OldFormat% return Out }
source share