github
Общая информация <ul><li>git – распределенная система управления версиями файлов
github = git хостинг + социальная сеть
Возможности: issue tracking, wiki, downloads, code review
Бесплатно для open-source, коммерческий хостинг для закрытых репозиториев </li></ul>
Модель взаимодействия <ul><li>Репозиторий – набор файлов исходного кода с историей изменения
Репозитории можно ветвить и соединять ветки вместе. Ветка – это полноценный репозиторий
Соответственно основные понятия – пользователь, репозиторий, ветка </li></ul>
Немного статистики <ul><li>495 000 человек
1 490 000 репозиториев
Известные пользователи:  Twitter, Facebook, Yahoo, jQuery, Ruby on Rails, CakePHP, curl, Rackspace Hosting </li></ul>
API <ul><li>http://develop.github.com/
Доступ по HTTP и HTTPS
Форматы: yaml, json, xml
Bindings для C#, Java, Javascript, Perl, PHP, Python, Ruby
Upcoming SlideShare
Loading in …5
×

Social networks analisys - github API

454 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
454
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Social networks analisys - github API

  1. 1. github
  2. 2. Общая информация <ul><li>git – распределенная система управления версиями файлов
  3. 3. github = git хостинг + социальная сеть
  4. 4. Возможности: issue tracking, wiki, downloads, code review
  5. 5. Бесплатно для open-source, коммерческий хостинг для закрытых репозиториев </li></ul>
  6. 6. Модель взаимодействия <ul><li>Репозиторий – набор файлов исходного кода с историей изменения
  7. 7. Репозитории можно ветвить и соединять ветки вместе. Ветка – это полноценный репозиторий
  8. 8. Соответственно основные понятия – пользователь, репозиторий, ветка </li></ul>
  9. 9. Немного статистики <ul><li>495 000 человек
  10. 10. 1 490 000 репозиториев
  11. 11. Известные пользователи: Twitter, Facebook, Yahoo, jQuery, Ruby on Rails, CakePHP, curl, Rackspace Hosting </li></ul>
  12. 12. API <ul><li>http://develop.github.com/
  13. 13. Доступ по HTTP и HTTPS
  14. 14. Форматы: yaml, json, xml
  15. 15. Bindings для C#, Java, Javascript, Perl, PHP, Python, Ruby
  16. 16. Ограничение: не более 60 запросов в час
  17. 17. Для вызова некоторых методов необходима аутентификация </li></ul>
  18. 18. API – пользователи <ul><li>Поиск пользователей
  19. 19. Получение информации о пользователе
  20. 20. Получение following и followers
  21. 21. Получение списка watched репозиториев </li></ul>
  22. 22. API – репозитории <ul><li>Поиск репозиториев
  23. 23. Получение информации о репозитории
  24. 24. Получение списка репозиториев пользователя
  25. 25. Получение списка contributers
  26. 26. Получение списка watchers
  27. 27. Получение списка forks </li></ul>
  28. 28. API – другие возможности <ul><li>Organization
  29. 29. Issues
  30. 30. Gist
  31. 31. Commit
  32. 32. Object
  33. 33. Network </li></ul>
  34. 34. Disclaimer <ul>Все дальнейшие примеры не представляют никакой ценности с точки зрения анализа социальных сетей, но должны помочь понять, каким образом можно анализировать github при помощи его API. </ul>
  35. 35. Рейтинг пользователя по репозиториям <ul><li>Для заданных репозиториев </li><ul><li>количество коммитов
  36. 36. просматриваемые репозитории </li></ul><li>http://gist.github.com/742252 </li></ul>
  37. 37. Рейтинг пользователей по репозиториям – код require_once('php-github-api/lib/phpGitHubApi.php'); $github = new phpGitHubApi(); $repositories = array( array('jquery', 'jquery'), array('madrobby', 'scriptaculous'), array('jashkenas', 'coffee-script'), array('yui', 'yui3'), array('sstephenson', 'prototype'), array('mootools', 'mootools-core') ); function add(&$array, $key, $value){ if (!array_key_exists($key, $array)) { $array[$key] = 0; } $array[$key] += $value; } foreach ($repositories as $repository) { list($user, $reponame) = $repository; echo &quot;Processing repository '$reponame' of user '$user'&quot; . PHP_EOL; echo 'Getting watchers' . PHP_EOL; $watchers = $github->getRepoApi()->getRepoWatchers($user, $reponame); foreach ($watchers as $watcher) { add($rating, $watcher, 10); } echo 'Getting contributors' . PHP_EOL; $contributors = $github->getRepoApi()->getRepoContributors($user, $reponame); foreach ($contributors as $contributor) { add($rating, $contributor['login'], $contributor['contributions']); } } asort($rating); foreach ($rating as $person => $ratingValue) { echo implode(',', array($person, $ratingValue)) . PHP_EOL; }
  38. 38. Рейтинг пользователей по репозиториям – результат
  39. 39. Связанность репозиториев <ul><li>Связанность по контрибьюторам
  40. 40. Связанность по watcher'ам
  41. 41. Скрипт ~100 строк кода:
  42. 42. http://gist.github.com/742247 </li></ul>
  43. 43. Связанность по контрибьюторам – результат
  44. 44. Связанность по watcher'ам - результат

×