Don't even try to write code like this

Q N R,Q,C,D,E,W,B,G,H,S,T,U,V,F,L,P,N,J,A S N=$G(N),Q='N,F=Q+Q,P=F+F,W=$L($T(Q))
 S W=$E(W,Q),S='N_+N,W=W-F*S,L=$G(L),R=$C(Q_F_P),R(F)=$C(F+Q_F),R(P)=$C(W-F) W #
 S T=$E($T(Q+F),F,W\S)_$C(W+S+F) X T S B=$P(T,$C(P_P),F),C=B\(W*W),D=B-(C*W*W)\W
 F G=S-Q:F:S+F+Q S E=B-(C*W*W+(D*W)),H=$E($T(Q),G),@H=$S(@H<S:'Q,Q:N)_@H,T=C_D_E
 F A=Q:Q:W\S S J=$E(T,A),C(F)=$S(J>(F+Q)&(J<(S-F)):Q,Q:+N),C(P)=$S(J#F:Q,Q:+N) D
 .S C(Q)=$S(J<(S-F):+N,Q:Q),C(F+Q)=$S(J>Q&(J<(S-F))&(J'=(P+'L))&(J'=(P)):Q,Q:+N)
 .S H('L)=L F  S H(N?.E)=$O(C(H('$G(N)))) Q:H('+L)=L  S F(A,H('L))=C(H(W[(W\S)))
 F U=Q:Q:P W !,R F V=Q:Q:P+F W $S(F(V,U):'Q,Q:$C(P_(W\S))) W:'(V#F) $C('N_F_F+F)
 W !!,R(F)_C_R(P)_D_R(P)_E_R(F) X $RE($E($T(Q),Q+F,P+Q))_R(P)_'N W # G:N=L Q+F Q

For sure full commands and functions more readable. Not only for your current developers but for any who will come later.

Scott, could you please specify, are you going to use Visual Studio or Visual Studio Code. Both are from Microsoft, but completely different products.

I know nothing about MS SQL. Visual Studio (not code) does support officially IRIS. There was one project, but already closed.

Visual Studio Code or VSCode itself supports GitHub by default very easy, just edit files locally, commit and push changes.

VSCode-ObjectScript is my extension for VSCode, adds support for Caché, Ensemble, and IRIS, any versions from 2016.2 (where were added Atelier support). It perfectly supports classes and routines, but if talk about "DTL, Business Process, Schema Editor, and etc" it does not have native support for it, but all of those staff based on classes, so, you can edit it as classes.

IRIS itself does not need to have support for GitHub, this task for an editor.

How secure is the Source Control if you integrate it with GitHub?

What do you mean here? Developers should manually choose what to commit to source control. It is not an automated task.

Wow, thats actually very different from what I expected.

So, now it depends, what is your application right now. If your application is a WEB Based, or textual terminal application it will be very different.

If it is a WEB, so, I think you can try some TWAIN libraries, as this device should support twain.

Or, it looks like it can just export image files somewhere, where you can just catch them.

Can you give some more details about your application and expected workflow?

The best solution right now would be to use something more modern than Jenkins, something base on Docker.

You can do it with any other on-prem tools like GitLab-CI, or Jenkins-X.

Some time ago I did some example repository for GitLab-CI, with Kubernetes deployment. I did not check it for a while, so, it may not work like it in the beginning, but I think it still can be useful as an example.

Another solution, I've implemented in one of the previous projects. I used pre-commit hooks, where I have some simple parser and scanned code for some temporary globals, such as ^tmp*, ^debug, ^log and so on (we actually had some naming convention for such global names), and it also checked for forbidden commands break, zwrite, zbreak.

By now I think would be good to add some checks to an editor as well, so, I think to add it to my VSCode-ObjectScript. So, VSCode will highlight recognized as debugging lines, as an error or warning.