Here I have my own repository set up in GitHub. At the moment it’s empty with nothing in it. I also have three Cyclr Consoles open, which I’m calling my development environment, staging environment, and production environment.

The first step is to set up the link between each Console (or Partner) and GitHub.

To do this, I go into the settings for the Partner and fill in the details for my GitHub repository. I’m using a Personal Access Token, which I’ve already set up in GitHub for this repository to allow access. These credentials are stored against my Cyclr user.

For this example, I’m giving the development environment a friendly name (“development”) and click save. Cyclr will immediately talk to GitHub to verify my credentials. If everything matches and I’m authorized to access GitHub using the access token, Cyclr will create a folder in my GitHub repository called “development.” I get a confirmation pop-up at the bottom saying it’s been updated.

When I check GitHub, I should now have a “development” folder, meaning that this Partner Console is now linked to my GitHub repository.

Let’s repeat this process for the other two environments. The second Console I’ll call “staging,” and the third I’ll call it “production,” and save. Now if I refresh my GitHub, I should now have three folders: “development,” “staging,” and “production,” showing that all three consoles are linked to GitHub.

Back in the development console, I will list my templates. For the purpose of this demo, I’ve created a single template called “development template.” With GitHub now connected, I get an additional button labeled “Push Release to GitHub”. Clicking this button pushes the template release to GitHub under the “development” folder.

If I go back to GitHub, hit refresh, and open the development folder, I see a new subfolder called “templates,” which contains the template I just pushed from my development console. The template details are there as if I had exported it to a file and downloaded it locally, but instead, it’s now directly uploaded to GitHub.

In the staging console, I’ve created a template called “staging template.” If I want to import a template into this environment, I can click the Import button. At the bottom, there’s a new section called “Import from GitHub,” which displays any environment folders in GitHub that contain templates.

At the moment, it only displays the “development” folder, as it’s the only one that has a template. If I click on it, it will list all of the templates. I pick one and import it. This pulls the template from GitHub and opens it in my staging environment. Now I have the development template, which has been transferred from the development Console to GitHub and then imported into the staging Console.

It’s the same process in the production Console. If I wanted to work on something in staging, I could push that to GitHub, and then go to the production Console to import it. You’ll see that I now have two folders available, because there are now two folders with a template file under them. I could choose staging and I could pull in the staging template, and now that’s sitting in my production environment.

That’s the GitHub integration in a nutshell using Cyclr.