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}}
.