@@ -28,7 +28,9 @@ public function tags($username, $repository)
28
28
29
29
public function show ($ username , $ repository , $ reference )
30
30
{
31
- return $ this ->get ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/git/refs/ ' .rawurlencode ($ reference ));
31
+ $ reference = $ this ->encodeReference ($ reference );
32
+
33
+ return $ this ->get ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/git/refs/ ' .$ reference );
32
34
}
33
35
34
36
public function create ($ username , $ repository , array $ params )
@@ -46,11 +48,20 @@ public function update($username, $repository, $reference, array $params)
46
48
throw new MissingArgumentException ('sha ' );
47
49
}
48
50
49
- return $ this ->patch ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/git/refs/ ' .rawurlencode ($ reference ), $ params );
51
+ $ reference = $ this ->encodeReference ($ reference );
52
+
53
+ return $ this ->patch ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/git/refs/ ' .$ reference , $ params );
50
54
}
51
55
52
56
public function remove ($ username , $ repository , $ reference )
53
57
{
54
- return $ this ->delete ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/git/refs/ ' .rawurlencode ($ reference ));
58
+ $ reference = $ this ->encodeReference ($ reference );
59
+
60
+ return $ this ->delete ('repos/ ' .rawurlencode ($ username ).'/ ' .rawurlencode ($ repository ).'/git/refs/ ' .$ reference );
61
+ }
62
+
63
+ private function encodeReference ($ rawReference )
64
+ {
65
+ return implode ('/ ' , array_map ('rawurlencode ' , explode ('/ ' , $ rawReference )));
55
66
}
56
67
}
0 commit comments