From f47ddf0758f120dfb26f03fb36be5cd897a10f23 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Fri, 22 Nov 2013 21:32:06 +0100 Subject: first work on remote fork notifications with linkback (webmention/pingback) --- src/phorkie/Notificator/Linkback.php | 59 ++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/phorkie/Notificator/Linkback.php (limited to 'src/phorkie/Notificator/Linkback.php') diff --git a/src/phorkie/Notificator/Linkback.php b/src/phorkie/Notificator/Linkback.php new file mode 100644 index 0000000..4c1abfb --- /dev/null +++ b/src/phorkie/Notificator/Linkback.php @@ -0,0 +1,59 @@ +config = $config; + } + + /** + * 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 + } + } +} +?> -- cgit v1.2.3