Exercise 23.1 - Bitbucket Integration

Objectives

The new learning objectives of this exercise are to create a repository connection to a Bitbucket repository on the Syndeia MagicDraw Plugin, 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 Bitbucket interface, correctly installed with a valid license for use

·         Syndeia Cloud 3.4 installed with a valid user account,

·         A valid user account to a Bitbucket repository, and

The user can use any Bitbucket repository they have available.  Because the content of your Bitbucket 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 – Bitbucket

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 Bitbucket repository. Figure 1 shows a view of this information in the Syndeia dashboard Repository Manager with labels identifying the Bitbucket element types. Note the different icons. The label color coding indicates how the Bitbucket 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 Bitbucket data model as it is understood by Syndeia is available through the Syndeia help menu.

Figure 1 Repository Manager view of Bitbucket 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 Bitbucket is available, right-click on Bitbucket in the left column and select Add... Complete the form and click OK (Figure 3).

    Figure 3 Adding a Bitbucket repository connection

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

    Figure 4 Updating Bitbucket repository info

  4. In the left column, select a Bitbucket repository connection (Bitbucket @ 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 Bitbucket artifact types. It may be necessary to right-click the repository and select Refresh before it can be expanded.

    Figure 5 Viewing Bitbucket 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 Repository or Resources in a repository.

    1. If Repository is selected, select the Bitbucket Workspace to be searched from the Select workspace pull-down menu (refresh menu items if necessary), fill in the Name… field and click Search.

    2. If Resources in a repository is selected, select the Bitbucket Workspace to be searched from the Select workspace pull-down menu (refresh menu items if necessary), select the Bitbucket Repository to be searched from the Select repository pull-down menu (refresh menu items if necessary), select branch, commit or tag, fill in the Name… field and click Search. In our example, we entered Intercax for Workspace, BigBang for Repository, branch and master for Name. 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 Bitbucket item and an element in another repository, go to the Connection Manager tab, select and expand the Bitbucket 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 Bitbucket on the right.

    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 Perimeter activity in SysML onto the master/README file in Bitbucket.
      Note: In Syndeia release 3.4, it is not possible to create Model Transform inter-model connections to Bitbucket. Some use cases of this type may be added in future releases.

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

  7. Having created the reference link, it can be used from the SysML modeling tool to access the Bitbucket element 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 Bitbucket element will appear in the user’s browser.

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

  8. The reference link can be used to detect changes in a Bitbucket versionable resource, such as a file, from the Syndeia dashboard. 

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

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

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



    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.

  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 (version 1e5ea …) but a newer version README (version 7292b…) is available.”

    Figure 10  Syndeia dashboard, Comparison Result tab

  10. The reference connection can be updated to point to the latest version of the Bitbucket element 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