Exemple #1
0
 /**
  * Send linkback on "create" events to remote repositories
  */
 public function send($event, Repository $repo)
 {
     if ($this->config === false) {
         return;
     }
     if ($event != 'create') {
         return;
     }
     $origin = $repo->getConnectionInfo()->getOrigin();
     if ($origin === null) {
         return;
     }
     $originWebUrl = $origin->getWebUrl(true);
     if ($originWebUrl === null) {
         return;
     }
     $this->pbc = new \PEAR2\Services\Linkback\Client();
     $req = $this->pbc->getRequest();
     $req->setConfig(array('ssl_verify_peer' => false, 'ssl_verify_host' => false));
     $this->pbc->setRequestTemplate($req);
     $req->setHeader('user-agent', 'phorkie');
     try {
         $res = $this->pbc->send($repo->getLink('display', null, true), $originWebUrl);
     } catch (\Exception $e) {
         //FIXME: log errors
     }
 }
Exemple #2
0
 /**
  * Call webhook URLs with our payload
  */
 public function send($event, Repository $repo)
 {
     if (count($this->config) == 0) {
         return;
     }
     /* slightly inspired by
        https://help.github.com/articles/post-receive-hooks */
     $payload = (object) array('event' => $event, 'author' => array('name' => $_SESSION['name'], 'email' => $_SESSION['email']), 'repository' => array('name' => $repo->getTitle(), 'url' => $repo->getLink('display', null, true), 'description' => $repo->getDescription(), 'owner' => $repo->getOwner()));
     foreach ($this->config as $url) {
         $req = new \HTTP_Request2($url);
         $req->setMethod(\HTTP_Request2::METHOD_POST)->setHeader('Content-Type: application/vnd.phorkie.webhook+json')->setBody(json_encode($payload));
         try {
             $response = $req->send();
             //FIXME log response codes != 200
         } catch (HTTP_Request2_Exception $e) {
             //FIXME log exceptions
         }
     }
 }
Exemple #3
0
    if ($_GET['file'] == 'newfile') {
        $file = 'newfile';
    } else {
        $file = $repo->getFileByName($_GET['file']);
    }
}
$repopo = new Repository_Post($repo);
if ($repopo->process($_POST, $_SESSION)) {
    $anchor = '';
    if ($file instanceof File) {
        if (isset($repopo->renameMap[$file->getFilename()])) {
            $anchor = '#' . $repo->getFileByName($repopo->renameMap[$file->getFilename()])->getAnchorName();
        } else {
            $anchor = '#' . $file->getAnchorName();
        }
    } else {
        if ($file === 'newfile' && $repopo->newfileName) {
            $anchor = '#' . $repo->getFileByName($repopo->newfileName)->getAnchorName();
        }
    }
    redirect($repo->getLink('display', null, true) . $anchor);
}
$actionFile = null;
if ($file instanceof File) {
    $actionFile = $file->getFilename();
} else {
    if ($file === 'newfile') {
        $actionFile = 'newfile';
    }
}
render('edit', array('repo' => $repo, 'singlefile' => $file, 'dh' => new \Date_HumanDiff(), 'htmlhelper' => new HtmlHelper(), 'formaction' => $repo->getLink('edit', $actionFile)));
Exemple #4
0
<?php

namespace phorkie;

/**
 * Display DOAP of the paste.
 * Contains a machine-readable project description with Git URL.
 */
$reqWritePermissions = false;
require_once 'www-header.php';
$repo = new Repository();
$repo->loadFromRequest();
header('Content-Type: application/rdf+xml');
render('doap', array('repo' => $repo, 'date' => date('Y-m-d', end($repo->getHistory())->committerTime), 'link' => Tools::fullUrl($repo->getLink('display'))));
Exemple #5
0
<?php

namespace phorkie;

/**
 * Display paste contents
 */
$reqWritePermissions = false;
require_once 'www-header.php';
$repo = new Repository();
$repo->loadFromRequest();
header('X-Pingback: ' . $repo->getLink('linkback', null, true));
header('Link: <' . $repo->getLink('linkback', null, true) . '>;' . 'rel="http://webmention.org/"');
render('display', array('repo' => $repo, 'dh' => new \Date_HumanDiff(), 'htmlhelper' => new HtmlHelper(), 'domain' => $_SERVER['HTTP_HOST'], 'flashmessages' => FlashMessage::getAll()));
Exemple #6
0
 public function getRepositoryEmbedCode(Repository $repo)
 {
     return '<script src="' . $repo->getLink('embed', null, true) . '"' . ' id="phork-script-' . $repo->id . '"' . ' type="text/javascript"></script>';
 }