/lib/octokit/client/events.rb

http://github.com/pengwynn/octokit · Ruby · 152 lines · 44 code · 13 blank · 95 comment · 0 complexity · ae600a11c54fedecb8103289edfeef0d MD5 · raw file

  1. module Octokit
  2. class Client
  3. # Method for the Events API
  4. #
  5. # @see https://developer.github.com/v3/activity/events/
  6. # @see https://developer.github.com/v3/issues/events/
  7. module Events
  8. # List all public events for GitHub
  9. #
  10. # @return [Array<Sawyer::Resource>] A list of all public events from GitHub
  11. # @see https://developer.github.com/v3/activity/events/#list-public-events
  12. # @example List all pubilc events
  13. # Octokit.public_events
  14. def public_events(options = {})
  15. paginate "events", options
  16. end
  17. # List all user events
  18. #
  19. # @param user [Integer, String] GitHub user login or id.
  20. # @return [Array<Sawyer::Resource>] A list of all user events
  21. # @see https://developer.github.com/v3/activity/events/#list-events-performed-by-a-user
  22. # @example List all user events
  23. # Octokit.user_events("sferik")
  24. def user_events(user, options = {})
  25. paginate "#{User.path user}/events", options
  26. end
  27. # List public user events
  28. #
  29. # @param user [Integer, String] GitHub user login or id
  30. # @return [Array<Sawyer::Resource>] A list of public user events
  31. # @see https://developer.github.com/v3/activity/events/#list-public-events-performed-by-a-user
  32. # @example List public user events
  33. # Octokit.user_events("sferik")
  34. def user_public_events(user, options = {})
  35. paginate "#{User.path user}/events/public", options
  36. end
  37. # List events that a user has received
  38. #
  39. # @param user [Integer, String] GitHub user login or id
  40. # @return [Array<Sawyer::Resource>] A list of all user received events
  41. # @see https://developer.github.com/v3/activity/events/#list-events-that-a-user-has-received
  42. # @example List all user received events
  43. # Octokit.received_events("sferik")
  44. def received_events(user, options = {})
  45. paginate "#{User.path user}/received_events", options
  46. end
  47. # List public events a user has received
  48. #
  49. # @param user [Integer, String] GitHub user login or id
  50. # @return [Array<Sawyer::Resource>] A list of public user received events
  51. # @see https://developer.github.com/v3/activity/events/#list-public-events-that-a-user-has-received
  52. # @example List public user received events
  53. # Octokit.received_public_events("sferik")
  54. def received_public_events(user, options = {})
  55. paginate "#{User.path user}/received_events/public", options
  56. end
  57. # List events for a repository
  58. #
  59. # @param repo [Integer, String, Repository, Hash] A GitHub repository
  60. # @return [Array<Sawyer::Resource>] A list of events for a repository
  61. # @see https://developer.github.com/v3/activity/events/#list-repository-events
  62. # @example List events for a repository
  63. # Octokit.repository_events("sferik/rails_admin")
  64. def repository_events(repo, options = {})
  65. paginate "#{Repository.path repo}/events", options
  66. end
  67. # List public events for a repository's network
  68. #
  69. # @param repo [String, Repository, Hash] A GitHub repository
  70. # @return [Array<Sawyer::Resource>] A list of events for a repository's network
  71. # @see https://developer.github.com/v3/activity/events/#list-public-events-for-a-network-of-repositories
  72. # @example List events for a repository's network
  73. # Octokit.repository_network_events("sferik/rails_admin")
  74. def repository_network_events(repo, options = {})
  75. paginate "networks/#{Repository.new(repo)}/events", options
  76. end
  77. # List all events for an organization
  78. #
  79. # Requires authenticated client.
  80. #
  81. # @param org [String] Organization GitHub handle
  82. # @return [Array<Sawyer::Resource>] List of all events from a GitHub organization
  83. # @see https://developer.github.com/v3/activity/events/#list-events-for-an-organization
  84. # @example List events for the lostisland organization
  85. # @client.organization_events("lostisland")
  86. def organization_events(org, options = {})
  87. paginate "users/#{login}/events/orgs/#{org}", options
  88. end
  89. # List an organization's public events
  90. #
  91. # @param org [String, Integer] Organization GitHub login or id.
  92. # @return [Array<Sawyer::Resource>] List of public events from a GitHub organization
  93. # @see https://developer.github.com/v3/activity/events/#list-public-events-for-an-organization
  94. # @example List public events for GitHub
  95. # Octokit.organization_public_events("GitHub")
  96. def organization_public_events(org, options = {})
  97. paginate "#{Organization.path org}/events", options
  98. end
  99. # Get all Issue Events for a given Repository
  100. #
  101. # @param repo [Integer, String, Repository, Hash] A GitHub repository
  102. #
  103. # @return [Array<Sawyer::Resource>] Array of all Issue Events for this Repository
  104. # @see https://developer.github.com/v3/issues/events/#list-events-for-a-repository
  105. # @see https://developer.github.com/v3/activity/events/#list-issue-events-for-a-repository
  106. # @example Get all Issue Events for Octokit
  107. # Octokit.repository_issue_events("octokit/octokit.rb")
  108. def repository_issue_events(repo, options = {})
  109. paginate "#{Repository.path repo}/issues/events", options
  110. end
  111. alias :repo_issue_events :repository_issue_events
  112. # List events for an Issue
  113. #
  114. # @param repo [Integer, String, Repository, Hash] A GitHub repository
  115. # @param number [Integer] Issue number
  116. #
  117. # @return [Array<Sawyer::Resource>] Array of events for that issue
  118. # @see https://developer.github.com/v3/issues/events/#list-events-for-an-issue
  119. # @example List all issues events for issue #38 on octokit/octokit.rb
  120. # Octokit.issue_events("octokit/octokit.rb", 38)
  121. def issue_events(repo, number, options = {})
  122. options = ensure_api_media_type(:project_card_events, options)
  123. paginate "#{Repository.path repo}/issues/#{number}/events", options
  124. end
  125. # Get information on a single Issue Event
  126. #
  127. # @param repo [Integer, String, Repository, Hash] A GitHub repository
  128. # @param number [Integer] Event number
  129. #
  130. # @return [Sawyer::Resource] A single Event for an Issue
  131. # @see https://developer.github.com/v3/issues/events/#get-a-single-event
  132. # @example Get Event information for ID 3094334 (a pull request was closed)
  133. # Octokit.issue_event("octokit/octokit.rb", 3094334)
  134. def issue_event(repo, number, options = {})
  135. paginate "#{Repository.path repo}/issues/events/#{number}", options
  136. end
  137. end
  138. end
  139. end