{"action":"created","comment":{"url":"https://api.github.com/repos/colis-anr/symbolic/pulls/comments/221199419","pull_request_review_id":159791178,"id":221199419,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMTE5OTQxOQ==","diff_hunk":"@@ -0,0 +1,352 @@\n+module Mode\n+  type mode = Strict | Unstrict\n+end\n+\n+module Filesystem\n+  type filesystem\n+  val constant empty_filesystem: filesystem\n+end\n+\n+module Behaviour\n+\n+  use option.Option\n+\n+  use Mode\n+\n+  (* No return-behaviour behaviour since we do not implement functions (for now) *)\n+  type behaviour =\n+    | BNormal bool\n+    | BExit bool\n+\n+  let function behaviour_of_bool : mode -> bool -> behaviour =\n+    fun strict b ->\n+      match strict, b with\n+      | Strict, False -> BExit False\n+      | _ -> BNormal b\n+      end\n+\n+  let function behaviour_of_bool_opt : mode -> option bool -> behaviour =\n+    fun strict b ->\n+      match b with\n+      | Some b' -> behaviour_of_bool strict b'\n+      | None -> BNormal True\n+      end\n+\n+  let function bool_of_behaviour : behaviour -> bool =\n+    fun b ->\n+      match b with\n+      | BNormal b'\n+      | BExit b' -> b'\n+      end\n+end\n+\n+(** {2 Contexts for the evaluation} *)\n+\n+module Context\n+\n+  use array.Array\n+  use map.Map\n+  use map.Const\n+  use mystring.String\n+  use bool.Bool\n+\n+  use mystring.String\n+  use syntax.Variable\n+\n+  use Mode\n+  use Filesystem\n+  use Behaviour\n+\n+  (* Better implement and use a buffer? *)\n+  type stdin = Stdin string \n+\n+  let constant empty_stdin = Stdin String.empty\n+\n+  type stdout = Stdout string \n+\n+  let constant empty_stdout = Stdout String.empty\n+\n+  let function stdout_to_stdin =\n+    fun s -> match s with Stdout s -> Stdin s end\n+\n+  (** {3 Read-only context for the evaluation of a term} *)\n+\n+  type input = {\n+    arguments: array string;\n+    previous: bool; (* result of last command, i.e. `$?`, default `True` *)\n+    under_condition: bool; (* evaluation under condition - implying unstrict mode *)\n+  }\n+\n+  let constant empty_input = {\n+    arguments = Array.make 0 String.empty;\n+    previous = True;\n+    under_condition = False;\n+  }\n+\n+  (** {3 Read/write context for the evaluation of a term} *)\n+\n+  (** The state is unreversable, i.e. following a linear logic, each internal state should\n+      be consumed exactly once *)\n+  type state = {\n+    filesystem: filesystem;\n+    stdin: stdin; (* : @NJ How is this used in Debian scripts? Required interface for stdin? *)\n+  }\n+\n+  let constant empty_state = {\n+    filesystem = empty_filesystem;\n+    stdin = empty_stdin;\n+  }\n+\n+  (** The context of the interpretation, resulting contexts may be ignored (e.g., from\n+      subprocesses) *)\n+  type context = {\n+    env: map variable string\n+  }\n+\n+  let constant empty_context = {\n+    env = const String.empty;\n+  }\n+\n+  (** {3 Write-only evaluation of a term} *)\n+\n+  type output = {\n+    stdout: stdout; \n+    behaviour: behaviour;\n+  }\n+\n+  (** {3 Auxiliaries} *)\n+\n+  (** Strict evaluation mode (\"false is fatal\") currently applies only outside of\n+      conditions.\n+\n+      To implement \"set -e/+e\", a second field indicating the global strict mode\n+      (`strict_mode`) has to be added in the state and added in this test as\n+      `ctx.strict_mode && negb ctx.under_condition` to account for the following example:\n+\n+      bash --posix -e -c 'if set +e; then echo X; fi; false; echo A/$?'; echo --$?~ *)\n+  let function strict : input -> mode =\n+    fun inp ->\n+      if notb (inp.under_condition)\n+      then Strict\n+      else Unstrict\n+\n+  (** Combine a sequence of two outputs, ignoring the behaviour of the first output *)\n+  let function seq_outputs : output -> output -> output =\n+    fun out1 out2 ->\n+      match out1, out2 with\n+      | {stdout = Stdout s1}, {stdout = Stdout s2; behaviour = b} ->\n+        {stdout = Stdout (s1 ^ s2); behaviour = b}\n+      end\n+end\n+\n+(** {2 Semantics of the CoLiS language} *)\n+\n+module Semantics\n+\n+  use list.List\n+  use list.Append\n+  use option.Option\n+  use map.Map\n+\n+  use mystring.String\n+  use syntax.Syntax\n+\n+  use Behaviour\n+  use Context\n+\n+  let function bool_of_return_code : return_code -> bool -> bool =\n+    fun c previous ->\n+      match c with\n+      | CSuccess -> True\n+      | CFailure -> False\n+      | CPrevious -> previous\n+      end\n+\n+  let function get_option opt default =\n+    match opt with\n+    | Some v -> v\n+    | None -> default\n+    end\n+\n+  (** Interprete a command defined in the document *Specification of UNIX Commands*.\n+\n+      It acts upon the input and irreversable state, and returns a stdout, a behaviour\n+      (True/False), and another irreversable state *)\n+\n+  val function interp_builtin input state string (list string) :\n+    (state, stdout, bool)\n+\n+\n+  (** Evaluation of a statement s with input I, context C and state S resulting in an\n+      state S', context C', and output O:\n+\n+      \\[ (I, C, S) s \\Downarrow (S', C', O) \\]\n+   *)\n+\n+  (** Universal variables for results of function applications and constructors in the\n+      inductive definition below can be replaced by let-bindings when the following bug\n+      report is resolved:\n+\n+      https://gitlab.inria.fr/why3/why3/issues/185\n+   *)\n+\n+  inductive eval_stmt input context state statement state context output =\n+\n+  | eval_assign: forall inp ctx ctx' sta sta' v e s b out.\n+    eval_expr inp ctx sta e sta' s b ->\n+    ctx' = {ctx with env = ctx.env[v <- s]} ->\n+    out = {stdout = empty_stdout; behaviour = behaviour_of_bool_opt (strict inp) b} ->\n+    eval_stmt inp ctx sta (SAssignment v e) sta' ctx' out\n+  \n+  | eval_sequence_normal: forall inp sta sta1 sta2 s1 s2 ctx ctx1 ctx2 out1 out2 out3 b1.\n+    eval_stmt inp ctx sta s1 sta1 ctx1 {out1 with behaviour = BNormal b1} ->\n+    eval_stmt {inp with previous = b1} ctx1 sta1 s2 sta2 ctx2 out2 ->\n+    out3 = seq_outputs out1 out2 ->\n+    eval_stmt inp ctx sta (SSequence s1 s2) sta2 ctx out3","path":"src/concrete/semantics.mlw","position":259,"original_position":205,"commit_id":"95caf8488345930ea921e7b94ae59ea42015627f","original_commit_id":"ac776f4fb0785c01f028009635086ec60205d798","user":{"login":"Niols","id":5920602,"node_id":"MDQ6VXNlcjU5MjA2MDI=","avatar_url":"https://avatars3.githubusercontent.com/u/5920602?v=4","gravatar_id":"","url":"https://api.github.com/users/Niols","html_url":"https://github.com/Niols","followers_url":"https://api.github.com/users/Niols/followers","following_url":"https://api.github.com/users/Niols/following{/other_user}","gists_url":"https://api.github.com/users/Niols/gists{/gist_id}","starred_url":"https://api.github.com/users/Niols/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Niols/subscriptions","organizations_url":"https://api.github.com/users/Niols/orgs","repos_url":"https://api.github.com/users/Niols/repos","events_url":"https://api.github.com/users/Niols/events{/privacy}","received_events_url":"https://api.github.com/users/Niols/received_events","type":"User","site_admin":false},"body":"Maybe `instruction`?","created_at":"2018-09-28T09:48:27Z","updated_at":"2018-09-28T09:48:27Z","html_url":"https://github.com/colis-anr/symbolic/pull/1#discussion_r221199419","pull_request_url":"https://api.github.com/repos/colis-anr/symbolic/pulls/1","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/colis-anr/symbolic/pulls/comments/221199419"},"html":{"href":"https://github.com/colis-anr/symbolic/pull/1#discussion_r221199419"},"pull_request":{"href":"https://api.github.com/repos/colis-anr/symbolic/pulls/1"}},"in_reply_to_id":219825301},"pull_request":{"url":"https://api.github.com/repos/colis-anr/symbolic/pulls/1","id":216975483,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2OTc1NDgz","html_url":"https://github.com/colis-anr/symbolic/pull/1","diff_url":"https://github.com/colis-anr/symbolic/pull/1.diff","patch_url":"https://github.com/colis-anr/symbolic/pull/1.patch","issue_url":"https://api.github.com/repos/colis-anr/symbolic/issues/1","number":1,"state":"open","locked":false,"title":"[WIP] Concrete semantics","user":{"login":"benozol","id":197499,"node_id":"MDQ6VXNlcjE5NzQ5OQ==","avatar_url":"https://avatars1.githubusercontent.com/u/197499?v=4","gravatar_id":"","url":"https://api.github.com/users/benozol","html_url":"https://github.com/benozol","followers_url":"https://api.github.com/users/benozol/followers","following_url":"https://api.github.com/users/benozol/following{/other_user}","gists_url":"https://api.github.com/users/benozol/gists{/gist_id}","starred_url":"https://api.github.com/users/benozol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benozol/subscriptions","organizations_url":"https://api.github.com/users/benozol/orgs","repos_url":"https://api.github.com/users/benozol/repos","events_url":"https://api.github.com/users/benozol/events{/privacy}","received_events_url":"https://api.github.com/users/benozol/received_events","type":"User","site_admin":false},"body":"There are a number of subtleties in the semantics (surprise!). I have marked the ones I considered important with `TODO`, and added some ideas in comments. Your option would be most welcome. What about using the Github comments for replies?","created_at":"2018-09-20T13:38:57Z","updated_at":"2018-09-28T09:48:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8234a126853b79ea043d827bb5a69f4c62bcc438","assignee":null,"assignees":[],"requested_reviewers":[{"login":"claudemarche","id":3995844,"node_id":"MDQ6VXNlcjM5OTU4NDQ=","avatar_url":"https://avatars2.githubusercontent.com/u/3995844?v=4","gravatar_id":"","url":"https://api.github.com/users/claudemarche","html_url":"https://github.com/claudemarche","followers_url":"https://api.github.com/users/claudemarche/followers","following_url":"https://api.github.com/users/claudemarche/following{/other_user}","gists_url":"https://api.github.com/users/claudemarche/gists{/gist_id}","starred_url":"https://api.github.com/users/claudemarche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claudemarche/subscriptions","organizations_url":"https://api.github.com/users/claudemarche/orgs","repos_url":"https://api.github.com/users/claudemarche/repos","events_url":"https://api.github.com/users/claudemarche/events{/privacy}","received_events_url":"https://api.github.com/users/claudemarche/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/colis-anr/symbolic/pulls/1/commits","review_comments_url":"https://api.github.com/repos/colis-anr/symbolic/pulls/1/comments","review_comment_url":"https://api.github.com/repos/colis-anr/symbolic/pulls/comments{/number}","comments_url":"https://api.github.com/repos/colis-anr/symbolic/issues/1/comments","statuses_url":"https://api.github.com/repos/colis-anr/symbolic/statuses/95caf8488345930ea921e7b94ae59ea42015627f","head":{"label":"colis-anr:concrete-semantics","ref":"concrete-semantics","sha":"95caf8488345930ea921e7b94ae59ea42015627f","user":{"login":"colis-anr","id":32835328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyODM1MzI4","avatar_url":"https://avatars3.githubusercontent.com/u/32835328?v=4","gravatar_id":"","url":"https://api.github.com/users/colis-anr","html_url":"https://github.com/colis-anr","followers_url":"https://api.github.com/users/colis-anr/followers","following_url":"https://api.github.com/users/colis-anr/following{/other_user}","gists_url":"https://api.github.com/users/colis-anr/gists{/gist_id}","starred_url":"https://api.github.com/users/colis-anr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colis-anr/subscriptions","organizations_url":"https://api.github.com/users/colis-anr/orgs","repos_url":"https://api.github.com/users/colis-anr/repos","events_url":"https://api.github.com/users/colis-anr/events{/privacy}","received_events_url":"https://api.github.com/users/colis-anr/received_events","type":"Organization","site_admin":false},"repo":{"id":149328009,"node_id":"MDEwOlJlcG9zaXRvcnkxNDkzMjgwMDk=","name":"symbolic","full_name":"colis-anr/symbolic","private":false,"owner":{"login":"colis-anr","id":32835328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyODM1MzI4","avatar_url":"https://avatars3.githubusercontent.com/u/32835328?v=4","gravatar_id":"","url":"https://api.github.com/users/colis-anr","html_url":"https://github.com/colis-anr","followers_url":"https://api.github.com/users/colis-anr/followers","following_url":"https://api.github.com/users/colis-anr/following{/other_user}","gists_url":"https://api.github.com/users/colis-anr/gists{/gist_id}","starred_url":"https://api.github.com/users/colis-anr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colis-anr/subscriptions","organizations_url":"https://api.github.com/users/colis-anr/orgs","repos_url":"https://api.github.com/users/colis-anr/repos","events_url":"https://api.github.com/users/colis-anr/events{/privacy}","received_events_url":"https://api.github.com/users/colis-anr/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/colis-anr/symbolic","description":null,"fork":false,"url":"https://api.github.com/repos/colis-anr/symbolic","forks_url":"https://api.github.com/repos/colis-anr/symbolic/forks","keys_url":"https://api.github.com/repos/colis-anr/symbolic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/colis-anr/symbolic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/colis-anr/symbolic/teams","hooks_url":"https://api.github.com/repos/colis-anr/symbolic/hooks","issue_events_url":"https://api.github.com/repos/colis-anr/symbolic/issues/events{/number}","events_url":"https://api.github.com/repos/colis-anr/symbolic/events","assignees_url":"https://api.github.com/repos/colis-anr/symbolic/assignees{/user}","branches_url":"https://api.github.com/repos/colis-anr/symbolic/branches{/branch}","tags_url":"https://api.github.com/repos/colis-anr/symbolic/tags","blobs_url":"https://api.github.com/repos/colis-anr/symbolic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/colis-anr/symbolic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/colis-anr/symbolic/git/refs{/sha}","trees_url":"https://api.github.com/repos/colis-anr/symbolic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/colis-anr/symbolic/statuses/{sha}","languages_url":"https://api.github.com/repos/colis-anr/symbolic/languages","stargazers_url":"https://api.github.com/repos/colis-anr/symbolic/stargazers","contributors_url":"https://api.github.com/repos/colis-anr/symbolic/contributors","subscribers_url":"https://api.github.com/repos/colis-anr/symbolic/subscribers","subscription_url":"https://api.github.com/repos/colis-anr/symbolic/subscription","commits_url":"https://api.github.com/repos/colis-anr/symbolic/commits{/sha}","git_commits_url":"https://api.github.com/repos/colis-anr/symbolic/git/commits{/sha}","comments_url":"https://api.github.com/repos/colis-anr/symbolic/comments{/number}","issue_comment_url":"https://api.github.com/repos/colis-anr/symbolic/issues/comments{/number}","contents_url":"https://api.github.com/repos/colis-anr/symbolic/contents/{+path}","compare_url":"https://api.github.com/repos/colis-anr/symbolic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/colis-anr/symbolic/merges","archive_url":"https://api.github.com/repos/colis-anr/symbolic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/colis-anr/symbolic/downloads","issues_url":"https://api.github.com/repos/colis-anr/symbolic/issues{/number}","pulls_url":"https://api.github.com/repos/colis-anr/symbolic/pulls{/number}","milestones_url":"https://api.github.com/repos/colis-anr/symbolic/milestones{/number}","notifications_url":"https://api.github.com/repos/colis-anr/symbolic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/colis-anr/symbolic/labels{/name}","releases_url":"https://api.github.com/repos/colis-anr/symbolic/releases{/id}","deployments_url":"https://api.github.com/repos/colis-anr/symbolic/deployments","created_at":"2018-09-18T17:35:53Z","updated_at":"2018-09-18T17:36:12Z","pushed_at":"2018-09-28T07:41:38Z","git_url":"git://github.com/colis-anr/symbolic.git","ssh_url":"git@github.com:colis-anr/symbolic.git","clone_url":"https://github.com/colis-anr/symbolic.git","svn_url":"https://github.com/colis-anr/symbolic","homepage":null,"size":19,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"colis-anr:master","ref":"master","sha":"e887e7363d2a816eced7b09ec33e82a796428b56","user":{"login":"colis-anr","id":32835328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyODM1MzI4","avatar_url":"https://avatars3.githubusercontent.com/u/32835328?v=4","gravatar_id":"","url":"https://api.github.com/users/colis-anr","html_url":"https://github.com/colis-anr","followers_url":"https://api.github.com/users/colis-anr/followers","following_url":"https://api.github.com/users/colis-anr/following{/other_user}","gists_url":"https://api.github.com/users/colis-anr/gists{/gist_id}","starred_url":"https://api.github.com/users/colis-anr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colis-anr/subscriptions","organizations_url":"https://api.github.com/users/colis-anr/orgs","repos_url":"https://api.github.com/users/colis-anr/repos","events_url":"https://api.github.com/users/colis-anr/events{/privacy}","received_events_url":"https://api.github.com/users/colis-anr/received_events","type":"Organization","site_admin":false},"repo":{"id":149328009,"node_id":"MDEwOlJlcG9zaXRvcnkxNDkzMjgwMDk=","name":"symbolic","full_name":"colis-anr/symbolic","private":false,"owner":{"login":"colis-anr","id":32835328,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyODM1MzI4","avatar_url":"https://avatars3.githubusercontent.com/u/32835328?v=4","gravatar_id":"","url":"https://api.github.com/users/colis-anr","html_url":"https://github.com/colis-anr","followers_url":"https://api.github.com/users/colis-anr/followers","following_url":"https://api.github.com/users/colis-anr/following{/other_user}","gists_url":"https://api.github.com/users/colis-anr/gists{/gist_id}","starred_url":"https://api.github.com/users/colis-anr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colis-anr/subscriptions","organizations_url":"https://api.github.com/users/colis-anr/orgs","repos_url":"https://api.github.com/users/colis-anr/repos","events_url":"https://api.github.com/users/colis-anr/events{/privacy}","received_events_url":"https://api.github.com/users/colis-anr/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/colis-anr/symbolic","description":null,"fork":false,"url":"https://api.github.com/repos/colis-anr/symbolic","forks_url":"https://api.github.com/repos/colis-anr/symbolic/forks","keys_url":"https://api.github.com/repos/colis-anr/symbolic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/colis-anr/symbolic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/colis-anr/symbolic/teams","hooks_url":"https://api.github.com/repos/colis-anr/symbolic/hooks","issue_events_url":"https://api.github.com/repos/colis-anr/symbolic/issues/events{/number}","events_url":"https://api.github.com/repos/colis-anr/symbolic/events","assignees_url":"https://api.github.com/repos/colis-anr/symbolic/assignees{/user}","branches_url":"https://api.github.com/repos/colis-anr/symbolic/branches{/branch}","tags_url":"https://api.github.com/repos/colis-anr/symbolic/tags","blobs_url":"https://api.github.com/repos/colis-anr/symbolic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/colis-anr/symbolic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/colis-anr/symbolic/git/refs{/sha}","trees_url":"https://api.github.com/repos/colis-anr/symbolic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/colis-anr/symbolic/statuses/{sha}","languages_url":"https://api.github.com/repos/colis-anr/symbolic/languages","stargazers_url":"https://api.github.com/repos/colis-anr/symbolic/stargazers","contributors_url":"https://api.github.com/repos/colis-anr/symbolic/contributors","subscribers_url":"https://api.github.com/repos/colis-anr/symbolic/subscribers","subscription_url":"https://api.github.com/repos/colis-anr/symbolic/subscription","commits_url":"https://api.github.com/repos/colis-anr/symbolic/commits{/sha}","git_commits_url":"https://api.github.com/repos/colis-anr/symbolic/git/commits{/sha}","comments_url":"https://api.github.com/repos/colis-anr/symbolic/comments{/number}","issue_comment_url":"https://api.github.com/repos/colis-anr/symbolic/issues/comments{/number}","contents_url":"https://api.github.com/repos/colis-anr/symbolic/contents/{+path}","compare_url":"https://api.github.com/repos/colis-anr/symbolic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/colis-anr/symbolic/merges","archive_url":"https://api.github.com/repos/colis-anr/symbolic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/colis-anr/symbolic/downloads","issues_url":"https://api.github.com/repos/colis-anr/symbolic/issues{/number}","pulls_url":"https://api.github.com/repos/colis-anr/symbolic/pulls{/number}","milestones_url":"https://api.github.com/repos/colis-anr/symbolic/milestones{/number}","notifications_url":"https://api.github.com/repos/colis-anr/symbolic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/colis-anr/symbolic/labels{/name}","releases_url":"https://api.github.com/repos/colis-anr/symbolic/releases{/id}","deployments_url":"https://api.github.com/repos/colis-anr/symbolic/deployments","created_at":"2018-09-18T17:35:53Z","updated_at":"2018-09-18T17:36:12Z","pushed_at":"2018-09-28T07:41:38Z","git_url":"git://github.com/colis-anr/symbolic.git","ssh_url":"git@github.com:colis-anr/symbolic.git","clone_url":"https://github.com/colis-anr/symbolic.git","svn_url":"https://github.com/colis-anr/symbolic","homepage":null,"size":19,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/colis-anr/symbolic/pulls/1"},"html":{"href":"https://github.com/colis-anr/symbolic/pull/1"},"issue":{"href":"https://api.github.com/repos/colis-anr/symbolic/issues/1"},"comments":{"href":"https://api.github.com/repos/colis-anr/symbolic/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/colis-anr/symbolic/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/colis-anr/symbolic/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/colis-anr/symbolic/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/colis-anr/symbolic/statuses/95caf8488345930ea921e7b94ae59ea42015627f"}},"author_association":"NONE"}}
{"actor":{"display_login":"Niols"}}