payload: {"action":"created","comment":{"url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/comments/287081121","pull_request_review_id":241381722,"id":287081121,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI4NzA4MTEyMQ==","diff_hunk":"@@ -0,0 +1,588 @@\n+meta:\n+  id: python_pickle\n+  title: Python pickle serialization format\n+  application: Python\n+  file-extension:\n+    - pickle\n+    - pkl\n+  license: CC0-1.0\n+  endian: le\n+  xref:\n+    justsolve: Pickle\n+    wikidata: Q7190889\n+doc: |\n+  Python Pickle format serializes Python objects to a byte stream, as a sequence\n+  of operations to run on the Pickle Virtual Machine.\n+\n+  The format is mostly implementation defined, there is no formal specification.\n+  Pickle data types are closely coupled to the Python object model.\n+  Python singletons, and most builtin types (e.g. `None`, `int`,`dict`, `list`)\n+  are serialised using dedicated Pickle opcodes.\n+  Other builtin types, and all classes  (e.g. `set`, `datetime.datetime`) are\n+  serialised by encoding the name of a constructor callable.\n+  They are deserialised by importing that constructor, and calling it.\n+  So, unpickling an arbitrary pickle, using the Python's stdlib pickle module\n+  can cause arbitrary code execution.\n+\n+  Pickle format has evolved with Python, later protocols add opcodes & types.\n+  Later Python releases can pickle to or unpickle from any earlier protocol.\n+\n+  * Protocol 0: ASCII clean, no explicit version, fields are '\\n' terminated.\n+  * Protocol 1: Binary, no explicit version, first length prefixed types.\n+  * Protocol 2: Python 2.3+. Explicit versioning, more length prefixed types.\n+    https://www.python.org/dev/peps/pep-0307/\n+  * Protocol 3: Python 3.0+. Dedicated opcodes for `bytes` objects.\n+  * Protocol 4: Python 3.4+. Opcodes for 64 bit strings, framing, `set`.\n+    https://www.python.org/dev/peps/pep-3154/\n+doc-ref: https://github.com/python/cpython/blob/v3.7.3/Lib/pickletools.py\n+seq:\n+  # TODO is there a way to declare PROTO is optional, but only valid at position 0?\n+  - id: ops\n+    type: op\n+    repeat: eos\n+  # TODO is there a way to declare a trailing STOP is required?\n+types:\n+  op:\n+    seq:\n+      - id: code\n+        type: u1\n+        enum: opcode\n+        doc: |\n+          Operation code that determines which action should be\n+          performed next by the Pickle Virtual Machine. Some opcodes\n+          are only available in later versions of the Pickle protocol.\n+      - id: arg\n+        type:\n+          switch-on: code\n+          cases:\n+            'opcode::int': decimalnl_short\n+            'opcode::binint': s4\n+            'opcode::binint1': u1\n+            'opcode::binint2': u2\n+            'opcode::long': decimalnl_long\n+            'opcode::long1': long1\n+            'opcode::long4': long4\n+            'opcode::string': stringnl\n+            'opcode::binstring': string4\n+            'opcode::short_binstring': string1\n+            'opcode::binbytes': bytes4\n+            'opcode::short_binbytes': bytes1\n+            'opcode::binbytes8': bytes8\n+            'opcode::none': no_arg\n+            'opcode::newtrue': no_arg\n+            'opcode::newfalse': no_arg\n+            'opcode::unicode': unicodestringnl\n+            'opcode::short_binunicode': unicodestring1\n+            'opcode::binunicode': unicodestring4\n+            'opcode::binunicode8': unicodestring8\n+            'opcode::float': floatnl\n+            'opcode::binfloat': f8\n+            'opcode::empty_list': no_arg\n+            'opcode::append': no_arg\n+            'opcode::appends': no_arg\n+            'opcode::list': no_arg\n+            'opcode::empty_tuple': no_arg\n+            'opcode::tuple': no_arg\n+            'opcode::tuple1': no_arg\n+            'opcode::tuple2': no_arg\n+            'opcode::tuple3': no_arg\n+            'opcode::empty_dict': no_arg\n+            'opcode::dict': no_arg\n+            'opcode::setitem': no_arg\n+            'opcode::setitems': no_arg\n+            'opcode::empty_set': no_arg\n+            'opcode::additems': no_arg\n+            'opcode::frozenset': no_arg\n+            'opcode::pop': no_arg\n+            'opcode::dup': no_arg\n+            'opcode::mark': no_arg\n+            'opcode::pop_mark': no_arg\n+            'opcode::get': decimalnl_short\n+            'opcode::binget': u1\n+            'opcode::long_binget': u4\n+            'opcode::put': decimalnl_short\n+            'opcode::binput': u1\n+            'opcode::long_binput': u4\n+            'opcode::memoize': no_arg\n+            'opcode::ext1': u1\n+            'opcode::ext2': u2\n+            'opcode::ext4': u4\n+            'opcode::global':  stringnl_noescape_pair\n+            'opcode::stack_global': no_arg\n+            'opcode::reduce': no_arg\n+            'opcode::build': no_arg\n+            'opcode::inst': stringnl_noescape_pair\n+            'opcode::obj': no_arg\n+            'opcode::newobj': no_arg\n+            'opcode::newobj_ex': no_arg\n+            'opcode::proto': u1\n+            'opcode::stop': no_arg\n+            'opcode::frame': u8\n+            'opcode::persid': stringnl_noescape\n+            'opcode::binpersid': no_arg\n+        doc: |\n+          Optional argument for the operation. Data type and length\n+          are determined by the value of the opcode.\n+\n+  decimalnl_short:\n+    seq:\n+      - id: val\n+        type: str\n+        encoding: ASCII\n+        terminator: 0x0a # \"\\n\"\n+    doc: Integer, encoded with the ASCII characters [0-9-].\n+\n+  decimalnl_long:\n+    seq:\n+      - id: val\n+        type: str\n+        encoding: ASCII\n+        terminator: 0x0a # \"\\n\"\n+    doc: Integer, encoded with the ASCII chracters [0-9-], followed by 'L'.\n+\n+  # TODO Can kaitai express constraint that these are quoted?\n+  stringnl:\n+    seq:\n+      - id: val\n+        type: str\n+        encoding: ASCII\n+        terminator: 0x0a # \"\\n\"\n+    doc: Quoted string, possibly containing Python string escapes.\n+\n+  stringnl_noescape:\n+    seq:\n+      - id: val\n+        type: str\n+        encoding: ASCII\n+        terminator: 0x0a # \"\\n\"\n+    doc: Unquoted string, does not contain string escapes.\n+\n+  stringnl_noescape_pair:\n+    seq:\n+      - id: val1\n+        type: stringnl_noescape\n+      - id: val2\n+        type: stringnl_noescape\n+    doc: Pair of unquoted, unescaped strings.\n+\n+  unicodestringnl:\n+    seq:\n+      - id: val\n+        type: str\n+        encoding: ASCII\n+        terminator: 0x0a # \"\\n\"\n+    doc: Unquoted string, containing Python Unicode escapes.\n+\n+  floatnl:\n+    seq:\n+      - id: val\n+        type: str\n+        encoding: ASCII\n+        terminator: 0x0a # \"\\n\"\n+    doc: |\n+      Double float, encoded with the ASCII characters [0-9.e+-], '-inf', 'inf',\n+      or 'nan'.\n+\n+  long1:\n+    seq:\n+      - id: len\n+        type: u1\n+      - id: val\n+        size: len\n+    doc: |\n+      Large signed integer, in the range -2**(8*255-1) to 2**(8*255-1)-1,\n+      encoded as two's complement.\n+\n+  long4:\n+    seq:\n+      - id: len\n+        type: u4\n+      - id: val\n+        size: len\n+    doc: |\n+      Large signed integer, in the range -2**(8*2**32-1) to 2**(8*2**32-1)-1,\n+      encoded as two's complement.\n+\n+  string1:\n+    seq:\n+      - id: len\n+        type: u1\n+      - id: val\n+        size: len\n+    doc: |\n+      Length prefixed string, between 0 and 255 bytes long. Encoding is\n+      unspecified.\n+\n+      The default Python 2.x string type (`str`) is a sequence of bytes.\n+      These are pickled as `string1` or `string4`, when protocol == 2.\n+      The bytes are written directly, no explicit encoding is performed.\n+\n+      Python 3.x will not pickle an object as `string1` or `string4`.\n+      Instead, opcodes and types with a known encoding are used.\n+      When unpickling\n+\n+      - `pickle.Unpickler` objects default to ASCII, which can be overriden\n+      - `pickletools.dis` uses latin1, and cannot be overriden\n+    doc-ref: https://github.com/python/cpython/blob/bb8071a4/Lib/pickle.py#L486-L495\n+\n+  string4:\n+    seq:\n+      - id: len\n+        # Not a typo, the length really is a signed integer\n+        type: s4\n+      - id: val\n+        size: len\n+    doc: |\n+      Length prefixed string, between 0 and 2**31-1 bytes long. Encoding is\n+      unspecified.\n+\n+      Although the len field is signed, any length < 0 will raise an exception\n+      during unpickling.\n+\n+      See the documentation for `string1` for further detail about encodings.\n+    doc-ref: https://github.com/python/cpython/blob/bb8071a4/Lib/pickle.py#L486-L495\n+\n+  bytes1:\n+    seq:\n+      - id: len\n+        type: u1\n+      - id: val\n+        size: len\n+    doc: Length prefixed byte string, between 0 and 255 bytes long.\n+\n+  bytes4:\n+    seq:\n+      - id: len\n+        type: u4\n+      - id: val\n+        size: len\n+    doc: Length prefixed string, between 0 and 2**32-1 bytes long\n+\n+  bytes8:\n+    seq:\n+      - id: len\n+        type: u8\n+      - id: val\n+        size: len\n+    doc: |\n+      Length prefixed string, between 0 and 2**64-1 bytes long.\n+\n+      Only a 64-bit build of Python would produce a pickle containing strings\n+      large enough to need this type. Such a pickle could not be unpickled on\n+      a 32-bit build of Python, because the string would be larger than\n+      `sys.maxsize`.\n+\n+  unicodestring1:\n+    seq:\n+      - id: len\n+        type: u4\n+      - id: val\n+        type: str\n+        encoding: utf8\n+        size: len\n+    doc: Length prefixed string, between 0 and 255 bytes long\n+\n+  unicodestring4:\n+    seq:\n+      - id: len\n+        type: u4\n+      - id: val\n+        type: str\n+        encoding: utf8\n+        size: len\n+    doc: Length prefixed string, between 0 and 2**32-1 bytes long\n+\n+  unicodestring8:\n+    seq:\n+      - id: len\n+        type: u8\n+      - id: val\n+        type: str\n+        encoding: utf8\n+        size: len\n+    doc: |\n+      Length prefixed string, between 0 and 2**64-1 bytes long.\n+\n+      Only a 64-bit build of Python would produce a pickle containing strings\n+      large enough to need this type. Such a pickle could not be unpickled on\n+      a 32-bit build of Python, because the string would be larger than\n+      `sys.maxsize`.\n+\n+  no_arg:\n+    doc: Some opcodes take no argument, this empty type is used for them.\n+\n+enums:\n+  opcode:\n+    0x28: # \"(\"\n+        id: \"mark\"\n+        -orig-id: MARK\n+        doc: push special markobject on stack","path":"serialization/python_pickle.ksy","position":319,"original_position":319,"commit_id":"eb2eda2bbb25d351fecd1d8e4d1de59ef322cecc","original_commit_id":"eb2eda2bbb25d351fecd1d8e4d1de59ef322cecc","user":{"login":"GreyCat","id":157154,"node_id":"MDQ6VXNlcjE1NzE1NA==","avatar_url":"https://avatars0.githubusercontent.com/u/157154?v=4","gravatar_id":"","url":"https://api.github.com/users/GreyCat","html_url":"https://github.com/GreyCat","followers_url":"https://api.github.com/users/GreyCat/followers","following_url":"https://api.github.com/users/GreyCat/following{/other_user}","gists_url":"https://api.github.com/users/GreyCat/gists{/gist_id}","starred_url":"https://api.github.com/users/GreyCat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GreyCat/subscriptions","organizations_url":"https://api.github.com/users/GreyCat/orgs","repos_url":"https://api.github.com/users/GreyCat/repos","events_url":"https://api.github.com/users/GreyCat/events{/privacy}","received_events_url":"https://api.github.com/users/GreyCat/received_events","type":"User","site_admin":false},"body":"Looks like an extra indentation in all these enums?","created_at":"2019-05-23T18:39:17Z","updated_at":"2019-05-23T18:39:17Z","html_url":"https://github.com/kaitai-io/kaitai_struct_formats/pull/150#discussion_r287081121","pull_request_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/150","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/comments/287081121"},"html":{"href":"https://github.com/kaitai-io/kaitai_struct_formats/pull/150#discussion_r287081121"},"pull_request":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/150"}}},"pull_request":{"url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/150","id":280204299,"node_id":"MDExOlB1bGxSZXF1ZXN0MjgwMjA0Mjk5","html_url":"https://github.com/kaitai-io/kaitai_struct_formats/pull/150","diff_url":"https://github.com/kaitai-io/kaitai_struct_formats/pull/150.diff","patch_url":"https://github.com/kaitai-io/kaitai_struct_formats/pull/150.patch","issue_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/issues/150","number":150,"state":"open","locked":false,"title":"Add Python Pickle format","user":{"login":"moreati","id":174450,"node_id":"MDQ6VXNlcjE3NDQ1MA==","avatar_url":"https://avatars2.githubusercontent.com/u/174450?v=4","gravatar_id":"","url":"https://api.github.com/users/moreati","html_url":"https://github.com/moreati","followers_url":"https://api.github.com/users/moreati/followers","following_url":"https://api.github.com/users/moreati/following{/other_user}","gists_url":"https://api.github.com/users/moreati/gists{/gist_id}","starred_url":"https://api.github.com/users/moreati/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/moreati/subscriptions","organizations_url":"https://api.github.com/users/moreati/orgs","repos_url":"https://api.github.com/users/moreati/repos","events_url":"https://api.github.com/users/moreati/events{/privacy}","received_events_url":"https://api.github.com/users/moreati/received_events","type":"User","site_admin":false},"body":"Remaining tasks\r\n\r\n- [x] Add protocol 4 types, opcodes etc","created_at":"2019-05-19T22:54:46Z","updated_at":"2019-05-23T18:39:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4940a3208b95b9c22ce7e9776733bb84a4c42158","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/150/commits","review_comments_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/150/comments","review_comment_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/issues/150/comments","statuses_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/statuses/eb2eda2bbb25d351fecd1d8e4d1de59ef322cecc","head":{"label":"moreati:pickle","ref":"pickle","sha":"eb2eda2bbb25d351fecd1d8e4d1de59ef322cecc","user":{"login":"moreati","id":174450,"node_id":"MDQ6VXNlcjE3NDQ1MA==","avatar_url":"https://avatars2.githubusercontent.com/u/174450?v=4","gravatar_id":"","url":"https://api.github.com/users/moreati","html_url":"https://github.com/moreati","followers_url":"https://api.github.com/users/moreati/followers","following_url":"https://api.github.com/users/moreati/following{/other_user}","gists_url":"https://api.github.com/users/moreati/gists{/gist_id}","starred_url":"https://api.github.com/users/moreati/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/moreati/subscriptions","organizations_url":"https://api.github.com/users/moreati/orgs","repos_url":"https://api.github.com/users/moreati/repos","events_url":"https://api.github.com/users/moreati/events{/privacy}","received_events_url":"https://api.github.com/users/moreati/received_events","type":"User","site_admin":false},"repo":{"id":187534988,"node_id":"MDEwOlJlcG9zaXRvcnkxODc1MzQ5ODg=","name":"kaitai_struct_formats","full_name":"moreati/kaitai_struct_formats","private":false,"owner":{"login":"moreati","id":174450,"node_id":"MDQ6VXNlcjE3NDQ1MA==","avatar_url":"https://avatars2.githubusercontent.com/u/174450?v=4","gravatar_id":"","url":"https://api.github.com/users/moreati","html_url":"https://github.com/moreati","followers_url":"https://api.github.com/users/moreati/followers","following_url":"https://api.github.com/users/moreati/following{/other_user}","gists_url":"https://api.github.com/users/moreati/gists{/gist_id}","starred_url":"https://api.github.com/users/moreati/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/moreati/subscriptions","organizations_url":"https://api.github.com/users/moreati/orgs","repos_url":"https://api.github.com/users/moreati/repos","events_url":"https://api.github.com/users/moreati/events{/privacy}","received_events_url":"https://api.github.com/users/moreati/received_events","type":"User","site_admin":false},"html_url":"https://github.com/moreati/kaitai_struct_formats","description":"Kaitai Struct: library of binary file formats (.ksy)","fork":true,"url":"https://api.github.com/repos/moreati/kaitai_struct_formats","forks_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/forks","keys_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/keys{/key_id}","collaborators_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/teams","hooks_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/hooks","issue_events_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/issues/events{/number}","events_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/events","assignees_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/assignees{/user}","branches_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/branches{/branch}","tags_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/tags","blobs_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/git/refs{/sha}","trees_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/git/trees{/sha}","statuses_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/statuses/{sha}","languages_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/languages","stargazers_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/stargazers","contributors_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/contributors","subscribers_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/subscribers","subscription_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/subscription","commits_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/commits{/sha}","git_commits_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/git/commits{/sha}","comments_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/comments{/number}","issue_comment_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/issues/comments{/number}","contents_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/contents/{+path}","compare_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/compare/{base}...{head}","merges_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/merges","archive_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/downloads","issues_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/issues{/number}","pulls_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/pulls{/number}","milestones_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/milestones{/number}","notifications_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/labels{/name}","releases_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/releases{/id}","deployments_url":"https://api.github.com/repos/moreati/kaitai_struct_formats/deployments","created_at":"2019-05-19T22:35:09Z","updated_at":"2019-05-19T22:35:11Z","pushed_at":"2019-05-22T20:20:23Z","git_url":"git://github.com/moreati/kaitai_struct_formats.git","ssh_url":"git@github.com:moreati/kaitai_struct_formats.git","clone_url":"https://github.com/moreati/kaitai_struct_formats.git","svn_url":"https://github.com/moreati/kaitai_struct_formats","homepage":"http://formats.kaitai.io/","size":733,"stargazers_count":0,"watchers_count":0,"language":"HTML","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":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kaitai-io:master","ref":"master","sha":"19c1fa274acd2995c9e5b81e686a0f346ffe699a","user":{"login":"kaitai-io","id":17322584,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MzIyNTg0","avatar_url":"https://avatars2.githubusercontent.com/u/17322584?v=4","gravatar_id":"","url":"https://api.github.com/users/kaitai-io","html_url":"https://github.com/kaitai-io","followers_url":"https://api.github.com/users/kaitai-io/followers","following_url":"https://api.github.com/users/kaitai-io/following{/other_user}","gists_url":"https://api.github.com/users/kaitai-io/gists{/gist_id}","starred_url":"https://api.github.com/users/kaitai-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaitai-io/subscriptions","organizations_url":"https://api.github.com/users/kaitai-io/orgs","repos_url":"https://api.github.com/users/kaitai-io/repos","events_url":"https://api.github.com/users/kaitai-io/events{/privacy}","received_events_url":"https://api.github.com/users/kaitai-io/received_events","type":"Organization","site_admin":false},"repo":{"id":54845016,"node_id":"MDEwOlJlcG9zaXRvcnk1NDg0NTAxNg==","name":"kaitai_struct_formats","full_name":"kaitai-io/kaitai_struct_formats","private":false,"owner":{"login":"kaitai-io","id":17322584,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3MzIyNTg0","avatar_url":"https://avatars2.githubusercontent.com/u/17322584?v=4","gravatar_id":"","url":"https://api.github.com/users/kaitai-io","html_url":"https://github.com/kaitai-io","followers_url":"https://api.github.com/users/kaitai-io/followers","following_url":"https://api.github.com/users/kaitai-io/following{/other_user}","gists_url":"https://api.github.com/users/kaitai-io/gists{/gist_id}","starred_url":"https://api.github.com/users/kaitai-io/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaitai-io/subscriptions","organizations_url":"https://api.github.com/users/kaitai-io/orgs","repos_url":"https://api.github.com/users/kaitai-io/repos","events_url":"https://api.github.com/users/kaitai-io/events{/privacy}","received_events_url":"https://api.github.com/users/kaitai-io/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/kaitai-io/kaitai_struct_formats","description":"Kaitai Struct: library of binary file formats (.ksy)","fork":false,"url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats","forks_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/forks","keys_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/teams","hooks_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/hooks","issue_events_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/issues/events{/number}","events_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/events","assignees_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/assignees{/user}","branches_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/branches{/branch}","tags_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/tags","blobs_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/git/refs{/sha}","trees_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/statuses/{sha}","languages_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/languages","stargazers_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/stargazers","contributors_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/contributors","subscribers_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/subscribers","subscription_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/subscription","commits_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/commits{/sha}","git_commits_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/git/commits{/sha}","comments_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/comments{/number}","issue_comment_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/issues/comments{/number}","contents_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/contents/{+path}","compare_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/merges","archive_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/downloads","issues_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/issues{/number}","pulls_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls{/number}","milestones_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/milestones{/number}","notifications_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/labels{/name}","releases_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/releases{/id}","deployments_url":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/deployments","created_at":"2016-03-27T19:39:10Z","updated_at":"2019-05-21T18:15:12Z","pushed_at":"2019-05-22T20:20:25Z","git_url":"git://github.com/kaitai-io/kaitai_struct_formats.git","ssh_url":"git@github.com:kaitai-io/kaitai_struct_formats.git","clone_url":"https://github.com/kaitai-io/kaitai_struct_formats.git","svn_url":"https://github.com/kaitai-io/kaitai_struct_formats","homepage":"http://formats.kaitai.io/","size":714,"stargazers_count":318,"watchers_count":318,"language":"HTML","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":87,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":38,"license":null,"forks":87,"open_issues":38,"watchers":318,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/150"},"html":{"href":"https://github.com/kaitai-io/kaitai_struct_formats/pull/150"},"issue":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/issues/150"},"comments":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/issues/150/comments"},"review_comments":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/150/comments"},"review_comment":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/pulls/150/commits"},"statuses":{"href":"https://api.github.com/repos/kaitai-io/kaitai_struct_formats/statuses/eb2eda2bbb25d351fecd1d8e4d1de59ef322cecc"}},"author_association":"NONE"}}
other: {"actor":{"display_login":"GreyCat"}}