4
4
5
5
use Github \Exception \MissingArgumentException ;
6
6
7
+ /**
8
+ * Listing, creating and updating deployments.
9
+ *
10
+ * @link https://developer.github.com/v3/repos/deployments/
11
+ */
7
12
class Deployment extends AbstractApi
8
13
{
9
-
14
+ /**
15
+ * List deployments for a particular repository
16
+ * @link https://developer.github.com/v3/repos/deployments/#list-deployments
17
+ *
18
+ * @param string $username the username of the user who owns the repository
19
+ * @param string $repository the name of the repository
20
+ * @param array $params query parameters to filter deployments by (see link)
21
+ * @return array the deployments requested
22
+ */
10
23
public function all ($ username , $ repository , array $ params = array ())
11
24
{
12
- return $ this ->get ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/deployments ' , array (),
13
- array ('Accept ' => 'application/vnd.github.cannonball-preview+json ' )
14
- );
25
+ return $ this ->get ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/deployments ' , $ params );
15
26
}
16
27
17
-
18
-
19
28
/**
20
29
* Create a new deployment for the given username and repo.
30
+ * @link https://developer.github.com/v3/repos/deployments/#create-a-deployment
31
+ *
32
+ * Important: Once a deployment is created, it cannot be updated. Changes are indicated by creating new statuses.
33
+ * @see updateStatus
21
34
*
22
35
* @param string $username the username
23
36
* @param string $repository the repository
@@ -32,22 +45,40 @@ public function create($username, $repository, array $params)
32
45
throw new MissingArgumentException (array ('ref ' ));
33
46
}
34
47
35
- return $ this ->post ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/deployments ' , $ params, [ ' Accept ' => ' application/vnd.github.cannonball-preview+json ' ] );
48
+ return $ this ->post ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/deployments ' , $ params );
36
49
}
37
50
38
51
/**
39
- * Update deployment information's by username, repo and deployment number. Requires authentication.
52
+ * Updates a deployment by creating a new status update.
53
+ * @link https://developer.github.com/v3/repos/deployments/#create-a-deployment-status
40
54
*
41
- * @param string $username the username
55
+ * @param string $username the username
42
56
* @param string $repository the repository
43
- * @param string $id the deployment number
57
+ * @param string $id the deployment number
58
+ * @param array $params The information about the deployment update.
59
+ * Must include a "state" field of pending, success, error, or failure.
60
+ * May also be given a target_url and description, ßee link for more details.
44
61
* @return array information about the deployment
62
+ *
63
+ * @throws MissingArgumentException
45
64
*/
46
- public function update ($ username , $ repository , $ id , array $ params )
65
+ public function updateStatus ($ username , $ repository , $ id , array $ params )
47
66
{
48
67
if (!isset ($ params ['state ' ])) {
49
68
throw new MissingArgumentException (array ('state ' ));
50
69
}
51
- return $ this ->post ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/deployments/ ' .rawurlencode ($ id ).'/statuses ' , $ params , ['Accept ' => 'application/vnd.github.cannonball-preview+json ' ]);
70
+ return $ this ->post ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/deployments/ ' .rawurlencode ($ id ).'/statuses ' , $ params );
71
+ }
72
+
73
+ /**
74
+ * Gets all of the status updates tied to a given deployment.
75
+ *
76
+ * @param string $username the username
77
+ * @param string $repository the repository
78
+ * @param int $id the deployment identifier
79
+ * @return array the deployment statuses
80
+ */
81
+ public function getStatuses ($ username , $ repository , $ id ) {
82
+ return $ this ->get ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/deployments/ ' .rawurlencode ($ id ).'/statuses ' );
52
83
}
53
84
}
0 commit comments