Ayehu maintains its own repositories on GitHub, the world’s #1 open-source community for software development, source code management, and version control. This is a free resource for Ayehu community members interested in:
- Shorter time to value through reuse of existing, pre-built workflows
- Shorter time to value through customization of open source activities
- Free access to peer-developed workflow templates and activities
Let’s breakdown everything this great resource has to offer.
What is GitHub?
At a high level, GitHub is a website and cloud-based service that helps developers store and manage their code, as well as track and control changes to their code.
Essentially, it allows individuals and teams to easily collaborate, leveraging already published code while constantly giving back to ensure the community is growing and everyone can benefit from each other.
Anyone can sign up and host a public code repository for free as well as view other available repositories – as you can see here on our Ayehu GitHub page.
The social networking aspect of GitHub (available here) is probably its most powerful feature, allowing projects to grow more than just about any of the other features offered. Each user on GitHub has their own profile that acts like a resume of sorts, showing past work and contributions to other projects via pull requests. Project revisions can be discussed publicly, so a community of experts can contribute knowledge and collaborate to advance a project forward.
In our case (as seen in the graphic above) we already have 6 public repositories that can be viewed by anyone, and 3 of them are for custom content, which can then be shared by anyone wishing to become a Collaborator.
What kind of content do each of these repositories have?
The ones on the lower row are activities/workflows/integrations that are already available in any installed instance of Ayehu NG. Now you may wonder then, why do we need those on GitHub?
The advantage of having this content shared on GitHub is to provide you with visibility into the code behind the activities, allowing you to easily leverage them for your organization’s specific needs. You can modify any of these activities or create a completely new activity using the existing code as your foundation. The same applies to any of the workflow-templates and integrations.
Additionally, we have 3 public repositories for custom content. These are shared by the user community, and the only place you can find them is on GitHub, as they’re not part of the product itself.
The custom-scripts repository has different user-created scripts that can be shared among the community. For example, here you can find a utility that eliminates the need for writing a program from scratch, or a script to manually send HTTP POST and GET requests to an Ayehu NG server.
The custom-workflows repository has different workflows created by users using the Workflow Designer. Here you can find multiple workflows for different 3rd-party applications. For example, SolarWinds Remediation. Each workflow is basically an XML file, which is the format it’s exported in from NG when you use the built-in Export functionality.
Last but not least is the custom-activities repository, which in my opinion is the most compelling one because it’s constantly growing. As of this blog post’s publication, we already have more than 300 different activities published for about 30 different 3rd-party applications, such as Amazon S3, Azure AD, Beyond Trust, Google Cloud, PagerDuty, SharePoint, Zendesk, etc. representing a wide variety of platforms including ITSM, messaging, and cloud services. Usually each 3rd-party application’s folder has around 5-10 activities, as you can see below in the FreshDesk folder, for example.
How easily can you leverage this content in your NG environment?
In order to start using any of the activities available on Ayehu’s GitHub page, which as a reminder can be easily browsed by anyone, you must have Ayehu NG version 1.5 or higher running. This is the version that first introduced the Activity Designer feature, which is a necessary prerequisite for building and deploying customer activities.
To learn more about the Activity Designer, please visit Ayehu’s Automation Academy. This is another great free resource Ayehu provides to its community. There you’ll find a couple courses explaining how to use the Activity Designer to build custom activities suited to your company’s specific needs, and which don’t require the need for Ayehu’s involvement. We strongly recommend completing these courses to better understand how the Activity Designer works, and to learn about the two code components each activity has.
Let’s look at the example below where we can see the AYH file, which is an export of the activity created by the Activity Designer’s built-in Export functionality. The other two files are the JSON, which is the frond-end code for the activity that drives its look and feel in the UI, and the CS, which is the back-end code of the activity. This file can not only be CS but also VB and Python as all those are currently supported languages for the back-end code of any activity.
To use this specific activity, I can either use the AYH file or copy-paste the code files. Let me show you how it works by opening Ayehu NG and going to the Activity Designer tool.
First, I’ll choose to Import from the Activity Designer.
I’ll browse and select to import the AYH file we just looked at.
After importing the FreshDesk Create Ticket activity, I can view its code:
All that’s left to do is click the Enabled checkbox in the upper right and then save the activity:
Next, we’ll navigate to the Workflow Designer, start a new workflow, and bring in the FreshDesk Create Ticket as our first activity:
This activity can now be configured just like any of Ayehu’s other activities:
Alternatively, instead of importing we could have also just copied the FreshDesk Create Ticket activity code from GitHub, and pasted it directly into the Activity Designer.
The custom-workflows repository works in a similar fashion. Just select one of the workflows there, download it, then go back to NG and navigate to Workflow Designer -> Open Workflow -> Import From File, and select the workflow you just downloaded.
How simple it is to give back to the community
As previously mentioned, one of GitHub’s most valuable and important features is community collaboration. That’s a mechanism for enabling everyone to benefit from each other while contributing knowledge and cooperating to advance IT Automation forward.
Let’s say you worked on improving one of the existing activities on GitHub to allow additional inputs, or you created a completely new activity. You can easily share your accomplishment with others by clicking on Add File->Upload files.
First though, you must export your activity from the Activity Designer by clicking the export icon in the upper right. You should also copy code for both the JSON and the backend into appropriately-named files, then upload these 3 files along with a short README file explaining what the activity does so that anyone on GitHub can easily understand what it’s supposed to do.
An AYH file will be the easiest way for someone to import your activity. Uploading code files is also important though as it gives visibility into the code, as well as an option to track changes without importing each one of the activities into Ayehu NG.
Once all these files are in a folder, clicking Add File->Upload files on GitHub creates a Pull Request by creating a new branch. Each repository can have one or more branches, which is essentially a unique set of code changes with a unique name. These Pull Requests are then reviewed by our team. As long as everything meets a few basic requirements (further explained below), your work will be published and you will become a Collaborator. This basically means from that point on, you can push code freely to that specific repository.
As you might expect, workflows can also be shared in almost the exact same manner. Just go to the Workflow Designer, open up one of your workflows, then click on Export. This will generate an XML file which can be uploaded to GitHub by simply clicking Add File->Upload Files, and creating a new branch, exactly as we did with custom-activities.
What are the official requirements to create a Pull Request?
Each of the custom repositories has their own Contributing guidelines but are conceptually the same. The guidelines for custom-activities are shown below.
If you’re ready to join a growing community in a thriving field, and you don’t already have an account on GitHub, sign up today. It’s quick, usually taking no more than a few moments. You can also access Ayehu’s GitHub community by clicking here.