File: search_indexing.rb

package info (click to toggle)
ruby-octokit 10.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,092 kB
  • sloc: ruby: 13,339; sh: 99; makefile: 7; javascript: 3
file content (82 lines) | stat: -rw-r--r-- 2,992 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# frozen_string_literal: true

module Octokit
  class EnterpriseAdminClient
    # Methods for the Enterprise Search Indexing API
    #
    # @see https://developer.github.com/v3/enterprise-admin/search_indexing/
    module SearchIndexing
      # Queue a User or Organization to be indexed
      #
      # @param user [String] A GitHub Enterprise user or organization
      # @return [Sawyer:Resource] Result of the queuing containing `:message`
      def index_user(user)
        queue_index user
      end
      alias index_organization index_user

      # Queue a Repository to be indexed
      #
      # @param repo [String, Hash, Repository] A GitHub repository
      # @return [Sawyer:Resource] Result of the queuing containing `:message`
      def index_repository(repo)
        queue_index Repository.new repo
      end

      # Queue a repository's Issues to be indexed
      #
      # @param repo [String, Hash, Repository] A GitHub repository
      # @return [Sawyer:Resource] Result of the queuing containing `:message`
      def index_repository_issues(repo)
        queue_index "#{Repository.new repo}/issues"
      end

      # Queue a repository's code to be indexed
      #
      # @param repo [String, Hash, Repository] A GitHub repository
      # @return [Sawyer:Resource] Result of the queuing containing `:message`
      def index_repository_code(repo)
        queue_index "#{Repository.new repo}/code"
      end

      # Queue a user's or organization's repositories to be indexed
      #
      # @param user [String] A GitHub Enterprise user or organization
      # @return [Sawyer:Resource] Result of the queuing containing `:message`
      def index_users_repositories(user)
        queue_index "#{user}/*"
      end
      alias index_organizations_repositories index_users_repositories

      # Queue an index of all the issues across all of a user's or
      # organization's repositories
      #
      # @param user [String] A GitHub Enterprise user or organization
      # @return [Sawyer:Resource] Result of the queuing containing `:message`
      def index_users_repositories_issues(user)
        queue_index "#{user}/*/issues"
      end
      alias index_organizations_repositories_issues index_users_repositories_issues

      # Queue an index of all the code contained in all of a user's or
      # organization's repositories
      #
      # @param user [String] A GitHub Enterprise user or organization
      # @return [Sawyer:Resource] Result of the queuing containing `:message`
      def index_users_repositories_code(user)
        queue_index "#{user}/*/code"
      end
      alias index_organizations_repositories_code index_users_repositories_code

      private

      # @private Queue a target for indexing
      #
      # @param target [String] Target to index
      # @return [Sawyer:Resource] Result of the queuing containing `:message`
      def queue_index(target)
        post 'staff/indexing_jobs', target: target
      end
    end
  end
end