/**
  * Gets a keyword object by name, creating one if it does not exist.
  *
  * @param string $name
  * @return AddonKeyword
  */
 public static function get_by_name($name)
 {
     $name = strtolower($name);
     $kw = AddonKeyword::get()->filter('Name', $name)->first();
     if (!$kw) {
         $kw = new AddonKeyword();
         $kw->Name = $name;
         $kw->write();
     }
     return $kw;
 }
 private function updateVersion(Addon $addon, Version $package)
 {
     $version = null;
     if ($addon->isInDB()) {
         $version = $addon->Versions()->filter('Version', $package->getVersionNormalized())->first();
     }
     if (!$version) {
         $version = new AddonVersion();
     }
     $version->Name = $package->getName();
     $version->Type = str_replace('silverstripe-', '', $package->getType());
     $version->Description = $package->getDescription();
     $version->Released = strtotime($package->getTime());
     $keywords = $package->getKeywords();
     if ($keywords) {
         foreach ($keywords as $keyword) {
             $keyword = AddonKeyword::get_by_name($keyword);
             $addon->Keywords()->add($keyword);
             $version->Keywords()->add($keyword);
         }
     }
     $version->Version = $package->getVersionNormalized();
     $version->PrettyVersion = $package->getVersion();
     $stability = VersionParser::parseStability($package->getVersion());
     $isDev = $stability === 'dev';
     $version->Development = $isDev;
     $version->SourceType = $package->getSource()->getType();
     $version->SourceUrl = $package->getSource()->getUrl();
     $version->SourceReference = $package->getSource()->getReference();
     if ($package->getDist()) {
         $version->DistType = $package->getDist()->getType();
         $version->DistUrl = $package->getDist()->getUrl();
         $version->DistReference = $package->getDist()->getReference();
         $version->DistChecksum = $package->getDist()->getShasum();
     }
     $version->Extra = $package->getExtra();
     $version->Homepage = $package->getHomepage();
     $version->License = $package->getLicense();
     // $version->Support = $package->getSupport();
     $addon->Versions()->add($version);
     $this->updateLinks($version, $package);
     $this->updateCompatibility($addon, $version, $package);
     $this->updateAuthors($version, $package);
 }