{"action":"created","comment":{"url":"https://api.github.com/repos/dedis/cothority/pulls/comments/227024741","pull_request_review_id":166972603,"id":227024741,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNzAyNDc0MQ==","diff_hunk":"@@ -0,0 +1,222 @@\n+package main\n+\n+import (\n+\t\"errors\"\n+\t\"fmt\"\n+\t\"io\"\n+\t\"net\"\n+\t\"net/url\"\n+\t\"os\"\n+\n+\t\"github.com/dedis/cothority\"\n+\t\"github.com/dedis/cothority/authprox\"\n+\t\"github.com/dedis/cothority/byzcoin/bcadmin/lib\"\n+\t\"github.com/dedis/kyber\"\n+\t\"github.com/dedis/kyber/share\"\n+\t\"github.com/dedis/onet\"\n+\t\"github.com/dedis/onet/app\"\n+\t\"github.com/dedis/onet/cfgpath\"\n+\t\"github.com/dedis/onet/log\"\n+\t\"github.com/dedis/onet/network\"\n+\tcli \"gopkg.in/urfave/cli.v1\"\n+)\n+\n+var cmds = cli.Commands{\n+\t{\n+\t\tName:  \"add\",\n+\t\tUsage: \"add an external identity provider\",\n+\t\tFlags: []cli.Flag{\n+\t\t\tcli.StringFlag{\n+\t\t\t\tName:  \"roster, r\",\n+\t\t\t\tUsage: \"the roster of the cothority that hosts the distributed Authentication Proxy\",\n+\t\t\t},\n+\t\t\tcli.StringFlag{\n+\t\t\t\tName:  \"type\",\n+\t\t\t\tUsage: \"the type of validator: oidc (OpenID Connect) or tq (Tequila). Default is oidc.\",\n+\t\t\t\tValue: \"oidc\",\n+\t\t\t},\n+\t\t\tcli.StringFlag{\n+\t\t\t\tName:  \"issuer\",\n+\t\t\t\tUsage: \"the URL of the identity provider (for OpenID Connect, this is the Issuer URL)\",\n+\t\t\t},\n+\t\t},\n+\t\tAction: add,\n+\t},\n+\t{\n+\t\tName:  \"show\",\n+\t\tUsage: \"show the enrollments of external identity providers\",\n+\t\tFlags: []cli.Flag{\n+\t\t\tcli.StringFlag{\n+\t\t\t\tName:  \"roster, r\",\n+\t\t\t\tUsage: \"the roster of the cothority that hosts the distributed Authentication Proxy\",\n+\t\t\t},\n+\t\t},\n+\t\tAction: show,\n+\t},\n+}\n+\n+var cliApp = cli.NewApp()\n+\n+// getDataPath is a function pointer so that tests can hook and modify this.\n+var getDataPath = cfgpath.GetDataPath\n+\n+func init() {\n+\tcliApp.Name = \"apadmin\"\n+\tcliApp.Usage = \"Administer authentication proxies.\"\n+\tcliApp.Version = \"0.1\"\n+\tcliApp.Commands = cmds\n+\tcliApp.Flags = []cli.Flag{\n+\t\tcli.IntFlag{\n+\t\t\tName:  \"debug, d\",\n+\t\t\tValue: 0,\n+\t\t\tUsage: \"debug-level: 1 for terse, 5 for maximal\",\n+\t\t},\n+\t\tcli.StringFlag{\n+\t\t\tName:  \"config, c\",\n+\t\t\tValue: \"\",\n+\t\t\tUsage: \"path to configuration-directory\",\n+\t\t},\n+\t}\n+\tcliApp.Before = func(c *cli.Context) error {\n+\t\tlog.SetDebugVisible(c.Int(\"debug\"))\n+\t\tlib.ConfigPath = c.String(\"config\")\n+\t\tif lib.ConfigPath == \"\" {\n+\t\t\tlib.ConfigPath = getDataPath(cliApp.Name)\n+\t\t}\n+\t\treturn nil\n+\t}\n+}\n+\n+func main() {\n+\tlog.ErrFatal(cliApp.Run(os.Args))\n+}\n+\n+func show(c *cli.Context) error {\n+\tfn := c.String(\"roster\")\n+\tif fn == \"\" {\n+\t\treturn errors.New(\"--roster flag is required\")\n+\t}\n+\n+\tin, err := os.Open(fn)\n+\tif err != nil {\n+\t\treturn fmt.Errorf(\"Could not open roster %v: %v\", fn, err)\n+\t}\n+\troster, err := readRoster(in)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\tcl := onet.NewClient(cothority.Suite, authprox.ServiceName)\n+\treq := &authprox.EnrollmentsRequest{}\n+\tresp := &authprox.EnrollmentsResponse{}\n+\terr = cl.SendProtobuf(roster.List[0], req, resp)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\n+\tfor _, x := range resp.Enrollments {\n+\t\tfmt.Println(x.Type, x.Issuer, x.Public)\n+\t}\n+\treturn nil\n+}\n+\n+func add(c *cli.Context) error {\n+\tis := c.String(\"issuer\")\n+\tif is == \"\" {\n+\t\treturn errors.New(\"--issuer flag is required\")\n+\t}\n+\n+\t// Load the roster\n+\tfn := c.String(\"roster\")\n+\tif fn == \"\" {\n+\t\treturn errors.New(\"--roster flag is required\")\n+\t}\n+\n+\tin, err := os.Open(fn)\n+\tif err != nil {\n+\t\treturn fmt.Errorf(\"Could not open roster %v: %v\", fn, err)\n+\t}\n+\troster, err := readRoster(in)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\n+\t// Get all the key material ready.\n+\n+\t// n: how many auth proxies will be holding shares\n+\tn := len(roster.List)\n+\tT := threshold(n)\n+\n+\tpubs := make([]kyber.Point, n)\n+\tfor i := 0; i < n; i++ {","path":"authprox/apadmin/main.go","position":150,"original_position":150,"commit_id":"4d4d47374ec1d5c7824970514f91d3c7d664d3a8","original_commit_id":"4d4d47374ec1d5c7824970514f91d3c7d664d3a8","user":{"login":"jeffallen","id":1131456,"node_id":"MDQ6VXNlcjExMzE0NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/1131456?v=4","gravatar_id":"","url":"https://api.github.com/users/jeffallen","html_url":"https://github.com/jeffallen","followers_url":"https://api.github.com/users/jeffallen/followers","following_url":"https://api.github.com/users/jeffallen/following{/other_user}","gists_url":"https://api.github.com/users/jeffallen/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffallen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffallen/subscriptions","organizations_url":"https://api.github.com/users/jeffallen/orgs","repos_url":"https://api.github.com/users/jeffallen/repos","events_url":"https://api.github.com/users/jeffallen/events{/privacy}","received_events_url":"https://api.github.com/users/jeffallen/received_events","type":"User","site_admin":false},"body":"Yes, that's better. When you do it that way, you give the compiler enough info to be able to remove the bounds checks, because it can prove that 0 <= i  < len(pubs).","created_at":"2018-10-22T15:31:08Z","updated_at":"2018-10-22T15:31:08Z","html_url":"https://github.com/dedis/cothority/pull/1506#discussion_r227024741","pull_request_url":"https://api.github.com/repos/dedis/cothority/pulls/1506","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/dedis/cothority/pulls/comments/227024741"},"html":{"href":"https://github.com/dedis/cothority/pull/1506#discussion_r227024741"},"pull_request":{"href":"https://api.github.com/repos/dedis/cothority/pulls/1506"}},"in_reply_to_id":224772903},"pull_request":{"url":"https://api.github.com/repos/dedis/cothority/pulls/1506","id":220686748,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIwNjg2NzQ4","html_url":"https://github.com/dedis/cothority/pull/1506","diff_url":"https://github.com/dedis/cothority/pull/1506.diff","patch_url":"https://github.com/dedis/cothority/pull/1506.patch","issue_url":"https://api.github.com/repos/dedis/cothority/issues/1506","number":1506,"state":"open","locked":false,"title":"Proxy Authentication","user":{"login":"jeffallen","id":1131456,"node_id":"MDQ6VXNlcjExMzE0NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/1131456?v=4","gravatar_id":"","url":"https://api.github.com/users/jeffallen","html_url":"https://github.com/jeffallen","followers_url":"https://api.github.com/users/jeffallen/followers","following_url":"https://api.github.com/users/jeffallen/following{/other_user}","gists_url":"https://api.github.com/users/jeffallen/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffallen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffallen/subscriptions","organizations_url":"https://api.github.com/users/jeffallen/orgs","repos_url":"https://api.github.com/users/jeffallen/repos","events_url":"https://api.github.com/users/jeffallen/events{/privacy}","received_events_url":"https://api.github.com/users/jeffallen/received_events","type":"User","site_admin":false},"body":"Proxy Authentication is a new mechanism for Byzcoin\r\nclients to get their transaction signed. Before, they had\r\nto posess (and protect) a secret key. Now they can instead\r\nbe authenticated by a third-party identity provider (for\r\nexample OpenID Connect). The Authentication Proxy\r\ntakes the third party auth info and a message as input\r\nverifies the authentication info, and then creates a\r\npartial signature that binds the user id to the message.\r\nThe client then assembles these partial signatures into\r\na final signature that can be included with the transaction.\r\n\r\nOn the Darc verification side, the user-id binding\r\nis checked with respect to the public key that corresponds\r\nto all the private key shares in the auth proxies.","created_at":"2018-10-05T12:35:46Z","updated_at":"2018-10-22T15:31:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fbe5bda3b81294f4c7ec359df797b30616afa822","assignee":{"login":"jeffallen","id":1131456,"node_id":"MDQ6VXNlcjExMzE0NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/1131456?v=4","gravatar_id":"","url":"https://api.github.com/users/jeffallen","html_url":"https://github.com/jeffallen","followers_url":"https://api.github.com/users/jeffallen/followers","following_url":"https://api.github.com/users/jeffallen/following{/other_user}","gists_url":"https://api.github.com/users/jeffallen/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffallen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffallen/subscriptions","organizations_url":"https://api.github.com/users/jeffallen/orgs","repos_url":"https://api.github.com/users/jeffallen/repos","events_url":"https://api.github.com/users/jeffallen/events{/privacy}","received_events_url":"https://api.github.com/users/jeffallen/received_events","type":"User","site_admin":false},"assignees":[{"login":"jeffallen","id":1131456,"node_id":"MDQ6VXNlcjExMzE0NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/1131456?v=4","gravatar_id":"","url":"https://api.github.com/users/jeffallen","html_url":"https://github.com/jeffallen","followers_url":"https://api.github.com/users/jeffallen/followers","following_url":"https://api.github.com/users/jeffallen/following{/other_user}","gists_url":"https://api.github.com/users/jeffallen/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffallen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffallen/subscriptions","organizations_url":"https://api.github.com/users/jeffallen/orgs","repos_url":"https://api.github.com/users/jeffallen/repos","events_url":"https://api.github.com/users/jeffallen/events{/privacy}","received_events_url":"https://api.github.com/users/jeffallen/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/dedis/cothority/pulls/1506/commits","review_comments_url":"https://api.github.com/repos/dedis/cothority/pulls/1506/comments","review_comment_url":"https://api.github.com/repos/dedis/cothority/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dedis/cothority/issues/1506/comments","statuses_url":"https://api.github.com/repos/dedis/cothority/statuses/4d4d47374ec1d5c7824970514f91d3c7d664d3a8","head":{"label":"dedis:authprox","ref":"authprox","sha":"4d4d47374ec1d5c7824970514f91d3c7d664d3a8","user":{"login":"dedis","id":3638331,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MzgzMzE=","avatar_url":"https://avatars2.githubusercontent.com/u/3638331?v=4","gravatar_id":"","url":"https://api.github.com/users/dedis","html_url":"https://github.com/dedis","followers_url":"https://api.github.com/users/dedis/followers","following_url":"https://api.github.com/users/dedis/following{/other_user}","gists_url":"https://api.github.com/users/dedis/gists{/gist_id}","starred_url":"https://api.github.com/users/dedis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dedis/subscriptions","organizations_url":"https://api.github.com/users/dedis/orgs","repos_url":"https://api.github.com/users/dedis/repos","events_url":"https://api.github.com/users/dedis/events{/privacy}","received_events_url":"https://api.github.com/users/dedis/received_events","type":"Organization","site_admin":false},"repo":{"id":41791684,"node_id":"MDEwOlJlcG9zaXRvcnk0MTc5MTY4NA==","name":"cothority","full_name":"dedis/cothority","private":false,"owner":{"login":"dedis","id":3638331,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MzgzMzE=","avatar_url":"https://avatars2.githubusercontent.com/u/3638331?v=4","gravatar_id":"","url":"https://api.github.com/users/dedis","html_url":"https://github.com/dedis","followers_url":"https://api.github.com/users/dedis/followers","following_url":"https://api.github.com/users/dedis/following{/other_user}","gists_url":"https://api.github.com/users/dedis/gists{/gist_id}","starred_url":"https://api.github.com/users/dedis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dedis/subscriptions","organizations_url":"https://api.github.com/users/dedis/orgs","repos_url":"https://api.github.com/users/dedis/repos","events_url":"https://api.github.com/users/dedis/events{/privacy}","received_events_url":"https://api.github.com/users/dedis/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dedis/cothority","description":"Scalable collective authority","fork":false,"url":"https://api.github.com/repos/dedis/cothority","forks_url":"https://api.github.com/repos/dedis/cothority/forks","keys_url":"https://api.github.com/repos/dedis/cothority/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dedis/cothority/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dedis/cothority/teams","hooks_url":"https://api.github.com/repos/dedis/cothority/hooks","issue_events_url":"https://api.github.com/repos/dedis/cothority/issues/events{/number}","events_url":"https://api.github.com/repos/dedis/cothority/events","assignees_url":"https://api.github.com/repos/dedis/cothority/assignees{/user}","branches_url":"https://api.github.com/repos/dedis/cothority/branches{/branch}","tags_url":"https://api.github.com/repos/dedis/cothority/tags","blobs_url":"https://api.github.com/repos/dedis/cothority/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dedis/cothority/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dedis/cothority/git/refs{/sha}","trees_url":"https://api.github.com/repos/dedis/cothority/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dedis/cothority/statuses/{sha}","languages_url":"https://api.github.com/repos/dedis/cothority/languages","stargazers_url":"https://api.github.com/repos/dedis/cothority/stargazers","contributors_url":"https://api.github.com/repos/dedis/cothority/contributors","subscribers_url":"https://api.github.com/repos/dedis/cothority/subscribers","subscription_url":"https://api.github.com/repos/dedis/cothority/subscription","commits_url":"https://api.github.com/repos/dedis/cothority/commits{/sha}","git_commits_url":"https://api.github.com/repos/dedis/cothority/git/commits{/sha}","comments_url":"https://api.github.com/repos/dedis/cothority/comments{/number}","issue_comment_url":"https://api.github.com/repos/dedis/cothority/issues/comments{/number}","contents_url":"https://api.github.com/repos/dedis/cothority/contents/{+path}","compare_url":"https://api.github.com/repos/dedis/cothority/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dedis/cothority/merges","archive_url":"https://api.github.com/repos/dedis/cothority/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dedis/cothority/downloads","issues_url":"https://api.github.com/repos/dedis/cothority/issues{/number}","pulls_url":"https://api.github.com/repos/dedis/cothority/pulls{/number}","milestones_url":"https://api.github.com/repos/dedis/cothority/milestones{/number}","notifications_url":"https://api.github.com/repos/dedis/cothority/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dedis/cothority/labels{/name}","releases_url":"https://api.github.com/repos/dedis/cothority/releases{/id}","deployments_url":"https://api.github.com/repos/dedis/cothority/deployments","created_at":"2015-09-02T09:13:57Z","updated_at":"2018-10-22T07:46:09Z","pushed_at":"2018-10-22T14:47:04Z","git_url":"git://github.com/dedis/cothority.git","ssh_url":"git@github.com:dedis/cothority.git","clone_url":"https://github.com/dedis/cothority.git","svn_url":"https://github.com/dedis/cothority","homepage":"","size":84387,"stargazers_count":263,"watchers_count":263,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":62,"mirror_url":null,"archived":false,"open_issues_count":98,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":62,"open_issues":98,"watchers":263,"default_branch":"master"}},"base":{"label":"dedis:master","ref":"master","sha":"1bdfc50ca181a875f30316144cd336999995a041","user":{"login":"dedis","id":3638331,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MzgzMzE=","avatar_url":"https://avatars2.githubusercontent.com/u/3638331?v=4","gravatar_id":"","url":"https://api.github.com/users/dedis","html_url":"https://github.com/dedis","followers_url":"https://api.github.com/users/dedis/followers","following_url":"https://api.github.com/users/dedis/following{/other_user}","gists_url":"https://api.github.com/users/dedis/gists{/gist_id}","starred_url":"https://api.github.com/users/dedis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dedis/subscriptions","organizations_url":"https://api.github.com/users/dedis/orgs","repos_url":"https://api.github.com/users/dedis/repos","events_url":"https://api.github.com/users/dedis/events{/privacy}","received_events_url":"https://api.github.com/users/dedis/received_events","type":"Organization","site_admin":false},"repo":{"id":41791684,"node_id":"MDEwOlJlcG9zaXRvcnk0MTc5MTY4NA==","name":"cothority","full_name":"dedis/cothority","private":false,"owner":{"login":"dedis","id":3638331,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MzgzMzE=","avatar_url":"https://avatars2.githubusercontent.com/u/3638331?v=4","gravatar_id":"","url":"https://api.github.com/users/dedis","html_url":"https://github.com/dedis","followers_url":"https://api.github.com/users/dedis/followers","following_url":"https://api.github.com/users/dedis/following{/other_user}","gists_url":"https://api.github.com/users/dedis/gists{/gist_id}","starred_url":"https://api.github.com/users/dedis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dedis/subscriptions","organizations_url":"https://api.github.com/users/dedis/orgs","repos_url":"https://api.github.com/users/dedis/repos","events_url":"https://api.github.com/users/dedis/events{/privacy}","received_events_url":"https://api.github.com/users/dedis/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dedis/cothority","description":"Scalable collective authority","fork":false,"url":"https://api.github.com/repos/dedis/cothority","forks_url":"https://api.github.com/repos/dedis/cothority/forks","keys_url":"https://api.github.com/repos/dedis/cothority/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dedis/cothority/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dedis/cothority/teams","hooks_url":"https://api.github.com/repos/dedis/cothority/hooks","issue_events_url":"https://api.github.com/repos/dedis/cothority/issues/events{/number}","events_url":"https://api.github.com/repos/dedis/cothority/events","assignees_url":"https://api.github.com/repos/dedis/cothority/assignees{/user}","branches_url":"https://api.github.com/repos/dedis/cothority/branches{/branch}","tags_url":"https://api.github.com/repos/dedis/cothority/tags","blobs_url":"https://api.github.com/repos/dedis/cothority/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dedis/cothority/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dedis/cothority/git/refs{/sha}","trees_url":"https://api.github.com/repos/dedis/cothority/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dedis/cothority/statuses/{sha}","languages_url":"https://api.github.com/repos/dedis/cothority/languages","stargazers_url":"https://api.github.com/repos/dedis/cothority/stargazers","contributors_url":"https://api.github.com/repos/dedis/cothority/contributors","subscribers_url":"https://api.github.com/repos/dedis/cothority/subscribers","subscription_url":"https://api.github.com/repos/dedis/cothority/subscription","commits_url":"https://api.github.com/repos/dedis/cothority/commits{/sha}","git_commits_url":"https://api.github.com/repos/dedis/cothority/git/commits{/sha}","comments_url":"https://api.github.com/repos/dedis/cothority/comments{/number}","issue_comment_url":"https://api.github.com/repos/dedis/cothority/issues/comments{/number}","contents_url":"https://api.github.com/repos/dedis/cothority/contents/{+path}","compare_url":"https://api.github.com/repos/dedis/cothority/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dedis/cothority/merges","archive_url":"https://api.github.com/repos/dedis/cothority/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dedis/cothority/downloads","issues_url":"https://api.github.com/repos/dedis/cothority/issues{/number}","pulls_url":"https://api.github.com/repos/dedis/cothority/pulls{/number}","milestones_url":"https://api.github.com/repos/dedis/cothority/milestones{/number}","notifications_url":"https://api.github.com/repos/dedis/cothority/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dedis/cothority/labels{/name}","releases_url":"https://api.github.com/repos/dedis/cothority/releases{/id}","deployments_url":"https://api.github.com/repos/dedis/cothority/deployments","created_at":"2015-09-02T09:13:57Z","updated_at":"2018-10-22T07:46:09Z","pushed_at":"2018-10-22T14:47:04Z","git_url":"git://github.com/dedis/cothority.git","ssh_url":"git@github.com:dedis/cothority.git","clone_url":"https://github.com/dedis/cothority.git","svn_url":"https://github.com/dedis/cothority","homepage":"","size":84387,"stargazers_count":263,"watchers_count":263,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":62,"mirror_url":null,"archived":false,"open_issues_count":98,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":62,"open_issues":98,"watchers":263,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dedis/cothority/pulls/1506"},"html":{"href":"https://github.com/dedis/cothority/pull/1506"},"issue":{"href":"https://api.github.com/repos/dedis/cothority/issues/1506"},"comments":{"href":"https://api.github.com/repos/dedis/cothority/issues/1506/comments"},"review_comments":{"href":"https://api.github.com/repos/dedis/cothority/pulls/1506/comments"},"review_comment":{"href":"https://api.github.com/repos/dedis/cothority/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dedis/cothority/pulls/1506/commits"},"statuses":{"href":"https://api.github.com/repos/dedis/cothority/statuses/4d4d47374ec1d5c7824970514f91d3c7d664d3a8"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jeffallen"}}