{"action":"created","comment":{"url":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/comments/103819095","pull_request_review_id":24616757,"id":103819095,"diff_hunk":"@@ -0,0 +1,212 @@\n+---\n+layout: post\n+title: \"Šablony v PhpStormu\"\n+perex: \"Jak i usnadnit život šablonami v PhpStormu\"\n+author: 15\n+---\n+\n+### Proč šablony\n+\n+Kód můžeme psát buď v IDE nebo v textovém editoru. IDE mají velkou výhodu v tom, že pomáhají s analýzou a kompletací kódu.\n+Takže programátor nemusí psát všechno, ale může si tvořit vlastní zkratky či využívat zkratky stávající. \n+Zde budu rozebírat šablony pro IDE PhpStorm. PhpStorm je sice placený, ale studentskou licenci lze získat i za ISIC.\n+\n+### Kdy používat šablony? \n+Nejvíce se šabony hodí buď na velkých projektech, kde se část kódu často opakuje (controllery, DTO, entity, query objecty apod.) \n+ nebo při časté tvorbě malých, velmi podobných projektů, kde se opakují části kódu, které nejde vyčlenit do nějakého sandboxu.\n+\n+V PhpStormu jsou dva druhy šablon. [File templates](https://www.jetbrains.com/help/phpstorm/2016.3/file-and-code-templates.html)\n+ jsou soubory s nějakým předem daným obsahem. \n+Defaultně existují file templates například tyto *HTML File*, *XHTML File*, *PHP File*, *PHP Class*.\n+\n+Dále jsou k dispozici [live templates](https://www.jetbrains.com/help/phpstorm/2016.3/live-templates-2.html), \n+které umožní definovat zkratku (pár písmen), a k ní odpovídající kód.\n+Po napsání zkratky a stisknutí `TAB` se místo zkratky vloží k ní patřící kód. \n+\n+## Live templates\n+\n+Live templates lze spravovat v **File | Settings | Editor | Live templates**. Zajímavé na live templatech je to, \n+že jsou context aware, tedy aktivují se pouze v určitém kontextu, a ne jinde. Jak lze vidět na obrázku.\n+\n+<div class=\"text-center\">\n+    <img src=\"/assets/images/posts/2017/phpstorm/contexts.png\">\n+    <br>\n+    <em>\n+        Kontexty pro live template\n+    </em>\n+</div>\n+\n+<br>\n+\n+možné kontexty jsou například Javascript, HTML, PHP, SQL, a další. V rámci PHP pak můžeme mít zvlášť live templates pro \n+komentáře, class members apod.\n+Tlačítko, kterým expandujeme zkratku do definovaného kusu kódu lze z defaultního `TAB` v tomto nastavení změnit.\n+Live templates lze také vyvolat zkratkou `CTRL+J`, která ukáže všechny dostupné live templates.\n+V template textu (kde je kód, který se má po expandování zkratky objevit), lze používat proměnné.\n+Defaultně jsou definované proměné $SELECTION$ a $END$. \n+Proměnná $END$ určuje, kde se má objevit po expandování kurzor. \n+Speciální druh **live templates** jsou **surround templates**.\n+Surround templates jsou templates, které se používají tak, že označím kus kódu či mám kurzor na nějakém řádku \n+(to se pak chová jako označení celého řádku) a stisknu `CTRL+ALT+T`, a vyberu přískušný template. Ten pak vybranou část obalí.\n+To je dobré napřílad pro obalování nějakým upraveným try-catchem, překladem apod. \n+$SELECTION$ se uplatí pouze u **surround templates** a říká, kde se má v kódu objeví vybraný text.\n+\n+Dále si můžeme definovat vlastní proměnné, které lze použít například k tomu, abychom napsali jednu věc na více míst \n+najednou. Po expanzi kódu nám IDE nabídne vyplnit obsah jednotlivých proměnných. \n+Pro pohyb k dalším proměnným stačí stisknout `ENTER` nebo `TAB`.\n+Například si uděláme zkratku na tvorbu tovární funkce.\n+Abbreviation: `com`  \n+Template text:\n+```php\n+/*\n+ return $CLASS$\n+ */\n+protected function createComponent$NAME$()\n+{\n+\treturn new $CLASS$($ARGS$);$END$\n+}\n+```\n+Takže po stisku com a `TAB` můžeme vyplnit název třídy. Název třídy se pak píše najednou na obě místa, kde je proměná $CLASS$. \n+Po stisku `TAB` pak vyplňujeme proměnou $NAME$ a pak proměnnou $ARGS$.\n+\n+Další příklad využívá $SELECTION$:\n+Abbreviation: `tra`  \n+Template text:\n+```php\n+$this->translator->translate($SELECTION$)\n+```\n+To obalí vybraný výraz překladovou funkcí.\n+\n+U víceřádkových live templates (zvláště u surround templates) se občas může rozházet formátování, \n+to lze ošetřit zaškrtnutím \"Reformat according to style\" v editaci live templatu.\n+\n+\n+## File templates\n+\n+File templates lze spravovat v **File | Settings | Editor | File and code templates**. Tam můžete buď přidávat \n+šablony vlastní nebo upravovat stávající. Pro tvorbu šablon se zde používá jazyk [velocity](http://velocity.apache.org/).\n+Bohužel nelze využít všechny možnosti jazyku velocity v kombinaci s vyplňováním proměnných při tvorbě nového souboru, \n+jako napříklady cykly.\n+\n+Ve file templates lze také používat proměnné a jejich hodnoty můžeme vyplnit ve chvíli vytváření nového souboru ze šablony.\n+Například jednoduchý file template na Nette Presenter\n+\n+```php\n+<?php\n+\n+#parse(\"PHP File Header.php\")\n+\n+#if ($❴Module❵ != \"\")\n+namespace App\\\\$❴Module❵Module\\Presenters;\n+#elseif ($❴Namespace❵ != \"\")\n+namespace $❴Namespace❵;\n+#else\n+namespace App;\n+#end\n+\n+use Nette;\n+#if ($❴NAME❵ == 'BasePresenter')\n+use Nette\\Application\\UI;\n+\n+class $❴NAME❵ extends UI\\Presenter\n+#else\n+\n+class $❴NAME❵ extends BasePresenter\n+#end\n+{\n+\n+#if ($❴Startup❵ != \"\")\n+\tpublic function startup()\n+\t{\n+\t\tparent::startup();\n+\t}\n+\t\n+#end\n+#if ($❴Action❵ != \"\")\n+\tpublic function action$❴Action❵()\n+\t{\n+\t\t\n+\t}\n+\n+#end\n+#if ($❴Handle❵ != \"\")\n+\tpublic function handle$❴Handle❵()\n+\t{\n+\t\t\n+\t}\n+\n+#end\n+#if ($❴BeforeRender❵ != \"\")\n+\tpublic function beforeRender()\n+\t{\n+\t\t\n+\t}\n+\n+#end\n+#if ($❴NAME❵ != 'BasePresenter')\n+\tpublic function renderDefault()\n+\t{\n+\t\t\n+\t}\n+\n+#end\n+#if ($❴Render❵ != \"\")\n+\n+## This just capitalizes the first letter. This line is a comment.\n+#set ($Capitalized = $Render.substring(0,1).toUpperCase() + $Render.substring(1))\n+\tpublic function render$❴Capitalized❵()\n+\t{\n+\t\t\n+\t}\n+\n+#end\n+}\n+\n+\n+```\n+\n+Při vytváření souboru ze šablony se pak objeví možnost vyplnit obsah proměnných.\n+Ten lze samozřejmě ponechat i prázdný, není potřeba vyplňovat vždy vše.\n+\n+<div class=\"text-center\">\n+    <img src=\"/assets/images/posts/2017/phpstorm/presenter.png\">\n+    <br>\n+    <em>\n+        Formulář pro tvorbu presenteru\n+    </em>\n+</div>\n+\n+<br>\n+\n+Tento template umožní specifikovat modul, a pokud ten je prázdný, použije se namespace. \n+Stejně tak je tam již zakotvená logika pro dědění u BasePresenteru.\n+Také je možné presenter rovnou vygenerovat s nějakou action, render nebo handle metod, aby je člověk nemusel psát, \n+pokud ví, že je bude potřebovat. \n+Ale pokud pole zůstanou prázdná, prezenter se vygeneruje bez action, render i handle metod.\n+\n+Hned v prvním řádku je include PhpDocu. \n+Direktiva `#parse` je vlastně jenom velocity alternativa php `include`. \n+\n+\n+Jazyk velocity má pro PHP jednu drobnou nevýhodu. Znak `$` totiž interpretuje jako začátek proměnné. Znak `$` tedy musíme \n+escapovat, a to takto `$❴DS❵`. Pokud to neuděláme, tak se nám `$id` objeví ve formuláři při tvorbě souboru jako proměnná.\n+Takže pokud chceme použít například ve file templatu nějaké entity toto `private $id;`, musíme to napsat následovně \n+`private $❴DS❵id;`.\n+\n+Zajímavé je, že ve file templatech lze používat javovské operace pro práci se stringy.\n+Tyto operace lz však používat jen uvnitř direktivy `#set`.\n+To je vidět v řádku začínajícím `#set`. `#set` je v jazyce velocity deklarace proměnné. Proměnné se uvnitř `#set` používají \n+ bez `{}`. Jakmile proměnnou v `#set` deklarujeme, dále ji opět používáme obalenou `{}`.\n+  Jak je vidět, proměnná `$Capitalized` má v sobě stejný obsah jako proměnná `$Render`, ale první písmeno má velké.\n+ Pomocí práce se stringy takto můžeme do file templatů zakotvit různé drobnosti, které bychom jinak museli upravovat ručně, \n+ což stojí čas.\n+ Věci, které ve file templatech nejsou na první pohled zřejmé, můžeme okomentovat. \n+ `##` totiž v jazyce velocity značí začátek komentáře a tento komentář se pak do textu nového souboru nepropíše.\n+Takto můžeme dokonce uvnitř templatů vykonávat [nahrazování pomocí regexů](https://intellij-support.jetbrains.com/hc/en-us/community/posts/206816669-How-to-use-Live-Templates-functions-in-File-Templates-). ","path":"source/_posts/2017/2017-02-28-sablony-v-phpstormu.md","position":205,"original_position":205,"commit_id":"ab8508ecc458bcb86164109825529d63581c83ab","original_commit_id":"ab8508ecc458bcb86164109825529d63581c83ab","user":{"login":"Majkl578","id":144181,"avatar_url":"https://avatars1.githubusercontent.com/u/144181?v=3","gravatar_id":"","url":"https://api.github.com/users/Majkl578","html_url":"https://github.com/Majkl578","followers_url":"https://api.github.com/users/Majkl578/followers","following_url":"https://api.github.com/users/Majkl578/following{/other_user}","gists_url":"https://api.github.com/users/Majkl578/gists{/gist_id}","starred_url":"https://api.github.com/users/Majkl578/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Majkl578/subscriptions","organizations_url":"https://api.github.com/users/Majkl578/orgs","repos_url":"https://api.github.com/users/Majkl578/repos","events_url":"https://api.github.com/users/Majkl578/events{/privacy}","received_events_url":"https://api.github.com/users/Majkl578/received_events","type":"User","site_admin":false},"body":"regexů -> regulárních výrazů","created_at":"2017-03-01T23:43:13Z","updated_at":"2017-03-01T23:55:24Z","html_url":"https://github.com/pehapkari/pehapkari.cz/pull/231#discussion_r103819095","pull_request_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/231","_links":{"self":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/comments/103819095"},"html":{"href":"https://github.com/pehapkari/pehapkari.cz/pull/231#discussion_r103819095"},"pull_request":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/231"}}},"pull_request":{"url":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/231","id":108575085,"html_url":"https://github.com/pehapkari/pehapkari.cz/pull/231","diff_url":"https://github.com/pehapkari/pehapkari.cz/pull/231.diff","patch_url":"https://github.com/pehapkari/pehapkari.cz/pull/231.patch","issue_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/issues/231","number":231,"state":"open","locked":false,"title":"Added article, desired reward: Návrhové vzory v PHP","user":{"login":"racinmat","id":5525771,"avatar_url":"https://avatars2.githubusercontent.com/u/5525771?v=3","gravatar_id":"","url":"https://api.github.com/users/racinmat","html_url":"https://github.com/racinmat","followers_url":"https://api.github.com/users/racinmat/followers","following_url":"https://api.github.com/users/racinmat/following{/other_user}","gists_url":"https://api.github.com/users/racinmat/gists{/gist_id}","starred_url":"https://api.github.com/users/racinmat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/racinmat/subscriptions","organizations_url":"https://api.github.com/users/racinmat/orgs","repos_url":"https://api.github.com/users/racinmat/repos","events_url":"https://api.github.com/users/racinmat/events{/privacy}","received_events_url":"https://api.github.com/users/racinmat/received_events","type":"User","site_admin":false},"body":"Added article about file and live templates in PhpStorm.","created_at":"2017-03-01T16:27:09Z","updated_at":"2017-03-01T23:55:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7f13e8faefd276dd7cf3f89bb99d5f47660acb7a","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/231/commits","review_comments_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/231/comments","review_comment_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/comments{/number}","comments_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/issues/231/comments","statuses_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/statuses/ab8508ecc458bcb86164109825529d63581c83ab","head":{"label":"racinmat:master","ref":"master","sha":"ab8508ecc458bcb86164109825529d63581c83ab","user":{"login":"racinmat","id":5525771,"avatar_url":"https://avatars2.githubusercontent.com/u/5525771?v=3","gravatar_id":"","url":"https://api.github.com/users/racinmat","html_url":"https://github.com/racinmat","followers_url":"https://api.github.com/users/racinmat/followers","following_url":"https://api.github.com/users/racinmat/following{/other_user}","gists_url":"https://api.github.com/users/racinmat/gists{/gist_id}","starred_url":"https://api.github.com/users/racinmat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/racinmat/subscriptions","organizations_url":"https://api.github.com/users/racinmat/orgs","repos_url":"https://api.github.com/users/racinmat/repos","events_url":"https://api.github.com/users/racinmat/events{/privacy}","received_events_url":"https://api.github.com/users/racinmat/received_events","type":"User","site_admin":false},"repo":{"id":79748907,"name":"pehapkari.cz","full_name":"racinmat/pehapkari.cz","owner":{"login":"racinmat","id":5525771,"avatar_url":"https://avatars2.githubusercontent.com/u/5525771?v=3","gravatar_id":"","url":"https://api.github.com/users/racinmat","html_url":"https://github.com/racinmat","followers_url":"https://api.github.com/users/racinmat/followers","following_url":"https://api.github.com/users/racinmat/following{/other_user}","gists_url":"https://api.github.com/users/racinmat/gists{/gist_id}","starred_url":"https://api.github.com/users/racinmat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/racinmat/subscriptions","organizations_url":"https://api.github.com/users/racinmat/orgs","repos_url":"https://api.github.com/users/racinmat/repos","events_url":"https://api.github.com/users/racinmat/events{/privacy}","received_events_url":"https://api.github.com/users/racinmat/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/racinmat/pehapkari.cz","description":"Website of Czech and Slovak PHP Community","fork":true,"url":"https://api.github.com/repos/racinmat/pehapkari.cz","forks_url":"https://api.github.com/repos/racinmat/pehapkari.cz/forks","keys_url":"https://api.github.com/repos/racinmat/pehapkari.cz/keys{/key_id}","collaborators_url":"https://api.github.com/repos/racinmat/pehapkari.cz/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/racinmat/pehapkari.cz/teams","hooks_url":"https://api.github.com/repos/racinmat/pehapkari.cz/hooks","issue_events_url":"https://api.github.com/repos/racinmat/pehapkari.cz/issues/events{/number}","events_url":"https://api.github.com/repos/racinmat/pehapkari.cz/events","assignees_url":"https://api.github.com/repos/racinmat/pehapkari.cz/assignees{/user}","branches_url":"https://api.github.com/repos/racinmat/pehapkari.cz/branches{/branch}","tags_url":"https://api.github.com/repos/racinmat/pehapkari.cz/tags","blobs_url":"https://api.github.com/repos/racinmat/pehapkari.cz/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/racinmat/pehapkari.cz/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/racinmat/pehapkari.cz/git/refs{/sha}","trees_url":"https://api.github.com/repos/racinmat/pehapkari.cz/git/trees{/sha}","statuses_url":"https://api.github.com/repos/racinmat/pehapkari.cz/statuses/{sha}","languages_url":"https://api.github.com/repos/racinmat/pehapkari.cz/languages","stargazers_url":"https://api.github.com/repos/racinmat/pehapkari.cz/stargazers","contributors_url":"https://api.github.com/repos/racinmat/pehapkari.cz/contributors","subscribers_url":"https://api.github.com/repos/racinmat/pehapkari.cz/subscribers","subscription_url":"https://api.github.com/repos/racinmat/pehapkari.cz/subscription","commits_url":"https://api.github.com/repos/racinmat/pehapkari.cz/commits{/sha}","git_commits_url":"https://api.github.com/repos/racinmat/pehapkari.cz/git/commits{/sha}","comments_url":"https://api.github.com/repos/racinmat/pehapkari.cz/comments{/number}","issue_comment_url":"https://api.github.com/repos/racinmat/pehapkari.cz/issues/comments{/number}","contents_url":"https://api.github.com/repos/racinmat/pehapkari.cz/contents/{+path}","compare_url":"https://api.github.com/repos/racinmat/pehapkari.cz/compare/{base}...{head}","merges_url":"https://api.github.com/repos/racinmat/pehapkari.cz/merges","archive_url":"https://api.github.com/repos/racinmat/pehapkari.cz/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/racinmat/pehapkari.cz/downloads","issues_url":"https://api.github.com/repos/racinmat/pehapkari.cz/issues{/number}","pulls_url":"https://api.github.com/repos/racinmat/pehapkari.cz/pulls{/number}","milestones_url":"https://api.github.com/repos/racinmat/pehapkari.cz/milestones{/number}","notifications_url":"https://api.github.com/repos/racinmat/pehapkari.cz/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/racinmat/pehapkari.cz/labels{/name}","releases_url":"https://api.github.com/repos/racinmat/pehapkari.cz/releases{/id}","deployments_url":"https://api.github.com/repos/racinmat/pehapkari.cz/deployments","created_at":"2017-01-22T22:01:34Z","updated_at":"2017-01-22T22:01:37Z","pushed_at":"2017-03-01T16:25:42Z","git_url":"git://github.com/racinmat/pehapkari.cz.git","ssh_url":"git@github.com:racinmat/pehapkari.cz.git","clone_url":"https://github.com/racinmat/pehapkari.cz.git","svn_url":"https://github.com/racinmat/pehapkari.cz","homepage":"https://pehapkari.cz","size":6725,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"pehapkari:master","ref":"master","sha":"d708a2f4cae1d266d6e0aa68347fee2c7b372ceb","user":{"login":"pehapkari","id":12694503,"avatar_url":"https://avatars0.githubusercontent.com/u/12694503?v=3","gravatar_id":"","url":"https://api.github.com/users/pehapkari","html_url":"https://github.com/pehapkari","followers_url":"https://api.github.com/users/pehapkari/followers","following_url":"https://api.github.com/users/pehapkari/following{/other_user}","gists_url":"https://api.github.com/users/pehapkari/gists{/gist_id}","starred_url":"https://api.github.com/users/pehapkari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pehapkari/subscriptions","organizations_url":"https://api.github.com/users/pehapkari/orgs","repos_url":"https://api.github.com/users/pehapkari/repos","events_url":"https://api.github.com/users/pehapkari/events{/privacy}","received_events_url":"https://api.github.com/users/pehapkari/received_events","type":"Organization","site_admin":false},"repo":{"id":41292979,"name":"pehapkari.cz","full_name":"pehapkari/pehapkari.cz","owner":{"login":"pehapkari","id":12694503,"avatar_url":"https://avatars0.githubusercontent.com/u/12694503?v=3","gravatar_id":"","url":"https://api.github.com/users/pehapkari","html_url":"https://github.com/pehapkari","followers_url":"https://api.github.com/users/pehapkari/followers","following_url":"https://api.github.com/users/pehapkari/following{/other_user}","gists_url":"https://api.github.com/users/pehapkari/gists{/gist_id}","starred_url":"https://api.github.com/users/pehapkari/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pehapkari/subscriptions","organizations_url":"https://api.github.com/users/pehapkari/orgs","repos_url":"https://api.github.com/users/pehapkari/repos","events_url":"https://api.github.com/users/pehapkari/events{/privacy}","received_events_url":"https://api.github.com/users/pehapkari/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/pehapkari/pehapkari.cz","description":"Website of Czech and Slovak PHP Community","fork":false,"url":"https://api.github.com/repos/pehapkari/pehapkari.cz","forks_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/forks","keys_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/teams","hooks_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/hooks","issue_events_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/issues/events{/number}","events_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/events","assignees_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/assignees{/user}","branches_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/branches{/branch}","tags_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/tags","blobs_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/git/refs{/sha}","trees_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/statuses/{sha}","languages_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/languages","stargazers_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/stargazers","contributors_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/contributors","subscribers_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/subscribers","subscription_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/subscription","commits_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/commits{/sha}","git_commits_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/git/commits{/sha}","comments_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/comments{/number}","issue_comment_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/issues/comments{/number}","contents_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/contents/{+path}","compare_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/merges","archive_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/downloads","issues_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/issues{/number}","pulls_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls{/number}","milestones_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/milestones{/number}","notifications_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/labels{/name}","releases_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/releases{/id}","deployments_url":"https://api.github.com/repos/pehapkari/pehapkari.cz/deployments","created_at":"2015-08-24T08:59:03Z","updated_at":"2017-03-01T19:43:12Z","pushed_at":"2017-03-01T19:35:48Z","git_url":"git://github.com/pehapkari/pehapkari.cz.git","ssh_url":"git@github.com:pehapkari/pehapkari.cz.git","clone_url":"https://github.com/pehapkari/pehapkari.cz.git","svn_url":"https://github.com/pehapkari/pehapkari.cz","homepage":"https://pehapkari.cz","size":6688,"stargazers_count":15,"watchers_count":15,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":88,"mirror_url":null,"open_issues_count":9,"forks":88,"open_issues":9,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/231"},"html":{"href":"https://github.com/pehapkari/pehapkari.cz/pull/231"},"issue":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/issues/231"},"comments":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/issues/231/comments"},"review_comments":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/231/comments"},"review_comment":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/pulls/231/commits"},"statuses":{"href":"https://api.github.com/repos/pehapkari/pehapkari.cz/statuses/ab8508ecc458bcb86164109825529d63581c83ab"}}}}
{"actor":{"display_login":"Majkl578"}}