Exercise 6.1 - GitHub Integration on Web Dashboard
Objectives
The new learning objectives of this exercise are to create a repository connection to a GitHub repository on the Syndeia Web Dashboard (SWD), view the repository including properties, relations and search, and create a reference connection.
Preparation
This exercise assumes the student has
● Syndeia Cloud 3.4 installed with a valid user account,
● A valid user account to a GitHub repository, and
● A valid user account to a at least one other on-line repository, e.g. JIRA.
The user can use any GitHub repository they have available. Because the content of your GitHub 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.
See Video 1.9 for an introduction to the Syndeia Web Dashboard.
Background – GitHub
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 GitHub repository. Figure 1 shows a tree view of this information, with labels identifying the GitHub element types. Note the different icons. The label color coding indicates how the GitHub element type is mapped to the Syndeia Cloud element types: Repository (green), Container (red), and Artifact (blue).
In the case of the Syndeia GitHub integration, the Relations table (Step 7) and the Digital Thread Explorer (Step 9 onwards) do not display any intra-model connection types, only inter-model connections.
This information is important in formulating and interpreting Syndeia graph queries. A more complete diagram of the GitHub data model as it is understood by Syndeia is available through the web dashboard help menu on the left.
Figure 1 Tree view of GitHub repository
Exercise
Log on to the Syndeia Cloud Web Dashboard (see Video 1.9) and click on the Repositories icon on the left border (Figure 2).
Figure 2 SWD Repositories page (initial) – Repositories icon outlined in red
If no repository connection to GitHub is available, select GitHub in the left column, then click the + icon at the top of the column. Complete the form and click Create (Figure 3).
Figure 3 Adding a GitHub repository connection
If a GitHub repository connection already appears under GitHub, but you need to add your own access credential, select the GitHub repository and click the Gear icon at the top of the column. Complete username and password and click Update (Figure 4).
Figure 4 Updating GitHub repository info
Your repository should load. Expand it to show Branches and Commits, as in Figure 5. See Background section for discussion of GitHub artifact types.
Figure 5 Viewing GitHub repository contents on Repositories page
On the right border, there are three icons, labeled Details, Relations and Search. Select a GitHub element in the Tree View column (the 0468e… commit in our example) and click on the Details icon. A Detail list appears to the right as in Figure 6. Scroll down and review the attributes of the GitHub element that are available to Syndeia 3.4, including name, type and url. Click the Details icon again to close the list.
Figure 6 SWD Repositories page, Details list (Details icon highlighted in red)
Click the Search icon on the right.
In the Search window, select the Workspace from the pull-down menu.
Select Repository or Resources in a repository. If Repository is selected, select the Repository Scope from the pull-down menu (Owner, Collaborator or Org Member), fill in the Name Contains field and click Search.
If Resources in a repository is selected, select from the Repository Scope pull-down menu, select the type of GitHub element to be searched for from the Type pull-down menu, fill in the Name field and click Search. In our example, we entered mathematica for Repository, branch for type, and master for Name. The result(s) of the search are shown on the right, as in Figure 7.
Click the Search icon again to close the Search window.
Figure 7 SWD Repositories page, Search feature (Search icon and search result highlighted in red)
Select a GitHub element in the Tree View column (o468e… commit in our example) and click on the Relations icon on the right.
In the Relations window (Figure 8), you will see a list of Inter-model relations, from the selected GitHub element to other non-GitHub models, and a list of Intra-model relations, from the selected GitHub element to other GitHub elements in the same GitHub repository. In this example, there are two Inter-model relations, both to Bitbucket commits. As discussed in the Background section earlier, Syndeia 3.4 does not recognized any intra-model relationship types with GitHub (or the other integrated Git repositories).
Figure 8 SWD Repositories page, Relations lists (Relations and Add icons highlighted in red)
To create a reference connection between the selected GitHub item and an element in another repository, click on the + (Add) icon highlighted in Figure 8. A Create Reference Relationships window will appear as in Figure 9.
At the top, either select an existing Syndeia project to save the connection within (DZSB13 in our example) or create a new project. See Video 1.5 on creating Syndeia projects for further discussion.
Under Select target artifact, choose the other repository to which the new connection will be made. In our example this is JIRA @ Intercax.
If you have valid access to this repository, its contents will appear at the bottom of the window. Scroll down to the element that will be the target of the new connection and click the checkbox beside it. This is JIRA issue ADS-11 in our example.
Each Syndeia connection has a directionality. The Select direction pull down menu higher up in the window allows the directionality to be set as desired before the connection is made.
Click on the Create Reference Connection button at the bottom. The new connection should appear in the Inter-model list after the Reload icon is clicked.
Click the Relations icon again to close the Relations window.
Note: In Syndeia release 3.4, it is not possible to create Model Transform inter-model connections or intra-model connections through the SWD. Some of those use cases will be added in future releases.Figure 9 SWD Create Reference Relationship window
The Digital Thread Explorer or DTE (Figure 10 - Figure 12) provides interactive visualization of inter-model and intra-model connections in a graph format. To launch DTE, right-click an item in the Tree View and choose Graph View. In our example, this is a GitHub branch Page develop. Initially, it appears as a single node in the Graph View, as in Figure 10.
Figure 10 DTE, stage 1
Click on the node (it will show a black border when selected), right-click on it and choose Expand. If this element has any connections, they should appear as in Figure 11. In our example, the initial element had three inter-model connections, one to a JIRA issue (red) and two to Bitbucket commits (blue).
Figure 11 DTE, stage 2
If I right-click on one of the new nodes (JIRA ADS-11) and expand it, an additional edge and node are displayed (Figure 12), an inter-model connection to an Aras part (green). This process can continue until all connections are displayed.
Figure 12 DTE, stage 3
GitHub elements in either the Graph View or the Tree View offer direct access to that element in the GitHub repository. If I right-click on commit o468e… in the diagram in Figure 12 and choose More Details, my browser will open to the same element in GitHub as in Figure 13 (I may be required to log-in to GitHub first).
Figure 13 GitHub browser interface launched from Syndeia Web Dashboard