code: public void migrate() throws IOException {
          LOGGER.debug("Check if GitHub Plugin needs config migration");
          GitHubPushTrigger.DescriptorImpl descriptor = GitHubPushTrigger.DescriptorImpl.get();
          descriptor.load();
  
          if (isNotEmpty(descriptor.getCredentials())) {
              LOGGER.warn("Migration for old GitHub Plugin credentials started");
              GitHubPlugin.configuration().getConfigs().addAll(
                      from(descriptor.getCredentials()).transform(toGHServerConfig()).toList()
              );
  
              descriptor.clearCredentials();
              descriptor.save();
              GitHubPlugin.configuration().save();
          }
  
          if (descriptor.getDeprecatedHookUrl() != null) {
              LOGGER.warn("Migration for old GitHub Plugin hook url started");
              GitHubPlugin.configuration().setOverrideHookUrl(true);
              GitHubPlugin.configuration().setHookUrl(descriptor.getDeprecatedHookUrl());
              descriptor.clearDeprecatedHookUrl();
              descriptor.save();
              GitHubPlugin.configuration().save();
          }
      }
docs: Loads {@link GitHubPushTrigger.DescriptorImpl} and migrate all values
  to {@link org.jenkinsci.plugins.github.config.GitHubPluginConfig}
  
  @throws IOException if any read-save problems as it critical to work process of this plugin