{"action":"created","comment":{"url":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/comments/181669936","pull_request_review_id":112327184,"id":181669936,"diff_hunk":"@@ -0,0 +1,527 @@\n+---\n+title: Components coding conventions\n+label: Components\n+---\n+\n+## General rules\n+\n+Building components in a project with several systems means that first step in the construction of the component is the base of the component.\n+\n+In high-level way of thinking, the base should serve as \"an interface\" and systems' components as specific implementations. Inheritance, though, should be achieved by composition and not by polymorphism.\n+\n+That's why the base should also be thought of, and managed as, a common layer of re-usable set of rules and guidelines.\n+\n+All components should follow the same file structure and naming conventions.\n+\n+If you are not familiar with the concept of systems in ECL, first have a look at [the system documentation](../systems).\n+\n+### Naming of components\n+\n+* Throughout the whole project, in `package.json` files, namespace should always be `@ecl/`, regardless whether work is to be done on a generic or system component. One reason is that `@ecl` namespace should be preserved for correct organization on [npmjs](https://www.npmjs.com/).\n+* Flavored components should be prefixed with the name of their corresponding system and type (component, style, template): `[generic|ec|eu]-[component|style|template|utility]`.\n+\n+Example:\n+\n+```\n+// Some full component name (in package.json)\n+@ecl/ec-component-logo\n+@ecl/generic-component-navigation-menu\n+@ecl/eu-utility-flex\n+\n+// Corresponding component name (used for file name later)\n+ec-component-logo\n+generic-component-navigation-menu\n+eu-utility-flex\n+```\n+\n+### Structure of components\n+\n+Here are some example of overall structure for components.\n+The different files will be detailed below.\n+\n+Generic component `generic-component-navigation-menu`:\n+\n+```text\n+.\n++-- data\n+|   +-- demo.js\n++-- generic-component-navigation-menu.js\n++-- generic-component-navigation-menu.scss\n++-- generic-component-navigation-menu.twig\n++-- package.json\n++-- README.md\n++--\n+```\n+\n+System component `ec-component-navigation-menu`:\n+\n+```text\n+.\n++-- ec-component-navigation-menu.config.js\n++-- ec-component-navigation-menu.js\n++-- ec-component-navigation-menu.scss\n++-- ec-component-navigation-menu.twig\n++-- package.json\n++-- README.md\n++-- test\n+|   +-- spec\n+    |   +-- test-ec-component-navigation-menu.js\n++--\n+```\n+\n+## SCSS\n+\n+Apart from [rules that should be applied to all SCSS files](scss), there are some specifications for components:\n+\n+### Generic component\n+\n+All CSS rules should be organized in mixins in order to make CSS rules easier to compose.\n+\n+It could be split in several small mixins, but in any case we should have a main mixin calling the small ones.\n+This main mixin should be named following the component's main class.\n+\n+Example:\n+_(File name: generic-component-navigation-menu.scss)_\n+\n+```scss\n+@mixin ecl-navigation-menu-common() {\n+  // Some CSS rules or mixin include\n+}\n+@mixin ecl-navigation-menu-responsive() {\n+  // Some CSS rules\n+}\n+@mixin ecl-navigation-menu() {\n+  @include ecl-navigation-menu-common();\n+  @include ecl-navigation-menu-responsive();\n+}\n+```\n+\n+The CSS rules in generic components should not define specific display elements (like color, background, and more generally everything specific to a system).\n+\n+If display is different in several systems, these differences should be put as parameters in the mixin. The goal here is to be able to call the same generic code, and just pass some parameters to alter display. There is no need to repeat component's name for these parameters, as they are limited to this mixin.\n+\n+Example:\n+_(File name: generic-component-navigation-menu.scss)_\n+\n+```scss\n+@mixin ecl-navigation-menu(\n+  $bar-bg-mobile,\n+  $bar-bg-desktop,\n+  $toggle-btn-color,\n+  $group-bg,\n+  $separator-mobile,\n+  $link-color,\n+  $active-color,\n+  $active-bg\n+) {\n+  // Some CSS rules or mixin include\n+}\n+```\n+\n+### Systems component\n+\n+SCSS files in system-specific components rely on SCSS file defined in corresponding generic component.\n+\n+The flow of best practices in a system-specific SCSS file would look like the following:\n+\n+#### Import base and generic mixins\n+\n+The file should import generic rules located in `@ecl/{system}-base`, and the ones of the generic component.\n+\n+#### Check dependencies calls\n+\n+If the component override some other components (like links, buttons, ...), it should ensure that these dependencies have been loaded beforehand.\n+This is done by using the mixin `check-imports`.\n+\n+#### Generic mixin use\n+\n+Call of the mixin defined in generic component, with custom parameters.\n+\n+#### Additional CSS rules\n+\n+If needed, some extra CSS rules could be added after to specialize the component.\n+\n+Example:\n+_(File name: ec-component-navigation-menu.scss)_\n+\n+```scss\n+// Import base and generic\n+@import '@ecl/ec-base';\n+@import '@ecl/generic-component-navigation-menu/generic-component-navigation-menu';\n+\n+// Check if overridden dependencies are already loaded, if needed\n+@include check-imports(('ec-component-link', 'ec-component-button'));\n+\n+// Use generic mixin\n+@include exports('ec-component-navigation-menu') {\n+  @include ecl-navigation-menu(\n+    $bar-bg-mobile: map-get($ecl-colors, 'grey-15'),\n+    $bar-bg-desktop: map-get($ecl-colors, 'grey-10'),\n+    $toggle-btn-color: map-get($ecl-colors, 'blue-100'),\n+    $group-bg: map-get($ecl-colors, 'grey-5'),\n+    $separator-mobile: map-get($ecl-colors, 'grey-15'),\n+    $link-color: map-get($ecl-colors, 'blue-100'),\n+    $active-color: map-get($ecl-colors, 'blue-100'),\n+    $active-bg: map-get($ecl-colors, 'grey-10')\n+  );\n+\n+  // Add custom rules\n+  .ecl-navigation-menu__item--active {\n+    [...]\n+  }\n+  .ecl-navigation-menu__group::before {\n+    [...]\n+  }\n+}\n+```\n+\n+### Specific case: editor preset\n+\n+If the component alters an element corresponding to a standard HTML tag (like links alters <a\\>, blockquotes alters <blockquote\\>, ...), it should also provide CSS rules for editing.\n+\n+**Please note that this is a specific case, most components don't have to create editor rules**\n+\n+To add editor rules, there should be some extra rules (prefixed by `.ecl-editor`), which override default HTML tag.\n+This rules should be put in a mixin called `ecl-editor-{component name}`, in a separated file called `{component name}--editor.scss`.\n+\n+Example:\n+_(File name: generic-component-link--editor.scss)_\n+\n+```scss\n+@mixin ecl-editor-generic-component-link() {\n+  .ecl-editor a {\n+    box-sizing: border-box;\n+    color: $ecl-color-primary;\n+    margin: 0;\n+    text-decoration: underline;\n+    [...]\n+  }\n+}\n+```\n+\n+## Twig\n+\n+Every component should have a directly usable Twig file. The goal is to be able to include the code in other components or templates (by putting most of the content in context), without having to duplicate it.\n+\n+Apart from [rules that should be applied to all Twig files](twig), there are some specifications for components:\n+\n+### Generic component\n+\n+Generic component Twig file defines all the markup for the component. It should contain all the logic required to use the component, as it is intended to be used by systems components (or anything based on Twig).\n+\n+This Twig file consists of different sections (see link above for more details):\n+\n+* Parameters/Blocks: list of exposed parameters and blocks\n+* Internal properties: definition of custom variables\n+* Internal logic: preprocess and other custom logic\n+* Print: HTML markup\n+\n+Example:\n+_(File name: generic-component-blockquote.twig)_\n+\n+```twig\n+{#\n+  Parameters:\n+    - \"body\" (string) (default: '')\n+    - \"author\" (string) (default: '')\n+    - \"extra_classes\" (string) (default: '')\n+    - \"extra_attributes\" (array) (default: ''): format: [{ 'name': 'name_of_the_attribute', 'value': 'value_of_the_attribute'}])\n+#}\n+\n+{# Internal properties #}\n+\n+{% set _body = body|default('') %}\n+{% set _author = author|default('') %}\n+{% set _css_class = 'ecl-blockquote' %}\n+{% set _extra_attributes = '' %}\n+\n+{# Internal logic - Process properties #}\n+\n+{% if extra_classes is defined %}\n+  {% set _css_class = _css_class ~ ' ' ~ extra_classes %}\n+{% endif %}\n+\n+{% if extra_attributes is defined %}\n+  {% for attr in extra_attributes %}\n+    {% set _extra_attributes = _extra_attributes ~ ' ' ~ attr.name ~ '=\"' ~ attr.value ~'\"' %}\n+  {% endfor %}\n+{% endif %}\n+\n+{# Print the result  #}\n+\n+<blockquote class=\"{\\{ _css_class }}\"{\\{ _extra_attributes|raw }}>\n+  <p class=\"ecl-paragraph ecl-blockquote__body\">{{ _body }}</p>\n+  {% if _author is not empty %}\n+  <footer class=\"ecl-blockquote__author\">―&thinsp;<cite>{{ _author }}</cite></footer>\n+  {% endif %}\n+</blockquote>\n+```\n+\n+### Systems component\n+\n+There are 2 possibilities for system-based components: they use the exact same markup as their corresponding generic/base component, or they alter it.\n+\n+In both cases, **Twig file should always start with available parameters**.\n+\n+#### Same markup\n+\n+This is the easy case: system component just has to include generic Twig file.\n+\n+Example:\n+_(File name: ec-component-blockquote.twig)_\n+\n+```twig\n+{#\n+  Parameters:\n+    - \"body\" (string) (default: '')\n+    - \"author\" (string) (default: '')\n+    - \"extra_classes\" (string) (default: '')\n+    - \"extra_attributes\" (array) (default: ''): format: [{ 'name': 'name_of_the_attribute', 'value': 'value_of_the_attribute'}])\n+#}\n+\n+{% include '@ecl/generic-component-blockquote' %}\n+```\n+\n+#### Different markup\n+\n+As soon as there is a difference in markup (even a small one), specific component has to provide the whole markup (instead of using generic one).","path":"docs/conventions/component.md","position":287,"original_position":287,"commit_id":"fb150165cb0cb45ddf32c56975135a2bd2b4dd7b","original_commit_id":"ab7cf0d238ca4e76d6afd06ebb39c0f05e1ed90a","user":{"login":"yhuard","id":3524389,"avatar_url":"https://avatars3.githubusercontent.com/u/3524389?v=4","gravatar_id":"","url":"https://api.github.com/users/yhuard","html_url":"https://github.com/yhuard","followers_url":"https://api.github.com/users/yhuard/followers","following_url":"https://api.github.com/users/yhuard/following{/other_user}","gists_url":"https://api.github.com/users/yhuard/gists{/gist_id}","starred_url":"https://api.github.com/users/yhuard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yhuard/subscriptions","organizations_url":"https://api.github.com/users/yhuard/orgs","repos_url":"https://api.github.com/users/yhuard/repos","events_url":"https://api.github.com/users/yhuard/events{/privacy}","received_events_url":"https://api.github.com/users/yhuard/received_events","type":"User","site_admin":false},"body":"`the specific component`","created_at":"2018-04-16T09:18:05Z","updated_at":"2018-04-16T09:54:25Z","html_url":"https://github.com/ec-europa/europa-component-library/pull/630#discussion_r181669936","pull_request_url":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/630","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/comments/181669936"},"html":{"href":"https://github.com/ec-europa/europa-component-library/pull/630#discussion_r181669936"},"pull_request":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/630"}}},"pull_request":{"url":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/630","id":179374446,"html_url":"https://github.com/ec-europa/europa-component-library/pull/630","diff_url":"https://github.com/ec-europa/europa-component-library/pull/630.diff","patch_url":"https://github.com/ec-europa/europa-component-library/pull/630.patch","issue_url":"https://api.github.com/repos/ec-europa/europa-component-library/issues/630","number":630,"state":"open","locked":false,"title":"docs(components): add documentation - INNO-974","user":{"login":"emeryro","id":25579221,"avatar_url":"https://avatars1.githubusercontent.com/u/25579221?v=4","gravatar_id":"","url":"https://api.github.com/users/emeryro","html_url":"https://github.com/emeryro","followers_url":"https://api.github.com/users/emeryro/followers","following_url":"https://api.github.com/users/emeryro/following{/other_user}","gists_url":"https://api.github.com/users/emeryro/gists{/gist_id}","starred_url":"https://api.github.com/users/emeryro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emeryro/subscriptions","organizations_url":"https://api.github.com/users/emeryro/orgs","repos_url":"https://api.github.com/users/emeryro/repos","events_url":"https://api.github.com/users/emeryro/events{/privacy}","received_events_url":"https://api.github.com/users/emeryro/received_events","type":"User","site_admin":false},"body":"# PR description\r\n\r\nAdd documentation on how components should be structured\r\n\r\n## QA Checklist\r\n\r\nIn order to ensure a safe and quick review, please check that your PR follow those guidelines:\r\n\r\n* [ ] `package.json` is up-to-date and `@ecl/[system]-base` is part of the dependencies\r\n* [ ] I have checked the dependencies\r\n* [ ] I have given the fractal status “ready” to my component\r\n* [ ] I have declared `@define mycomponent` in the SCSS file\r\n* [ ] I have specified `margin: 0;` on the CSS component\r\n* [ ] I have provided tests\r\n* [ ] I follow the naming guidelines\r\n* [ ] the component supports composition\r\n* [ ] there are no hardcoded strings (all content come from the context)\r\n* [ ] I have filled the README.md file (at least a few lines)\r\n* [ ] My component is listed in the root README\r\n* [ ] My PR has the right label(s)\r\n","created_at":"2018-04-04T12:29:12Z","updated_at":"2018-04-16T09:54:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"be6d0936b6d905c2f37e0394afbcc3b682480eeb","assignee":{"login":"emeryro","id":25579221,"avatar_url":"https://avatars1.githubusercontent.com/u/25579221?v=4","gravatar_id":"","url":"https://api.github.com/users/emeryro","html_url":"https://github.com/emeryro","followers_url":"https://api.github.com/users/emeryro/followers","following_url":"https://api.github.com/users/emeryro/following{/other_user}","gists_url":"https://api.github.com/users/emeryro/gists{/gist_id}","starred_url":"https://api.github.com/users/emeryro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emeryro/subscriptions","organizations_url":"https://api.github.com/users/emeryro/orgs","repos_url":"https://api.github.com/users/emeryro/repos","events_url":"https://api.github.com/users/emeryro/events{/privacy}","received_events_url":"https://api.github.com/users/emeryro/received_events","type":"User","site_admin":false},"assignees":[{"login":"emeryro","id":25579221,"avatar_url":"https://avatars1.githubusercontent.com/u/25579221?v=4","gravatar_id":"","url":"https://api.github.com/users/emeryro","html_url":"https://github.com/emeryro","followers_url":"https://api.github.com/users/emeryro/followers","following_url":"https://api.github.com/users/emeryro/following{/other_user}","gists_url":"https://api.github.com/users/emeryro/gists{/gist_id}","starred_url":"https://api.github.com/users/emeryro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emeryro/subscriptions","organizations_url":"https://api.github.com/users/emeryro/orgs","repos_url":"https://api.github.com/users/emeryro/repos","events_url":"https://api.github.com/users/emeryro/events{/privacy}","received_events_url":"https://api.github.com/users/emeryro/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":673988832,"url":"https://api.github.com/repos/ec-europa/europa-component-library/labels/process:%20review%20needed","name":"process: review needed","color":"1d76db","default":false},{"id":586380272,"url":"https://api.github.com/repos/ec-europa/europa-component-library/labels/tag:%20documentation","name":"tag: documentation","color":"5319e7","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/630/commits","review_comments_url":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/630/comments","review_comment_url":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ec-europa/europa-component-library/issues/630/comments","statuses_url":"https://api.github.com/repos/ec-europa/europa-component-library/statuses/fb150165cb0cb45ddf32c56975135a2bd2b4dd7b","head":{"label":"ec-europa:docs/component-INNO-974","ref":"docs/component-INNO-974","sha":"fb150165cb0cb45ddf32c56975135a2bd2b4dd7b","user":{"login":"ec-europa","id":10885565,"avatar_url":"https://avatars1.githubusercontent.com/u/10885565?v=4","gravatar_id":"","url":"https://api.github.com/users/ec-europa","html_url":"https://github.com/ec-europa","followers_url":"https://api.github.com/users/ec-europa/followers","following_url":"https://api.github.com/users/ec-europa/following{/other_user}","gists_url":"https://api.github.com/users/ec-europa/gists{/gist_id}","starred_url":"https://api.github.com/users/ec-europa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ec-europa/subscriptions","organizations_url":"https://api.github.com/users/ec-europa/orgs","repos_url":"https://api.github.com/users/ec-europa/repos","events_url":"https://api.github.com/users/ec-europa/events{/privacy}","received_events_url":"https://api.github.com/users/ec-europa/received_events","type":"Organization","site_admin":false},"repo":{"id":80430477,"name":"europa-component-library","full_name":"ec-europa/europa-component-library","owner":{"login":"ec-europa","id":10885565,"avatar_url":"https://avatars1.githubusercontent.com/u/10885565?v=4","gravatar_id":"","url":"https://api.github.com/users/ec-europa","html_url":"https://github.com/ec-europa","followers_url":"https://api.github.com/users/ec-europa/followers","following_url":"https://api.github.com/users/ec-europa/following{/other_user}","gists_url":"https://api.github.com/users/ec-europa/gists{/gist_id}","starred_url":"https://api.github.com/users/ec-europa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ec-europa/subscriptions","organizations_url":"https://api.github.com/users/ec-europa/orgs","repos_url":"https://api.github.com/users/ec-europa/repos","events_url":"https://api.github.com/users/ec-europa/events{/privacy}","received_events_url":"https://api.github.com/users/ec-europa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ec-europa/europa-component-library","description":"EC Component Library","fork":false,"url":"https://api.github.com/repos/ec-europa/europa-component-library","forks_url":"https://api.github.com/repos/ec-europa/europa-component-library/forks","keys_url":"https://api.github.com/repos/ec-europa/europa-component-library/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ec-europa/europa-component-library/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ec-europa/europa-component-library/teams","hooks_url":"https://api.github.com/repos/ec-europa/europa-component-library/hooks","issue_events_url":"https://api.github.com/repos/ec-europa/europa-component-library/issues/events{/number}","events_url":"https://api.github.com/repos/ec-europa/europa-component-library/events","assignees_url":"https://api.github.com/repos/ec-europa/europa-component-library/assignees{/user}","branches_url":"https://api.github.com/repos/ec-europa/europa-component-library/branches{/branch}","tags_url":"https://api.github.com/repos/ec-europa/europa-component-library/tags","blobs_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/refs{/sha}","trees_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ec-europa/europa-component-library/statuses/{sha}","languages_url":"https://api.github.com/repos/ec-europa/europa-component-library/languages","stargazers_url":"https://api.github.com/repos/ec-europa/europa-component-library/stargazers","contributors_url":"https://api.github.com/repos/ec-europa/europa-component-library/contributors","subscribers_url":"https://api.github.com/repos/ec-europa/europa-component-library/subscribers","subscription_url":"https://api.github.com/repos/ec-europa/europa-component-library/subscription","commits_url":"https://api.github.com/repos/ec-europa/europa-component-library/commits{/sha}","git_commits_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/commits{/sha}","comments_url":"https://api.github.com/repos/ec-europa/europa-component-library/comments{/number}","issue_comment_url":"https://api.github.com/repos/ec-europa/europa-component-library/issues/comments{/number}","contents_url":"https://api.github.com/repos/ec-europa/europa-component-library/contents/{+path}","compare_url":"https://api.github.com/repos/ec-europa/europa-component-library/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ec-europa/europa-component-library/merges","archive_url":"https://api.github.com/repos/ec-europa/europa-component-library/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ec-europa/europa-component-library/downloads","issues_url":"https://api.github.com/repos/ec-europa/europa-component-library/issues{/number}","pulls_url":"https://api.github.com/repos/ec-europa/europa-component-library/pulls{/number}","milestones_url":"https://api.github.com/repos/ec-europa/europa-component-library/milestones{/number}","notifications_url":"https://api.github.com/repos/ec-europa/europa-component-library/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ec-europa/europa-component-library/labels{/name}","releases_url":"https://api.github.com/repos/ec-europa/europa-component-library/releases{/id}","deployments_url":"https://api.github.com/repos/ec-europa/europa-component-library/deployments","created_at":"2017-01-30T14:52:06Z","updated_at":"2018-04-16T09:26:15Z","pushed_at":"2018-04-16T09:34:19Z","git_url":"git://github.com/ec-europa/europa-component-library.git","ssh_url":"git@github.com:ec-europa/europa-component-library.git","clone_url":"https://github.com/ec-europa/europa-component-library.git","svn_url":"https://github.com/ec-europa/europa-component-library","homepage":"https://ec-europa.github.io/europa-component-library/","size":333087,"stargazers_count":14,"watchers_count":14,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":8,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"eupl-1.1","name":"European Union Public License 1.1","spdx_id":"EUPL-1.1","url":"https://api.github.com/licenses/eupl-1.1"},"forks":8,"open_issues":5,"watchers":14,"default_branch":"next"}},"base":{"label":"ec-europa:next","ref":"next","sha":"23665063f65fa91929f97a9dccb7d41ae3768171","user":{"login":"ec-europa","id":10885565,"avatar_url":"https://avatars1.githubusercontent.com/u/10885565?v=4","gravatar_id":"","url":"https://api.github.com/users/ec-europa","html_url":"https://github.com/ec-europa","followers_url":"https://api.github.com/users/ec-europa/followers","following_url":"https://api.github.com/users/ec-europa/following{/other_user}","gists_url":"https://api.github.com/users/ec-europa/gists{/gist_id}","starred_url":"https://api.github.com/users/ec-europa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ec-europa/subscriptions","organizations_url":"https://api.github.com/users/ec-europa/orgs","repos_url":"https://api.github.com/users/ec-europa/repos","events_url":"https://api.github.com/users/ec-europa/events{/privacy}","received_events_url":"https://api.github.com/users/ec-europa/received_events","type":"Organization","site_admin":false},"repo":{"id":80430477,"name":"europa-component-library","full_name":"ec-europa/europa-component-library","owner":{"login":"ec-europa","id":10885565,"avatar_url":"https://avatars1.githubusercontent.com/u/10885565?v=4","gravatar_id":"","url":"https://api.github.com/users/ec-europa","html_url":"https://github.com/ec-europa","followers_url":"https://api.github.com/users/ec-europa/followers","following_url":"https://api.github.com/users/ec-europa/following{/other_user}","gists_url":"https://api.github.com/users/ec-europa/gists{/gist_id}","starred_url":"https://api.github.com/users/ec-europa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ec-europa/subscriptions","organizations_url":"https://api.github.com/users/ec-europa/orgs","repos_url":"https://api.github.com/users/ec-europa/repos","events_url":"https://api.github.com/users/ec-europa/events{/privacy}","received_events_url":"https://api.github.com/users/ec-europa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ec-europa/europa-component-library","description":"EC Component Library","fork":false,"url":"https://api.github.com/repos/ec-europa/europa-component-library","forks_url":"https://api.github.com/repos/ec-europa/europa-component-library/forks","keys_url":"https://api.github.com/repos/ec-europa/europa-component-library/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ec-europa/europa-component-library/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ec-europa/europa-component-library/teams","hooks_url":"https://api.github.com/repos/ec-europa/europa-component-library/hooks","issue_events_url":"https://api.github.com/repos/ec-europa/europa-component-library/issues/events{/number}","events_url":"https://api.github.com/repos/ec-europa/europa-component-library/events","assignees_url":"https://api.github.com/repos/ec-europa/europa-component-library/assignees{/user}","branches_url":"https://api.github.com/repos/ec-europa/europa-component-library/branches{/branch}","tags_url":"https://api.github.com/repos/ec-europa/europa-component-library/tags","blobs_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/refs{/sha}","trees_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ec-europa/europa-component-library/statuses/{sha}","languages_url":"https://api.github.com/repos/ec-europa/europa-component-library/languages","stargazers_url":"https://api.github.com/repos/ec-europa/europa-component-library/stargazers","contributors_url":"https://api.github.com/repos/ec-europa/europa-component-library/contributors","subscribers_url":"https://api.github.com/repos/ec-europa/europa-component-library/subscribers","subscription_url":"https://api.github.com/repos/ec-europa/europa-component-library/subscription","commits_url":"https://api.github.com/repos/ec-europa/europa-component-library/commits{/sha}","git_commits_url":"https://api.github.com/repos/ec-europa/europa-component-library/git/commits{/sha}","comments_url":"https://api.github.com/repos/ec-europa/europa-component-library/comments{/number}","issue_comment_url":"https://api.github.com/repos/ec-europa/europa-component-library/issues/comments{/number}","contents_url":"https://api.github.com/repos/ec-europa/europa-component-library/contents/{+path}","compare_url":"https://api.github.com/repos/ec-europa/europa-component-library/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ec-europa/europa-component-library/merges","archive_url":"https://api.github.com/repos/ec-europa/europa-component-library/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ec-europa/europa-component-library/downloads","issues_url":"https://api.github.com/repos/ec-europa/europa-component-library/issues{/number}","pulls_url":"https://api.github.com/repos/ec-europa/europa-component-library/pulls{/number}","milestones_url":"https://api.github.com/repos/ec-europa/europa-component-library/milestones{/number}","notifications_url":"https://api.github.com/repos/ec-europa/europa-component-library/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ec-europa/europa-component-library/labels{/name}","releases_url":"https://api.github.com/repos/ec-europa/europa-component-library/releases{/id}","deployments_url":"https://api.github.com/repos/ec-europa/europa-component-library/deployments","created_at":"2017-01-30T14:52:06Z","updated_at":"2018-04-16T09:26:15Z","pushed_at":"2018-04-16T09:34:19Z","git_url":"git://github.com/ec-europa/europa-component-library.git","ssh_url":"git@github.com:ec-europa/europa-component-library.git","clone_url":"https://github.com/ec-europa/europa-component-library.git","svn_url":"https://github.com/ec-europa/europa-component-library","homepage":"https://ec-europa.github.io/europa-component-library/","size":333087,"stargazers_count":14,"watchers_count":14,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":8,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"eupl-1.1","name":"European Union Public License 1.1","spdx_id":"EUPL-1.1","url":"https://api.github.com/licenses/eupl-1.1"},"forks":8,"open_issues":5,"watchers":14,"default_branch":"next"}},"_links":{"self":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/630"},"html":{"href":"https://github.com/ec-europa/europa-component-library/pull/630"},"issue":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/issues/630"},"comments":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/issues/630/comments"},"review_comments":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/630/comments"},"review_comment":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/pulls/630/commits"},"statuses":{"href":"https://api.github.com/repos/ec-europa/europa-component-library/statuses/fb150165cb0cb45ddf32c56975135a2bd2b4dd7b"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"yhuard"}}