Пример #1
0
 public static function getUserRepos($user)
 {
     $page = 1;
     $projects = array();
     $dev = load_developer_where("name = '" . $user . "'");
     $full_repo_list = array();
     do {
         $url = "https://api.github.com/users/{$user}/repos?page=" . $page;
         Makiavelo::info("----------- URL : " . $url);
         $repo_list = self::sendRequest($url);
         //Makiavelo::puts("------------ number of repos found: " . count($repo_list));
         Makiavelo::info("=== Getting list of repos :: " . print_r($repo_list, true));
         foreach ($repo_list as $repo) {
             $full_repo_list[] = $repo;
             $proj = load_project_where("owner_id = " . $dev->id . " and name ='" . $repo->name . "'");
             if ($proj == null) {
                 $proj = new Project();
                 $proj->name = $repo->name;
                 $proj->url = $repo->html_url ? $repo->html_url : $repo->url;
                 $proj->owner_id = $dev->id;
                 $proj->description = $repo->description;
                 $proj->stars = $repo->watchers;
                 $proj->forks = $repo->forks;
                 $proj->language = $repo->language;
                 $proj->published = 0;
                 $proj->open_issues = $repo->open_issues;
                 $proj->close_issues = count(GithubAPI::getProjectIssues($user, $repo->name, "closed"));
                 if (save_project($proj)) {
                     $projects[] = $proj;
                 }
             } else {
                 $projects[] = $proj;
             }
         }
         $page++;
     } while (count($repo_list) > 0);
     GithubAPI::deleteOldProjects($dev, $full_repo_list);
     return $projects;
 }
Пример #2
0
 public function createAction()
 {
     $entity = new Project();
     $proj = $this->request->getParam("project");
     $dev = load_developer_where('name = "' . $this->request->getParam("owner_name") . '"');
     if ($dev == null) {
         //Create the developer if it's not on our database already
         $dev = new Developer();
         $dev->name = $this->request->getParam("owner_name");
         $dev->avatar_url = $this->request->getParam("owner_avatar");
         save_developer($dev);
     } else {
         //Update the avatar if it changed
         if ($dev->avatar_url != $this->request->getParam("owner_avatar")) {
             $dev->avatar_url = $this->request->getParam("owner_avatar");
             save_developer($dev);
         }
     }
     if (!load_project_where("name = '" . $proj['name'] . "' and owner_id = " . $dev->id)) {
         $proj['url'] = str_replace("https", "", $proj['url']);
         $proj['url'] = str_replace("http", "", $proj['url']);
         $proj['url'] = str_replace("://", "", $proj['url']);
         $proj['url'] = "http://" . $proj['url'];
         $proj['owner_id'] = $dev->id;
         $proj['published'] = 1;
         $entity->load_from_array($proj);
         if (save_project($entity)) {
             //Create the first set of stats
             $entity->saveInitStats();
             $entity->grabHistoricData();
             $this->flash->setSuccess("The project was added correctly, thanks!");
             $this->redirect_to(project_show_path($entity));
         } else {
             $this->render(array("entity" => $entity), "new");
         }
     } else {
         $this->flash->setError("This project has already been submited");
         $this->render(array("entity" => $entity), "new");
     }
 }
Пример #3
0
function load_project($id)
{
    return load_project_where("id = {$id}");
}