search.php
3.34 KB
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
/**
* @package Joomla.Platform
* @subpackage GitHub
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
defined('JPATH_PLATFORM') or die;
/**
* GitHub API Search class for the Joomla Platform.
*
* @documentation https://developer.github.com/v3/search
*
* @since 3.1.4
* @deprecated 4.0 Use the `joomla/github` package via Composer instead
*/
class JGithubPackageSearch extends JGithubPackage
{
/**
* Search issues.
*
* @param string $owner The name of the owner of the repository.
* @param string $repo The name of the repository.
* @param string $state The state - open or closed.
* @param string $keyword The search term.
*
* @throws UnexpectedValueException
*
* @since 3.3 (CMS)
*
* @return object
*/
public function issues($owner, $repo, $state, $keyword)
{
if (false == in_array($state, array('open', 'close')))
{
throw new UnexpectedValueException('State must be either "open" or "closed"');
}
// Build the request path.
$path = '/legacy/issues/search/' . $owner . '/' . $repo . '/' . $state . '/' . $keyword;
// Send the request.
return $this->processResponse(
$this->client->get($this->fetchUrl($path))
);
}
/**
* Search repositories.
*
* Find repositories by keyword. Note, this legacy method does not follow
* the v3 pagination pattern.
* This method returns up to 100 results per page and pages can be fetched
* using the start_page parameter.
*
* @param string $keyword The search term.
* @param string $language Filter results by language https://github.com/languages
* @param integer $start_page Page number to fetch
*
* @since 3.3 (CMS)
*
* @return object
*/
public function repositories($keyword, $language = '', $start_page = 0)
{
// Build the request path.
$path = '/legacy/repos/search/' . $keyword . '?';
$path .= ($language) ? '&language=' . $language : '';
$path .= ($start_page) ? '&start_page=' . $start_page : '';
// Send the request.
return $this->processResponse(
$this->client->get($this->fetchUrl($path))
);
}
/**
* Search users.
*
* Find users by keyword.
*
* @param string $keyword The search term.
* @param integer $start_page Page number to fetch
*
* @since 3.3 (CMS)
*
* @return object
*/
public function users($keyword, $start_page = 0)
{
// Build the request path.
$path = '/legacy/user/search/' . $keyword . '?';
$path .= ($start_page) ? '&start_page=' . $start_page : '';
// Send the request.
return $this->processResponse(
$this->client->get($this->fetchUrl($path))
);
}
/**
* Email search.
*
* This API call is added for compatibility reasons only. There’s no guarantee
* that full email searches will always be available. The @ character in the
* address must be left unencoded. Searches only against public email addresses
* (as configured on the user’s GitHub profile).
*
* @param string $email The email address(es).
*
* @since 3.3 (CMS)
*
* @return object
*/
public function email($email)
{
// Build the request path.
$path = '/legacy/user/email/' . $email;
// Send the request.
return $this->processResponse(
$this->client->get($this->fetchUrl($path))
);
}
}