Bitbucket hoot for Dokuwiki

Cenário

Quando começamos a atualizar as documentações de nossa empresa, fiz um rápido DokuWiki . É incrível e eu gosto disso. Eu gostaria de exibir os últimos commits na página “inicial” dos projetos. Então, aqui está meu gancho Bitbucket:

<?php
/*
* Filename: git-hook.php

* Author: Balazs Nadasdi <yitsushi@gmail.com>

*/

define
('DEST', 'data/pages/code/git-hook/');

$payload
= json_decode($_POST['payload']);

if (!empty($payload->commits)) {
$projectSlug
= $payload->repository->slug;
$projectOwner
= $payload->repository->owner;

define
('PROJECTFILE', $projectOwner . "-" . $projectSlug);

foreach ($payload->commits as $commit) {
$branch
= $commit->branch;
$rawAuthor
= $commit->raw_author;
$date
= $commit->timestamp;
$message
= $commit->message;
$node
= $commit->node;
$rawNode
= $commit->raw_node;

if ($branch === 'master' || isset($commit->branches) && in_array('master', $commit->branches)) {
$original
= file_get_contents(DEST . PROJECTFILE . "-commits.txt");
$content
= "=== [" . $date . "] " . $rawAuthor . " ===\n";
$content
.= "\n";
$content
.= " " . preg_replace("/\n/", "\n ", $message) . "\n";
$content
.= "\n";
$content
.= "**Commit:** [[https://bitbucket.org/" . $projectOwner . "/" . $projectSlug . "/commits/" . $rawNode . "|" . $node . "]]\n\n";

$content
.= $original;
file_put_contents
(DEST . PROJECTFILE . "-commits.txt", $content);
}
}
}

Adicione um gancho POST a ” http://my.wiki.page/git-hook.php “. Agora ele salva as alterações em DEST. Com o plugin de inclusão simples, podemos incluir nossas alterações com {{page>..:git-hook:OWNER-PROJECTSLUG}}.