{"action":"created","comment":{"url":"https://api.github.com/repos/cilium/cilium/pulls/comments/168299201","pull_request_review_id":96644250,"id":168299201,"diff_hunk":"@@ -0,0 +1,302 @@\n+// Code generated by protoc-gen-go. DO NOT EDIT.\n+// source: envoy/api/v2/rds.proto\n+\n+package v2\n+\n+import proto \"github.com/golang/protobuf/proto\"\n+import fmt \"fmt\"\n+import math \"math\"\n+import envoy_api_v2_core1 \"github.com/cilium/cilium/pkg/envoy/envoy/api/v2/core\"\n+import envoy_api_v2_route \"github.com/cilium/cilium/pkg/envoy/envoy/api/v2/route\"\n+import _ \"google.golang.org/genproto/googleapis/api/annotations\"\n+import google_protobuf \"github.com/golang/protobuf/ptypes/wrappers\"\n+import _ \"github.com/gogo/protobuf/gogoproto\"\n+\n+import (\n+\tcontext \"golang.org/x/net/context\"\n+\tgrpc \"google.golang.org/grpc\"\n+)\n+\n+// Reference imports to suppress errors if they are not otherwise used.\n+var _ = proto.Marshal\n+var _ = fmt.Errorf\n+var _ = math.Inf\n+\n+type RouteConfiguration struct {\n+\t// The name of the route configuration. For example, it might match\n+\t// :ref:`route_config_name\n+\t// <envoy_api_field_config.filter.network.http_connection_manager.v2.Rds.route_config_name>` in\n+\t// :ref:`envoy_api_msg_config.filter.network.http_connection_manager.v2.Rds`.\n+\tName string `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n+\t// An array of virtual hosts that make up the route table.\n+\tVirtualHosts []*envoy_api_v2_route.VirtualHost `protobuf:\"bytes,2,rep,name=virtual_hosts,json=virtualHosts\" json:\"virtual_hosts,omitempty\"`\n+\t// Optionally specifies a list of HTTP headers that the connection manager\n+\t// will consider to be internal only. If they are found on external requests they will be cleaned\n+\t// prior to filter invocation. See :ref:`config_http_conn_man_headers_x-envoy-internal` for more\n+\t// information.\n+\tInternalOnlyHeaders []string `protobuf:\"bytes,3,rep,name=internal_only_headers,json=internalOnlyHeaders\" json:\"internal_only_headers,omitempty\"`\n+\t// Specifies a list of HTTP headers that should be added to each response that\n+\t// the connection manager encodes. Headers specified at this level are applied\n+\t// after headers from any enclosed :ref:`envoy_api_msg_route.VirtualHost` or\n+\t// :ref:`envoy_api_msg_route.RouteAction`. For more information, including details on\n+\t// header value syntax, see the documentation on :ref:`custom request headers\n+\t// <config_http_conn_man_headers_custom_request_headers>`.\n+\tResponseHeadersToAdd []*envoy_api_v2_core1.HeaderValueOption `protobuf:\"bytes,4,rep,name=response_headers_to_add,json=responseHeadersToAdd\" json:\"response_headers_to_add,omitempty\"`\n+\t// Specifies a list of HTTP headers that should be removed from each response\n+\t// that the connection manager encodes.\n+\tResponseHeadersToRemove []string `protobuf:\"bytes,5,rep,name=response_headers_to_remove,json=responseHeadersToRemove\" json:\"response_headers_to_remove,omitempty\"`\n+\t// Specifies a list of HTTP headers that should be added to each request\n+\t// routed by the HTTP connection manager. Headers specified at this level are\n+\t// applied after headers from any enclosed :ref:`envoy_api_msg_route.VirtualHost` or\n+\t// :ref:`envoy_api_msg_route.RouteAction`. For more information, including details on\n+\t// header value syntax, see the documentation on :ref:`custom request headers\n+\t// <config_http_conn_man_headers_custom_request_headers>`.\n+\tRequestHeadersToAdd []*envoy_api_v2_core1.HeaderValueOption `protobuf:\"bytes,6,rep,name=request_headers_to_add,json=requestHeadersToAdd\" json:\"request_headers_to_add,omitempty\"`\n+\t// An optional boolean that specifies whether the clusters that the route\n+\t// table refers to will be validated by the cluster manager. If set to true\n+\t// and a route refers to a non-existent cluster, the route table will not\n+\t// load. If set to false and a route refers to a non-existent cluster, the\n+\t// route table will load and the router filter will return a 404 if the route\n+\t// is selected at runtime. This setting defaults to true if the route table\n+\t// is statically defined via the :ref:`route_config\n+\t// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.route_config>`\n+\t// option. This setting default to false if the route table is loaded dynamically via the\n+\t// :ref:`rds\n+\t// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.rds>`\n+\t// option. Users may which to override the default behavior in certain cases (for example when\n+\t// using CDS with a static route table).\n+\tValidateClusters *google_protobuf.BoolValue `protobuf:\"bytes,7,opt,name=validate_clusters,json=validateClusters\" json:\"validate_clusters,omitempty\"`\n+}\n+\n+func (m *RouteConfiguration) Reset()                    { *m = RouteConfiguration{} }\n+func (m *RouteConfiguration) String() string            { return proto.CompactTextString(m) }\n+func (*RouteConfiguration) ProtoMessage()               {}\n+func (*RouteConfiguration) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{0} }\n+\n+func (m *RouteConfiguration) GetName() string {\n+\tif m != nil {\n+\t\treturn m.Name\n+\t}\n+\treturn \"\"\n+}\n+\n+func (m *RouteConfiguration) GetVirtualHosts() []*envoy_api_v2_route.VirtualHost {\n+\tif m != nil {\n+\t\treturn m.VirtualHosts\n+\t}\n+\treturn nil\n+}\n+\n+func (m *RouteConfiguration) GetInternalOnlyHeaders() []string {\n+\tif m != nil {\n+\t\treturn m.InternalOnlyHeaders\n+\t}\n+\treturn nil\n+}\n+\n+func (m *RouteConfiguration) GetResponseHeadersToAdd() []*envoy_api_v2_core1.HeaderValueOption {\n+\tif m != nil {\n+\t\treturn m.ResponseHeadersToAdd\n+\t}\n+\treturn nil\n+}\n+\n+func (m *RouteConfiguration) GetResponseHeadersToRemove() []string {\n+\tif m != nil {\n+\t\treturn m.ResponseHeadersToRemove\n+\t}\n+\treturn nil\n+}\n+\n+func (m *RouteConfiguration) GetRequestHeadersToAdd() []*envoy_api_v2_core1.HeaderValueOption {\n+\tif m != nil {\n+\t\treturn m.RequestHeadersToAdd\n+\t}\n+\treturn nil\n+}\n+\n+func (m *RouteConfiguration) GetValidateClusters() *google_protobuf.BoolValue {\n+\tif m != nil {\n+\t\treturn m.ValidateClusters\n+\t}\n+\treturn nil\n+}\n+\n+func init() {\n+\tproto.RegisterType((*RouteConfiguration)(nil), \"envoy.api.v2.RouteConfiguration\")\n+}\n+\n+// Reference imports to suppress errors if they are not otherwise used.\n+var _ context.Context\n+var _ grpc.ClientConn\n+\n+// This is a compile-time assertion to ensure that this generated file\n+// is compatible with the grpc package it is being compiled against.\n+const _ = grpc.SupportPackageIsVersion4\n+\n+// Client API for RouteDiscoveryService service\n+\n+type RouteDiscoveryServiceClient interface {\n+\tStreamRoutes(ctx context.Context, opts ...grpc.CallOption) (RouteDiscoveryService_StreamRoutesClient, error)\n+\tFetchRoutes(ctx context.Context, in *DiscoveryRequest, opts ...grpc.CallOption) (*DiscoveryResponse, error)\n+}\n+\n+type routeDiscoveryServiceClient struct {\n+\tcc *grpc.ClientConn\n+}\n+\n+func NewRouteDiscoveryServiceClient(cc *grpc.ClientConn) RouteDiscoveryServiceClient {\n+\treturn &routeDiscoveryServiceClient{cc}\n+}\n+\n+func (c *routeDiscoveryServiceClient) StreamRoutes(ctx context.Context, opts ...grpc.CallOption) (RouteDiscoveryService_StreamRoutesClient, error) {\n+\tstream, err := grpc.NewClientStream(ctx, &_RouteDiscoveryService_serviceDesc.Streams[0], c.cc, \"/envoy.api.v2.RouteDiscoveryService/StreamRoutes\", opts...)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\tx := &routeDiscoveryServiceStreamRoutesClient{stream}\n+\treturn x, nil\n+}\n+\n+type RouteDiscoveryService_StreamRoutesClient interface {\n+\tSend(*DiscoveryRequest) error\n+\tRecv() (*DiscoveryResponse, error)\n+\tgrpc.ClientStream\n+}\n+\n+type routeDiscoveryServiceStreamRoutesClient struct {\n+\tgrpc.ClientStream\n+}\n+\n+func (x *routeDiscoveryServiceStreamRoutesClient) Send(m *DiscoveryRequest) error {\n+\treturn x.ClientStream.SendMsg(m)\n+}\n+\n+func (x *routeDiscoveryServiceStreamRoutesClient) Recv() (*DiscoveryResponse, error) {\n+\tm := new(DiscoveryResponse)\n+\tif err := x.ClientStream.RecvMsg(m); err != nil {\n+\t\treturn nil, err\n+\t}\n+\treturn m, nil\n+}\n+\n+func (c *routeDiscoveryServiceClient) FetchRoutes(ctx context.Context, in *DiscoveryRequest, opts ...grpc.CallOption) (*DiscoveryResponse, error) {\n+\tout := new(DiscoveryResponse)\n+\terr := grpc.Invoke(ctx, \"/envoy.api.v2.RouteDiscoveryService/FetchRoutes\", in, out, c.cc, opts...)\n+\tif err != nil {\n+\t\treturn nil, err\n+\t}\n+\treturn out, nil\n+}\n+\n+// Server API for RouteDiscoveryService service\n+\n+type RouteDiscoveryServiceServer interface {\n+\tStreamRoutes(RouteDiscoveryService_StreamRoutesServer) error\n+\tFetchRoutes(context.Context, *DiscoveryRequest) (*DiscoveryResponse, error)\n+}\n+\n+func RegisterRouteDiscoveryServiceServer(s *grpc.Server, srv RouteDiscoveryServiceServer) {\n+\ts.RegisterService(&_RouteDiscoveryService_serviceDesc, srv)\n+}\n+\n+func _RouteDiscoveryService_StreamRoutes_Handler(srv interface{}, stream grpc.ServerStream) error {\n+\treturn srv.(RouteDiscoveryServiceServer).StreamRoutes(&routeDiscoveryServiceStreamRoutesServer{stream})\n+}\n+\n+type RouteDiscoveryService_StreamRoutesServer interface {\n+\tSend(*DiscoveryResponse) error\n+\tRecv() (*DiscoveryRequest, error)\n+\tgrpc.ServerStream\n+}\n+\n+type routeDiscoveryServiceStreamRoutesServer struct {\n+\tgrpc.ServerStream\n+}\n+\n+func (x *routeDiscoveryServiceStreamRoutesServer) Send(m *DiscoveryResponse) error {\n+\treturn x.ServerStream.SendMsg(m)\n+}\n+\n+func (x *routeDiscoveryServiceStreamRoutesServer) Recv() (*DiscoveryRequest, error) {\n+\tm := new(DiscoveryRequest)\n+\tif err := x.ServerStream.RecvMsg(m); err != nil {\n+\t\treturn nil, err\n+\t}\n+\treturn m, nil\n+}\n+\n+func _RouteDiscoveryService_FetchRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {\n+\tin := new(DiscoveryRequest)\n+\tif err := dec(in); err != nil {\n+\t\treturn nil, err\n+\t}\n+\tif interceptor == nil {\n+\t\treturn srv.(RouteDiscoveryServiceServer).FetchRoutes(ctx, in)\n+\t}\n+\tinfo := &grpc.UnaryServerInfo{\n+\t\tServer:     srv,\n+\t\tFullMethod: \"/envoy.api.v2.RouteDiscoveryService/FetchRoutes\",\n+\t}\n+\thandler := func(ctx context.Context, req interface{}) (interface{}, error) {\n+\t\treturn srv.(RouteDiscoveryServiceServer).FetchRoutes(ctx, req.(*DiscoveryRequest))\n+\t}\n+\treturn interceptor(ctx, in, info, handler)\n+}\n+\n+var _RouteDiscoveryService_serviceDesc = grpc.ServiceDesc{","path":"pkg/envoy/envoy/api/v2/rds.pb.go","position":247,"original_position":247,"commit_id":"1635370c148ebed5973386ce55dc5dd02528f53a","original_commit_id":"1635370c148ebed5973386ce55dc5dd02528f53a","user":{"login":"houndci-bot","id":6697940,"avatar_url":"https://avatars0.githubusercontent.com/u/6697940?v=4","gravatar_id":"","url":"https://api.github.com/users/houndci-bot","html_url":"https://github.com/houndci-bot","followers_url":"https://api.github.com/users/houndci-bot/followers","following_url":"https://api.github.com/users/houndci-bot/following{/other_user}","gists_url":"https://api.github.com/users/houndci-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci-bot/subscriptions","organizations_url":"https://api.github.com/users/houndci-bot/orgs","repos_url":"https://api.github.com/users/houndci-bot/repos","events_url":"https://api.github.com/users/houndci-bot/events{/privacy}","received_events_url":"https://api.github.com/users/houndci-bot/received_events","type":"User","site_admin":false},"body":"don't use underscores in Go names; var _RouteDiscoveryService_serviceDesc should be _RouteDiscoveryServiceServiceDesc","created_at":"2018-02-14T20:22:55Z","updated_at":"2018-02-14T20:22:56Z","html_url":"https://github.com/cilium/cilium/pull/2781#discussion_r168299201","pull_request_url":"https://api.github.com/repos/cilium/cilium/pulls/2781","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/cilium/cilium/pulls/comments/168299201"},"html":{"href":"https://github.com/cilium/cilium/pull/2781#discussion_r168299201"},"pull_request":{"href":"https://api.github.com/repos/cilium/cilium/pulls/2781"}}},"pull_request":{"url":"https://api.github.com/repos/cilium/cilium/pulls/2781","id":168377712,"html_url":"https://github.com/cilium/cilium/pull/2781","diff_url":"https://github.com/cilium/cilium/pull/2781.diff","patch_url":"https://github.com/cilium/cilium/pull/2781.patch","issue_url":"https://api.github.com/repos/cilium/cilium/issues/2781","number":2781,"state":"open","locked":false,"title":"WIP: Envoy master rebase","user":{"login":"jrajahalme","id":6518235,"avatar_url":"https://avatars1.githubusercontent.com/u/6518235?v=4","gravatar_id":"","url":"https://api.github.com/users/jrajahalme","html_url":"https://github.com/jrajahalme","followers_url":"https://api.github.com/users/jrajahalme/followers","following_url":"https://api.github.com/users/jrajahalme/following{/other_user}","gists_url":"https://api.github.com/users/jrajahalme/gists{/gist_id}","starred_url":"https://api.github.com/users/jrajahalme/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jrajahalme/subscriptions","organizations_url":"https://api.github.com/users/jrajahalme/orgs","repos_url":"https://api.github.com/users/jrajahalme/repos","events_url":"https://api.github.com/users/jrajahalme/events{/privacy}","received_events_url":"https://api.github.com/users/jrajahalme/received_events","type":"User","site_admin":false},"body":"This PR still depends on one pending Envoy change, dependency to be changed to Envoy master before merging.\r\n\r\nThe interface and implementation details were refined during the\r\nupstreaming process, which requires corresponding changes in the\r\ncilium listener filter.\r\n\r\nCompile all Envoy API protos, except for the ones that are in draft\r\nstatus and do not compile (currently metrics and trace services).\r\n\r\nEnvoy API protobuf files were also reorganized which requires changes\r\non how we build the golang stubs, and to make that easier we also\r\nrestructure the generated file layout in the subdirectories of\r\npkg/envoy as follows:\r\n\r\n- pkg/envoy/envoy: .pb.go files generated from Envoy APIs\r\n- pkg/envoy/cilium: .pb.go files generated from Cilium filter protobuf APIs\r\n\r\nSigned-off-by: Jarno Rajahalme <jarno@covalent.io>\r\n","created_at":"2018-02-10T01:23:35Z","updated_at":"2018-02-14T20:22:56Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a78041eeeebd347bcc59b972206ccb7133520e3c","assignee":null,"assignees":[],"requested_reviewers":[{"login":"ianvernon","id":3858271,"avatar_url":"https://avatars1.githubusercontent.com/u/3858271?v=4","gravatar_id":"","url":"https://api.github.com/users/ianvernon","html_url":"https://github.com/ianvernon","followers_url":"https://api.github.com/users/ianvernon/followers","following_url":"https://api.github.com/users/ianvernon/following{/other_user}","gists_url":"https://api.github.com/users/ianvernon/gists{/gist_id}","starred_url":"https://api.github.com/users/ianvernon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ianvernon/subscriptions","organizations_url":"https://api.github.com/users/ianvernon/orgs","repos_url":"https://api.github.com/users/ianvernon/repos","events_url":"https://api.github.com/users/ianvernon/events{/privacy}","received_events_url":"https://api.github.com/users/ianvernon/received_events","type":"User","site_admin":false},{"login":"aanm","id":5714066,"avatar_url":"https://avatars0.githubusercontent.com/u/5714066?v=4","gravatar_id":"","url":"https://api.github.com/users/aanm","html_url":"https://github.com/aanm","followers_url":"https://api.github.com/users/aanm/followers","following_url":"https://api.github.com/users/aanm/following{/other_user}","gists_url":"https://api.github.com/users/aanm/gists{/gist_id}","starred_url":"https://api.github.com/users/aanm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aanm/subscriptions","organizations_url":"https://api.github.com/users/aanm/orgs","repos_url":"https://api.github.com/users/aanm/repos","events_url":"https://api.github.com/users/aanm/events{/privacy}","received_events_url":"https://api.github.com/users/aanm/received_events","type":"User","site_admin":false}],"requested_teams":[{"name":"vendor","id":2519791,"slug":"vendor","description":"Vendor dependencies","privacy":"closed","url":"https://api.github.com/teams/2519791","members_url":"https://api.github.com/teams/2519791/members{/member}","repositories_url":"https://api.github.com/teams/2519791/repos","permission":"pull"},{"name":"janitors","id":2519796,"slug":"janitors","description":"Rotating team of janitors for unowned code","privacy":"closed","url":"https://api.github.com/teams/2519796","members_url":"https://api.github.com/teams/2519796/members{/member}","repositories_url":"https://api.github.com/teams/2519796/repos","permission":"pull"}],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/cilium/cilium/pulls/2781/commits","review_comments_url":"https://api.github.com/repos/cilium/cilium/pulls/2781/comments","review_comment_url":"https://api.github.com/repos/cilium/cilium/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cilium/cilium/issues/2781/comments","statuses_url":"https://api.github.com/repos/cilium/cilium/statuses/1635370c148ebed5973386ce55dc5dd02528f53a","head":{"label":"cilium:envoy-master-rebase","ref":"envoy-master-rebase","sha":"1635370c148ebed5973386ce55dc5dd02528f53a","user":{"login":"cilium","id":21054566,"avatar_url":"https://avatars0.githubusercontent.com/u/21054566?v=4","gravatar_id":"","url":"https://api.github.com/users/cilium","html_url":"https://github.com/cilium","followers_url":"https://api.github.com/users/cilium/followers","following_url":"https://api.github.com/users/cilium/following{/other_user}","gists_url":"https://api.github.com/users/cilium/gists{/gist_id}","starred_url":"https://api.github.com/users/cilium/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cilium/subscriptions","organizations_url":"https://api.github.com/users/cilium/orgs","repos_url":"https://api.github.com/users/cilium/repos","events_url":"https://api.github.com/users/cilium/events{/privacy}","received_events_url":"https://api.github.com/users/cilium/received_events","type":"Organization","site_admin":false},"repo":{"id":48109239,"name":"cilium","full_name":"cilium/cilium","owner":{"login":"cilium","id":21054566,"avatar_url":"https://avatars0.githubusercontent.com/u/21054566?v=4","gravatar_id":"","url":"https://api.github.com/users/cilium","html_url":"https://github.com/cilium","followers_url":"https://api.github.com/users/cilium/followers","following_url":"https://api.github.com/users/cilium/following{/other_user}","gists_url":"https://api.github.com/users/cilium/gists{/gist_id}","starred_url":"https://api.github.com/users/cilium/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cilium/subscriptions","organizations_url":"https://api.github.com/users/cilium/orgs","repos_url":"https://api.github.com/users/cilium/repos","events_url":"https://api.github.com/users/cilium/events{/privacy}","received_events_url":"https://api.github.com/users/cilium/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cilium/cilium","description":"API-aware Networking and Security for Containers based on BPF","fork":false,"url":"https://api.github.com/repos/cilium/cilium","forks_url":"https://api.github.com/repos/cilium/cilium/forks","keys_url":"https://api.github.com/repos/cilium/cilium/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cilium/cilium/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cilium/cilium/teams","hooks_url":"https://api.github.com/repos/cilium/cilium/hooks","issue_events_url":"https://api.github.com/repos/cilium/cilium/issues/events{/number}","events_url":"https://api.github.com/repos/cilium/cilium/events","assignees_url":"https://api.github.com/repos/cilium/cilium/assignees{/user}","branches_url":"https://api.github.com/repos/cilium/cilium/branches{/branch}","tags_url":"https://api.github.com/repos/cilium/cilium/tags","blobs_url":"https://api.github.com/repos/cilium/cilium/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cilium/cilium/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cilium/cilium/git/refs{/sha}","trees_url":"https://api.github.com/repos/cilium/cilium/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cilium/cilium/statuses/{sha}","languages_url":"https://api.github.com/repos/cilium/cilium/languages","stargazers_url":"https://api.github.com/repos/cilium/cilium/stargazers","contributors_url":"https://api.github.com/repos/cilium/cilium/contributors","subscribers_url":"https://api.github.com/repos/cilium/cilium/subscribers","subscription_url":"https://api.github.com/repos/cilium/cilium/subscription","commits_url":"https://api.github.com/repos/cilium/cilium/commits{/sha}","git_commits_url":"https://api.github.com/repos/cilium/cilium/git/commits{/sha}","comments_url":"https://api.github.com/repos/cilium/cilium/comments{/number}","issue_comment_url":"https://api.github.com/repos/cilium/cilium/issues/comments{/number}","contents_url":"https://api.github.com/repos/cilium/cilium/contents/{+path}","compare_url":"https://api.github.com/repos/cilium/cilium/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cilium/cilium/merges","archive_url":"https://api.github.com/repos/cilium/cilium/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cilium/cilium/downloads","issues_url":"https://api.github.com/repos/cilium/cilium/issues{/number}","pulls_url":"https://api.github.com/repos/cilium/cilium/pulls{/number}","milestones_url":"https://api.github.com/repos/cilium/cilium/milestones{/number}","notifications_url":"https://api.github.com/repos/cilium/cilium/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cilium/cilium/labels{/name}","releases_url":"https://api.github.com/repos/cilium/cilium/releases{/id}","deployments_url":"https://api.github.com/repos/cilium/cilium/deployments","created_at":"2015-12-16T12:33:31Z","updated_at":"2018-02-14T15:29:08Z","pushed_at":"2018-02-14T20:22:35Z","git_url":"git://github.com/cilium/cilium.git","ssh_url":"git@github.com:cilium/cilium.git","clone_url":"https://github.com/cilium/cilium.git","svn_url":"https://github.com/cilium/cilium","homepage":"","size":41368,"stargazers_count":1457,"watchers_count":1457,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":147,"mirror_url":null,"archived":false,"open_issues_count":361,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":147,"open_issues":361,"watchers":1457,"default_branch":"master"}},"base":{"label":"cilium:master","ref":"master","sha":"d092deee1e19cf0f23c9276e377506f1f95736e7","user":{"login":"cilium","id":21054566,"avatar_url":"https://avatars0.githubusercontent.com/u/21054566?v=4","gravatar_id":"","url":"https://api.github.com/users/cilium","html_url":"https://github.com/cilium","followers_url":"https://api.github.com/users/cilium/followers","following_url":"https://api.github.com/users/cilium/following{/other_user}","gists_url":"https://api.github.com/users/cilium/gists{/gist_id}","starred_url":"https://api.github.com/users/cilium/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cilium/subscriptions","organizations_url":"https://api.github.com/users/cilium/orgs","repos_url":"https://api.github.com/users/cilium/repos","events_url":"https://api.github.com/users/cilium/events{/privacy}","received_events_url":"https://api.github.com/users/cilium/received_events","type":"Organization","site_admin":false},"repo":{"id":48109239,"name":"cilium","full_name":"cilium/cilium","owner":{"login":"cilium","id":21054566,"avatar_url":"https://avatars0.githubusercontent.com/u/21054566?v=4","gravatar_id":"","url":"https://api.github.com/users/cilium","html_url":"https://github.com/cilium","followers_url":"https://api.github.com/users/cilium/followers","following_url":"https://api.github.com/users/cilium/following{/other_user}","gists_url":"https://api.github.com/users/cilium/gists{/gist_id}","starred_url":"https://api.github.com/users/cilium/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cilium/subscriptions","organizations_url":"https://api.github.com/users/cilium/orgs","repos_url":"https://api.github.com/users/cilium/repos","events_url":"https://api.github.com/users/cilium/events{/privacy}","received_events_url":"https://api.github.com/users/cilium/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cilium/cilium","description":"API-aware Networking and Security for Containers based on BPF","fork":false,"url":"https://api.github.com/repos/cilium/cilium","forks_url":"https://api.github.com/repos/cilium/cilium/forks","keys_url":"https://api.github.com/repos/cilium/cilium/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cilium/cilium/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cilium/cilium/teams","hooks_url":"https://api.github.com/repos/cilium/cilium/hooks","issue_events_url":"https://api.github.com/repos/cilium/cilium/issues/events{/number}","events_url":"https://api.github.com/repos/cilium/cilium/events","assignees_url":"https://api.github.com/repos/cilium/cilium/assignees{/user}","branches_url":"https://api.github.com/repos/cilium/cilium/branches{/branch}","tags_url":"https://api.github.com/repos/cilium/cilium/tags","blobs_url":"https://api.github.com/repos/cilium/cilium/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cilium/cilium/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cilium/cilium/git/refs{/sha}","trees_url":"https://api.github.com/repos/cilium/cilium/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cilium/cilium/statuses/{sha}","languages_url":"https://api.github.com/repos/cilium/cilium/languages","stargazers_url":"https://api.github.com/repos/cilium/cilium/stargazers","contributors_url":"https://api.github.com/repos/cilium/cilium/contributors","subscribers_url":"https://api.github.com/repos/cilium/cilium/subscribers","subscription_url":"https://api.github.com/repos/cilium/cilium/subscription","commits_url":"https://api.github.com/repos/cilium/cilium/commits{/sha}","git_commits_url":"https://api.github.com/repos/cilium/cilium/git/commits{/sha}","comments_url":"https://api.github.com/repos/cilium/cilium/comments{/number}","issue_comment_url":"https://api.github.com/repos/cilium/cilium/issues/comments{/number}","contents_url":"https://api.github.com/repos/cilium/cilium/contents/{+path}","compare_url":"https://api.github.com/repos/cilium/cilium/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cilium/cilium/merges","archive_url":"https://api.github.com/repos/cilium/cilium/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cilium/cilium/downloads","issues_url":"https://api.github.com/repos/cilium/cilium/issues{/number}","pulls_url":"https://api.github.com/repos/cilium/cilium/pulls{/number}","milestones_url":"https://api.github.com/repos/cilium/cilium/milestones{/number}","notifications_url":"https://api.github.com/repos/cilium/cilium/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cilium/cilium/labels{/name}","releases_url":"https://api.github.com/repos/cilium/cilium/releases{/id}","deployments_url":"https://api.github.com/repos/cilium/cilium/deployments","created_at":"2015-12-16T12:33:31Z","updated_at":"2018-02-14T15:29:08Z","pushed_at":"2018-02-14T20:22:35Z","git_url":"git://github.com/cilium/cilium.git","ssh_url":"git@github.com:cilium/cilium.git","clone_url":"https://github.com/cilium/cilium.git","svn_url":"https://github.com/cilium/cilium","homepage":"","size":41368,"stargazers_count":1457,"watchers_count":1457,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":147,"mirror_url":null,"archived":false,"open_issues_count":361,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":147,"open_issues":361,"watchers":1457,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cilium/cilium/pulls/2781"},"html":{"href":"https://github.com/cilium/cilium/pull/2781"},"issue":{"href":"https://api.github.com/repos/cilium/cilium/issues/2781"},"comments":{"href":"https://api.github.com/repos/cilium/cilium/issues/2781/comments"},"review_comments":{"href":"https://api.github.com/repos/cilium/cilium/pulls/2781/comments"},"review_comment":{"href":"https://api.github.com/repos/cilium/cilium/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cilium/cilium/pulls/2781/commits"},"statuses":{"href":"https://api.github.com/repos/cilium/cilium/statuses/1635370c148ebed5973386ce55dc5dd02528f53a"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"houndci-bot"}}