{"action":"created","comment":{"url":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/comments/43669687","id":43669687,"diff_hunk":"@@ -0,0 +1,452 @@\n+#include <stdio.h>\n+#include <stdlib.h>\n+#include <ctype.h>\n+#include <stdbool.h>\n+#include <string.h>\n+\n+#if defined(WIN32)\n+#define FOLDER_DELIMITER '\\\\'\n+#else\n+#define FOLDER_DELIMITER '/'\n+#endif\n+\n+/* Slashes or backslashes to the elektra root.\n+ * Depends on the place of the executable, example:\n+ * /foo/bar/elektra/build/bin/executable\n+ * E:\\\\foo\\bar\\elektra\\build\\bin\\executable\n+ * In both cases the there are 3 slashes or backslashes\n+ */\n+#define FOLDER_DELIMITER_TO_ELEKTRA_ROOT 3\n+#define TEMP_FILENAME \"temp\"\n+\n+// Link Blacklist: do not convert links with the following starting and ending\n+char * ignoreTargetEnd [] = { \".h\", \".c\" , \".cpp\" , \".hpp\" , \"\\0\"};\n+// ignore http, @ref and #anchor\n+char * ignoreTargetStart [] = { \"#\", \"@\" , \"http\" , \"\\0\"};\n+// both need to be null terminated\n+\n+// helpers\n+void printTarget(FILE * output, char * target, char * filenameInElektra);\n+void printConvertedPath (FILE * output ,char * path);\n+char * getPathInElektraRoot (char * executablename, char * filename);\n+void exitError (FILE * f1, FILE * f2, char * mes);\n+\n+/* These structs represent the transitions from the state machines.\n+ * Means if char c is read and the state machine is in state s\n+ * the next state is t[c][s].\n+ */\n+struct transitionLink { int t[10][7]; };\n+struct transitionTitle { int t[10][4]; };\n+\n+/* This transition array represents the regex for a link, namely:\n+ *\n+ * not(\\!)\\[.*\\][' '\\n\\t]*\\(.*\\)\n+ *\n+ * 0 is the initial state and 5 the goal state.\n+ * If the trap will be reached the input will be\n+ * set back. This transition array matches the\n+ * regex multiple times, witch is correct due to the\n+ * fact that links can not be nested.\n+ */\n+\n+#define LINK_START 0\n+#define LINK_POSSIBLE(old, new) ((old == 0 || old == 5) && new == 2)\n+#define LINK_FOUND(old, new) (state == 4 && newstate == 5)\n+#define LINK_NAME(old, new) (((old == 2 || old == 3) && (new == 2  || new == 3)) \\\n+\t\t\t\t\t\t\t\t|| (old == 3 && new == 4))\n+#define LINK_TARGET(old, new) (state == 4 && newstate == 4)\n+#define LINK_TRAP(old, new) (new == 6)\n+#define LINK_NOLINK(old, new) (newstate == 0 || newstate == 1)\n+\n+struct transitionLink genLinkTransitionTable() {\n+    struct transitionLink out = {\n+        {//char\\state    0  1  2  3  4  5  6(trap)\n+\t\t/* ! */\t\t\t{1, 1, 2, 6, 4, 0, 0},\n+\t\t/* [ */\t\t\t{2, 0, 2, 6, 4, 2, 0},\n+\t\t/* ] */\t\t\t{0, 0, 3, 6, 4, 0, 0},\n+\t\t/* blank */\t\t{0, 0, 2, 3, 4, 0, 0},\n+\t\t/* \\n */\t\t{0, 0, 2, 3, 4, 0, 0},\n+\t\t/* ( */\t\t\t{0, 0, 2, 4, 4, 0, 0},\n+\t\t/* ) */\t\t\t{0, 0, 2, 6, 5, 0, 0},\n+\t\t/* # */\t\t\t{0, 0, 2, 6, 4, 0, 0},\n+\t\t/* other*/\t\t{0, 0, 2, 6, 4, 0, 0},\n+        }\n+    };\n+    return out;\n+}\n+\n+/* The next transition array matches the first title,\n+ * with the following regex:\n+ *\n+ * ^' '*#+.*$\n+ *\n+ * TITLE_START defines the start state and TITLE_ISGOAL ()\n+ * checks whether a title has matched.\n+ */\n+\n+#define TITLE_START 0\n+#define TITLE_ISGOAL(old, new) (old == 3 && new == 0)\n+\n+struct transitionTitle genTitleTransitionTable() {\n+    struct transitionTitle out = {\n+        {//char\\state    0  1  2  3\n+\t\t/* ! */\t\t\t{1, 1, 1, 3},\n+\t\t/* [ */\t\t\t{1, 1, 1, 3},\n+\t\t/* ] */\t\t\t{1, 1, 1, 3},\n+\t\t/* blank */\t\t{2, 1, 2, 3},\n+\t\t/* \\n */\t\t{0, 0, 1, 0},\n+\t\t/* ( */\t\t\t{1, 1, 1, 3},\n+\t\t/* ) */\t\t\t{1, 1, 1, 3},\n+\t\t/* # */\t\t\t{3, 1, 3, 3},\n+\t\t/* other*/\t\t{1, 1, 1, 3},\n+        }\n+    };\n+    return out;\n+}\n+\n+// Maps a given char to a int, used for the transition table\n+int resolveChar (char c)\n+{\n+\tif (c != '\\n' && isblank (c)) return 3;\n+\tswitch (c)\n+\t{\n+\t\tcase '!': return 0;\n+\t\tcase '[': return 1;\n+\t\tcase ']': return 2;\n+\t\tcase '\\n': return 4;\n+\t\tcase '(': return 5;\n+\t\tcase ')': return 6;\n+\t\tcase '#': return 7;\n+\t\tdefault: return 8; // all other\n+\t}\n+}\n+\n+/* This function prints out the input to the output, while printing the title\n+ * regex is applied. If a title is found a header (\"{ #header }\") will\n+ * be printed out additionally to the output and at the end true will\n+ * be returned. If no title is found false will be returned.\n+ */\n+bool convertTitle (FILE * input, FILE *  output, char * filenameInElektra)\n+{\n+\tint state = TITLE_START;\n+\tint newstate;\n+\tchar c;\n+\tbool titleFound = false;\n+\tstruct transitionTitle transitions = genTitleTransitionTable ();\n+\twhile ((c = fgetc (input)) != EOF)\n+\t{\n+\t\tnewstate = transitions.t[resolveChar (c)][state];\n+\n+\t\tif (!titleFound && TITLE_ISGOAL (state, newstate))\n+\t\t{\n+\t\t\ttitleFound = true;\n+\t\t\t// print Header\n+\t\t\tfprintf (output, \" {#\");\n+\t\t\tprintConvertedPath (output, filenameInElektra);\n+\t\t\tfprintf (output, \"}\");\n+\t\t}\n+\n+\t\tfprintf (output, \"%c\", c);\n+\n+\t\tstate = newstate;\n+\t}\n+\treturn titleFound;\n+}\n+\n+/* This procedure reads from the input and writes to the output, while\n+ * processing the file it converts all not Blacklisted links.\n+ */\n+void convertLinks (FILE * input, FILE * output, char * filenameInElektra)\n+{\n+\tchar c;\n+\tfpos_t pos;\n+\tint state = LINK_START;\n+\tint newstate;\n+\tint index = 0;\n+\tunsigned int len = 0;\n+\t/* index and len help to convert a link if found.\n+\t *\n+\t *  |--index--||-len-|\n+\t * [link name](foo/bar)\n+\t */\n+\tstruct transitionLink transitions = genLinkTransitionTable ();\n+\twhile ((c = fgetc (input)) != EOF)\n+\t{\n+\t\tnewstate = transitions.t[resolveChar (c)][state];\n+\t\tif (LINK_POSSIBLE (state, newstate))\n+\t\t{\n+\t\t\t// first [, possible link\n+\t\t\t// position is saved for setting back\n+\t\t\tif (fgetpos (input, &pos))\n+\t\t\t\texitError (input, NULL, \"fgetpos\");\n+\n+\t\t\tindex = 0;\n+\t\t\tlen = 0;\n+\t\t}\n+\t\tif (LINK_FOUND (state, newstate))\n+\t\t{\n+\t\t\t//set back and convert link if not blacklisted\n+\t\t\tif (fsetpos (input, &pos))\n+\t\t\t\texitError (input, NULL, \"fsetpos\");\n+\n+\t\t\tfprintf (output, \"[\"); //first char got lost\n+\t\t\t//print link name\n+\t\t\twhile (index > 0)\n+\t\t\t{\n+\t\t\t\tfprintf (output, \"%c\", fgetc (input));\n+\t\t\t\t--index;\n+\t\t\t}\n+\t\t\t//extract target\n+\t\t\tchar target [len * sizeof (char) + 1];\n+\t\t\tif (fread (&target[0], sizeof (char), len, input) != len)\n+\t\t\t\texitError (input, NULL, \"fread\");\n+\n+\t\t\ttarget[len] = '\\0';\n+\n+\t\t\t//check target\n+\t\t\tbool targetOK = true;\n+\t\t\t//start\n+\t\t\tfor (int i = 0;strcmp (ignoreTargetStart[i], \"\\0\") != 0;++i)\n+\t\t\t{\n+\t\t\t\tif (strncmp (ignoreTargetStart[i], target,\n+\t\t\t\t\tstrlen (ignoreTargetStart[i])) == 0)\n+\t\t\t\t{\n+\t\t\t\t\ttargetOK = false;\n+\t\t\t\t\tbreak;\n+\t\t\t\t}\n+\t\t\t}\n+\t\t\t//end\n+\t\t\tfor (int i = 0;strcmp (ignoreTargetEnd[i], \"\\0\") != 0;++i)\n+\t\t\t{\n+\t\t\t\tif(len < strlen (ignoreTargetEnd[i]))\n+\t\t\t\t\tcontinue;\n+\n+\t\t\t\tint j = len - strlen (ignoreTargetEnd[i]);\n+\t\t\t\tif (strncmp (ignoreTargetEnd[i], &target[j],\n+\t\t\t\t\tstrlen (ignoreTargetEnd[i])) == 0)\n+\t\t\t\t{\n+\t\t\t\t\ttargetOK = false;\n+\t\t\t\t\tbreak;\n+\t\t\t\t}\n+\t\t\t}\n+\t\t\t//print target\n+\t\t\tif (targetOK)\n+\t\t\t{\n+\t\t\t\tprintTarget (output,target, filenameInElektra);\n+\t\t\t}\n+\t\t\telse fprintf (output, \"%s\", target);\n+\t\t\tfprintf (output, \"%c\", fgetc (input)); // print \")\"\n+\t\t}\n+\t\tif (LINK_NAME (state, newstate))\n+\t\t{\n+\t\t\t++index;\n+\t\t}\n+\t\tif (LINK_TARGET (state, newstate)) ++len;\n+\t\tif (LINK_TRAP (state, newstate))\n+\t\t{\n+\t\t\t//trap, reset\n+\t\t\tif (fsetpos (input, &pos))\n+\t\t\t\texitError (input, NULL, \"fsetpos\");\n+\n+\t\t\tfprintf (output, \"[\"); //first char got lost\n+\t\t\tstate = LINK_START;\n+\t\t\tcontinue;\n+\t\t}\n+\t\tif(LINK_NOLINK (state, newstate))\n+\t\t{\n+\t\t\t// print all other content\n+\t\t\tfprintf (output, \"%c\", c);\n+\t\t}\n+\t\tstate = newstate;\n+\t}\n+}\n+\n+int main (int argc, char *argv[])\n+{\n+\tif (argc < 2)\n+\t{\n+\t\tfprintf (stderr, \"args error\\n\");\n+\t\treturn EXIT_FAILURE;\n+\t}\n+\n+\tchar executablename[strlen (argv[0]) + 1];\n+\tchar filename[strlen (argv[1]) + 1];\n+\n+\tstrcpy (executablename, argv[0]);\n+\tstrcpy (filename, argv[1]);\n+\n+\tchar * filenameInElektra = getPathInElektraRoot (executablename, filename);\n+\n+\t//1st pass\n+\tFILE * input = fopen (filename, \"r\");\n+\tif (!input)\n+\t{\n+\t\tfprintf (stderr ,\"fopen Error\\n\");\n+\t\treturn EXIT_FAILURE;\n+\t}\n+\tFILE * output = fopen (TEMP_FILENAME, \"w+\");\n+\tif (!output)\n+\t{\n+\t\tfclose (input);\n+\t\tfprintf (stderr ,\"fopen Error\\n\");\n+\t\treturn EXIT_FAILURE;\n+\t}\n+\n+\t//save start of each file\n+\tfpos_t startInput;\n+\tfpos_t startTempFile;\n+\tif (fgetpos (input, &startInput))\n+\t\texitError (input, output, \"fgetpos\");\n+\tif (fgetpos (output, &startTempFile))\n+\t\texitError (input, output, \"fgetpos\");\n+\n+\tif(!convertTitle (input, output, filenameInElektra))\n+\t{\n+\t\t/* No title found in file, therefore generate one and\n+\t\t * print it out.\n+\t\t */\n+\t\t//reset input file\n+\t\tif (fsetpos (input, &startInput))\n+\t\t\texitError (input, output, \"fsetpos\");\n+\n+\t\tfclose (output);\n+\t\toutput = stdout;\n+\t\t//Generate Title\n+\t\tchar * title = strrchr (filename, FOLDER_DELIMITER);\n+\t\tif (title == NULL)\n+\t\t\texitError (input, NULL, \"parsed file path invalid\");\n+\n+\t\t// print Title + Header\n+\t\tfprintf (output, \"# %s # {#\", &title[1]);\n+\t\tprintConvertedPath (output, filenameInElektra);\n+\t\tfprintf (output, \"}\\n\");\n+\t\t//2nd pass\n+\t\tconvertLinks (input, output, filenameInElektra);\n+\t\tfclose (input);\n+\t} else","path":"doc/markdownlinkconverter/markdownlinkconverter.c","position":326,"original_position":326,"commit_id":"32bba9fe2b624aa7b8676482a01f3fe7bb86451c","original_commit_id":"32bba9fe2b624aa7b8676482a01f3fe7bb86451c","user":{"login":"markus2330","id":7949075,"avatar_url":"https://avatars.githubusercontent.com/u/7949075?v=3","gravatar_id":"","url":"https://api.github.com/users/markus2330","html_url":"https://github.com/markus2330","followers_url":"https://api.github.com/users/markus2330/followers","following_url":"https://api.github.com/users/markus2330/following{/other_user}","gists_url":"https://api.github.com/users/markus2330/gists{/gist_id}","starred_url":"https://api.github.com/users/markus2330/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markus2330/subscriptions","organizations_url":"https://api.github.com/users/markus2330/orgs","repos_url":"https://api.github.com/users/markus2330/repos","events_url":"https://api.github.com/users/markus2330/events{/privacy}","received_events_url":"https://api.github.com/users/markus2330/received_events","type":"User","site_admin":false},"body":"please `} else {`.","created_at":"2015-11-02T19:27:35Z","updated_at":"2015-11-02T19:27:35Z","html_url":"https://github.com/ElektraInitiative/libelektra/pull/340#discussion_r43669687","pull_request_url":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/340","_links":{"self":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/comments/43669687"},"html":{"href":"https://github.com/ElektraInitiative/libelektra/pull/340#discussion_r43669687"},"pull_request":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/340"}}},"pull_request":{"url":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/340","id":49428731,"html_url":"https://github.com/ElektraInitiative/libelektra/pull/340","diff_url":"https://github.com/ElektraInitiative/libelektra/pull/340.diff","patch_url":"https://github.com/ElektraInitiative/libelektra/pull/340.patch","issue_url":"https://api.github.com/repos/ElektraInitiative/libelektra/issues/340","number":340,"state":"open","locked":false,"title":"Markdown link converter for Doxygen","user":{"login":"KurtMi","id":11669591,"avatar_url":"https://avatars.githubusercontent.com/u/11669591?v=3","gravatar_id":"","url":"https://api.github.com/users/KurtMi","html_url":"https://github.com/KurtMi","followers_url":"https://api.github.com/users/KurtMi/followers","following_url":"https://api.github.com/users/KurtMi/following{/other_user}","gists_url":"https://api.github.com/users/KurtMi/gists{/gist_id}","starred_url":"https://api.github.com/users/KurtMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KurtMi/subscriptions","organizations_url":"https://api.github.com/users/KurtMi/orgs","repos_url":"https://api.github.com/users/KurtMi/repos","events_url":"https://api.github.com/users/KurtMi/events{/privacy}","received_events_url":"https://api.github.com/users/KurtMi/received_events","type":"User","site_admin":false},"body":"Markdown link converter for doxygen and some changes in documentation.","created_at":"2015-11-02T13:02:08Z","updated_at":"2015-11-02T19:27:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3562a0b851df44fd1bc84f3975b995028991ef63","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/340/commits","review_comments_url":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/340/comments","review_comment_url":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ElektraInitiative/libelektra/issues/340/comments","statuses_url":"https://api.github.com/repos/ElektraInitiative/libelektra/statuses/32bba9fe2b624aa7b8676482a01f3fe7bb86451c","head":{"label":"KurtMi:doxygen_markdown","ref":"doxygen_markdown","sha":"32bba9fe2b624aa7b8676482a01f3fe7bb86451c","user":{"login":"KurtMi","id":11669591,"avatar_url":"https://avatars.githubusercontent.com/u/11669591?v=3","gravatar_id":"","url":"https://api.github.com/users/KurtMi","html_url":"https://github.com/KurtMi","followers_url":"https://api.github.com/users/KurtMi/followers","following_url":"https://api.github.com/users/KurtMi/following{/other_user}","gists_url":"https://api.github.com/users/KurtMi/gists{/gist_id}","starred_url":"https://api.github.com/users/KurtMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KurtMi/subscriptions","organizations_url":"https://api.github.com/users/KurtMi/orgs","repos_url":"https://api.github.com/users/KurtMi/repos","events_url":"https://api.github.com/users/KurtMi/events{/privacy}","received_events_url":"https://api.github.com/users/KurtMi/received_events","type":"User","site_admin":false},"repo":{"id":33407691,"name":"libelektra","full_name":"KurtMi/libelektra","owner":{"login":"KurtMi","id":11669591,"avatar_url":"https://avatars.githubusercontent.com/u/11669591?v=3","gravatar_id":"","url":"https://api.github.com/users/KurtMi","html_url":"https://github.com/KurtMi","followers_url":"https://api.github.com/users/KurtMi/followers","following_url":"https://api.github.com/users/KurtMi/following{/other_user}","gists_url":"https://api.github.com/users/KurtMi/gists{/gist_id}","starred_url":"https://api.github.com/users/KurtMi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KurtMi/subscriptions","organizations_url":"https://api.github.com/users/KurtMi/orgs","repos_url":"https://api.github.com/users/KurtMi/repos","events_url":"https://api.github.com/users/KurtMi/events{/privacy}","received_events_url":"https://api.github.com/users/KurtMi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/KurtMi/libelektra","description":"Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database.","fork":true,"url":"https://api.github.com/repos/KurtMi/libelektra","forks_url":"https://api.github.com/repos/KurtMi/libelektra/forks","keys_url":"https://api.github.com/repos/KurtMi/libelektra/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KurtMi/libelektra/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KurtMi/libelektra/teams","hooks_url":"https://api.github.com/repos/KurtMi/libelektra/hooks","issue_events_url":"https://api.github.com/repos/KurtMi/libelektra/issues/events{/number}","events_url":"https://api.github.com/repos/KurtMi/libelektra/events","assignees_url":"https://api.github.com/repos/KurtMi/libelektra/assignees{/user}","branches_url":"https://api.github.com/repos/KurtMi/libelektra/branches{/branch}","tags_url":"https://api.github.com/repos/KurtMi/libelektra/tags","blobs_url":"https://api.github.com/repos/KurtMi/libelektra/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KurtMi/libelektra/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KurtMi/libelektra/git/refs{/sha}","trees_url":"https://api.github.com/repos/KurtMi/libelektra/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KurtMi/libelektra/statuses/{sha}","languages_url":"https://api.github.com/repos/KurtMi/libelektra/languages","stargazers_url":"https://api.github.com/repos/KurtMi/libelektra/stargazers","contributors_url":"https://api.github.com/repos/KurtMi/libelektra/contributors","subscribers_url":"https://api.github.com/repos/KurtMi/libelektra/subscribers","subscription_url":"https://api.github.com/repos/KurtMi/libelektra/subscription","commits_url":"https://api.github.com/repos/KurtMi/libelektra/commits{/sha}","git_commits_url":"https://api.github.com/repos/KurtMi/libelektra/git/commits{/sha}","comments_url":"https://api.github.com/repos/KurtMi/libelektra/comments{/number}","issue_comment_url":"https://api.github.com/repos/KurtMi/libelektra/issues/comments{/number}","contents_url":"https://api.github.com/repos/KurtMi/libelektra/contents/{+path}","compare_url":"https://api.github.com/repos/KurtMi/libelektra/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KurtMi/libelektra/merges","archive_url":"https://api.github.com/repos/KurtMi/libelektra/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KurtMi/libelektra/downloads","issues_url":"https://api.github.com/repos/KurtMi/libelektra/issues{/number}","pulls_url":"https://api.github.com/repos/KurtMi/libelektra/pulls{/number}","milestones_url":"https://api.github.com/repos/KurtMi/libelektra/milestones{/number}","notifications_url":"https://api.github.com/repos/KurtMi/libelektra/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KurtMi/libelektra/labels{/name}","releases_url":"https://api.github.com/repos/KurtMi/libelektra/releases{/id}","created_at":"2015-04-04T14:12:07Z","updated_at":"2015-04-04T14:12:10Z","pushed_at":"2015-11-02T12:59:53Z","git_url":"git://github.com/KurtMi/libelektra.git","ssh_url":"git@github.com:KurtMi/libelektra.git","clone_url":"https://github.com/KurtMi/libelektra.git","svn_url":"https://github.com/KurtMi/libelektra","homepage":"","size":28921,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"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":"ElektraInitiative:master","ref":"master","sha":"540396f75ef64df1774fe7860f5419ab454a281a","user":{"login":"ElektraInitiative","id":7949092,"avatar_url":"https://avatars.githubusercontent.com/u/7949092?v=3","gravatar_id":"","url":"https://api.github.com/users/ElektraInitiative","html_url":"https://github.com/ElektraInitiative","followers_url":"https://api.github.com/users/ElektraInitiative/followers","following_url":"https://api.github.com/users/ElektraInitiative/following{/other_user}","gists_url":"https://api.github.com/users/ElektraInitiative/gists{/gist_id}","starred_url":"https://api.github.com/users/ElektraInitiative/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ElektraInitiative/subscriptions","organizations_url":"https://api.github.com/users/ElektraInitiative/orgs","repos_url":"https://api.github.com/users/ElektraInitiative/repos","events_url":"https://api.github.com/users/ElektraInitiative/events{/privacy}","received_events_url":"https://api.github.com/users/ElektraInitiative/received_events","type":"Organization","site_admin":false},"repo":{"id":21063580,"name":"libelektra","full_name":"ElektraInitiative/libelektra","owner":{"login":"ElektraInitiative","id":7949092,"avatar_url":"https://avatars.githubusercontent.com/u/7949092?v=3","gravatar_id":"","url":"https://api.github.com/users/ElektraInitiative","html_url":"https://github.com/ElektraInitiative","followers_url":"https://api.github.com/users/ElektraInitiative/followers","following_url":"https://api.github.com/users/ElektraInitiative/following{/other_user}","gists_url":"https://api.github.com/users/ElektraInitiative/gists{/gist_id}","starred_url":"https://api.github.com/users/ElektraInitiative/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ElektraInitiative/subscriptions","organizations_url":"https://api.github.com/users/ElektraInitiative/orgs","repos_url":"https://api.github.com/users/ElektraInitiative/repos","events_url":"https://api.github.com/users/ElektraInitiative/events{/privacy}","received_events_url":"https://api.github.com/users/ElektraInitiative/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ElektraInitiative/libelektra","description":"Elektra provides a universal and secure framework to store configuration parameters in a global, hierarchical key database.","fork":false,"url":"https://api.github.com/repos/ElektraInitiative/libelektra","forks_url":"https://api.github.com/repos/ElektraInitiative/libelektra/forks","keys_url":"https://api.github.com/repos/ElektraInitiative/libelektra/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ElektraInitiative/libelektra/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ElektraInitiative/libelektra/teams","hooks_url":"https://api.github.com/repos/ElektraInitiative/libelektra/hooks","issue_events_url":"https://api.github.com/repos/ElektraInitiative/libelektra/issues/events{/number}","events_url":"https://api.github.com/repos/ElektraInitiative/libelektra/events","assignees_url":"https://api.github.com/repos/ElektraInitiative/libelektra/assignees{/user}","branches_url":"https://api.github.com/repos/ElektraInitiative/libelektra/branches{/branch}","tags_url":"https://api.github.com/repos/ElektraInitiative/libelektra/tags","blobs_url":"https://api.github.com/repos/ElektraInitiative/libelektra/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ElektraInitiative/libelektra/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ElektraInitiative/libelektra/git/refs{/sha}","trees_url":"https://api.github.com/repos/ElektraInitiative/libelektra/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ElektraInitiative/libelektra/statuses/{sha}","languages_url":"https://api.github.com/repos/ElektraInitiative/libelektra/languages","stargazers_url":"https://api.github.com/repos/ElektraInitiative/libelektra/stargazers","contributors_url":"https://api.github.com/repos/ElektraInitiative/libelektra/contributors","subscribers_url":"https://api.github.com/repos/ElektraInitiative/libelektra/subscribers","subscription_url":"https://api.github.com/repos/ElektraInitiative/libelektra/subscription","commits_url":"https://api.github.com/repos/ElektraInitiative/libelektra/commits{/sha}","git_commits_url":"https://api.github.com/repos/ElektraInitiative/libelektra/git/commits{/sha}","comments_url":"https://api.github.com/repos/ElektraInitiative/libelektra/comments{/number}","issue_comment_url":"https://api.github.com/repos/ElektraInitiative/libelektra/issues/comments{/number}","contents_url":"https://api.github.com/repos/ElektraInitiative/libelektra/contents/{+path}","compare_url":"https://api.github.com/repos/ElektraInitiative/libelektra/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ElektraInitiative/libelektra/merges","archive_url":"https://api.github.com/repos/ElektraInitiative/libelektra/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ElektraInitiative/libelektra/downloads","issues_url":"https://api.github.com/repos/ElektraInitiative/libelektra/issues{/number}","pulls_url":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls{/number}","milestones_url":"https://api.github.com/repos/ElektraInitiative/libelektra/milestones{/number}","notifications_url":"https://api.github.com/repos/ElektraInitiative/libelektra/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ElektraInitiative/libelektra/labels{/name}","releases_url":"https://api.github.com/repos/ElektraInitiative/libelektra/releases{/id}","created_at":"2014-06-21T08:01:04Z","updated_at":"2015-10-05T22:19:49Z","pushed_at":"2015-11-02T15:58:22Z","git_url":"git://github.com/ElektraInitiative/libelektra.git","ssh_url":"git@github.com:ElektraInitiative/libelektra.git","clone_url":"https://github.com/ElektraInitiative/libelektra.git","svn_url":"https://github.com/ElektraInitiative/libelektra","homepage":"","size":31997,"stargazers_count":19,"watchers_count":19,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":15,"mirror_url":null,"open_issues_count":46,"forks":15,"open_issues":46,"watchers":19,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/340"},"html":{"href":"https://github.com/ElektraInitiative/libelektra/pull/340"},"issue":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/issues/340"},"comments":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/issues/340/comments"},"review_comments":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/340/comments"},"review_comment":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/pulls/340/commits"},"statuses":{"href":"https://api.github.com/repos/ElektraInitiative/libelektra/statuses/32bba9fe2b624aa7b8676482a01f3fe7bb86451c"}}}}