Exercise 24.1 GitLab Integration

Objectives

The new learning objectives of this exercise are to create a repository connection to a GitLab repository with the Syndeia Plug-in for MagicDraw, view the repository including search, and create a reference connection.

Preparation

This exercise assumes the student has

·         Cameo System Modeler 18.0 - 19.0 (or MagicDraw with SysML plug-in) installed correctly on his or her machine with a valid license for use, and

·         Syndeia 3.4 installed as a plugin for Cameo/MagicDraw with a valid license for use

·         Syndeia GitLab interface, correctly installed with a valid license for user

·         Syndeia Cloud 3.4 installed with a valid user account,

·         A valid user account to a GitLab repository, and

The user can use any GitLab repository they have available.  Because the content of your GitLab repository will be different, the specific examples in the following exercise instructions are only a guide and example for your actions. It is generally advisable to carry out these exercises in a non-production repository, a “sandbox”, set up for training and practice purposes.

Background – GitLab

As envisioned by Intercax, the Digital Thread is composed of inter-model connections between models in different repositories, which Syndeia creates and manages, and intra-model connections between elements in the same repository, which the individual tool creates and manages. As of Syndeia release 3.4, the Syndeia Web Dashboard can extract and display some model information from the GitLab repository. Figure 1 shows a view of this information in the Syndeia dashboard Repository Manager with labels identifying the GitLab element types. Note the different icons. The label color coding indicates how the GitLab element type is mapped to the Syndeia Cloud element types: Repository (green), Container (red), and Artifact (blue).

This information is important in formulating and interpreting Syndeia graph queries. A more complete diagram of the GitLab data model as it is understood by Syndeia is available through the Syndeia help menu.

Figure 1 Repository Manager view of GitLab repository

Exercise 

  1. Launch the Syndeia Dashboard (see Video 1.1) and open the Repository Manager tab (Figure 2).

    Figure 2 Syndeia Dashboard, Repository Manager tab

  2. If no repository connection to GitLab is available, right-click on GitLab in the left column and select Add... Complete the form and click OK (Figure 3).

    Figure 3 Adding a GitLab repository connection

  3. If a GitLab repository connection already appears under GitLab, but you need to add your own access credential, select the GitLab repository and click the Gear icon at the top of the column. Complete username and password and click Update (Figure 4).

    Figure 4 Updating GitLab repository info

  4. In the left column, select a GitLab repository connection (GitLab @ Intercax). Your repository should appear at the top of the right side. Expand it to show some Branches and Commits, as in Figure 5. See Background section for discussion of GitLab artifact types. It may be necessary to right-click the repository and select Refresh before it can be expanded.

    Figure 5 Viewing GitLab repository contents on Repository Manager tab

  5. On the right border, click the button labeled Search Repository. In the Search Repository window under New Search, select Project or Resources in a project.

    1. If Project is selected, select the GitLab Group to be searched from the Select group pull-down menu (refresh menu items if necessary), fill in the Text contained in the name… field and click Search.

    2. If Resources in a project is selected, select the GitLab Workspace to be searched from the Select project pull-down menu (refresh menu items if necessary), select the GitLab Repository to be searched from the Select repository pull-down menu (refresh menu items if necessary), select branch, commit, issue, source or tag, fill in the Text contained in the name… field and click Search. In our example, we entered Intercax/HelloGitLab for project, commit and new for Text. The result(s) of the search are shown on the right, as in Figure 6.

    3. Click outside the Search window to close it.

      Figure 6  Syndeia dashboard, Repository Manager tab, Search feature (search result highlighted in red)

  6. To create a reference connection between a GitLab item and an element in another repository, go to the Connection Manager tab, select and expand the GitLab repository in one column and the second repository in the other. In our example in Figure 7, we have opened the MagicDraw model on the left and GitLab on the right.

    Figure 7  Syndeia dashboard, Connection Manager tab, creating reference connection

    1. Select Reference as the Connection Type in the center column.

    2. Create a reference connection by dragging an element in one column on top of an element in the other. Confirm that you want to create a reference connection. In our example, we dragged the Flight Return activity in SysML onto the develop/README file in GitLab.

      Note: In Syndeia release 3.4, it is not possible to create Model Transform inter-model connections to GitLab. Some use cases of this type may be added in future releases.

  7. Having created the reference link, it can be used from the SysML modeling tool to access the GitLab file by right-clicking on the linked SysML element in either the Containment browser or a diagram and selecting Syndeia/Open Connected Artifacts, as in Figure 8. The linked GitLab file will appear in the user’s browser.

    Figure 8  MagicDraw interface, launching connection to GitLab file from linked SysML element

  8. The reference link can be used to detect changes in the GitLab file from the Syndeia dashboard.

    1. Edit the GitLab file opened in the previous step. Change some part of the file and publish a new version.

    2. Back in the Syndeia dashboard, refresh the GitLab repository to load the latest repository contents.

    3. In the Connection Search tab of the Syndeia dashboard, click Get All to ensure that all connections are showing. Right-click the reference connection just created and select Compare Source and Target, as in Figure 9.

      Figure 9  Syndeia dashboard, Connection Search tab, comparing across reference connection

  9. The result of the compare operation is displayed as red (Figure 10) in a difference table. The Comment field states “Source artifact of this connection is non-versioned. There is nothing to compare. Target artifact of this connection is README.md (version f336b…) but a newer version README.md (version 95901…) is available”

    Figure 10  Syndeia dashboard, Comparison Result tab

  10. 10.  The reference connection can be updated to point to the latest version of the GitLab file by right-clicking on the connection in the Connection Search tab (Figure 9), the Comparison Result tab (Figure 10) or the Connection Browser tab (Figure 11) and selecting either Sync Source -> Target or Sync Target  -> Source. The result is the same for reference connections.

    Figure 11  Syndeia dashboard, Connection Browser tab, syncing across reference connection