public function work()
 {
     $username = $this->args[0];
     $package_name = $this->args[1];
     $this->out(sprintf('Verifying package uniqueness %s/%s', $username, $package_name));
     $maintainer = $this->getMaintainer($username);
     if (!$maintainer) {
         return false;
     }
     $existing = $this->getExisting($maintainer['Maintainer']['id'], $package_name);
     if ($existing) {
         return false;
     }
     $packageData = new PackageData($username, $package_name, $this->Github);
     $data = $packageData->retrieve();
     if ($data === false) {
         return;
     }
     $data['maintainer_id'] = $maintainer['Maintainer']['id'];
     $this->out('Saving package');
     $this->Maintainer->Package->create();
     $saved = $this->Maintainer->Package->save(array('Package' => $data));
     if (!$saved) {
         return $this->out('Package not saved');
     }
     $this->out('Package saved');
 }
 /**
  * Update Attributes from Github
  *
  * @param array $package
  * @return array
  */
 public function updateAttributes($package, $packageData = null)
 {
     if (!$this->Github) {
         $this->Github = ClassRegistry::init('Github');
     }
     if ($packageData === null) {
         $packageData = new PackageData($package['Maintainer']['username'], $package[$this->alias]['name'], $this->Github);
     }
     $data = $packageData->retrieve();
     if ($data === false) {
         return;
     }
     foreach ($data as $key => $value) {
         if ($value !== null) {
             $package[$this->alias][$key] = $value;
         }
     }
     $packageData = $package[$this->alias];
     unset($packageData['modified']);
     $this->create();
     return $this->save($packageData);
 }