hubstats 0.3.17 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +0 -1
  3. data/CHANGELOG.markdown +10 -0
  4. data/MIT-LICENSE +3 -1
  5. data/README.md +2 -2
  6. data/app/assets/javascripts/hubstats/application.js +80 -24
  7. data/app/assets/javascripts/hubstats/pull_requests.js +35 -3
  8. data/app/assets/javascripts/hubstats/select2.js +8 -1
  9. data/app/assets/javascripts/hubstats/users.js +17 -5
  10. data/app/assets/stylesheets/hubstats/application.css +39 -1
  11. data/app/assets/stylesheets/hubstats/bootstrap.css +0 -6
  12. data/app/assets/stylesheets/hubstats/deploys.css +2 -0
  13. data/app/assets/stylesheets/hubstats/label.css +2 -0
  14. data/app/assets/stylesheets/hubstats/octicons.css.erb +2 -0
  15. data/app/assets/stylesheets/hubstats/pull_requests.css +2 -0
  16. data/app/controllers/hubstats/application_controller.rb +12 -4
  17. data/app/controllers/hubstats/base_controller.rb +8 -0
  18. data/app/controllers/hubstats/deploys_controller.rb +31 -8
  19. data/app/controllers/hubstats/events_controller.rb +11 -0
  20. data/app/controllers/hubstats/pull_requests_controller.rb +9 -1
  21. data/app/controllers/hubstats/repos_controller.rb +17 -3
  22. data/app/controllers/hubstats/users_controller.rb +15 -0
  23. data/app/models/hubstats/comment.rb +13 -5
  24. data/app/models/hubstats/deploy.rb +29 -6
  25. data/app/models/hubstats/label.rb +16 -4
  26. data/app/models/hubstats/pull_request.rb +44 -2
  27. data/app/models/hubstats/repo.rb +48 -4
  28. data/app/models/hubstats/user.rb +130 -32
  29. data/app/views/hubstats/deploys/index.html.erb +1 -3
  30. data/app/views/hubstats/deploys/show.html.erb +7 -2
  31. data/app/views/hubstats/partials/_comment-condensed.html.erb +3 -0
  32. data/app/views/hubstats/partials/_comment.html.erb +3 -0
  33. data/app/views/hubstats/partials/_deploy-condensed.html.erb +2 -2
  34. data/app/views/hubstats/partials/_deploy.html.erb +1 -1
  35. data/app/views/hubstats/partials/_footer.html.erb +22 -0
  36. data/app/views/hubstats/partials/_header.html.erb +18 -10
  37. data/app/views/hubstats/partials/_pull-condensed.html.erb +2 -0
  38. data/app/views/hubstats/partials/_pull.html.erb +2 -0
  39. data/app/views/hubstats/partials/_quick_addition_stats.html.erb +2 -0
  40. data/app/views/hubstats/partials/_quick_stats.html.erb +1 -0
  41. data/app/views/hubstats/partials/_repo.html.erb +2 -3
  42. data/app/views/hubstats/partials/_user-condensed.html.erb +4 -0
  43. data/app/views/hubstats/partials/_user.html.erb +4 -2
  44. data/app/views/hubstats/pull_requests/index.html.erb +6 -1
  45. data/app/views/hubstats/pull_requests/show.html.erb +5 -0
  46. data/app/views/hubstats/repos/dashboard.html.erb +6 -4
  47. data/app/views/hubstats/repos/show.html.erb +6 -1
  48. data/app/views/hubstats/tables/_comments-condensed.html.erb +2 -1
  49. data/app/views/hubstats/tables/_comments.html.erb +2 -1
  50. data/app/views/hubstats/tables/_deploys-condensed.html.erb +1 -0
  51. data/app/views/hubstats/tables/_deploys.html.erb +1 -0
  52. data/app/views/hubstats/tables/_grouped_deploys.html.erb +1 -0
  53. data/app/views/hubstats/tables/_grouped_pulls.html.erb +1 -0
  54. data/app/views/hubstats/tables/_pulls-condensed.html.erb +1 -0
  55. data/app/views/hubstats/tables/_pulls.html.erb +1 -0
  56. data/app/views/hubstats/tables/_repos-condensed.html.erb +1 -0
  57. data/app/views/hubstats/tables/_repos.html.erb +1 -0
  58. data/app/views/hubstats/tables/_users-condensed.html.erb +1 -0
  59. data/app/views/hubstats/tables/_users.html.erb +1 -1
  60. data/app/views/hubstats/users/index.html.erb +3 -2
  61. data/app/views/hubstats/users/show.html.erb +7 -1
  62. data/app/views/layouts/hubstats/application.html.erb +4 -4
  63. data/config/routes.rb +2 -1
  64. data/db/seeds.rb +41 -0
  65. data/hubstats.gemspec +1 -0
  66. data/lib/generators/hubstats/install_generator.rb +2 -1
  67. data/lib/hub_helper.rb +18 -0
  68. data/lib/hubstats.rb +0 -30
  69. data/lib/hubstats/events_handler.rb +25 -7
  70. data/lib/hubstats/github_api.rb +43 -15
  71. data/lib/hubstats/version.rb +1 -1
  72. data/lib/tasks/hubstats_tasks.rake +1 -0
  73. data/lib/tasks/populate_task.rake +2 -1
  74. data/spec/controllers/hubstats/deploys_controller_spec.rb +0 -3
  75. data/spec/controllers/hubstats/pull_requests_controller_spec.rb +3 -4
  76. data/spec/controllers/hubstats/repos_controller_spec.rb +4 -5
  77. data/spec/factories/comment.rb +2 -1
  78. data/spec/factories/deploys.rb +1 -0
  79. data/spec/factories/pull_requests.rb +1 -0
  80. data/spec/factories/repo.rb +1 -0
  81. data/spec/factories/users.rb +2 -1
  82. data/spec/lib/hubstats/github_api_spec.rb +5 -5
  83. metadata +41 -26
  84. data/date_range +0 -0
@@ -1,3 +1,4 @@
1
+ <!-- Show the repos or say there are no repositories -->
1
2
  <% if @repos.length > 0 %>
2
3
  <div class="repos">
3
4
  <%= render partial: 'hubstats/partials/repo-condensed', collection: @repos, as: :repo %>
@@ -1,3 +1,4 @@
1
+ <!-- Either say there are no repos to show, or show all of the stat titles along with the stats/repos -->
1
2
  <% if @repos.length > 0 %>
2
3
  <div class="repos">
3
4
  <div class="row single-repo header">
@@ -1,3 +1,4 @@
1
+ <!-- Show the users or say there are no users -->
1
2
  <% if @users.length > 0 %>
2
3
  <div class="users">
3
4
  <%= render partial: 'hubstats/partials/user-condensed', collection: @users, as: :user %>
@@ -1,3 +1,4 @@
1
+ <!-- Either say there are no users to show, or show all of the stat titles along with the stats/users -->
1
2
  <% if @users.length > 0 %>
2
3
  <div class="users">
3
4
  <div class="row single-user header">
@@ -13,7 +14,6 @@
13
14
  <div class="col-lg-2 col-md-2 col-sm-2">
14
15
  <a class="header desc" id="comments"> Comments <span class="octicon"></span></a>
15
16
  </div>
16
- <!-- Show the net additions instead of the additions and deletions separately -->
17
17
  <div class="col-lg-2 col-md-2 col-sm-2">
18
18
  <a class="header desc" id="netadditions"> Net Additions <span class="octicon"></span></a>
19
19
  </div>
@@ -1,6 +1,8 @@
1
1
  <div class="container" id="user"%>
2
2
  <div class="row"%>
3
3
  <div class="col-lg-3">
4
+
5
+ <!-- Allow for filtering by repository or user -->
4
6
  <div class="form-group">
5
7
  <input class="select2-control" id="repos">
6
8
  </input>
@@ -11,10 +13,9 @@
11
13
  </div>
12
14
  </div>
13
15
 
16
+ <!-- Show all of the users with their individual stats -->
14
17
  <div class="col-lg-9">
15
-
16
18
  <%= render 'hubstats/tables/users' %>
17
-
18
19
  <div class="text-center">
19
20
  <%= will_paginate @users, renderer: BootstrapPagination::Rails %>
20
21
  </div>
@@ -1,10 +1,16 @@
1
1
  <div class="container" id="repo">
2
2
  <div class="row">
3
+
4
+ <!-- Title with the user's GitHub username -->
3
5
  <h1 class="title text-center"><a href=<%=@user.html_url%>> <%= @user.login %></a> </h1>
6
+
7
+ <!-- Show all of the stats about the user -->
4
8
  <%= render 'hubstats/partials/quick_stats' %>
5
9
  </div>
10
+
6
11
  <div class="row">
7
12
 
13
+ <!-- Show all of this user's merged pull requests in a "condensed" view -->
8
14
  <div class="col-lg-6 col-md-5 col-sm-5 col-xs-5">
9
15
  <h3> Pull Requests</h3>
10
16
  <%= render 'hubstats/tables/pulls-condensed' %>
@@ -13,7 +19,7 @@
13
19
  <% end %>
14
20
  </div>
15
21
 
16
- <!-- Show all of the deploys this user did -->
22
+ <!-- Show all of this user's deploys in a "condensed" view -->
17
23
  <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
18
24
  <h3> Deployments </h3>
19
25
  <%= render 'hubstats/tables/deploys-condensed' %>
@@ -1,3 +1,4 @@
1
+ <!-- Show the header, format the entire page, and show all other pages below header -->
1
2
  <!DOCTYPE html>
2
3
  <html>
3
4
  <head>
@@ -7,9 +8,8 @@
7
8
  <%= csrf_meta_tags %>
8
9
  </head>
9
10
  <body>
10
-
11
- <%= render 'hubstats/partials/header' %>
12
- <%= yield %>
13
-
11
+ <%= render 'hubstats/partials/header' %>
12
+ <%= yield %>
13
+ <%= render 'hubstats/partials/footer' %>
14
14
  </body>
15
15
  </html>
@@ -1,3 +1,4 @@
1
+ # Draw all of the routes that will be used in Hubstats
1
2
  Hubstats::Engine.routes.draw do
2
3
  root to: "pull_requests#index" # sets default root to be the pulls page
3
4
  post "/handler" => "events#handler", :as => :handler
@@ -9,6 +10,6 @@ Hubstats::Engine.routes.draw do
9
10
  get "/repos" => "repos#index", :as => :repos # route is for the repo filter on the pull request and deploys page
10
11
  get "/:repo" => "repos#show", :as => :repo # routes to specific repo's stats
11
12
  scope "/:repo", :as => :repo do
12
- get '/pull/:id' => "pull_requests#show", :as => :pull
13
+ get '/pull/:id' => "pull_requests#show", :as => :pull # routes to the specific repo's pull id
13
14
  end
14
15
  end
@@ -0,0 +1,41 @@
1
+ # List of deploys with the little pieces of code that can be used to populate the deploys database.
2
+ # All of the deploy information is fake. The repo names are a few of Sport Ngin's open source repos on GitHub.
3
+
4
+ # format of each deploy:
5
+ # [git sha, repository name, date and time of deployment, user_id, string of associated PR ids]
6
+ deploy_list = [
7
+ ["c1a2b37", "sportngin/active_zuora", "2010-12-03 18:00:00 -0500", 7562793, "15140096, 33691392, 33364992"],
8
+ ["i32jb9e", "sportngin/active_zuora", "2013-05-26 17:00:00 -0500", 61645, "9334784, 1734656"],
9
+ ["w19dkid", "sportngin/active_zuora", "2011-08-21 02:00:00 -0500", 47206, "23174656, 1487616, 4963840, 1231872, 10871808"],
10
+ ["n83b20c", "sportngin/homebrew-homebrew", "2014-11-08 05:00:00 -0500", 1319495, "2484224, 1239808"],
11
+ ["c92kda8", "sportngin/delayed_job_loner", "2010-11-10 12:00:00 -0500", 314014, "19986432, 23796481, 21961729"],
12
+ ["b91k9dk", "sportngin/passenger", "2010-02-18 11:00:00 -0500", 1557830, "5870592"],
13
+ ["ieoq630", "sportngin/strong_parameters", "2012-04-14 11:00:00 -0500", 142288, "31363329, 7326209"],
14
+ ["c1a2b38", "sportngin/objective-ci", "2013-12-03 18:01:00 -0500", 7562793, "16291842, 6195970"],
15
+ ["c1a2b39", "sportngin/objective-ci", "2014-12-04 13:00:00 -0500", 43369, "16448002, 27447298"],
16
+ ["29xkdi9", "sportngin/objective-ci", "2015-01-18 14:00:00 -0500", 3011, "6396163"],
17
+ ["9xkdjqk", "sportngin/objective-ci", "2015-03-21 07:00:00 -0500", 1352, "18483204"],
18
+ ["is93h1n", "sportngin/safe_cookies", "2014-12-31 09:00:00 -0500", 6384174, "3274757, 5708038"],
19
+ ["kdiq13j", "sportngin/safe_cookies", "2013-11-17 04:00:00 -0500", 6902485, "10444039, 11917574"],
20
+ ["ciap1kd", "sportngin/passenger", "2010-08-29 01:00:00 -0500", 7231089, "25856007"],
21
+ ["iek9s0d", "sportngin/safe_cookies", "2015-05-13 12:00:00 -0500", 4095632, "4534280, 3557640"],
22
+ ["918240d", "sportngin/make-resourceful", "2015-04-01 03:00:00 -0500", 5577837, "27117320, 1967369, 20911625"],
23
+ ["dis8203", "sportngin/make-resourceful", "2015-02-27 08:00:00 -0500", 5167099, "9657609, 4745225, 35976969, 5180938"],
24
+ ["2kd9sac", "sportngin/passenger", "2015-05-26 03:00:00 -0500", 7452482, "23303693, 2990349"],
25
+ ["0slqi83", "sportngin/make-resourceful", "2015-05-27 13:00:00 -0500", 4240287, "34394381"],
26
+ ["c92k102", "sportngin/passenger", "2015-05-27 12:00:00 -0500", 9447923, "25449231"]
27
+ ]
28
+
29
+ # Public - Looks into the repo database to return the id of the repo that matches the repo name.
30
+ #
31
+ # repo_name - the name of the repo
32
+ #
33
+ # Returns - the id of the repo
34
+ def replace_name_with_id (repo_name)
35
+ return Hubstats::Repo.where(full_name: repo_name).first.id.to_i
36
+ end
37
+
38
+ # Add each deploy to the deploy database one at a time.
39
+ deploy_list.each do |git_revision, repo_name, deployed_at, user_id, pull_request_ids|
40
+ Hubstats::Deploy.create(git_revision: git_revision, repo_id: replace_name_with_id(repo_name), deployed_at: deployed_at, user_id: user_id, pull_request_ids: pull_request_ids)
41
+ end
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency "octokit", "~> 3.2"
21
21
  s.add_dependency "will_paginate-bootstrap"
22
22
  s.add_dependency "select2-rails", "3.5.9"
23
+ s.add_dependency "bootstrap-datepicker-rails", "~> 1.4.0"
23
24
 
24
25
  s.add_development_dependency "rspec-rails",'~> 3.0.0.beta'
25
26
  s.add_development_dependency "shoulda-matchers", "~> 2.6"
@@ -1,10 +1,11 @@
1
1
  module Hubstats
2
2
  class InstallGenerator < ::Rails::Generators::Base
3
3
 
4
+ # Copies the octokit.example.yml when 'rails generate hubstats:install' is run on the command line
4
5
  source_root File.expand_path('../', __FILE__)
5
6
  def octokit_initializer
6
7
  copy_file "octokit.example.yml", "#{Rails.root}/config/octokit.yml"
7
8
  end
8
9
 
9
10
  end
10
- end
11
+ end
@@ -1,4 +1,10 @@
1
1
  module HubHelper
2
+
3
+ # Public - Gets the PR number from the comment
4
+ #
5
+ # comment - the comment that we will get the PR number from
6
+ #
7
+ # Returns - either the PR number or nil
2
8
  def self.get_pull_number(comment)
3
9
  if comment[:pull_request]
4
10
  return comment[:pull_request][:number]
@@ -11,6 +17,13 @@ module HubHelper
11
17
  end
12
18
  end
13
19
 
20
+ # Public - Sets the comment's repo_id, pull_number, and type.
21
+ #
22
+ # comment - the comment that will be updated
23
+ # repo_id - the id of the repo that the comment belongs to
24
+ # kind - the type of comment (pull request, issue, or commit)
25
+ #
26
+ # Returns - the PR with the new repository
14
27
  def self.comment_setup(comment, repo_id, kind)
15
28
  comment[:repo_id] = repo_id
16
29
  comment[:pull_number] = get_pull_number(comment)
@@ -18,6 +31,11 @@ module HubHelper
18
31
  return comment
19
32
  end
20
33
 
34
+ # Public - Sets the PR's repository.
35
+ #
36
+ # pull_request - the PR that is passed in
37
+ #
38
+ # Returns - the PR with the new repository
21
39
  def self.pull_setup(pull_request)
22
40
  pull_request[:repository] = pull_request[:base][:repo]
23
41
  return pull_request
@@ -5,35 +5,5 @@ require "hubstats/events_handler"
5
5
  require "active_support/core_ext/numeric"
6
6
  require "hubstats/config"
7
7
 
8
-
9
8
  module Hubstats
10
-
11
- DATE_RANGE_ARRAY = [
12
- {
13
- display_value: "Today",
14
- date: 1.day
15
- },{
16
- display_value: "One Week",
17
- date: 1.week
18
- },{
19
- display_value: "Two Weeks",
20
- date: 2.weeks
21
- },{
22
- display_value: "One Month",
23
- date: 4.weeks
24
- },{
25
- display_value: "Three Months",
26
- date: 12.weeks
27
- },{
28
- display_value: "Six Months",
29
- date: 24.weeks
30
- },{
31
- display_value: "All Time",
32
- date: 520.weeks
33
- }
34
- ]
35
-
36
- def self.config
37
- @@config ||= Hubstats::Config.parse
38
- end
39
9
  end
@@ -1,19 +1,30 @@
1
1
  module Hubstats
2
2
  class EventsHandler
3
3
 
4
+ # Public - Processes comments and PRs
5
+ #
6
+ # payload - the data that we will be processing
7
+ # type - the type of data that payload is
8
+ #
9
+ # Returns - nothing
4
10
  def route(payload, type)
5
11
  case type
6
12
  when "issue_comment", "IssueCommentEvent"
7
- comment_processor(payload,"Issue")
13
+ comment_processor(payload, "Issue")
8
14
  when "commit_comment", "CommitCommentEvent"
9
- comment_processor(payload,"Commit")
15
+ comment_processor(payload, "Commit")
10
16
  when "pull_request", "PullRequestEvent"
11
17
  pull_processor(payload)
12
18
  when "pull_request_review_comment", "PullRequestReviewCommentEvent"
13
- comment_processor(payload,"PullRequest")
19
+ comment_processor(payload, "PullRequest")
14
20
  end
15
21
  end
16
22
 
23
+ # Public - Gets the information for the new PR, makes the new PR, grabs the labels, and makes new labels
24
+ #
25
+ # payload - the information that we will use to get data off of
26
+ #
27
+ # Returns - nothing, but makes the new PR and adds appropriate labels
17
28
  def pull_processor(payload)
18
29
  pull_request = payload[:pull_request]
19
30
  pull_request[:repository] = payload[:repository]
@@ -23,16 +34,24 @@ module Hubstats
23
34
  new_pull.add_labels(labels)
24
35
  end
25
36
 
26
- def comment_processor(payload,kind)
37
+ # Public - Gets the information for the new comment and updates it
38
+ #
39
+ # payload - the information that we will use to get data off of
40
+ #
41
+ # Returns - nothing, but updates the comment
42
+ def comment_processor(payload, kind)
27
43
  comment = payload[:comment]
28
44
  comment[:kind] = kind
29
45
  comment[:repo_id] = payload[:repository][:id]
30
46
  comment[:pull_number] = get_pull_number(payload)
31
-
32
47
  Hubstats::Comment.create_or_update(comment.with_indifferent_access)
33
48
  end
34
49
 
35
- #grabs the number off of anyone of the various places it can be
50
+ # Public - Grabs the PR number off of any of the various places it can be
51
+ #
52
+ # payload - the thing that we will use to try to attain the PR number
53
+ #
54
+ # Returns - the PR number
36
55
  def get_pull_number(payload)
37
56
  if payload[:pull_request]
38
57
  return payload[:pull_request][:number]
@@ -44,6 +63,5 @@ module Hubstats
44
63
  return nil
45
64
  end
46
65
  end
47
-
48
66
  end
49
67
  end
@@ -4,7 +4,12 @@ module Hubstats
4
4
 
5
5
  cattr_accessor :auth_info
6
6
 
7
- def self.configure(options={})
7
+ # Public - configures the information needed to receive webhooks from GitHub
8
+ #
9
+ # options - the options to be passed in or an empty hash
10
+ #
11
+ # Returns - the configured auth_info
12
+ def self.configure(options = {})
8
13
  @@auth_info = {}
9
14
  if access_token = ENV['GITHUB_API_TOKEN'] || options["access_token"]
10
15
  @@auth_info[:access_token] = access_token
@@ -15,30 +20,35 @@ module Hubstats
15
20
  @@auth_info
16
21
  end
17
22
 
18
- def self.client(options={})
23
+ # Public - Checks that the options passed in are valid and configured correctly
24
+ #
25
+ # options - the options to be checked or an empty hash
26
+ #
27
+ # Returns - the new configured info
28
+ def self.client(options = {})
19
29
  configure(Hubstats.config.github_auth) if @@auth_info.nil?
20
30
  ent = Octokit::Client.new(@@auth_info.merge(options))
21
31
  ent.user #making sure it was configured properly
22
32
  return ent
23
33
  end
24
34
 
25
- # Public: Gets all of a specific kind from a repo, and processes them.
35
+ # Public - Gets all of a specific kind from a repo, and processes them.
26
36
  #
27
37
  # repo_name - the name of a repo
28
38
  # kind - a kind of object (pull,comment)
29
39
  # options - any possible option a particular kind of object
30
40
  #
31
41
  # Returns an array of that particular kind
32
- def self.inline(repo_name, kind, options={})
42
+ def self.inline(repo_name, kind, options = {})
33
43
  path = ["repos",repo_name,kind].join('/')
34
- octo = client({:auto_paginate => true })
44
+ octo = client({:auto_paginate => true})
35
45
  octo.paginate(path, options) do |data, last_response|
36
46
  last_response.data.each{|v| route(v,kind,repo_name)}.clear
37
47
  wait_limit(1,octo.rate_limit)
38
48
  end.each{|v| route(v,kind,repo_name)}.clear
39
49
  end
40
50
 
41
- # Public: Gets repos found in configuration file
51
+ # Public - Gets repos found in configuration file
42
52
  #
43
53
  # Returns - an array of github repo objects
44
54
  def self.get_repos
@@ -53,7 +63,9 @@ module Hubstats
53
63
  repos
54
64
  end
55
65
 
56
- # Public: Gets extra information on pull requests, e.g size, additions ...
66
+ # Public - Gets extra information on pull requests, e.g size, additions ...
67
+ #
68
+ # Returns - nothing
57
69
  def self.update_pulls
58
70
  grab_size = 250
59
71
  begin
@@ -66,7 +78,6 @@ module Hubstats
66
78
  pr = client.pull_request(repo.full_name, pull.number)
67
79
  Hubstats::PullRequest.create_or_update(HubHelper.pull_setup(pr))
68
80
  end
69
-
70
81
  wait_limit(grab_size,client.rate_limit)
71
82
  end
72
83
  puts "All Pull Requests are up to date"
@@ -76,6 +87,11 @@ module Hubstats
76
87
  end
77
88
  end
78
89
 
90
+ # Public - Makes a new webhook from a repository
91
+ #
92
+ # repo - the repository that is attempting to have a hook made with
93
+ #
94
+ # Returns - the hook and a message (or just a message and no hook)
79
95
  def self.create_hook(repo)
80
96
  begin
81
97
  client.create_hook(
@@ -106,7 +122,7 @@ module Hubstats
106
122
  end
107
123
  end
108
124
 
109
- # Public: Delete webhook from github repository
125
+ # Public - Delete webhook from github repository
110
126
  #
111
127
  # repo - a repo github object
112
128
  # old_endpoint - A string of the previous endpoint
@@ -125,7 +141,7 @@ module Hubstats
125
141
  end
126
142
  end
127
143
 
128
- # Public: updates a hook if it exists, otherwise creates one
144
+ # Public - updates a hook if it exists, otherwise creates one
129
145
  #
130
146
  # repo - a repo github object
131
147
  # old_endpoint - A string of the previous endpoint
@@ -136,7 +152,7 @@ module Hubstats
136
152
  create_hook(repo)
137
153
  end
138
154
 
139
- # Public: gets labels for a particular label
155
+ # Public - gets labels for a particular label
140
156
  #
141
157
  # repo - a repo github object
142
158
  #
@@ -153,7 +169,7 @@ module Hubstats
153
169
  labels
154
170
  end
155
171
 
156
- # Public: gets the label for a given pull request
172
+ # Public - gets the label for a given pull request
157
173
  #
158
174
  # repo_name - a the repo_name
159
175
  # pull_request_number - the number of the pull_request you want labels of
@@ -164,7 +180,7 @@ module Hubstats
164
180
  issue[:labels]
165
181
  end
166
182
 
167
- # Public: Gets all the labels for a repo, adds all labels to a pull
183
+ # Public - Gets all the labels for a repo, adds all labels to a pull
168
184
  #
169
185
  # repo - the particular repository, you want to add labels to
170
186
  def self.add_labels(repo)
@@ -173,13 +189,26 @@ module Hubstats
173
189
  end
174
190
  end
175
191
 
176
- def self.wait_limit(grab_size,rate_limit)
192
+ # Public - Puts the process to sleep if there is a "timeout" before continuing
193
+ #
194
+ # grab_size - the amount of data that is being attempted to grab
195
+ # rate_limit - the amount of time to wait to grab data
196
+ #
197
+ # Returns - nothing
198
+ def self.wait_limit(grab_size, rate_limit)
177
199
  if rate_limit.remaining < grab_size
178
200
  puts "Hit Github rate limit, waiting #{Time.at(rate_limit.resets_in).utc.strftime("%H:%M:%S")} to get more"
179
201
  sleep(rate_limit.resets_in)
180
202
  end
181
203
  end
182
204
 
205
+ # Public - Routes to the correst setup methods to be used to update or create comments or PRs
206
+ #
207
+ # object - the new thing to be updated or created
208
+ # kind - the type of thing (pull comment, issue comment, normal comment, pull, or issue)
209
+ # repo_name - the name of the repository to which object belongs (optional)
210
+ #
211
+ # Returns - nothing, but does update the object
183
212
  def self.route(object, kind, repo_name = nil)
184
213
  if kind == "pulls/comments"
185
214
  repo = Hubstats::Repo.where(full_name: repo_name).first
@@ -202,4 +231,3 @@ module Hubstats
202
231
  end
203
232
  end
204
233
  end
205
-