Details
-
Feature
-
Status: Released (View Workflow)
-
Major
-
Resolution: Fixed
-
2.5.0, 2.6.0
-
None
Description
Current Situation
- JOC Cockpit offers Integration with Git repositories.
- A Git repository can be accessed from a single Git account only. If more than one JOC Cockpit account is used then they have to use the same Git account.
Desired Behavior
- Any number of JOC Cockpit accounts can be used and can be mapped to related Git accounts. Use of Git accounts works independently from the JOC Cockpit security level.
- Each JOC Cockpit user account's profile can hold an individual Git account.
- Git operations performed by JOC Cockpit on the command line using a Git Client
- create an individual .gitconfig Git file in a temporary directory,
- The .gitconfig Git file is created like this:
mkdir /tmp/.gitconfig$$ git config --file /tmp/.gitconfig$$/.gitconfig --add core.sshCommand "ssh -o StrictHostKeyChecking=no -i /var/sos-berlin.com/js7/joc/resources/joc/repositories/private/sos-community2_rsa" git config --file /tmp/.gitconfig$$/.gitconfig user.email monitor@sos-berlin.com git config --file /tmp/.gitconfig$$/.gitconfig user.name sos-community2 git config --file /tmp/.gitconfig$$/.gitconfig --add safe.directory /var/sos-berlin.com/js7/joc/resources/joc/repositories/rollout/sp-js7-demo-rollout-test
- The .gitconfig Git file is created like this:
- create an individual .gitconfig Git file in a temporary directory,
-
-
- The temporary directory and Git file are created per API request related to Git operations and to operations reading and writing files from/to the local repository.
- copy the individual Git .gitconfig file to the global $HOME/.gitconfig file. This operation is performed before each execution of the Git Client.
-
- Git operations are performed in transactions per Git repository:
- Any number of parallel Git operations can be performed as long as the same Git repository is not used in parallel.
- Access to the same Git repository is serialized in a way that makes Git operations wait for completion of a parallel operation. A timeout of 60s is applied to wait for a parallel transaction to complete. If the timeout is exceeded then the user receives an error message and can restart the Git operation.