We at Combodo chose GitHub to host the source files for our different IT development projects.

GitHub is a decentralised version management system based on Git, the open source solution. This essential development tool enables an entire team to develop in parallel using a project’s source files.

Open source collaboration and contributions

GitHub’s collaborative features, like pull requests and forks, play a crucial role in fostering community engagement. These tools, in particular, make it easy for contributors to actively participate and enhance open source projects.

Change tracking and project management

Combodo believes that product quality relies on the traceability of changes made to the source files involved. These modifications can arise for multiple reasons: new features, bug fixes, library version upgrades, etc. Each change is systematically linked to a ticket created on iTop.

Ticket tracking and life cycle

An iTop ticket outlines a requested product change, detailing its type, creator, date, scope, and responsible person. Its life cycle progresses through statuses: Qualified, Scheduled, WorkInProgress, Resolved, and Closed.

Product quality relies on the traceability of changes made to the source files

Connecting GitHub and iTop for better traceability

We therefore have two information systems that contain information on our product’s evolution. One, iTop, is more descriptive and the other, GitHub, holds information on changes made to the application’s source files. We decided to connect the two systems to ensure absolute traceability,

Synchronising information between iTop and GitHub

Developers should use the ticket title as the GitHub commit message and enter commit details, including the Git ID, in iTop.

However, this is a tedious process with no added value, and a potential source of errors.

Process automation

This is why we decided to automate the process and take the opportunity to familiarise ourselves with the APIs GitHub provides. Our Integration Division, a team that specializes in third-party systems integration, made this project possible and carried it out jointly with the R&D team.

Result: the combodo-vcs-integration extension

We developed the combodo-vcs-integration extension, which enables us to listen to events emitted by version management systems and trigger automated post-reception processing.

So far, we have implemented GitHub, but we designed the extension to integrate other systems like GitLab in the future.

The extension is designed to integrate other systems and other use cases

We created this first version in response to our main use case, but aimed to build a generic system for future expansion.

How the extension works

The core of the extension uses GitHub webhooks, which allow us to listen to events emitted by a GitHub organisation and its source repositories, and to trigger automated processes that will be run on receipt.

Schema de fonctionnement des events GitHub

Tracking changes in iTop

We created two automated processes: one for tracking information about events received in iTop’s system log (error.log) and another for adding this information to an iTop object attribute. This is how we can identify changes to repository sources in the corresponding tickets.

The core of the extension uses GitHub webhooks

Automation benefits and prospects

Thanks to this automation, we are now spared the repetitive tasks with no added value, while maintaining full information traceability. This solution also reduces developers’ workload as well as the risk of human error.

If this article inspires you and you have any development ideas you wish to share, feel free to leave a comment on our forum. We already have a number of ideas for improvements to the extension ourselves!

For the more adventurous among you, we would encourage you to explore the solution for yourself, and create your own automations.

🤓 And that’s just the beginning! The best is yet to come…

Share This