Webinar #7

November 17th, 2021

Length: 58 min

How to update WordPress plugins with Git Updater

Learn how to seamlessly release your in-house plugins without the need of using the official plugin repository.

Who is this webinar for:

WordPress developers and enthusiasts

We will show you how to post updates of plugins bypassing the official WordPress repository.

Digital Agencies

You will learn how to keep your in-house plugins up-to-date across all websites of your clients.

Git developers

Working with the official SVN repository can be a chore for Git developers. With Git Updater, you no longer need to worry about it.

What you're going to learn:

  • How to install and configure Git Updater
  • How to use Git Updater to ensure your plugins are always at the newest version
  • How to create a pipeline in Buddy to automatically make GitHub releases with GitHub CLI on every change to code

Timestamps:

00:03  Introduction

03:08  How to update plugins in WordPress

09:15  How to create a plugin compatible with Git Updater

16:15  Releasing plugin with GitHub CLI

23:45  Running tests before the release

26:32  Git Updater Free vs Pro

39:40  Installing plugins from remote repositories

41:26  Changing repository branch

44:46  Adding Git compatiblity without touching the code

50:26  Summary

52:46  Q&A

Transcript

Introduction

00:02

Maciek

Hi, everyone, welcome to yet another Buddy webinar. This time we are going to talk, how to update WordPress plugins, we will show you a few methods. And we are going to use a really nice tool called Get updater. That's why I decided to invite a guest who has the biggest expertise when it comes to the updater. Its creator - Andy Fragen. Andy, tell us a few words about yourself because I know that your bio is quite an unusual one.

00:41

Andy

Hey, Maciek, thanks again for inviting me. Yeah, I, I do this stuff for fun, mostly in my spare time. I am a full time trauma acute care surgeon in Southern California. And so you may ask whether I do it on nights, weekends, mornings, odd hours? The answer is yes. It just depends when I have time available. The easiest thing I found is, you know support questions can basically be answered almost anytime. And honestly, that's because you end up with such a familiarity with your own codebase after nine, eight or nine years that you know what the problems are, or you know what the problems people have had are I developed get updater essentially, you know about started developing eight or nine years ago to kind of scratch an itch, I had a couple of one off plugins that didn't belong in the repo. But I was using them on several sites and I got tired of SF to teeing them up and down. And I didn't want there was enough of them that I really didn't want to add extra files and extra extra processes to the actual plugin. So I figured out a way to add a couple of header lines and make it work. And that's

How to update plugins in WordPress

02:04

Maciek

true git updater is this really a very useful tool I use it to just basically because of the same same reason, I just wanted a simple solution. And I knew that someone already developed it. And I am Maciek Palmowski I am a WordPress ambassador here and Buddy. And I'm still doing the same stuff. So I'm trying to connect the WordPress world with the CI/CD world. And today, we're gonna show you a few tricks about this. So before we are going to start, if you have any questions, you can ask them in the comments. If you are viewing us on YouTube, it's probably on your right. And if you're watching us on Facebook, it's below the movie that you are watching. Okay, so before we will dive into cold. Let's first discuss what are the methods of updating themes and plugins because we have this cool feature in WordPress called one click update, which essentially means that we just click in one place and the plugin updates. But to make plugin two clicks,

03:20

Andy

no two places you can either do or is the core of a page.

03:25

Maciek

That's true, that's true. And the only problem is that your plugin has to be in the official repository just to work out of the box like this. But what are the other ways to make them updatable?

03:45

Andy

V, there are several there are several other other projects, many of which involve actually, I think almost all of which involve adding code to your plugin. So adding updater files, updater codes and configuration files to your plugin. There's one that's reasonably popular Yanis plugin updater. Okay, let me see if I can find that the URL and I'll put in the chat to that later. But I'm

04:20

Maciek

for sure.

04:22

Andy

Other Other there's a lot of premium plugins that have their own that have written their own. They have their own update servers, right. So they've written their own API to interact with WordPress to send out a an update or to send out an update URL and essentially what get updated does and most of the others do is we hook into the update transient, the site update transient for their plugins or themes, and so that your WordPress installation sees it and as long as it has the right data installed on it It will work.

05:04

Maciek

And of course, if if you are more tech savvy, you can use solutions like WP CLI because you can create a bash script using WP CLI that would update all your plugins or you can use use composer. But in both situations, you have to have access to SSH. And it's not the solution. It's not this one click solution that most users would expect. Also, having a plugin in the official repo comes with some with some difficulties. First of all, we have to put it there, we have to register it, we have to, we have to talk with people. And I know that some of you developers out there are a bit sick about thinking about talking with others. And here you have to go through for the whole process of of making the plugin compatible with WordPress Repository roles. And for example, Git updater is not in the official repository. Why?

06:17

Andy

Well, I'm early on the I asked her to go in and it wasn't the first plug in if it wasn't the first plug in, I've tried to have go in. And the other ones were fairly easy. And you know, I didn't have much issue getting them in, and they came back pretty quickly. But I got a, you know, I had a very nice email conversation, always email plugins@wordpress.org. They don't like public chat, because they keep a record on the email. And I was emailing with several different of the.org plugin repository maintainers. And essentially, what it came down to is that because there was a there was a guideline initially that says you can't instal executable code. And well, it didn't instal executable code as in the code to update a plugin. Essentially, what it boiled down to is the.org repository is a hosting platform. It's not it's not a development platform, it wasn't designed to be a development platform. In fact, if you do try to use it as a development platform, every single time you push a commit, it will try and re it does a whole lot of things that stress the system. So where you may want to make a little one kind time code and get pushed up to GitHub. They it doesn't that doesn't, that stresses the system a little too much. So what they didn't like was that they didn't like people, they didn't want to promote other outside repositories, essentially. And I was like, Okay, I like I like WordPress, I like playing in your sandbox. I'm good. And so that's that's the that's essentially the story. It's not they like the code. They didn't have any they didn't have any problems with it. Otherwise, the you know, at the time, it was just that they didn't want to promote outside repositories. See that is Bitbucket, GitHub, Git lab wherever. I mean, at the time, it was just GitHub, but yeah,

How to create a plugin compatible with Git Updater

08:32

Maciek

yeah. Oh, and it's also worth to mention that the official repository still uses SVN. So there's, either yes, yes. Because there's just so you either have to use some workaround, or learn as a bit of SVN because it's a bit different than than Git. So and especially now when everyone is so used to to get itself okay. So, I think that we will, that we pointed out all the all the methods, how we can make our plugin updatable. And now we will show you how to do such thing. And because let me let me share my screen. Now you can you can see it and together with Andy, we created a very complicated plugin right here. It will do one big thing. It will show this test one thing in the admin panel, that's all but as you see, this is this example plugin. It's version 1.00. And it's not updatable in any way, because it's only hosted on on GitHub. And I already installed the Git updater and As you can see, it's still it's still not connected with each other because here here is the list of all the installed plugins and themes from from Git, and we only have the Git updater. So together with with Andy because and they will will help me here, how to make our plugin compatible with get updater. And believe me, it will be quite easy. So okay, this is this is our, our plugin, as you see. It doesn't do much. So if we would like to make it upgradable through crooked updater What should we do?

10:48

Andy

Well, you have to add at least one header. And that header is depends on where your plugin is hosted. So if it's hosted on GitHub, the header starts as GitHub, plugin, Uri.

11:04

Maciek

Something like this, in our case, GitHub plugin URI.

11:10

Andy

And I've allowed for the the short version of the of the of the code, either just your repository name, and the, the repository owner in the in the plugin name, or you can use the entire URL for the

11:28

Maciek

Okay. So I could add HTTPS GitHub slash and so on. So right,

11:33

Andy

but you don't have to? And you certainly don't need to use both. I've seen that done.

11:41

Maciek

Okay, what's next? Do we have to add something more, because if

11:48

Andy

you're so before, the for the before, the big push to previously, previously, all default repositories in GitHub were named master. Now they're, they're named main. Get up there has been written so long ago that all my defaults are to master. However, a while ago, when this first started, if you put in a another header that says this default branch, you can name whatever your default branch is, in the case of this plugin, because it's on the main branch, it would be default plugin main. So you have to add that sleeve to add that plug in header.

12:38

Maciek

Something like this. So we have the second line. And there is still the way will we be using the Git itself, or that or we use that release assets, because I always prefer to do use that release assets and have all the versioning and stuff like that.

12:59

Andy

Most people don't use release assets. And that's, and that's great. And, actually, that's fine. If you do use release asset, there's one more header, it's released asset and the value in this case is true. It also just means it's absent. The the the caveat to using release assets or tags in general, is that you must continue to do it. If you get a plugin that you forget to tag the latest version, get update, or looks to see what the if you if it sees tags, and it looks for tags, if it sees tags, it will use the most recent tagged version number as the downloadable. So for instance, if you're starting out and your version is one point 0.0 And you tag that, and then you update your plugin to be one point 1.0 and ups you forget to tag it, because the version number changed, get updated will see a version increase a bump and report that there's an update available. However, if you push that update, it will reinstall one point 0.0 Because that is the latest tag release.

14:17

Maciek

Okay, so

14:19

Andy

So if you take our remember keep tagging.

14:22

Maciek

Exactly, exactly. Okay, so we have so we have this free bird. And let's update the version to one a one so we can see the difference. Let's commit the change into main branch. And while it can, okay, it's committed. I have one pipeline prepared here that will copy that will copy the files over to the server. So I don't have to open some some FTP client or The server directly. And let's see what happened here because we are.

15:07

Andy

Exactly refresh the page. And

15:09

Maciek

yes, we are here. And we already see we have the example plugin right now. And if we will also go into the instal plugins, we will see that it changed, we have this GitHub icon here, which means that now the plugins are done through git updater. Okay, so

15:36

Andy

mostly, it's just show you where it's third show you where the where the the actual code is hosted. So if you recall, if you had plugins, yeah, if you had plugins that were installed on BitBucket, or GitLab, or even Catania, locally, you would see their icons in that location.

Releasing plugin with GitHub CLI

15:56

Maciek

Yeah. Okay, so now let's prepare a pipeline that will allow us to create those, those releases automatically in Buddy, and it will create a release in GitHub. So I created already a pipeline that is connected with, with this Git repo currently only has one action, because I didn't want to show you my GitHub token and because of security reasons, and we are doing it live, and I really like my repositories until now. Okay, so the first thing that we want to have is do we will have the ability to enter Okay, I am. So we will use? Yes, I saw it for a moment, but I think I'm back here. Okay. So like I said, first, we will going to create this action called PASS argument. And we are going to have a window, in which we will enter the version number. So we will just ask for the key called plugin, version and typo. Everything is correct. Okay. So this is, so this is the first thing. Second thing as you let them go back into our Git repo for a moment, as you see files without any folder, so we have to, we have to do some cleaning first and create a folder, move everything there and create a zip file, because GitHub CLI needs a zip file to create a release asset. So let's, let's do it. We will. And I am afraid that I'm freezing again. Okay, I am here. So we're gonna, yes, yes, yes. So we're going to use a local shell right now. And we can do a series of operations, I will copy and paste them. But overall, we are going to, every time, move everything into a folder, remove all the zip files that we don't need remove the vendor file this time, because we'll instal composer at some point, but we won't need to release those files. We want to need the test files in our plugin. And we will in the end, we will create a zip file called get updated test plugin and the plugin version dot zip. But to do this, we first have to instal one more and one important thing in our environment, because normally we wouldn't have zip. Oh, having this operation. We'll have our all our files into a one one zip file. And in the end, we have to create a release. And this is the thing that I if you're using if you never use GitHub CLI This is a very nice tool. Thanks to which you can, like in our example, create a release to do this. You need GitHub released create a version this is what we will pass the file we created, and the repository name, that I think that is also very important is to have under the variables, that GitHub token variable when you have to paste your GitHub access token. And there will be an article about it. So don't worry, you don't have to take screenshots, screenshots of it. Because you have to instal the GitHub CLI on your server. There is a great tutorial on on GitHub CLI website, so you can just copy and paste it. Okay, so I think that we have everything right now, this is a very simple, a very simple version. So let's try to run the pipeline. And we'll end with the version one of two, because we already have 101. And, as you see, I got this window asking me for a version. So I'm building a verse one, two, or sorry, let me first just decode because I forgot to do this, because let's start with this. So let's update the code. Sorry, my bad. Yes, it will be a mistake on my end. So let's do something like this. We have. And let's change it already to test number two. So we will let see the difference. Okay, so we have the code ready. And we can deploy the plugin right now. Like I mentioned, it should be one, oh, let's proceed.

21:48

Andy

And use semantic please use semantic versioning. Because all the comparison functions, assume semantic versioning. So if you start putting letters and words that don't conform, it may not work. And versioning over time, it may not work.

22:13

Maciek

So as you see, we have the release here 102. So we released the plugin using Buddy. And now. So this is the first thing we have to remember, good updater is caching some things behind the scenes. So because we don't want to wait some time, we'll just clear the cache right now. For how long cache? Will it cache all the data.

22:42

Andy

It's a 12 hour cache, and it caches all the API calls. So it doesn't necessarily cache them all at the same time. But it caches them after they run an expire.

Running tests before the release

22:54

Maciek

And I clear the cache. And here you see there is a new version of example, plugin available. Update. Now let's update let's see what will happen. And let's refresh. Can you see it it's test number two, so it works. But of course, if we already have our pipeline, it would be a shame not to not to use it in some other way. Because at this point, this plugin is very, very simple. But when you will start building your plugin and it will grow. At some point you will start building assets, running tests and so on, it will be a good practice of running it before releasing. So every time when something goes wrong, it will automatically stop the release. That's why I also created some tests inside and there is one very simple test I am using WP mock to show it and it will test if the set text function is test number four because I was playing around with it before so at this point, this should break because we have test number two. So let's do a thing like this that after passing the params let's function okay, and we can use this one and we're gonna just instal composer because I already prepared all the files in the repository. And we're going to just run composer test it will just run the PHP unit and run all the tests. Okay, so at this point, it should break, and it should not release our plugin. So let's try to try that again. Let's call it 103, because it doesn't matter right now. And now we are waiting for everything to instal when it comes to do unit testing, and it failed, why, because we have test number two and test number four. And this is a great thing because we made a mistake. And our not working plugin version was not released. So thanks to such a process with using Release, release assets, you can block everything in a easier way. So that's why you should automate even your plugin release process. But right now, we were using free version of Git updater. Oh, sorry. Before I go further, everyone, if you have any questions about what we just did, and you would want to ask for some details, use the comments to ask questions. Don't be afraid, we are here to answer them all. So and the URL like I was saying, we were using the free version, we are using the free version of of get updater. But there is a pro version two. And what are the difference between of course the price?

Git Updater Free vs Pro

26:41

Andy

Well, free versions free. The Pro version, it depends on how it's you can either purchase it monthly or yearly. There are four, four types of licences exactly the same screen, I'm looking at one website for websites, 10 websites or an unlimited number of websites. And if I'll periods, so you can figure it, you can figure it out, and you can change the I'm sure you can change the licence, it all uses Freemius. To do licencing and, and payment system. So you can update or you I'm sure you can update or downgrade the licence however, for whatever your your choices and use. So the Pro versions are using mine, okay. You can do branch switching, you can do remote installation of plugins and themes. You can you get to use REST API endpoints for certain functions. And there's WP CLI integration. So if we just go to the branch switching what I mean, let me just show you, for instance. So if we activate GitHub updater pro here, and this one, you can see all of a sudden, there's new branch, there's a branch version here. So you can pick out the whatever branches there are, including the last most recent tag shows up. So for there, I didn't, I specifically take out certain of the the plugins that are private repositories, the GitHub updater Pro, and there's another one that AI isn't a private repository. The updated edition is actually in a public repository, but you can change so if you change it. It's the same branch, you just click master. You'll notice the plugin is not active at the moment. But you'll see how it works. So it takes it it downloads the master branch. And so if we go to the plugin, and fundamentally, at this point, there is no difference between the master and develop the main branch in the Develop plugin, it now shows that it's the master branch. So you can if you're developing, you can switch back and forth between branches to test features, and then just go right back to the other branch you were on before. A lot of people find this a lot of a lot of agencies find this useful for for customer support, if they're testing new features to go back and forth, and you more easily switch between plugins, because you can imagine if you were if you had a plugin repository trying to change branches, you would have to delete, reinstall change and all the time and you may not necessarily know which branch of the plugin you have running. The The other thing about get updater is if you have a readme file in there, it will take the readme file and well this is there because I'm running trunk and so this is a Oh, my readme only says compatible to 5.8. But you can see if you add all the right things, it will show all the all the data that's normally in a. The normally you get from the View Details. And you can instal from that as well. The there's some, let's see, let's go back to so remote installation, if you have just to show you, okay, if you go to Settings, you'll you'll now so if you don't have let's go back for a second, if you don't have the update or proactive. And you see settings, all that all that you see are the standard settings. Okay, there's the settings that get the main settings tab, the GitHub tab, if you had big bucket plugins and the appropriate API module installed, you would see a Bitbucket tab or you would see a GitLab tab or you would see a good Taya tab where you'll see a guest tab. This if your plugin is set up correctly for using get updater. It will show up down here your theme to these like this, this this one icon basically says it's been ignored and doesn't connect the API at all. And I do that because otherwise, it'll just have an API timeout. And people have issues. This little thing means that if it's hosted@wordpress.org, if you have a plug in that's hosted@wordpress.org, and you are on the main plugin branch, it will take its updates from wordpress.org. If you are on a branch, that's not the main branch, so develop branch or some feature branch that will take its updates from that feature branch or that other branch automatically. The if you if you want to try any of the premium plugins or the the API branches, if you go to the Add on tab, the premium ones here. So there, if you click it, it will just show a it will take you to a freemium update, right? So you can pick your you can you just have to do your enter your data and enter a card or PayPal. It's not a trial. It's on a trial period. So this one has a seven day treatment free trial. And and you're good to go. If you don't want to if you don't want to do that it will. If you want to do it and cancel the trial perfect. You get an idea for what what it does. If you're using repositories that aren't straight GitHub, which is baked in, you have to instal and activate one of the other API add ons and just clicking on the sell activate button, it will automatically instal and activate that API plugin. So here we clicked on one for BitBucket. We let it run. This is all running locally, so I'm not sure. Oh, wonderful. Oh, okay. So we get an API we get an error code for an access token because because it requires a bit bucket requires a an access token. Otherwise it won't run so if we go back to our Settings page, I don't have a Bitbucket plug in there. But let's let's pick one up right and I can show you what that so let me activate Pro and you'll see the remote installation too. So in this case everyone here hit bit bucket. And if you put in your Bitbucket username and password, it will take it here and let's see I'm not that concerned since they're all coded anyway and you can't see I can't see him hang on, you have to do that on this side.

34:40

Maciek

Yeah, this is this. This was the reason why I exactly why I pasted the token before the webinar. Yeah, especially.

34:54

Andy

Let's just let me cheat. Let me do this. That's that tab. Whoops, that's not the right tab let me show you let me show you this tab. Oops, we're gonna go okay, too many tabs, right? Yeah, took well, too many tabs and too many different places, right. So here I've got this is, this is my local development page. So you can ignore a lot of these things. But um, if we go to, if we go to get up there, you can see that I have there everybody says, when you know when it's slow and the things, they have different things. So here, you can see that it's really it's working on the hitting the API calls because I haven't been there yet today. And you can see that it's starting to go down right, if I refresh it'll, it'll take the next one down and probably pop a couple out. If you have a custom plugin, a private plugin and you it will show up here and you can add an extra token for it. If you have a guest it will list the guests guess their basic public. So it so it shows it shows the it shows the guests that I have up there. Here's the bit bucket. Here's the bit bucket tab, you can see the plugins that I have. A lot of these are just you know, almost all these are just testing plugins. Some of the installed plugins and themes aren't sorry for the did feel like the Jeopardy countdown here.

37:10

Maciek

Yeah, but this is this is something obvious that every time that you need your local host or internet connection to be fast. Yeah. Yeah, but it looks like a bit bucket is so

37:28

Andy

these these tabs are generated dynamically. If you want to instal if you want to instal a theme, or a plugin from here

37:43

Maciek

that's because the we mostly concentrated on plugins because I mostly create plugins rather than themes. Sure, but you can of course, use get updated to update themes to the only thing you can't update, and we were discussing it before going live is the must use plugins because of their nature.

Installing plugins from remote repositories

38:10

Andy

And right, it must use plugins are updatable. Under under under normal circumstances, there's a way around it. And the way around it is to put a loader plugin in the must use plugins that loads your other plugin. Now the only issue with that, then is that you can't you can't act you shouldn't activate your regular plugin because they're not both plugins activated. And badness can happen. So I actually have I actually have a loader plugin in get update or if you want to use it as a new plugin. And I have code in that to basically strip out any ability to activate it, delete it, and things like that. Alright, so let's come on. Anyway, if we go back here, we see how we added that to the to the edit the bit bucket, you can see the Bitbucket plugin is inactive. And we didn't have to, we didn't go in and activate it. It just installed and activated automatically. Let's see that back yet. This is what happens when you're testing with 4050 plugins that are pounding GitHub at API. So if you want to remote instal a theme, you put the put the URI in here. So whatever, whatever that happens to be put the branch name in here. And this is a dynamic field to initially if you don't have anything if you don't have any repositories or you haven't solved the API for Bitbucket, GitHub or GitLab. The only two things you'll have is GitHub and zip file So you actually can take a zip file URL and instal it. So let's, um, if we did this, for instance, we'll go to we'll go copy the test plugin, right. And it's a zip file, it's in the main branch. Exactly, and the URI is there. And so

40:31

Maciek

this is a much more simpler way

40:34

Andy

to do this, what you have to do for release assets, if you just try to instal the release asset from the, from the base name, it won't work, or it will give you a non built version. So if we go back to settings now, and we didn't activate it, but we can later if you want, if you go back to settings, and in the GitHub tab you will see the

41:04

Maciek

example plugin. Yes,

41:06

Andy

is there. Okay? Is, is there.

41:09

Maciek

So this is a much simpler version way of installing plugins rather than wait creating one more pipeline just to copy files from from from GitHub to to my server.

Changing repository branch

41:22

Andy

And you can, you can actually do the same sort of thing from the standard WP CLI. Let's see where's example plugin.

41:35

Maciek

Martin should be.

41:36

Andy

So here, there's no other version, there's no other branch. So it doesn't have another branch. But it does have the, it does have the release releases asset, so you can instal the last or the current release assets. And what that'll do is if you've been playing with your plugin, or you've been modifying someone's plugin, you can just reinstall the release branch, and you know, the last release, and it will basically overwrite the plugin. So it's like a reinstall. So it's doing that now.

42:13

Maciek

Yes, and we also were because we had a short chat a few days ago, you also showed me a rather fascinating way, how to do the things that we done with with Buddy with the whole pipeline. And with creating the GitHub release, without updating the code. This one was one of my favourite features. And this is something I just can't wait for you to show cause

42:44

Andy

or at least assets basically are stored on AWS servers with a spike minute timeout. So you get this big long URL for the update. But if you go back to your plugins, folder, you'll see that it does it basically reinstalled the same zip file is the and maybe I should reload my site. Okay, so it's still it still says 102. Which is what what it should say. Let's go back to the other one, because it's quicker. So I don't have the I can I can eliminate this is for because they're asking for a password in the a token, a pseudo token, actually, because the in bit bucket. The sudo a bit bucket sudo token is basically your username, a colon, here, your username, a colon, and your password. A your app password. If you enter it, if you enter it in on the instal page. It'll do that for you automatically. If you don't do that, so if you entered on the saw page, it'll do that automatically and combine it and store it. If you don't, it'll it'll not do it. Going to show the the additions.

Adding Git compatiblity without touching the code

44:17

Maciek

Yeah, because, yeah, because in our case, we were we were in this position that we could edit our own code, but there are a lot of plugins that we would love to.

44:32

Andy

So you'll notice you'll notice when I deactivated the Bitbucket plugin, the error message went away. Yeah, so I have a copy of news pack from automatic installed, and I have purposely downgraded that version from the current release. You'll notice that the only way it's an as far as I know and I've checked with people who work with automatic it is a free open source plugin. They don't charge for it. They don't do any of that stuff. But the only way to download the current version is to actually go and pick out the latest release asset and download it. And if you look at their, you know this because all this stuff gets put out otherwise. So if you said, if you want it on yourself, let's just try it out, download the latest release asset and the theme, and do it, there's no ability to update this, within, which is

45:30

Maciek

also not quite a good security practice, because if at some version, they will have some security flow. People just want know that they should update it. Oh, let me go

45:43

Andy

to this one. So the so I have news pack activated. If we go to our we activate editions, I have already put the data for news pack in there, and we'll show it to you later. But after it's active, it will show that there is an update. Because now, it's in the it's set up in get up there. So if we hit update, and we do our updating, it should be one point 6.5. Us, okay. And if we go to, if we go back to our get updated settings, we see that news pack is now listed, because obviously it's listed. But here's the additions that we had to do. So, again, this is a dime. This is a dynamic since last time, so I fixed it for you mentioned, you don't have the other if you don't have any of the other ones installed will only let you do GitHub update or GitHub themes or plugins to to add, you add the repository slug in this case for a plugin. It's the repository name and the main plug in file, the URL is the URL to the repository. The primary branch very important have to put it down there in newstex case the branches release. And do they use a release asset? The answer is you check the box you save the changes. And now even though that plugin has none of has none of those.

47:32

Maciek

Those Heather's dress, it's still talking

47:34

Andy

to works. It still works with get updater.

47:40

Maciek

Yeah, personally, this is apart from the core GitHub later. The best addition to get updater there is because we don't always have the possibility to change the code. And in some cases, they just don't want us to do it. Okay, so I think that we went through all the cool features of get updated or get updated Pro. So I hope that you if you were hesitating, which version to choose, I hope that Andy has helped you to pick the big the pro version, because I know that he's doing such a wonderful job that even paying for bro just for just just as a thank you, for all his work will be

48:35

Andy

a cool thing. And this is another application that in the GitHub family, if you will, or they get updated or family. Yeah, if you are a developer, and you have a lot of clients that use the same plugins, you can either show their sites and all the plugins that are on it, yes, this is my online test site. Or you can do it like this, and it will take those file, it will you can push an update. So this is a push this isn't a poll, this won't show you if plugins have updates available. But what it will do is it will update the plugin to the latest version of whatever you've got there. So if I update on the core rollback plugin, it should run its update and it should give me data on what I've done up here. Right. So it updated to this location, this plugin, and then it tells you what the update date is. So you can see it updated from the main branch, because that's the branch that I have installed. That's the default that's the default branch on that site. So if you have if you have the same plugin in multiple sites, it will show the plug in in the middle slave multiple sites, you know, leaving down this light and you can hit update. It'll update all those sites automatically. Oh

Summary

50:02

Maciek

yes, this is this also something something useful, especially when you are running an agency and would like to update many things at once. Okay, so I think that it's that it's time to start wrapping up all the things because we will discuss the quite a few things already. So first, we discussed how we can make our plugin updatable. So we know that we can either do it by using the official repository, which, but it requires, first of all, using SVM. Having some contact with with other people. And sometimes your plugin may just not be accepted because of its of its nature, just like it just like updates. We also know that there are other methods that get updated, because we discussed almost an hour about it. But we can also use WP CLI we can use composer. And you also you also mentioned this plugin update checker and mentioned directly comment

51:21

Andy

in there, so that's why kind of shortcut. Yeah,

51:24

Maciek

yeah. So this, this is also a method. We also showed you how easy it is to make your plugin updatable. Thanks to get updater. And I think this is a really great option for either for agencies who have who has a lot of plugins that they use throughout all the clients, and they would like to keep them updated. But not necessarily they would like to put them in the official repository because it's more private thing rather than going public.

52:06

Andy

And then yes, repositories.

Q&A

52:09

Maciek

Oh, exactly. Exactly. And, and the Git updater Pro also works with private repositories, regular get up with us. Oh, that's true. That's true. Yeah, that's true. Exactly. My bad. Right. And I think the end and they showed us some additional things that w two Pro can do and how powerful it can be. So now it's time to to see if there are some questions. I see that we only have currently one. How does this compare to WP? Pusher asks Scott So WP this is something Yeah, this is something on the the different way I would call get out there. from the user perspective. WP puller.

53:02

Andy

Well, yeah, well, yes. I mean, WP pusher is a is a SaaS product. And essentially, it does. I think most of the same things. There's a there's a few there's, there's a couple things in I mean, obviously, because the SAS product, do you you don't have WP CLI integration. I'm pretty sure it may use REST endpoints to update with. But I don't think that you can, you can use those. So for instance, if you wanted to take the rest endpoint magic, if you come back to where I am, of course, if you wanted to take the rest endpoint, for updating you, you take the initial rest endpoint, and you put it in there. And you can add, so this one won't do anything at the moment because it doesn't have the no plugin or theme was specified, right. But you can add that into your you can add that into GitHub in the settings pile for web hooks. And and so and then set it for every time you you either make a push, or you tag a release, it will automatically push that code out to that site to the site that you specify from the endpoint. Yeah. And so that'll that'll be some that basically is an automatic update, or at least a method of automatic update works. I will it won't work with a release asset because it's not built. Okay, so that's the that's the kicker. I think least I think it won't. I haven't tested it lately. At least not with that. So that's kind of where we're that's so there's, there's there's a number of things. I believe you can instal plug in Some themes with it. It certainly doesn't have the editions module or things like that. But it's it's very versatile. You know, the developer Peterson son has done a really good job a really nice job with it. And I think he recently sold it. And I don't remember who sold it

55:21

Maciek

to is yes, he sold it together with branch together with branch, right?

55:25

Andy

Yeah, branch basically became, you know, his, his CI pipeline. WP pusher integration.

55:36

Maciek

Yes, yes, that's, that's true. And if someone if someone liked branch CI, I can recommend switching to Buddy because it's it can really does all the same things. And also some others because this was the if I would say branch was very, very limited in when to WordPress, which was cool for, for WordPress developers. But for non WordPress developers, or more universal agencies, what can I say I can recommend Buddy? Much more course. Yes. So that was that was the only question that we got. And Andy, thank you very much for, for discussing so many things about updating plugins with me. And what can I say? I hope that sometime we will find some other topics or we get so we could talk together again. And I hope that, oh, I can already say that in about a week or two. There should be an article about what we discussed here. So if you prefer to read rather than listen. What is happening on your end and the because there was some? Here's some noises.

57:10

Andy

Oh, maybe the gardener's outside sorry.

57:13

Maciek

Oh, I got it. No problem. Yeah. So like I mentioned, the article will be up in about a week or two. So if you prefer to read about what we discussed, then then we will we will send some information when when it's created over our social media. And that's all for tonight. Thank you. Thank you, everyone, and have a nice day or night.

57:40

Andy

Thank you very much. And sorry for all the delays in the loading times.

57:47

Maciek

It happens it happens. Thanks again and bye bye. Bye, everybody.

Deepen your knowledge

Releasing plugins and making them updateable using Git Updater and Buddy

Check out our guide
Releasing plugins and making them updateable using Git Updater and Buddy