{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":212447344,"defaultBranch":"main","name":"wayback","ownerLogin":"edgi-govdata-archiving","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-10-02T21:45:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/24626991?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1723053872.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"5cd2b52b7d4fd240e5d71dba7378f43eb1b6fd2e","ref":"refs/heads/experiment-sphinx-rtd-theme-3-sphinx-8","pushedAt":"2024-08-07T18:04:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Test out build scenarios for sphinx-rtd-theme 3","shortMessageHtmlLink":"Test out build scenarios for sphinx-rtd-theme 3"}},{"before":"037bbd74bc0dfd1f04068080b1440025f1bb5d1e","after":null,"ref":"refs/heads/python-3.13.0rc1-has-arrived","pushedAt":"2024-08-04T00:06:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"}},{"before":"c9dc4cd1e7fa5633a43e15e5efb469e4b1fa92ee","after":"47a436c27b83b3cb40bf18afcc12d3f3bc7b14a3","ref":"refs/heads/main","pushedAt":"2024-08-04T00:06:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Run tests on Python 3.13.0rc1 (#163)\n\nUpdate tests to run on Python 3.13.0rc1 (and 3.13.0rc1t), which has now been released.","shortMessageHtmlLink":"Run tests on Python 3.13.0rc1 (#163)"}},{"before":"2b89ab711fa38cd6c7de644bb40b4b3bf6f48e30","after":"037bbd74bc0dfd1f04068080b1440025f1bb5d1e","ref":"refs/heads/python-3.13.0rc1-has-arrived","pushedAt":"2024-08-04T00:02:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Also try testing free-threaded Python","shortMessageHtmlLink":"Also try testing free-threaded Python"}},{"before":"7aa71b3f53b189520f97db028f034acc055cb202","after":"2b89ab711fa38cd6c7de644bb40b4b3bf6f48e30","ref":"refs/heads/python-3.13.0rc1-has-arrived","pushedAt":"2024-08-04T00:00:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Also try testing free-threaded Python","shortMessageHtmlLink":"Also try testing free-threaded Python"}},{"before":null,"after":"7aa71b3f53b189520f97db028f034acc055cb202","ref":"refs/heads/python-3.13.0rc1-has-arrived","pushedAt":"2024-08-03T23:58:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Run tests on Python 3.13.0rc1","shortMessageHtmlLink":"Run tests on Python 3.13.0rc1"}},{"before":"7b2b4ea145832cbcc1b1b57f43ddb5f4fd2f0936","after":"c9dc4cd1e7fa5633a43e15e5efb469e4b1fa92ee","ref":"refs/heads/main","pushedAt":"2024-06-25T17:21:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Remove `ref-names` field from `git_archival.txt` (#162)\n\nIt turns out the way we populated the `ref-names` field causes its value to change depending on whether the commit a Git archive was built from was the head of a branch when it was built (which is often true when we first cut a release, but ceases to be true soon afterward. If someone downloads an archive *later* and tries to compare its signature with the one we released, it won’t match because this field has changed, and that’s a significant issue.\r\n\r\nUnfortunately, there’s no good alternative that resolves this issue, so the best solution is to just remove the field. On the up-side, `describe-name` carries the more critical info about the the current tag or release version, so this isn’t a huge loss.\r\n\r\nThanks to @webknjaz for pointing this out: https://github.com/edgi-govdata-archiving/wayback/pull/144#discussion_r1651311346","shortMessageHtmlLink":"Remove ref-names field from git_archival.txt (#162)"}},{"before":"43fa7932610df296526daeb3942b4562a2851dc0","after":null,"ref":"refs/heads/ref-names-is-not-as-stable-as-you-would-think","pushedAt":"2024-06-25T17:21:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"}},{"before":null,"after":"43fa7932610df296526daeb3942b4562a2851dc0","ref":"refs/heads/ref-names-is-not-as-stable-as-you-would-think","pushedAt":"2024-06-24T22:57:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Remove `ref-names` field from `git_archival.txt`\n\nIt turns out the way we populated the `ref-names` field causes its value to change depending on whether the commit a Git archive was built from was the head of a branch when it was built (which is often true when we first cut a release, but ceases to be true soon afterward. If someone downloads an archive *later* and tries to compare its signature with the one we released, it won’t match because this field has changed, and that’s a significant issue.\r\n\r\nUnfortunately, there’s no good alternative that resolves this issue, so the best solution is to just remove the field. On the up-side, `describe-name` carries the more critical info about the the current tag or release version, so this isn’t a huge loss.\r\n\r\nThanks to @webknjaz for pointing this out: https://github.com/edgi-govdata-archiving/wayback/pull/144#discussion_r1651311346","shortMessageHtmlLink":"Remove ref-names field from git_archival.txt"}},{"before":"0dacf3b9924f07a79220a221110d1ff9aef3f7bd","after":null,"ref":"refs/heads/test-python-3-13-beta","pushedAt":"2024-06-07T17:55:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"}},{"before":"3937ca9ca10ed8eb3ba6a4f3d1b0aed4d80478c7","after":"7b2b4ea145832cbcc1b1b57f43ddb5f4fd2f0936","ref":"refs/heads/main","pushedAt":"2024-06-07T17:55:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Test in Python 3.13.0b2 (#161)\n\nSince Python 3.13.0 is now in beta releases, we should be testing in it! This does so.","shortMessageHtmlLink":"Test in Python 3.13.0b2 (#161)"}},{"before":"219a671008ce984f957a4f3f68faff1cb2000f53","after":"0dacf3b9924f07a79220a221110d1ff9aef3f7bd","ref":"refs/heads/test-python-3-13-beta","pushedAt":"2024-06-07T17:51:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Oops, fix missing square brackets","shortMessageHtmlLink":"Oops, fix missing square brackets"}},{"before":null,"after":"219a671008ce984f957a4f3f68faff1cb2000f53","ref":"refs/heads/test-python-3-13-beta","pushedAt":"2024-06-07T17:50:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Test in Python 3.13.0b2\n\nAdds test configuration for Python 3.13.0b2 based on https://github.com/Mr0grog/circle-python-pre.","shortMessageHtmlLink":"Test in Python 3.13.0b2"}},{"before":"46601e5ff21e0bfd9430d971c67f40b1f929668e","after":"3937ca9ca10ed8eb3ba6a4f3d1b0aed4d80478c7","ref":"refs/heads/main","pushedAt":"2024-02-01T19:05:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Add release notes from v0.4.5","shortMessageHtmlLink":"Add release notes from v0.4.5"}},{"before":null,"after":"0ef2797defef418c909a962ddcc1e77b4f531323","ref":"refs/heads/v0.4.x","pushedAt":"2024-02-01T18:55:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Prepare v0.4.5","shortMessageHtmlLink":"Prepare v0.4.5"}},{"before":"770113a115a104224d87e5775c36460d615150f7","after":null,"ref":"refs/heads/158-archived-responses-can-be-429s-too","pushedAt":"2024-02-01T18:41:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"}},{"before":"477c44439abdebaf4d9942c7cb2aa55c3099b846","after":"46601e5ff21e0bfd9430d971c67f40b1f929668e","ref":"refs/heads/main","pushedAt":"2024-02-01T18:41:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Don't raise on *archived* rate limit errors (#159)\n\nA memento can be a archive of an old rate limit error (status code 429) and in our feverish run to handle rate limit errors better at the end of 2023, we caused `WaybackSession.send()` to raise exceptions for both real rate limits *and* archived ones. However, the archived ones might be an actual memento that you were looking for, and should have been exempted from raising.\r\n\r\nThis solves the issue by simply checking whether a response is a memento and returning it immediately without doing any other checks, since the *effective* status code for a memento is always 200. (Checking various attributes of a memento is complicated, so it’s better to just return them right away rather than remembering to make complex exceptions in all the places where various response attributes have to be treated differently for mementos.)\r\n\r\nFixes #158.","shortMessageHtmlLink":"Don't raise on *archived* rate limit errors (#159)"}},{"before":"e8d71981024a1b98044175b22c584bae92ab16a6","after":"770113a115a104224d87e5775c36460d615150f7","ref":"refs/heads/158-archived-responses-can-be-429s-too","pushedAt":"2024-02-01T18:36:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Oops, forgot to include the test cassette","shortMessageHtmlLink":"Oops, forgot to include the test cassette"}},{"before":null,"after":"e8d71981024a1b98044175b22c584bae92ab16a6","ref":"refs/heads/158-archived-responses-can-be-429s-too","pushedAt":"2024-02-01T18:29:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Return instead of raising on archived 429s\n\nFixes #158.","shortMessageHtmlLink":"Return instead of raising on archived 429s"}},{"before":"0ec78111795a2b24dabc58d6223572120bb5c1e6","after":"994c8b78a5227db1f3d043352a985d806f6ce182","ref":"refs/heads/58-first-lets-bury-requests","pushedAt":"2024-01-05T01:30:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Oops, stream should be true","shortMessageHtmlLink":"Oops, stream should be true"}},{"before":"f43ba0a24b2cfb07eb92d663a5cda0432522b55c","after":"0ec78111795a2b24dabc58d6223572120bb5c1e6","ref":"refs/heads/58-first-lets-bury-requests","pushedAt":"2024-01-05T00:00:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Forgot the dict merge operator is Python 3.9+","shortMessageHtmlLink":"Forgot the dict merge operator is Python 3.9+"}},{"before":"4843ed4e368c529b4b8dc4c33c3b30cadc1993e9","after":"f43ba0a24b2cfb07eb92d663a5cda0432522b55c","ref":"refs/heads/58-first-lets-bury-requests","pushedAt":"2024-01-04T23:55:36.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Move all WaybackSession functionality to adapters","shortMessageHtmlLink":"Move all WaybackSession functionality to adapters"}},{"before":"1eb3e17657017567002ae3662a4991bd02a49e2c","after":"4843ed4e368c529b4b8dc4c33c3b30cadc1993e9","ref":"refs/heads/58-first-lets-bury-requests","pushedAt":"2023-12-29T23:43:32.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Add docs and type annotations to adapters","shortMessageHtmlLink":"Add docs and type annotations to adapters"}},{"before":null,"after":"1eb3e17657017567002ae3662a4991bd02a49e2c","ref":"refs/heads/58-first-lets-bury-requests","pushedAt":"2023-12-29T21:34:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Add `InternalHttpResponse` to provide a non-requests Response interface\n\nThis also provides some basic (but not yet fully implemented) thread-safety for response objects.","shortMessageHtmlLink":"Add InternalHttpResponse to provide a non-requests Response interface"}},{"before":"7d8e800d6649ac4dde29ab7f681439d8612350f7","after":"8775f2cbf33b2d01cbd3184044924935f775783b","ref":"refs/heads/58-if-requests-is-not-thread-safe-we-are-not-thread-safe-and-that-makes-us-unhappy","pushedAt":"2023-12-18T20:52:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Move Session into `_http.py`","shortMessageHtmlLink":"Move Session into _http.py"}},{"before":"1fcfe24d84488f936892f3ecaf58d62d127d250b","after":"7d8e800d6649ac4dde29ab7f681439d8612350f7","ref":"refs/heads/58-if-requests-is-not-thread-safe-we-are-not-thread-safe-and-that-makes-us-unhappy","pushedAt":"2023-12-18T20:51:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Move Session into `_http.py`","shortMessageHtmlLink":"Move Session into _http.py"}},{"before":"4ac034216b3f39557a4ecfbfdbc2b09f56c707ee","after":"477c44439abdebaf4d9942c7cb2aa55c3099b846","ref":"refs/heads/main","pushedAt":"2023-12-18T20:38:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Do PyPI release in GitHub Actions (#155)\n\nThis workflow is based on https://learn.scientific-python.org/development/guides/gha-pure/\r\n\r\nThis introduces GitHub Actions (GHA), alongside CircleCI. An additional integration is not ideal, but this gets us some community-supported tooling and more secure handshaking between GitHub and PyPI for publishing via \"Trusted Publisher\" so we don't need to manage secrets: https://docs.pypi.org/trusted-publishers/\r\n\r\nCo-authored-by: Rob Brackett ","shortMessageHtmlLink":"Do PyPI release in GitHub Actions (#155)"}},{"before":"0492ad77257c1c630a7d9a96deda57def7525b7d","after":null,"ref":"refs/heads/version-should-still-be-ignored","pushedAt":"2023-12-18T20:33:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"}},{"before":"a513bccd809d14cd587ef6ddf78ca2b279878258","after":"4ac034216b3f39557a4ecfbfdbc2b09f56c707ee","ref":"refs/heads/main","pushedAt":"2023-12-18T20:33:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Fix `_version.py` path in gitignore file (#156)\n\nQuick fix for something we missed in #154.","shortMessageHtmlLink":"Fix _version.py path in gitignore file (#156)"}},{"before":null,"after":"0492ad77257c1c630a7d9a96deda57def7525b7d","ref":"refs/heads/version-should-still-be-ignored","pushedAt":"2023-12-18T19:32:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Mr0grog","name":"Rob Brackett","path":"/Mr0grog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/74178?s=80&v=4"},"commit":{"message":"Fix `_version.py` path in gitignore file\n\nQuick fix for something we missed in #154.","shortMessageHtmlLink":"Fix _version.py path in gitignore file"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAElHmR1gA","startCursor":null,"endCursor":null}},"title":"Activity · edgi-govdata-archiving/wayback"}