{"action":"created","comment":{"url":"https://api.github.com/repos/kyma-project/kyma/pulls/comments/329064844","pull_request_review_id":294275588,"id":329064844,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDMyOTA2NDg0NA==","diff_hunk":"@@ -0,0 +1,239 @@\n+---\n+title: Expose and secure a service\n+type: Tutorials\n+---\n+\n+This tutorial shows you how to expose and secure services or lambda functions using the API Gateway Controller. The controller reacts to an instance of the APIRule custom resource (CR) and creates an Istio Virtual Service and [Oathkeeper Access Rules](https://www.ory.sh/docs/oathkeeper/api-access-rules) according to the details specified in the CR. To interact with the secured services, the tutorial uses an OAuth2 client registered through the Hydra Maester controller.\n+\n+The tutorial comes with a sample HttpBin service deployment and a sample lambda function.\n+\n+## Register an OAuth2 client and get tokens\n+\n+1. Export these values as environment variables:\n+\n+  - The name of your client and the Secret which stores the client credentials:\n+\n+    ```\n+    export CLIENT_NAME={YOUR_CLIENT_NAME}\n+    ```\n+\n+  - The Namespace in which you want to create the client and the Secret that stores its credentials:\n+\n+    ```\n+    export CLIENT_NAMESPACE={YOUR_CLIENT_NAMESPACE}\n+    ```\n+\n+  - The domain of your cluster:\n+\n+    ```\n+    export DOMAIN={CLUSTER_DOMAIN}\n+    ```\n+\n+2. Create an OAuth2 client with `read` and `write` scopes. Run:\n+\n+  ```\n+  cat <<EOF | kubectl apply -f -\n+  apiVersion: hydra.ory.sh/v1alpha1\n+  kind: OAuth2Client\n+  metadata:\n+    name: $CLIENT_NAME\n+    namespace: $CLIENT_NAMESPACE\n+  spec:\n+    grantTypes:\n+      - \"client_credentials\"\n+    scope: \"read write\"\n+    secretName: $CLIENT_NAME\n+  EOF\n+  ```\n+\n+3. Export the credentials of the created client as environment variables. Run:\n+\n+  ```\n+  export CLIENT_ID=\"$(kubectl get secret -n $CLIENT_NAMESPACE $CLIENT_NAME -o jsonpath='{.data.client_id}' | base64 --decode)\"\n+  export CLIENT_SECRET=\"$(kubectl get secret -n $CLIENT_NAMESPACE $CLIENT_NAME -o jsonpath='{.data.client_secret}' | base64 --decode)\"\n+  ```\n+\n+4. Encode your client credentials and export them as an environment variable:\n+\n+  ```\n+  export ENCODED_CREDENTIALS=$(echo -n \"$CLIENT_ID:$CLIENT_SECRET\" | base64)\n+  ```\n+\n+5. Get tokens to interact with secured resources using client credentials flow:\n+\n+<div tabs>\n+  <details>\n+  <summary>\n+  Token with \"read\" scope\n+  </summary>\n+\n+  1. Get the token:\n+\n+      ```\n+      curl -ik -X POST \"https://oauth2.$DOMAIN/oauth2/token\" -H \"Authorization: Basic $ENCODED_CREDENTIALS\" -F \"grant_type=client_credentials\" -F \"scope=read\"\n+      ```\n+\n+  2. Export the issued token as an environment variable:\n+\n+      ```\n+      export ACCESS_TOKEN_READ={ISSUED_READ_TOKEN}\n+      ```\n+\n+  </details>\n+  <details>\n+  <summary>\n+  Token with \"write\" scope\n+  </summary>\n+\n+  1. Get the token:\n+\n+      ```\n+      curl -ik -X POST \"https://oauth2.$DOMAIN/oauth2/token\" -H \"Authorization: Basic $ENCODED_CREDENTIALS\" -F \"grant_type=client_credentials\" -F \"scope=write\"\n+      ```\n+\n+  2. Export the issued token as an environment variable:\n+\n+      ```\n+      export ACCESS_TOKEN_WRITE={ISSUED_WRITE_TOKEN}\n+      ```\n+\n+   </details>\n+</div>\n+\n+## Deploy, expose, and secure the sample resources\n+\n+Follow the instructions in the tabs to deploy an instance of the HttpBin service or a sample lambda function, expose them, and secure them with Oauth2 scopes.\n+\n+<div tabs>\n+\n+  <details>\n+  <summary>\n+  HttpBin - secure endpoints of a service\n+  </summary>\n+\n+1. Deploy an instance of the HttpBin service:\n+\n+  ```\n+  kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/httpbin/httpbin.yaml\n+  ```\n+\n+2. Expose the service and secure it by creating an APIRule CR:\n+\n+  ```\n+  cat <<EOF | kubectl apply -f -\n+  apiVersion: gateway.kyma-project.io/v1alpha1\n+  kind: APIRule\n+  metadata:\n+    name: httpbin\n+  spec:\n+    gateway: kyma-gateway.kyma-system.svc.cluster.local\n+    service:\n+      name: httpbin-proxy\n+      port: 8000\n+      host: httpbin-proxy.kyma.local\n+    rules:\n+      - path: /.*\n+        methods: [\"GET\"]\n+        accessStrategies:\n+          - handler: oauth2_introspection\n+            config:\n+              required_scope: [\"read\"]\n+      - path: /post\n+        methods: [\"POST\"]\n+        accessStrategies:\n+          - handler: oauth2_introspection\n+            config:\n+              required_scope: [\"write\"]\n+  EOF\n+  ```\n+\n+>**NOTE:** If you are running Kyma on Minikube, add `httpbin-proxy.kyma.local` to the entry with Minikube IP in your system's `/etc/hosts` file.\n+\n+The exposed service requires tokens with \"read\" scope for `GET` requests in the entire service and tokens with \"write\" scope for `POST` requests to the `/post` endpoint of the service.\n+\n+  </details>\n+\n+  <details>\n+  <summary>\n+  Secure a lambda function\n+  </summary>\n+\n+1. Create a lambda function using the [supplied code](./assets/lambda.yaml):\n+\n+  ```\n+  kubectl apply -f ./assets/lambda.yaml\n+  ```\n+\n+2. Expose the lambda function and secure it by creating an APIRule CR:\n+\n+  ```\n+  cat <<EOF | kubectl apply -f -\n+  apiVersion: gateway.kyma-project.io/v1alpha1\n+  kind: APIRule\n+  metadata:\n+    name: lambda\n+  spec:\n+    gateway: kyma-gateway.kyma-system.svc.cluster.local\n+    service:\n+      name: labmda-proxy\n+      port: 8080\n+      host: labmda-proxy.kyma.local\n+    rules:\n+      - path: /lambda\n+        methods: [\"GET\"]\n+        accessStrategies:\n+          - handler: oauth2_introspection\n+            config:\n+              required_scope: [\"read\"]\n+  EOF\n+  ```\n+\n+>**NOTE:** If you are running Kyma on Minikube, add `lambda-proxy.kyma.local` to the entry with Minikube IP in your system's `/etc/hosts` file.  \n+\n+The exposed lambda function requires all `GET` requests to have a valid token with the \"read\" scope.\n+\n+  </details>\n+</div>\n+\n+## Access the secured resources\n+\n+Follow the instructions in the tabs to call the secured service or lambda functions using the tokens issued for the client you registered.\n+\n+<div tabs>\n+\n+  <details>\n+  <summary>\n+  Call secured endpoints of a service\n+  </summary>\n+\n+1. Send a `GET` request with a token with the \"read\" scope to the HttpBin service:\n+\n+  ```\n+  curl -ik -X GET https://httpbin-proxy.$DOMAIN/headers -H \"Authorization: Bearer $ACCESS_TOKEN_READ\"\n+  ```\n+\n+2. Send a `POST` request with a token with the \"write\" scope to the HttpBin's `/post` endpoint:\n+\n+  ```\n+  curl -ik -X POST https://httpbin-proxy.$DOMAIN/post -d \"test data\" -H \"Authorization: bearer $ACCESS_TOKEN_WRITE\"\n+  ```\n+\n+These calls return a code `200` response. If you call the service without a token, you get a code `401` response. If you call the service or its secured endpoint with a token with the wrong scope, you get the code `403` response.\n+\n+  </details>\n+\n+  <details>\n+  <summary>\n+  Call the secured lambda function\n+  </summary>\n+\n+Send a `GET` request with a token with the \"read\" scope to the lambda function:\n+\n+  ```\n+  curl -ik https://lambda-proxy.$DOMAIN/lambda -H \"Authorization: bearer $ACCESS_TOKEN_READ\"\n+  ```\n+\n+This call returns a code `200` response. If you call the lambda function without a token, you get a code `401` response. If you call the lambda function with a token with the wrong scope, you get the code `403` response.","path":"docs/api-gateway-v2/08-01-exposesecure.md","position":236,"original_position":236,"commit_id":"4746d347d86d808bdf910843875caf6e5c4f54de","original_commit_id":"4746d347d86d808bdf910843875caf6e5c4f54de","user":{"login":"majakurcius","id":53601578,"node_id":"MDQ6VXNlcjUzNjAxNTc4","avatar_url":"https://avatars2.githubusercontent.com/u/53601578?v=4","gravatar_id":"","url":"https://api.github.com/users/majakurcius","html_url":"https://github.com/majakurcius","followers_url":"https://api.github.com/users/majakurcius/followers","following_url":"https://api.github.com/users/majakurcius/following{/other_user}","gists_url":"https://api.github.com/users/majakurcius/gists{/gist_id}","starred_url":"https://api.github.com/users/majakurcius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/majakurcius/subscriptions","organizations_url":"https://api.github.com/users/majakurcius/orgs","repos_url":"https://api.github.com/users/majakurcius/repos","events_url":"https://api.github.com/users/majakurcius/events{/privacy}","received_events_url":"https://api.github.com/users/majakurcius/received_events","type":"User","site_admin":false},"body":"```suggestion\r\nThis call returns the code `200` response. If you call the lambda function without a token, you get the code `401` response. If you call the lambda function with a token with the wrong scope, you get the code `403` response.\r\n```","created_at":"2019-09-27T13:13:12Z","updated_at":"2019-09-27T13:42:05Z","html_url":"https://github.com/kyma-project/kyma/pull/5785#discussion_r329064844","pull_request_url":"https://api.github.com/repos/kyma-project/kyma/pulls/5785","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/kyma-project/kyma/pulls/comments/329064844"},"html":{"href":"https://github.com/kyma-project/kyma/pull/5785#discussion_r329064844"},"pull_request":{"href":"https://api.github.com/repos/kyma-project/kyma/pulls/5785"}}},"pull_request":{"url":"https://api.github.com/repos/kyma-project/kyma/pulls/5785","id":321728728,"node_id":"MDExOlB1bGxSZXF1ZXN0MzIxNzI4NzI4","html_url":"https://github.com/kyma-project/kyma/pull/5785","diff_url":"https://github.com/kyma-project/kyma/pull/5785.diff","patch_url":"https://github.com/kyma-project/kyma/pull/5785.patch","issue_url":"https://api.github.com/repos/kyma-project/kyma/issues/5785","number":5785,"state":"open","locked":false,"title":"API Gateway v2 docs","user":{"login":"tomekpapiernik","id":29116492,"node_id":"MDQ6VXNlcjI5MTE2NDky","avatar_url":"https://avatars3.githubusercontent.com/u/29116492?v=4","gravatar_id":"","url":"https://api.github.com/users/tomekpapiernik","html_url":"https://github.com/tomekpapiernik","followers_url":"https://api.github.com/users/tomekpapiernik/followers","following_url":"https://api.github.com/users/tomekpapiernik/following{/other_user}","gists_url":"https://api.github.com/users/tomekpapiernik/gists{/gist_id}","starred_url":"https://api.github.com/users/tomekpapiernik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomekpapiernik/subscriptions","organizations_url":"https://api.github.com/users/tomekpapiernik/orgs","repos_url":"https://api.github.com/users/tomekpapiernik/repos","events_url":"https://api.github.com/users/tomekpapiernik/events{/privacy}","received_events_url":"https://api.github.com/users/tomekpapiernik/received_events","type":"User","site_admin":false},"body":"<!--   Thank you for your contribution. Before you submit the pull request:\r\n1. Follow contributing guidelines, templates, the recommended Git workflow, and any related documentation.\r\n2. Read and submit the required Contributor Licence Agreements (https://github.com/kyma-project/community/blob/master/contributing/02-contributing.md#agreements-and-licenses).\r\n3. Test your changes and attach their results to the pull request.\r\n4. Update the relevant documentation.\r\n-->\r\n\r\n**Description**\r\n\r\nChanges proposed in this pull request:\r\n\r\n- Added documentation for API Gateway v2\r\n- Updated other docs that touch on this topic\r\n\r\n**Related issue(s)**\r\n#5305 \r\n","created_at":"2019-09-26T13:46:12Z","updated_at":"2019-09-27T13:42:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6f7ec765fffc8b2fd92b81d073541f93be8d5032","assignee":null,"assignees":[],"requested_reviewers":[{"login":"aszecowka","id":476407,"node_id":"MDQ6VXNlcjQ3NjQwNw==","avatar_url":"https://avatars0.githubusercontent.com/u/476407?v=4","gravatar_id":"","url":"https://api.github.com/users/aszecowka","html_url":"https://github.com/aszecowka","followers_url":"https://api.github.com/users/aszecowka/followers","following_url":"https://api.github.com/users/aszecowka/following{/other_user}","gists_url":"https://api.github.com/users/aszecowka/gists{/gist_id}","starred_url":"https://api.github.com/users/aszecowka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aszecowka/subscriptions","organizations_url":"https://api.github.com/users/aszecowka/orgs","repos_url":"https://api.github.com/users/aszecowka/repos","events_url":"https://api.github.com/users/aszecowka/events{/privacy}","received_events_url":"https://api.github.com/users/aszecowka/received_events","type":"User","site_admin":false},{"login":"adamwalach","id":8530211,"node_id":"MDQ6VXNlcjg1MzAyMTE=","avatar_url":"https://avatars3.githubusercontent.com/u/8530211?v=4","gravatar_id":"","url":"https://api.github.com/users/adamwalach","html_url":"https://github.com/adamwalach","followers_url":"https://api.github.com/users/adamwalach/followers","following_url":"https://api.github.com/users/adamwalach/following{/other_user}","gists_url":"https://api.github.com/users/adamwalach/gists{/gist_id}","starred_url":"https://api.github.com/users/adamwalach/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamwalach/subscriptions","organizations_url":"https://api.github.com/users/adamwalach/orgs","repos_url":"https://api.github.com/users/adamwalach/repos","events_url":"https://api.github.com/users/adamwalach/events{/privacy}","received_events_url":"https://api.github.com/users/adamwalach/received_events","type":"User","site_admin":false},{"login":"PK85","id":9609118,"node_id":"MDQ6VXNlcjk2MDkxMTg=","avatar_url":"https://avatars2.githubusercontent.com/u/9609118?v=4","gravatar_id":"","url":"https://api.github.com/users/PK85","html_url":"https://github.com/PK85","followers_url":"https://api.github.com/users/PK85/followers","following_url":"https://api.github.com/users/PK85/following{/other_user}","gists_url":"https://api.github.com/users/PK85/gists{/gist_id}","starred_url":"https://api.github.com/users/PK85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PK85/subscriptions","organizations_url":"https://api.github.com/users/PK85/orgs","repos_url":"https://api.github.com/users/PK85/repos","events_url":"https://api.github.com/users/PK85/events{/privacy}","received_events_url":"https://api.github.com/users/PK85/received_events","type":"User","site_admin":false},{"login":"jasiu001","id":10399074,"node_id":"MDQ6VXNlcjEwMzk5MDc0","avatar_url":"https://avatars0.githubusercontent.com/u/10399074?v=4","gravatar_id":"","url":"https://api.github.com/users/jasiu001","html_url":"https://github.com/jasiu001","followers_url":"https://api.github.com/users/jasiu001/followers","following_url":"https://api.github.com/users/jasiu001/following{/other_user}","gists_url":"https://api.github.com/users/jasiu001/gists{/gist_id}","starred_url":"https://api.github.com/users/jasiu001/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasiu001/subscriptions","organizations_url":"https://api.github.com/users/jasiu001/orgs","repos_url":"https://api.github.com/users/jasiu001/repos","events_url":"https://api.github.com/users/jasiu001/events{/privacy}","received_events_url":"https://api.github.com/users/jasiu001/received_events","type":"User","site_admin":false},{"login":"piotrmiskiewicz","id":15731038,"node_id":"MDQ6VXNlcjE1NzMxMDM4","avatar_url":"https://avatars0.githubusercontent.com/u/15731038?v=4","gravatar_id":"","url":"https://api.github.com/users/piotrmiskiewicz","html_url":"https://github.com/piotrmiskiewicz","followers_url":"https://api.github.com/users/piotrmiskiewicz/followers","following_url":"https://api.github.com/users/piotrmiskiewicz/following{/other_user}","gists_url":"https://api.github.com/users/piotrmiskiewicz/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrmiskiewicz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrmiskiewicz/subscriptions","organizations_url":"https://api.github.com/users/piotrmiskiewicz/orgs","repos_url":"https://api.github.com/users/piotrmiskiewicz/repos","events_url":"https://api.github.com/users/piotrmiskiewicz/events{/privacy}","received_events_url":"https://api.github.com/users/piotrmiskiewicz/received_events","type":"User","site_admin":false},{"login":"bszwarc","id":17266942,"node_id":"MDQ6VXNlcjE3MjY2OTQy","avatar_url":"https://avatars1.githubusercontent.com/u/17266942?v=4","gravatar_id":"","url":"https://api.github.com/users/bszwarc","html_url":"https://github.com/bszwarc","followers_url":"https://api.github.com/users/bszwarc/followers","following_url":"https://api.github.com/users/bszwarc/following{/other_user}","gists_url":"https://api.github.com/users/bszwarc/gists{/gist_id}","starred_url":"https://api.github.com/users/bszwarc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bszwarc/subscriptions","organizations_url":"https://api.github.com/users/bszwarc/orgs","repos_url":"https://api.github.com/users/bszwarc/repos","events_url":"https://api.github.com/users/bszwarc/events{/privacy}","received_events_url":"https://api.github.com/users/bszwarc/received_events","type":"User","site_admin":false},{"login":"aerfio","id":17271979,"node_id":"MDQ6VXNlcjE3MjcxOTc5","avatar_url":"https://avatars0.githubusercontent.com/u/17271979?v=4","gravatar_id":"","url":"https://api.github.com/users/aerfio","html_url":"https://github.com/aerfio","followers_url":"https://api.github.com/users/aerfio/followers","following_url":"https://api.github.com/users/aerfio/following{/other_user}","gists_url":"https://api.github.com/users/aerfio/gists{/gist_id}","starred_url":"https://api.github.com/users/aerfio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aerfio/subscriptions","organizations_url":"https://api.github.com/users/aerfio/orgs","repos_url":"https://api.github.com/users/aerfio/repos","events_url":"https://api.github.com/users/aerfio/events{/privacy}","received_events_url":"https://api.github.com/users/aerfio/received_events","type":"User","site_admin":false},{"login":"mszostok","id":17568639,"node_id":"MDQ6VXNlcjE3NTY4NjM5","avatar_url":"https://avatars2.githubusercontent.com/u/17568639?v=4","gravatar_id":"","url":"https://api.github.com/users/mszostok","html_url":"https://github.com/mszostok","followers_url":"https://api.github.com/users/mszostok/followers","following_url":"https://api.github.com/users/mszostok/following{/other_user}","gists_url":"https://api.github.com/users/mszostok/gists{/gist_id}","starred_url":"https://api.github.com/users/mszostok/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mszostok/subscriptions","organizations_url":"https://api.github.com/users/mszostok/orgs","repos_url":"https://api.github.com/users/mszostok/repos","events_url":"https://api.github.com/users/mszostok/events{/privacy}","received_events_url":"https://api.github.com/users/mszostok/received_events","type":"User","site_admin":false},{"login":"polskikiel","id":21159554,"node_id":"MDQ6VXNlcjIxMTU5NTU0","avatar_url":"https://avatars1.githubusercontent.com/u/21159554?v=4","gravatar_id":"","url":"https://api.github.com/users/polskikiel","html_url":"https://github.com/polskikiel","followers_url":"https://api.github.com/users/polskikiel/followers","following_url":"https://api.github.com/users/polskikiel/following{/other_user}","gists_url":"https://api.github.com/users/polskikiel/gists{/gist_id}","starred_url":"https://api.github.com/users/polskikiel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/polskikiel/subscriptions","organizations_url":"https://api.github.com/users/polskikiel/orgs","repos_url":"https://api.github.com/users/polskikiel/repos","events_url":"https://api.github.com/users/polskikiel/events{/privacy}","received_events_url":"https://api.github.com/users/polskikiel/received_events","type":"User","site_admin":false},{"login":"mmitoraj","id":23300533,"node_id":"MDQ6VXNlcjIzMzAwNTMz","avatar_url":"https://avatars0.githubusercontent.com/u/23300533?v=4","gravatar_id":"","url":"https://api.github.com/users/mmitoraj","html_url":"https://github.com/mmitoraj","followers_url":"https://api.github.com/users/mmitoraj/followers","following_url":"https://api.github.com/users/mmitoraj/following{/other_user}","gists_url":"https://api.github.com/users/mmitoraj/gists{/gist_id}","starred_url":"https://api.github.com/users/mmitoraj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmitoraj/subscriptions","organizations_url":"https://api.github.com/users/mmitoraj/orgs","repos_url":"https://api.github.com/users/mmitoraj/repos","events_url":"https://api.github.com/users/mmitoraj/events{/privacy}","received_events_url":"https://api.github.com/users/mmitoraj/received_events","type":"User","site_admin":false},{"login":"michal-hudy","id":26445970,"node_id":"MDQ6VXNlcjI2NDQ1OTcw","avatar_url":"https://avatars1.githubusercontent.com/u/26445970?v=4","gravatar_id":"","url":"https://api.github.com/users/michal-hudy","html_url":"https://github.com/michal-hudy","followers_url":"https://api.github.com/users/michal-hudy/followers","following_url":"https://api.github.com/users/michal-hudy/following{/other_user}","gists_url":"https://api.github.com/users/michal-hudy/gists{/gist_id}","starred_url":"https://api.github.com/users/michal-hudy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michal-hudy/subscriptions","organizations_url":"https://api.github.com/users/michal-hudy/orgs","repos_url":"https://api.github.com/users/michal-hudy/repos","events_url":"https://api.github.com/users/michal-hudy/events{/privacy}","received_events_url":"https://api.github.com/users/michal-hudy/received_events","type":"User","site_admin":false},{"login":"klaudiagrz","id":35192450,"node_id":"MDQ6VXNlcjM1MTkyNDUw","avatar_url":"https://avatars2.githubusercontent.com/u/35192450?v=4","gravatar_id":"","url":"https://api.github.com/users/klaudiagrz","html_url":"https://github.com/klaudiagrz","followers_url":"https://api.github.com/users/klaudiagrz/followers","following_url":"https://api.github.com/users/klaudiagrz/following{/other_user}","gists_url":"https://api.github.com/users/klaudiagrz/gists{/gist_id}","starred_url":"https://api.github.com/users/klaudiagrz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/klaudiagrz/subscriptions","organizations_url":"https://api.github.com/users/klaudiagrz/orgs","repos_url":"https://api.github.com/users/klaudiagrz/repos","events_url":"https://api.github.com/users/klaudiagrz/events{/privacy}","received_events_url":"https://api.github.com/users/klaudiagrz/received_events","type":"User","site_admin":false},{"login":"kazydek","id":40655785,"node_id":"MDQ6VXNlcjQwNjU1Nzg1","avatar_url":"https://avatars0.githubusercontent.com/u/40655785?v=4","gravatar_id":"","url":"https://api.github.com/users/kazydek","html_url":"https://github.com/kazydek","followers_url":"https://api.github.com/users/kazydek/followers","following_url":"https://api.github.com/users/kazydek/following{/other_user}","gists_url":"https://api.github.com/users/kazydek/gists{/gist_id}","starred_url":"https://api.github.com/users/kazydek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kazydek/subscriptions","organizations_url":"https://api.github.com/users/kazydek/orgs","repos_url":"https://api.github.com/users/kazydek/repos","events_url":"https://api.github.com/users/kazydek/events{/privacy}","received_events_url":"https://api.github.com/users/kazydek/received_events","type":"User","site_admin":false},{"login":"m00g3n","id":45931826,"node_id":"MDQ6VXNlcjQ1OTMxODI2","avatar_url":"https://avatars0.githubusercontent.com/u/45931826?v=4","gravatar_id":"","url":"https://api.github.com/users/m00g3n","html_url":"https://github.com/m00g3n","followers_url":"https://api.github.com/users/m00g3n/followers","following_url":"https://api.github.com/users/m00g3n/following{/other_user}","gists_url":"https://api.github.com/users/m00g3n/gists{/gist_id}","starred_url":"https://api.github.com/users/m00g3n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m00g3n/subscriptions","organizations_url":"https://api.github.com/users/m00g3n/orgs","repos_url":"https://api.github.com/users/m00g3n/repos","events_url":"https://api.github.com/users/m00g3n/events{/privacy}","received_events_url":"https://api.github.com/users/m00g3n/received_events","type":"User","site_admin":false},{"login":"alexandra-simeonova","id":49867570,"node_id":"MDQ6VXNlcjQ5ODY3NTcw","avatar_url":"https://avatars2.githubusercontent.com/u/49867570?v=4","gravatar_id":"","url":"https://api.github.com/users/alexandra-simeonova","html_url":"https://github.com/alexandra-simeonova","followers_url":"https://api.github.com/users/alexandra-simeonova/followers","following_url":"https://api.github.com/users/alexandra-simeonova/following{/other_user}","gists_url":"https://api.github.com/users/alexandra-simeonova/gists{/gist_id}","starred_url":"https://api.github.com/users/alexandra-simeonova/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexandra-simeonova/subscriptions","organizations_url":"https://api.github.com/users/alexandra-simeonova/orgs","repos_url":"https://api.github.com/users/alexandra-simeonova/repos","events_url":"https://api.github.com/users/alexandra-simeonova/events{/privacy}","received_events_url":"https://api.github.com/users/alexandra-simeonova/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1032299964,"node_id":"MDU6TGFiZWwxMDMyMjk5OTY0","url":"https://api.github.com/repos/kyma-project/kyma/labels/area/documentation","name":"area/documentation","color":"3cba12","default":false},{"id":1034390438,"node_id":"MDU6TGFiZWwxMDM0MzkwNDM4","url":"https://api.github.com/repos/kyma-project/kyma/labels/area/security","name":"area/security","color":"3cba12","default":false}],"milestone":{"url":"https://api.github.com/repos/kyma-project/kyma/milestones/231","html_url":"https://github.com/kyma-project/kyma/milestone/231","labels_url":"https://api.github.com/repos/kyma-project/kyma/milestones/231/labels","id":4656048,"node_id":"MDk6TWlsZXN0b25lNDY1NjA0OA==","number":231,"title":"Sprint_Goat_21","description":"","creator":{"login":"piotrmsc","id":17701416,"node_id":"MDQ6VXNlcjE3NzAxNDE2","avatar_url":"https://avatars1.githubusercontent.com/u/17701416?v=4","gravatar_id":"","url":"https://api.github.com/users/piotrmsc","html_url":"https://github.com/piotrmsc","followers_url":"https://api.github.com/users/piotrmsc/followers","following_url":"https://api.github.com/users/piotrmsc/following{/other_user}","gists_url":"https://api.github.com/users/piotrmsc/gists{/gist_id}","starred_url":"https://api.github.com/users/piotrmsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piotrmsc/subscriptions","organizations_url":"https://api.github.com/users/piotrmsc/orgs","repos_url":"https://api.github.com/users/piotrmsc/repos","events_url":"https://api.github.com/users/piotrmsc/events{/privacy}","received_events_url":"https://api.github.com/users/piotrmsc/received_events","type":"User","site_admin":false},"open_issues":12,"closed_issues":9,"state":"open","created_at":"2019-09-13T06:35:05Z","updated_at":"2019-09-27T12:07:35Z","due_on":"2019-09-30T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/kyma-project/kyma/pulls/5785/commits","review_comments_url":"https://api.github.com/repos/kyma-project/kyma/pulls/5785/comments","review_comment_url":"https://api.github.com/repos/kyma-project/kyma/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kyma-project/kyma/issues/5785/comments","statuses_url":"https://api.github.com/repos/kyma-project/kyma/statuses/4746d347d86d808bdf910843875caf6e5c4f54de","head":{"label":"tomekpapiernik:issue-5305","ref":"issue-5305","sha":"4746d347d86d808bdf910843875caf6e5c4f54de","user":{"login":"tomekpapiernik","id":29116492,"node_id":"MDQ6VXNlcjI5MTE2NDky","avatar_url":"https://avatars3.githubusercontent.com/u/29116492?v=4","gravatar_id":"","url":"https://api.github.com/users/tomekpapiernik","html_url":"https://github.com/tomekpapiernik","followers_url":"https://api.github.com/users/tomekpapiernik/followers","following_url":"https://api.github.com/users/tomekpapiernik/following{/other_user}","gists_url":"https://api.github.com/users/tomekpapiernik/gists{/gist_id}","starred_url":"https://api.github.com/users/tomekpapiernik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomekpapiernik/subscriptions","organizations_url":"https://api.github.com/users/tomekpapiernik/orgs","repos_url":"https://api.github.com/users/tomekpapiernik/repos","events_url":"https://api.github.com/users/tomekpapiernik/events{/privacy}","received_events_url":"https://api.github.com/users/tomekpapiernik/received_events","type":"User","site_admin":false},"repo":{"id":142265190,"node_id":"MDEwOlJlcG9zaXRvcnkxNDIyNjUxOTA=","name":"kyma","full_name":"tomekpapiernik/kyma","private":false,"owner":{"login":"tomekpapiernik","id":29116492,"node_id":"MDQ6VXNlcjI5MTE2NDky","avatar_url":"https://avatars3.githubusercontent.com/u/29116492?v=4","gravatar_id":"","url":"https://api.github.com/users/tomekpapiernik","html_url":"https://github.com/tomekpapiernik","followers_url":"https://api.github.com/users/tomekpapiernik/followers","following_url":"https://api.github.com/users/tomekpapiernik/following{/other_user}","gists_url":"https://api.github.com/users/tomekpapiernik/gists{/gist_id}","starred_url":"https://api.github.com/users/tomekpapiernik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tomekpapiernik/subscriptions","organizations_url":"https://api.github.com/users/tomekpapiernik/orgs","repos_url":"https://api.github.com/users/tomekpapiernik/repos","events_url":"https://api.github.com/users/tomekpapiernik/events{/privacy}","received_events_url":"https://api.github.com/users/tomekpapiernik/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tomekpapiernik/kyma","description":"A flexible and easy way to connect and extend enterprise applications in a cloud-native world","fork":true,"url":"https://api.github.com/repos/tomekpapiernik/kyma","forks_url":"https://api.github.com/repos/tomekpapiernik/kyma/forks","keys_url":"https://api.github.com/repos/tomekpapiernik/kyma/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tomekpapiernik/kyma/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tomekpapiernik/kyma/teams","hooks_url":"https://api.github.com/repos/tomekpapiernik/kyma/hooks","issue_events_url":"https://api.github.com/repos/tomekpapiernik/kyma/issues/events{/number}","events_url":"https://api.github.com/repos/tomekpapiernik/kyma/events","assignees_url":"https://api.github.com/repos/tomekpapiernik/kyma/assignees{/user}","branches_url":"https://api.github.com/repos/tomekpapiernik/kyma/branches{/branch}","tags_url":"https://api.github.com/repos/tomekpapiernik/kyma/tags","blobs_url":"https://api.github.com/repos/tomekpapiernik/kyma/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tomekpapiernik/kyma/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tomekpapiernik/kyma/git/refs{/sha}","trees_url":"https://api.github.com/repos/tomekpapiernik/kyma/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tomekpapiernik/kyma/statuses/{sha}","languages_url":"https://api.github.com/repos/tomekpapiernik/kyma/languages","stargazers_url":"https://api.github.com/repos/tomekpapiernik/kyma/stargazers","contributors_url":"https://api.github.com/repos/tomekpapiernik/kyma/contributors","subscribers_url":"https://api.github.com/repos/tomekpapiernik/kyma/subscribers","subscription_url":"https://api.github.com/repos/tomekpapiernik/kyma/subscription","commits_url":"https://api.github.com/repos/tomekpapiernik/kyma/commits{/sha}","git_commits_url":"https://api.github.com/repos/tomekpapiernik/kyma/git/commits{/sha}","comments_url":"https://api.github.com/repos/tomekpapiernik/kyma/comments{/number}","issue_comment_url":"https://api.github.com/repos/tomekpapiernik/kyma/issues/comments{/number}","contents_url":"https://api.github.com/repos/tomekpapiernik/kyma/contents/{+path}","compare_url":"https://api.github.com/repos/tomekpapiernik/kyma/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tomekpapiernik/kyma/merges","archive_url":"https://api.github.com/repos/tomekpapiernik/kyma/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tomekpapiernik/kyma/downloads","issues_url":"https://api.github.com/repos/tomekpapiernik/kyma/issues{/number}","pulls_url":"https://api.github.com/repos/tomekpapiernik/kyma/pulls{/number}","milestones_url":"https://api.github.com/repos/tomekpapiernik/kyma/milestones{/number}","notifications_url":"https://api.github.com/repos/tomekpapiernik/kyma/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tomekpapiernik/kyma/labels{/name}","releases_url":"https://api.github.com/repos/tomekpapiernik/kyma/releases{/id}","deployments_url":"https://api.github.com/repos/tomekpapiernik/kyma/deployments","created_at":"2018-07-25T07:40:05Z","updated_at":"2019-09-26T08:57:12Z","pushed_at":"2019-09-27T12:40:41Z","git_url":"git://github.com/tomekpapiernik/kyma.git","ssh_url":"git@github.com:tomekpapiernik/kyma.git","clone_url":"https://github.com/tomekpapiernik/kyma.git","svn_url":"https://github.com/tomekpapiernik/kyma","homepage":"","size":44574,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kyma-project:master","ref":"master","sha":"c4069f37399843d4d00157b886c3ee008b0940f1","user":{"login":"kyma-project","id":39153523,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5MTUzNTIz","avatar_url":"https://avatars3.githubusercontent.com/u/39153523?v=4","gravatar_id":"","url":"https://api.github.com/users/kyma-project","html_url":"https://github.com/kyma-project","followers_url":"https://api.github.com/users/kyma-project/followers","following_url":"https://api.github.com/users/kyma-project/following{/other_user}","gists_url":"https://api.github.com/users/kyma-project/gists{/gist_id}","starred_url":"https://api.github.com/users/kyma-project/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyma-project/subscriptions","organizations_url":"https://api.github.com/users/kyma-project/orgs","repos_url":"https://api.github.com/users/kyma-project/repos","events_url":"https://api.github.com/users/kyma-project/events{/privacy}","received_events_url":"https://api.github.com/users/kyma-project/received_events","type":"Organization","site_admin":false},"repo":{"id":139590616,"node_id":"MDEwOlJlcG9zaXRvcnkxMzk1OTA2MTY=","name":"kyma","full_name":"kyma-project/kyma","private":false,"owner":{"login":"kyma-project","id":39153523,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM5MTUzNTIz","avatar_url":"https://avatars3.githubusercontent.com/u/39153523?v=4","gravatar_id":"","url":"https://api.github.com/users/kyma-project","html_url":"https://github.com/kyma-project","followers_url":"https://api.github.com/users/kyma-project/followers","following_url":"https://api.github.com/users/kyma-project/following{/other_user}","gists_url":"https://api.github.com/users/kyma-project/gists{/gist_id}","starred_url":"https://api.github.com/users/kyma-project/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kyma-project/subscriptions","organizations_url":"https://api.github.com/users/kyma-project/orgs","repos_url":"https://api.github.com/users/kyma-project/repos","events_url":"https://api.github.com/users/kyma-project/events{/privacy}","received_events_url":"https://api.github.com/users/kyma-project/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/kyma-project/kyma","description":"A flexible and easy way to connect and extend enterprise applications in a cloud-native world","fork":false,"url":"https://api.github.com/repos/kyma-project/kyma","forks_url":"https://api.github.com/repos/kyma-project/kyma/forks","keys_url":"https://api.github.com/repos/kyma-project/kyma/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kyma-project/kyma/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kyma-project/kyma/teams","hooks_url":"https://api.github.com/repos/kyma-project/kyma/hooks","issue_events_url":"https://api.github.com/repos/kyma-project/kyma/issues/events{/number}","events_url":"https://api.github.com/repos/kyma-project/kyma/events","assignees_url":"https://api.github.com/repos/kyma-project/kyma/assignees{/user}","branches_url":"https://api.github.com/repos/kyma-project/kyma/branches{/branch}","tags_url":"https://api.github.com/repos/kyma-project/kyma/tags","blobs_url":"https://api.github.com/repos/kyma-project/kyma/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kyma-project/kyma/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kyma-project/kyma/git/refs{/sha}","trees_url":"https://api.github.com/repos/kyma-project/kyma/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kyma-project/kyma/statuses/{sha}","languages_url":"https://api.github.com/repos/kyma-project/kyma/languages","stargazers_url":"https://api.github.com/repos/kyma-project/kyma/stargazers","contributors_url":"https://api.github.com/repos/kyma-project/kyma/contributors","subscribers_url":"https://api.github.com/repos/kyma-project/kyma/subscribers","subscription_url":"https://api.github.com/repos/kyma-project/kyma/subscription","commits_url":"https://api.github.com/repos/kyma-project/kyma/commits{/sha}","git_commits_url":"https://api.github.com/repos/kyma-project/kyma/git/commits{/sha}","comments_url":"https://api.github.com/repos/kyma-project/kyma/comments{/number}","issue_comment_url":"https://api.github.com/repos/kyma-project/kyma/issues/comments{/number}","contents_url":"https://api.github.com/repos/kyma-project/kyma/contents/{+path}","compare_url":"https://api.github.com/repos/kyma-project/kyma/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kyma-project/kyma/merges","archive_url":"https://api.github.com/repos/kyma-project/kyma/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kyma-project/kyma/downloads","issues_url":"https://api.github.com/repos/kyma-project/kyma/issues{/number}","pulls_url":"https://api.github.com/repos/kyma-project/kyma/pulls{/number}","milestones_url":"https://api.github.com/repos/kyma-project/kyma/milestones{/number}","notifications_url":"https://api.github.com/repos/kyma-project/kyma/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kyma-project/kyma/labels{/name}","releases_url":"https://api.github.com/repos/kyma-project/kyma/releases{/id}","deployments_url":"https://api.github.com/repos/kyma-project/kyma/deployments","created_at":"2018-07-03T13:51:34Z","updated_at":"2019-09-27T12:56:41Z","pushed_at":"2019-09-27T13:12:55Z","git_url":"git://github.com/kyma-project/kyma.git","ssh_url":"git@github.com:kyma-project/kyma.git","clone_url":"https://github.com/kyma-project/kyma.git","svn_url":"https://github.com/kyma-project/kyma","homepage":"https://kyma-project.io/docs","size":44603,"stargazers_count":752,"watchers_count":752,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":208,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":421,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":208,"open_issues":421,"watchers":752,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kyma-project/kyma/pulls/5785"},"html":{"href":"https://github.com/kyma-project/kyma/pull/5785"},"issue":{"href":"https://api.github.com/repos/kyma-project/kyma/issues/5785"},"comments":{"href":"https://api.github.com/repos/kyma-project/kyma/issues/5785/comments"},"review_comments":{"href":"https://api.github.com/repos/kyma-project/kyma/pulls/5785/comments"},"review_comment":{"href":"https://api.github.com/repos/kyma-project/kyma/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kyma-project/kyma/pulls/5785/commits"},"statuses":{"href":"https://api.github.com/repos/kyma-project/kyma/statuses/4746d347d86d808bdf910843875caf6e5c4f54de"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"majakurcius"}}