{"action":"created","comment":{"url":"https://api.github.com/repos/spacetelescope/asdf/pulls/comments/228857421","pull_request_review_id":169217005,"id":228857421,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyODg1NzQyMQ==","diff_hunk":"@@ -1287,6 +1222,132 @@ def get_history_entries(self):\n AsdfFile.keys.__doc__ = dict.keys.__doc__\n \n \n+def _check_and_set_mode(fileobj, asdf_mode):\n+\n+    if asdf_mode is not None and asdf_mode not in ['r', 'rw']:\n+        msg = \"Unrecognized asdf mode '{}'. Must be either 'r' or 'rw'\"\n+        raise ValueError(msg.format(asdf_mode))\n+\n+    if asdf_mode is None:\n+        if isinstance(fileobj, str):\n+            parsed = generic_io.urlparse.urlparse(fileobj)\n+            if parsed.scheme == 'http':\n+                return 'r'\n+            return 'rw'\n+        if isinstance(fileobj, io.IOBase):\n+            return 'rw' if fileobj.writable() else 'r'\n+\n+        if isinstance(fileobj, generic_io.GenericFile):\n+            return fileobj.mode\n+\n+        # This is the safest default since it allows for memory mapping\n+        return 'rw'\n+\n+    return asdf_mode\n+\n+\n+def open_asdf(fd, uri=None, mode=None, validate_checksums=False,\n+              extensions=None, do_not_fill_defaults=False,\n+              ignore_version_mismatch=True, ignore_unrecognized_tag=False,\n+              _force_raw_types=False, copy_arrays=False, lazy_load=True,\n+              custom_schema=None, strict_extension_check=False,\n+              ignore_missing_extensions=False, _compat=False):\n+    \"\"\"\n+    Open an existing ASDF file.\n+\n+    Parameters\n+    ----------\n+    fd : string or file-like object\n+        May be a string ``file`` or ``http`` URI, or a Python\n+        file-like object.\n+\n+    uri : string, optional\n+        The URI of the file.  Only required if the URI can not be\n+        automatically determined from `fd`.\n+\n+    mode : string, optional\n+        The mode to open the file in.  Must be ``r`` (default) or\n+        ``rw``.\n+\n+    validate_checksums : bool, optional\n+        If `True`, validate the blocks against their checksums.\n+        Requires reading the entire file, so disabled by default.\n+\n+    extensions : list of AsdfExtension\n+        A list of extensions to use when reading and writing ASDF files.\n+        See `~asdf.asdftypes.AsdfExtension` for more information.\n+\n+    do_not_fill_defaults : bool, optional\n+        When `True`, do not fill in missing default values.\n+\n+    ignore_version_mismatch : bool, optional\n+        When `True`, do not raise warnings for mismatched schema versions.\n+        Set to `True` by default.\n+\n+    ignore_unrecognized_tag : bool, optional\n+        When `True`, do not raise warnings for unrecognized tags. Set to\n+        `False` by default.\n+\n+    copy_arrays : bool, optional\n+        When `False`, when reading files, attempt to memmap underlying data\n+        arrays when possible.\n+\n+    lazy_load : bool, optional\n+        When `True` and the underlying file handle is seekable, data\n+        arrays will only be loaded lazily: i.e. when they are accessed\n+        for the first time. In this case the underlying file must stay\n+        open during the lifetime of the tree. Setting to False causes\n+        all data arrays to be loaded up front, which means that they\n+        can be accessed even after the underlying file is closed.\n+        Note: even if `lazy_load` is `False`, `copy_arrays` is still taken\n+        into account.\n+\n+    custom_schema : str, optional\n+        Path to a custom schema file that will be used for a secondary\n+        validation pass. This can be used to ensure that particular ASDF\n+        files follow custom conventions beyond those enforced by the\n+        standard.\n+\n+    strict_extension_check : bool, optional\n+        When `True`, if the given ASDF file contains metadata about the\n+        extensions used to create it, and if those extensions are not\n+        installed, opening the file will fail. When `False`, opening a file\n+        under such conditions will cause only a warning. Defaults to\n+        `False`.\n+\n+    ignore_missing_extensions : bool, optional\n+        When `True`, do not raise warnings when a file is read that\n+        contains metadata about extensions that are not available. Defaults\n+        to `False`.\n+\n+    Returns\n+    -------\n+    asdffile : AsdfFile\n+        The new AsdfFile object.\n+    \"\"\"\n+\n+    # For now retain backwards compatibility with the old API behavior,\n+    # specifically when being called from AsdfFile.open\n+    if not _compat:\n+        mode = _check_and_set_mode(fd, mode)\n+        if mode == 'r' and not copy_arrays:\n+            copy_arrays = True","path":"asdf/asdf.py","position":239,"original_position":239,"commit_id":"a1ba05cdfe0ff5bccac94738e81868a3f580a24d","original_commit_id":"a1ba05cdfe0ff5bccac94738e81868a3f580a24d","user":{"login":"vmarkovtsev","id":2793551,"node_id":"MDQ6VXNlcjI3OTM1NTE=","avatar_url":"https://avatars3.githubusercontent.com/u/2793551?v=4","gravatar_id":"","url":"https://api.github.com/users/vmarkovtsev","html_url":"https://github.com/vmarkovtsev","followers_url":"https://api.github.com/users/vmarkovtsev/followers","following_url":"https://api.github.com/users/vmarkovtsev/following{/other_user}","gists_url":"https://api.github.com/users/vmarkovtsev/gists{/gist_id}","starred_url":"https://api.github.com/users/vmarkovtsev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vmarkovtsev/subscriptions","organizations_url":"https://api.github.com/users/vmarkovtsev/orgs","repos_url":"https://api.github.com/users/vmarkovtsev/repos","events_url":"https://api.github.com/users/vmarkovtsev/events{/privacy}","received_events_url":"https://api.github.com/users/vmarkovtsev/received_events","type":"User","site_admin":false},"body":"Should we print a warning here?","created_at":"2018-10-29T09:50:40Z","updated_at":"2018-10-29T09:53:20Z","html_url":"https://github.com/spacetelescope/asdf/pull/579#discussion_r228857421","pull_request_url":"https://api.github.com/repos/spacetelescope/asdf/pulls/579","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/spacetelescope/asdf/pulls/comments/228857421"},"html":{"href":"https://github.com/spacetelescope/asdf/pull/579#discussion_r228857421"},"pull_request":{"href":"https://api.github.com/repos/spacetelescope/asdf/pulls/579"}}},"pull_request":{"url":"https://api.github.com/repos/spacetelescope/asdf/pulls/579","id":226209418,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI2MjA5NDE4","html_url":"https://github.com/spacetelescope/asdf/pull/579","diff_url":"https://github.com/spacetelescope/asdf/pull/579.diff","patch_url":"https://github.com/spacetelescope/asdf/pull/579.patch","issue_url":"https://api.github.com/repos/spacetelescope/asdf/issues/579","number":579,"state":"open","locked":false,"title":"Refactor, better mode handling, deprecate asdf.AsdfFile.open","user":{"login":"drdavella","id":2458487,"node_id":"MDQ6VXNlcjI0NTg0ODc=","avatar_url":"https://avatars0.githubusercontent.com/u/2458487?v=4","gravatar_id":"","url":"https://api.github.com/users/drdavella","html_url":"https://github.com/drdavella","followers_url":"https://api.github.com/users/drdavella/followers","following_url":"https://api.github.com/users/drdavella/following{/other_user}","gists_url":"https://api.github.com/users/drdavella/gists{/gist_id}","starred_url":"https://api.github.com/users/drdavella/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drdavella/subscriptions","organizations_url":"https://api.github.com/users/drdavella/orgs","repos_url":"https://api.github.com/users/drdavella/repos","events_url":"https://api.github.com/users/drdavella/events{/privacy}","received_events_url":"https://api.github.com/users/drdavella/received_events","type":"User","site_admin":false},"body":"This resolves #578 (albeit indirectly) and resolves #574.\r\n\r\nIt refactors the top-level `asdf.open` function into a standalone factory function in order to enable better decisions about handling file modes, particularly with respect to memory mapping. It also deprecates the use of `asdf.AsdfFile.open`, since this was not capable of handling such decisions.\r\n\r\nThere's still a bit more work:\r\n- [ ] Add a warning when explicitly giving `mode='r'` with `copy_arrays=False`\r\n- [ ] Fix any internal usage that results in the above warning\r\n- [ ] Update the change log\r\n\r\nEven though this is technically a bug fix, it affects the API and is a big enough change that it should go in 2.2.0.\r\n","created_at":"2018-10-26T19:57:30Z","updated_at":"2018-10-29T09:53:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0e2f96cddea72342b6ef9c34429eb8f4d639efd2","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":88263720,"node_id":"MDU6TGFiZWw4ODI2MzcyMA==","url":"https://api.github.com/repos/spacetelescope/asdf/labels/bug","name":"bug","color":"fc2929","default":true},{"id":88263722,"node_id":"MDU6TGFiZWw4ODI2MzcyMg==","url":"https://api.github.com/repos/spacetelescope/asdf/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"milestone":{"url":"https://api.github.com/repos/spacetelescope/asdf/milestones/21","html_url":"https://github.com/spacetelescope/asdf/milestone/21","labels_url":"https://api.github.com/repos/spacetelescope/asdf/milestones/21/labels","id":3688035,"node_id":"MDk6TWlsZXN0b25lMzY4ODAzNQ==","number":21,"title":"v2.2.0","description":"","creator":{"login":"drdavella","id":2458487,"node_id":"MDQ6VXNlcjI0NTg0ODc=","avatar_url":"https://avatars0.githubusercontent.com/u/2458487?v=4","gravatar_id":"","url":"https://api.github.com/users/drdavella","html_url":"https://github.com/drdavella","followers_url":"https://api.github.com/users/drdavella/followers","following_url":"https://api.github.com/users/drdavella/following{/other_user}","gists_url":"https://api.github.com/users/drdavella/gists{/gist_id}","starred_url":"https://api.github.com/users/drdavella/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drdavella/subscriptions","organizations_url":"https://api.github.com/users/drdavella/orgs","repos_url":"https://api.github.com/users/drdavella/repos","events_url":"https://api.github.com/users/drdavella/events{/privacy}","received_events_url":"https://api.github.com/users/drdavella/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":6,"state":"open","created_at":"2018-09-25T17:54:09Z","updated_at":"2018-10-26T19:58:52Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/spacetelescope/asdf/pulls/579/commits","review_comments_url":"https://api.github.com/repos/spacetelescope/asdf/pulls/579/comments","review_comment_url":"https://api.github.com/repos/spacetelescope/asdf/pulls/comments{/number}","comments_url":"https://api.github.com/repos/spacetelescope/asdf/issues/579/comments","statuses_url":"https://api.github.com/repos/spacetelescope/asdf/statuses/a1ba05cdfe0ff5bccac94738e81868a3f580a24d","head":{"label":"drdavella:refactor-open-handling","ref":"refactor-open-handling","sha":"a1ba05cdfe0ff5bccac94738e81868a3f580a24d","user":{"login":"drdavella","id":2458487,"node_id":"MDQ6VXNlcjI0NTg0ODc=","avatar_url":"https://avatars0.githubusercontent.com/u/2458487?v=4","gravatar_id":"","url":"https://api.github.com/users/drdavella","html_url":"https://github.com/drdavella","followers_url":"https://api.github.com/users/drdavella/followers","following_url":"https://api.github.com/users/drdavella/following{/other_user}","gists_url":"https://api.github.com/users/drdavella/gists{/gist_id}","starred_url":"https://api.github.com/users/drdavella/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drdavella/subscriptions","organizations_url":"https://api.github.com/users/drdavella/orgs","repos_url":"https://api.github.com/users/drdavella/repos","events_url":"https://api.github.com/users/drdavella/events{/privacy}","received_events_url":"https://api.github.com/users/drdavella/received_events","type":"User","site_admin":false},"repo":{"id":93779774,"node_id":"MDEwOlJlcG9zaXRvcnk5Mzc3OTc3NA==","name":"asdf","full_name":"drdavella/asdf","private":false,"owner":{"login":"drdavella","id":2458487,"node_id":"MDQ6VXNlcjI0NTg0ODc=","avatar_url":"https://avatars0.githubusercontent.com/u/2458487?v=4","gravatar_id":"","url":"https://api.github.com/users/drdavella","html_url":"https://github.com/drdavella","followers_url":"https://api.github.com/users/drdavella/followers","following_url":"https://api.github.com/users/drdavella/following{/other_user}","gists_url":"https://api.github.com/users/drdavella/gists{/gist_id}","starred_url":"https://api.github.com/users/drdavella/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drdavella/subscriptions","organizations_url":"https://api.github.com/users/drdavella/orgs","repos_url":"https://api.github.com/users/drdavella/repos","events_url":"https://api.github.com/users/drdavella/events{/privacy}","received_events_url":"https://api.github.com/users/drdavella/received_events","type":"User","site_admin":false},"html_url":"https://github.com/drdavella/asdf","description":"ASDF (Advanced Scientific Data Format) is a next generation interchange format for scientific data","fork":true,"url":"https://api.github.com/repos/drdavella/asdf","forks_url":"https://api.github.com/repos/drdavella/asdf/forks","keys_url":"https://api.github.com/repos/drdavella/asdf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drdavella/asdf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drdavella/asdf/teams","hooks_url":"https://api.github.com/repos/drdavella/asdf/hooks","issue_events_url":"https://api.github.com/repos/drdavella/asdf/issues/events{/number}","events_url":"https://api.github.com/repos/drdavella/asdf/events","assignees_url":"https://api.github.com/repos/drdavella/asdf/assignees{/user}","branches_url":"https://api.github.com/repos/drdavella/asdf/branches{/branch}","tags_url":"https://api.github.com/repos/drdavella/asdf/tags","blobs_url":"https://api.github.com/repos/drdavella/asdf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drdavella/asdf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drdavella/asdf/git/refs{/sha}","trees_url":"https://api.github.com/repos/drdavella/asdf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drdavella/asdf/statuses/{sha}","languages_url":"https://api.github.com/repos/drdavella/asdf/languages","stargazers_url":"https://api.github.com/repos/drdavella/asdf/stargazers","contributors_url":"https://api.github.com/repos/drdavella/asdf/contributors","subscribers_url":"https://api.github.com/repos/drdavella/asdf/subscribers","subscription_url":"https://api.github.com/repos/drdavella/asdf/subscription","commits_url":"https://api.github.com/repos/drdavella/asdf/commits{/sha}","git_commits_url":"https://api.github.com/repos/drdavella/asdf/git/commits{/sha}","comments_url":"https://api.github.com/repos/drdavella/asdf/comments{/number}","issue_comment_url":"https://api.github.com/repos/drdavella/asdf/issues/comments{/number}","contents_url":"https://api.github.com/repos/drdavella/asdf/contents/{+path}","compare_url":"https://api.github.com/repos/drdavella/asdf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drdavella/asdf/merges","archive_url":"https://api.github.com/repos/drdavella/asdf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drdavella/asdf/downloads","issues_url":"https://api.github.com/repos/drdavella/asdf/issues{/number}","pulls_url":"https://api.github.com/repos/drdavella/asdf/pulls{/number}","milestones_url":"https://api.github.com/repos/drdavella/asdf/milestones{/number}","notifications_url":"https://api.github.com/repos/drdavella/asdf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drdavella/asdf/labels{/name}","releases_url":"https://api.github.com/repos/drdavella/asdf/releases{/id}","deployments_url":"https://api.github.com/repos/drdavella/asdf/deployments","created_at":"2017-06-08T18:28:05Z","updated_at":"2018-03-26T19:51:04Z","pushed_at":"2018-10-26T19:55:18Z","git_url":"git://github.com/drdavella/asdf.git","ssh_url":"git@github.com:drdavella/asdf.git","clone_url":"https://github.com/drdavella/asdf.git","svn_url":"https://github.com/drdavella/asdf","homepage":"http://asdf.readthedocs.io/","size":2340,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"spacetelescope:master","ref":"master","sha":"32abe89ce024ec93b838bdf684a74662a83ee0f0","user":{"login":"spacetelescope","id":2751928,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3NTE5Mjg=","avatar_url":"https://avatars3.githubusercontent.com/u/2751928?v=4","gravatar_id":"","url":"https://api.github.com/users/spacetelescope","html_url":"https://github.com/spacetelescope","followers_url":"https://api.github.com/users/spacetelescope/followers","following_url":"https://api.github.com/users/spacetelescope/following{/other_user}","gists_url":"https://api.github.com/users/spacetelescope/gists{/gist_id}","starred_url":"https://api.github.com/users/spacetelescope/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spacetelescope/subscriptions","organizations_url":"https://api.github.com/users/spacetelescope/orgs","repos_url":"https://api.github.com/users/spacetelescope/repos","events_url":"https://api.github.com/users/spacetelescope/events{/privacy}","received_events_url":"https://api.github.com/users/spacetelescope/received_events","type":"Organization","site_admin":false},"repo":{"id":18112754,"node_id":"MDEwOlJlcG9zaXRvcnkxODExMjc1NA==","name":"asdf","full_name":"spacetelescope/asdf","private":false,"owner":{"login":"spacetelescope","id":2751928,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI3NTE5Mjg=","avatar_url":"https://avatars3.githubusercontent.com/u/2751928?v=4","gravatar_id":"","url":"https://api.github.com/users/spacetelescope","html_url":"https://github.com/spacetelescope","followers_url":"https://api.github.com/users/spacetelescope/followers","following_url":"https://api.github.com/users/spacetelescope/following{/other_user}","gists_url":"https://api.github.com/users/spacetelescope/gists{/gist_id}","starred_url":"https://api.github.com/users/spacetelescope/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spacetelescope/subscriptions","organizations_url":"https://api.github.com/users/spacetelescope/orgs","repos_url":"https://api.github.com/users/spacetelescope/repos","events_url":"https://api.github.com/users/spacetelescope/events{/privacy}","received_events_url":"https://api.github.com/users/spacetelescope/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/spacetelescope/asdf","description":"ASDF (Advanced Scientific Data Format) is a next generation interchange format for scientific data","fork":false,"url":"https://api.github.com/repos/spacetelescope/asdf","forks_url":"https://api.github.com/repos/spacetelescope/asdf/forks","keys_url":"https://api.github.com/repos/spacetelescope/asdf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spacetelescope/asdf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spacetelescope/asdf/teams","hooks_url":"https://api.github.com/repos/spacetelescope/asdf/hooks","issue_events_url":"https://api.github.com/repos/spacetelescope/asdf/issues/events{/number}","events_url":"https://api.github.com/repos/spacetelescope/asdf/events","assignees_url":"https://api.github.com/repos/spacetelescope/asdf/assignees{/user}","branches_url":"https://api.github.com/repos/spacetelescope/asdf/branches{/branch}","tags_url":"https://api.github.com/repos/spacetelescope/asdf/tags","blobs_url":"https://api.github.com/repos/spacetelescope/asdf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spacetelescope/asdf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spacetelescope/asdf/git/refs{/sha}","trees_url":"https://api.github.com/repos/spacetelescope/asdf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spacetelescope/asdf/statuses/{sha}","languages_url":"https://api.github.com/repos/spacetelescope/asdf/languages","stargazers_url":"https://api.github.com/repos/spacetelescope/asdf/stargazers","contributors_url":"https://api.github.com/repos/spacetelescope/asdf/contributors","subscribers_url":"https://api.github.com/repos/spacetelescope/asdf/subscribers","subscription_url":"https://api.github.com/repos/spacetelescope/asdf/subscription","commits_url":"https://api.github.com/repos/spacetelescope/asdf/commits{/sha}","git_commits_url":"https://api.github.com/repos/spacetelescope/asdf/git/commits{/sha}","comments_url":"https://api.github.com/repos/spacetelescope/asdf/comments{/number}","issue_comment_url":"https://api.github.com/repos/spacetelescope/asdf/issues/comments{/number}","contents_url":"https://api.github.com/repos/spacetelescope/asdf/contents/{+path}","compare_url":"https://api.github.com/repos/spacetelescope/asdf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spacetelescope/asdf/merges","archive_url":"https://api.github.com/repos/spacetelescope/asdf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spacetelescope/asdf/downloads","issues_url":"https://api.github.com/repos/spacetelescope/asdf/issues{/number}","pulls_url":"https://api.github.com/repos/spacetelescope/asdf/pulls{/number}","milestones_url":"https://api.github.com/repos/spacetelescope/asdf/milestones{/number}","notifications_url":"https://api.github.com/repos/spacetelescope/asdf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spacetelescope/asdf/labels{/name}","releases_url":"https://api.github.com/repos/spacetelescope/asdf/releases{/id}","deployments_url":"https://api.github.com/repos/spacetelescope/asdf/deployments","created_at":"2014-03-25T19:00:43Z","updated_at":"2018-10-28T15:29:01Z","pushed_at":"2018-10-26T19:57:30Z","git_url":"git://github.com/spacetelescope/asdf.git","ssh_url":"git@github.com:spacetelescope/asdf.git","clone_url":"https://github.com/spacetelescope/asdf.git","svn_url":"https://github.com/spacetelescope/asdf","homepage":"http://asdf.readthedocs.io/","size":2329,"stargazers_count":86,"watchers_count":86,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":32,"mirror_url":null,"archived":false,"open_issues_count":38,"license":null,"forks":32,"open_issues":38,"watchers":86,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/spacetelescope/asdf/pulls/579"},"html":{"href":"https://github.com/spacetelescope/asdf/pull/579"},"issue":{"href":"https://api.github.com/repos/spacetelescope/asdf/issues/579"},"comments":{"href":"https://api.github.com/repos/spacetelescope/asdf/issues/579/comments"},"review_comments":{"href":"https://api.github.com/repos/spacetelescope/asdf/pulls/579/comments"},"review_comment":{"href":"https://api.github.com/repos/spacetelescope/asdf/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/spacetelescope/asdf/pulls/579/commits"},"statuses":{"href":"https://api.github.com/repos/spacetelescope/asdf/statuses/a1ba05cdfe0ff5bccac94738e81868a3f580a24d"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"vmarkovtsev"}}