0dfc5b00d0e09ea017a2e536a95219beead41216
3 namespace app\Controller
;
13 abstract class Github
implements Controller
21 * @var \app\Github\API
30 function __construct(Web
$app, API
$github, Session
$session) {
32 $this->github
= $github;
33 $this->session
= $session;
34 $this->app
->getView()->addData(compact("session") +
[
35 "location" => "github",
38 $this->app
->getView()->registerFunction("check", [$this, "checkRepoHook"]);
41 protected function checkToken() {
42 if ($this->github
->hasToken()) {
45 $this->app
->redirect($this->app
->getBaseUrl()->mod([
46 "path" => "github/signin",
47 "query" => new QueryString(["returnto" => $this->session
->current
])
52 function checkRepoHook($repo) {
54 foreach ($repo->hooks
as $hook) {
55 if ($hook->name
=== "web" && $hook->config
->url
=== $this->github
->getConfig()->hook
->url
) {
63 function createLinkGenerator($links) {
64 return function($which) use($links) {
65 if (!isset($links[$which])) {
66 if ($which !== "next" ||
!isset($links["last"])) {
72 $url = new Url($links[$which], null, 0);
73 $qry = new QueryString($url->query
);
74 return $qry->getInt("page", 1);