{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":775086,"defaultBranch":"main","name":"django-csp","ownerLogin":"mozilla","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-07-14T18:00:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/131524?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726607092.0","currentOid":""},"activityList":{"items":[{"before":"f0b40f60b29177033edaea65c4abb93cf09053b0","after":"f6da0bf2baf92e16008cb3ba947caf38b68e85ff","ref":"refs/heads/main","pushedAt":"2024-09-17T20:54:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Prepare for 4.0b2 release","shortMessageHtmlLink":"Prepare for 4.0b2 release"}},{"before":null,"after":"d6591bce240c1ac09a68541c535e7945d845f315","ref":"refs/heads/prep-4.0b2","pushedAt":"2024-09-12T22:53:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Prepare for 4.0b2 release","shortMessageHtmlLink":"Prepare for 4.0b2 release"}},{"before":"35341b282295b92a4c17ccf109c5c795d9201125","after":"f0b40f60b29177033edaea65c4abb93cf09053b0","ref":"refs/heads/main","pushedAt":"2024-09-12T22:24:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add Django 5.1 to the test matrix","shortMessageHtmlLink":"Add Django 5.1 to the test matrix"}},{"before":"2eacf232b32c8eab000c38d1697a836c9e602bef","after":"f37be3b283626d87c8db4a09afd90413f4c56a13","ref":"refs/heads/add-django-5-1","pushedAt":"2024-09-12T22:16:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add Django 5.1 to the test matrix","shortMessageHtmlLink":"Add Django 5.1 to the test matrix"}},{"before":"fe19cdb5d99201d9ea406f01a582c1547c9793cf","after":"35341b282295b92a4c17ccf109c5c795d9201125","ref":"refs/heads/main","pushedAt":"2024-09-12T22:13:23.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Remove ignore comment after django-stubs fix\n\ndjango.core.checks.registry.CheckRegistry.register is now typed correctly.","shortMessageHtmlLink":"Remove ignore comment after django-stubs fix"}},{"before":"d9b6fea21dedda27ad4b3ed0772da458b49cbb0e","after":"2eacf232b32c8eab000c38d1697a836c9e602bef","ref":"refs/heads/add-django-5-1","pushedAt":"2024-09-12T16:06:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add types fix from other branch","shortMessageHtmlLink":"Add types fix from other branch"}},{"before":null,"after":"d9b6fea21dedda27ad4b3ed0772da458b49cbb0e","ref":"refs/heads/add-django-5-1","pushedAt":"2024-09-12T15:17:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add Django 5.1 to the test matrix","shortMessageHtmlLink":"Add Django 5.1 to the test matrix"}},{"before":"fb633fb2c09d3cbaf79299b6acdec2dfe606b27e","after":"e591149763d96e64e4bf19cca05a97e2310de44a","ref":"refs/heads/230-percentage-float","pushedAt":"2024-09-11T00:50:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Remove ignore comment after django-stubs fix\n\ndjango.core.checks.registry.CheckRegistry.register is now typed correctly.","shortMessageHtmlLink":"Remove ignore comment after django-stubs fix"}},{"before":null,"after":"fb633fb2c09d3cbaf79299b6acdec2dfe606b27e","ref":"refs/heads/230-percentage-float","pushedAt":"2024-09-11T00:41:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Fix #230: Make REPORT_PERCENTAGE a float","shortMessageHtmlLink":"Fix #230: Make REPORT_PERCENTAGE a float"}},{"before":"f860f6c9c9678f02fa4de44f8b7352c977f5f8f1","after":"fe19cdb5d99201d9ea406f01a582c1547c9793cf","ref":"refs/heads/main","pushedAt":"2024-07-15T16:21:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"refactor(middleware): Refactor internals of CSPMiddleware so that it's easier to extend existing logic without copy/pasting it into subclass","shortMessageHtmlLink":"refactor(middleware): Refactor internals of CSPMiddleware so that it'…"}},{"before":"cf2ae8ce708e0d964793e16bf20d28f6e02d36bd","after":"f860f6c9c9678f02fa4de44f8b7352c977f5f8f1","ref":"refs/heads/main","pushedAt":"2024-07-11T22:24:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Fix a couple docs examples","shortMessageHtmlLink":"Fix a couple docs examples"}},{"before":null,"after":"a8bfeff9ff59c2621da3ed8546c6dcda4147e77c","ref":"refs/heads/fix-docs","pushedAt":"2024-07-11T21:56:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Fix a couple docs examples","shortMessageHtmlLink":"Fix a couple docs examples"}},{"before":"ed0b7a4643bf68f0c69d6032f12ab0df8e106966","after":"cf2ae8ce708e0d964793e16bf20d28f6e02d36bd","ref":"refs/heads/main","pushedAt":"2024-07-11T13:39:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Fix #231: report percentage of 100% should always report\n\nThis also updates the RateLimited CSPMiddleware to remove both\n`report-uri` and `report-to` directives based on report percentage.","shortMessageHtmlLink":"Fix #231: report percentage of 100% should always report"}},{"before":"153696e6033dc61e2fc4c5a57b8e527b761e1cf2","after":"ed0b7a4643bf68f0c69d6032f12ab0df8e106966","ref":"refs/heads/main","pushedAt":"2024-07-10T14:55:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"stevejalim","name":"Steve Jalim","path":"/stevejalim","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/101457?s=80&v=4"},"commit":{"message":"fixed typos in configuration.rst and decorators.rst","shortMessageHtmlLink":"fixed typos in configuration.rst and decorators.rst"}},{"before":null,"after":"15be55930e55044bbebc7f6db4047faf763ddc18","ref":"refs/heads/fix-231-report-percentage","pushedAt":"2024-07-09T22:57:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Fix #231: report percentage of 100% should always report\n\nThis also updates the RateLimited CSPMiddleware to remove both\n`report-uri` and `report-to` directives based on report percentage.","shortMessageHtmlLink":"Fix #231: report percentage of 100% should always report"}},{"before":"b348924cf32c74be233be02057dc67ffb8012192","after":"153696e6033dc61e2fc4c5a57b8e527b761e1cf2","ref":"refs/heads/main","pushedAt":"2024-07-08T14:32:44.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jwhitlock","name":"John Whitlock","path":"/jwhitlock","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/286017?s=80&v=4"},"commit":{"message":"Merge pull request #226 from sevdog/improve-conditions\n\nUse simple logical operator in middleware","shortMessageHtmlLink":"Merge pull request #226 from sevdog/improve-conditions"}},{"before":"2bb3e6d6c96b28816539ea47bfb8e27b4e687487","after":"b348924cf32c74be233be02057dc67ffb8012192","ref":"refs/heads/main","pushedAt":"2024-07-01T20:49:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Expand the ruff config to include import sorting and others. (#234)\n\n* Update and move ruff config to pyproject.toml\r\n* Bump pre-commit versions\r\n* Run pyproject-fmt\r\n* Run updated ruff config on all files\r\n* Add `.python-version` to gitignore for pyenv + tox\r\n* Add pyupgrade to ruff and fix errors\r\n* Update CHANGELOG.md","shortMessageHtmlLink":"Expand the ruff config to include import sorting and others. (#234)"}},{"before":"5c3ad586e0bdc8e7eb990d55d2ee6f78ac79db24","after":"1cbb2b7bb3f7236670a42c7d4df53abaaa9ee830","ref":"refs/heads/ruff-fixups","pushedAt":"2024-07-01T19:48:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"58e9848e1c34ff9fb52d5d033e49cfef8adca4dc","after":"5c3ad586e0bdc8e7eb990d55d2ee6f78ac79db24","ref":"refs/heads/ruff-fixups","pushedAt":"2024-07-01T19:36:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add pyupgrade to ruff and fix errors","shortMessageHtmlLink":"Add pyupgrade to ruff and fix errors"}},{"before":"83bb99d9ed9a1261ecfd32aae037e043fd36328f","after":"58e9848e1c34ff9fb52d5d033e49cfef8adca4dc","ref":"refs/heads/ruff-fixups","pushedAt":"2024-07-01T19:05:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add `.python-version` to gitignore for pyenv + tox","shortMessageHtmlLink":"Add .python-version to gitignore for pyenv + tox"}},{"before":"71afcf5668ea756d77b45605fb38135bcb3a3ee0","after":"83bb99d9ed9a1261ecfd32aae037e043fd36328f","ref":"refs/heads/ruff-fixups","pushedAt":"2024-07-01T18:35:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add pyupgrade and fixes","shortMessageHtmlLink":"Add pyupgrade and fixes"}},{"before":"6b0614e504c5ebb5cf7dc59278af56b001da953c","after":"71afcf5668ea756d77b45605fb38135bcb3a3ee0","ref":"refs/heads/ruff-fixups","pushedAt":"2024-07-01T18:08:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Run updated ruff config on all files","shortMessageHtmlLink":"Run updated ruff config on all files"}},{"before":null,"after":"6b0614e504c5ebb5cf7dc59278af56b001da953c","ref":"refs/heads/ruff-fixups","pushedAt":"2024-07-01T18:04:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Run updated ruff config on all files","shortMessageHtmlLink":"Run updated ruff config on all files"}},{"before":"b0a5e454f6c363f2986816f987d6bb07b61c59f6","after":"2bb3e6d6c96b28816539ea47bfb8e27b4e687487","ref":"refs/heads/main","pushedAt":"2024-07-01T17:16:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add type hints, fix mypy issues (#198) (#228)\n\n* Add basepython entries for pypy. This fixes running tox locally.\r\n* Fix the cpython version mapping in [gh-actions]. The github action\r\n tests for cpython versions are running against the latest Django,\r\n instead of the set of possible Django versions.\r\n* Add mypy for type checking\r\n* Handle case where config is None\r\n* Use getattr, setattr for dynamic attribute access\r\n - mypy complains when reading or setting a attribute that is not defined\r\n on the class, such as HttpRequest.csp_nonce. This updates the code to\r\n use getattr and setattr to access these dynamically added attributes and\r\n for Django settings.\r\n* Use tuples where requested\r\n - Both startswith() and parser.parse_statements take a tuple rather than a list.\r\n* Add type hints\r\n* Refactor ScriptTestBase\r\n - Althought the code `template.render(context)` looked similar, mypy\r\n complained that Django's Template could not take a dict. Rather than\r\n switch on types, refactor `make_context` and `make_template` into\r\n `render`, which hides the typing details between Django templates and\r\n extension templates like Jinja2.\r\n* Fix Sphinx doc generation without setuptools\r\n* Add `pip install -e \".[dev]\"`\r\n* Update docs for typing, etc.\r\n* Add PEP 561 py.typed file\r\n* Bump Django dependency to 4.2+\r\n* Replace `HttpResponse` type with `HttpResponseBase`\r\n* Update CHANGES file\r\n\r\n---------\r\n\r\nCo-authored-by: Rob Hudson ","shortMessageHtmlLink":"Add type hints, fix mypy issues (#198) (#228)"}},{"before":null,"after":"7153092a27ae49fe25362bfc049f31ac0ac03a7e","ref":"refs/heads/pr-228","pushedAt":"2024-06-28T20:58:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add type hints","shortMessageHtmlLink":"Add type hints"}},{"before":"45cb61a5e762d3f4c8ee62e414302e2978445b93","after":"b0a5e454f6c363f2986816f987d6bb07b61c59f6","ref":"refs/heads/main","pushedAt":"2024-06-28T14:50:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"stevejalim","name":"Steve Jalim","path":"/stevejalim","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/101457?s=80&v=4"},"commit":{"message":"Fix incorrect domain from csp replace example","shortMessageHtmlLink":"Fix incorrect domain from csp replace example"}},{"before":"9b2cee0866e47f5beb8f21f7375c2b721333efab","after":"45cb61a5e762d3f4c8ee62e414302e2978445b93","ref":"refs/heads/main","pushedAt":"2024-06-19T20:50:52.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Bump version to 4.0b1","shortMessageHtmlLink":"Bump version to 4.0b1"}},{"before":"193c0f5e7499dcfc84604930d1c4565883e6131f","after":"9b2cee0866e47f5beb8f21f7375c2b721333efab","ref":"refs/heads/main","pushedAt":"2024-06-07T18:30:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Move to NONCE sentinel instead of 'include-nonce-in'","shortMessageHtmlLink":"Move to NONCE sentinel instead of 'include-nonce-in'"}},{"before":"29c175c7bf23840c4994d9861678e5cd5e2ff2b1","after":"193c0f5e7499dcfc84604930d1c4565883e6131f","ref":"refs/heads/main","pushedAt":"2024-06-07T09:20:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"stevejalim","name":"Steve Jalim","path":"/stevejalim","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/101457?s=80&v=4"},"commit":{"message":"Fix `report_only` to `REPORT_ONLY` in decorator docs","shortMessageHtmlLink":"Fix report_only to REPORT_ONLY in decorator docs"}},{"before":"3413de318a8a56725d5b68faecd2fc9c0d162097","after":"29c175c7bf23840c4994d9861678e5cd5e2ff2b1","ref":"refs/heads/main","pushedAt":"2024-06-06T22:37:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"robhudson","name":"Rob Hudson","path":"/robhudson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1106?s=80&v=4"},"commit":{"message":"Add constants for CSP keywords\n\nThis helps avoid potential errors introduced by incorrectly quoting CSP keywords.","shortMessageHtmlLink":"Add constants for CSP keywords"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xN1QyMDo1NDoyOS4wMDAwMDBazwAAAAS4-zro","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0wNlQyMjozNzoyNS4wMDAwMDBazwAAAARerIY2"}},"title":"Activity · mozilla/django-csp"}