{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":263034971,"defaultBranch":"main","name":"i18n-tasks","ownerLogin":"davidwessman","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2020-05-11T12:24:22.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6763624?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1715109927.0","currentOid":""},"activityList":{"items":[{"before":"dffd911391cc366779a6c0b119d927a8dfd41be7","after":"80f9ab01ee47ccb6a47eb32fe90de5a01e5f5c20","ref":"refs/heads/main","pushedAt":"2024-05-17T17:30:20.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Uses AST-scanner for all ERB (#573)\n\n- Also fixes regex in PatternScanner to handle `theme_t \"foo\"` being\r\n marked as a translation.\r\n- Fixes #572","shortMessageHtmlLink":"Uses AST-scanner for all ERB (glebm#573)"}},{"before":"eb3848a4e7c7c245dda796866b39446c7ed585c2","after":null,"ref":"refs/heads/controller-contextual-parsing","pushedAt":"2024-05-07T19:25:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"}},{"before":"ee42e05fc33d90f454a6be6852c2381257717caf","after":"eb3848a4e7c7c245dda796866b39446c7ed585c2","ref":"refs/heads/controller-contextual-parsing","pushedAt":"2024-05-07T19:23:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Contextual parsing of Rails controllers\n\n- Adding a Parser based on [Prism](https://github.com/ruby/prism).\n- It handles all parsing and matching of the keys, currently it is not\n connected to the used_keys flow but only done as an experiment.","shortMessageHtmlLink":"Contextual parsing of Rails controllers"}},{"before":"88de40e634619912faa9bb1420dd287ec4a5e1e3","after":"dffd911391cc366779a6c0b119d927a8dfd41be7","ref":"refs/heads/main","pushedAt":"2024-05-07T19:14:49.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Fix unescaped interpolated reserved key in help text and handle escaped interpolations in inconsistent interpolations check (#553)\n\n* Fix unescaped interpolated reserved key in help text\r\n\r\n* Ignore escaped interpolations in inconsistent interpolations check\r\n\r\n* Add test for escaped interpolations in inconsisten interpolation check","shortMessageHtmlLink":"Fix unescaped interpolated reserved key in help text and handle escap…"}},{"before":null,"after":"ee42e05fc33d90f454a6be6852c2381257717caf","ref":"refs/heads/controller-contextual-parsing","pushedAt":"2024-05-06T05:05:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Contextual parsing of Rails controllers\n\n- Adding a Parser based on [Prism](https://github.com/ruby/prism).\n- It handles all parsing and matching of the keys, currently it is not\n connected to the used_keys flow but only done as an experiment.","shortMessageHtmlLink":"Contextual parsing of Rails controllers"}},{"before":"56bd2965e670c8873b37c4eedccc9aa48a928ece","after":null,"ref":"refs/heads/537-do-not-parse-js-with-erb-ast","pushedAt":"2024-05-03T19:16:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"}},{"before":"26a92b68442cc232652723c1b8ca396803a0a1d7","after":"13b05e1db10d5fd4713db82a11db04eb2ec54b5b","ref":"refs/heads/syntax-tree-erb","pushedAt":"2024-05-03T18:57:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"WIP SyntaxTree","shortMessageHtmlLink":"WIP SyntaxTree"}},{"before":"4fc90ea801a582a305fad60357d0bbc298f46d39","after":null,"ref":"refs/heads/readme-translation-services-environment-variables","pushedAt":"2024-05-03T18:55:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"}},{"before":"9dc4af7cda4d8728c18b0ed2afd72e2bd37f4e72","after":null,"ref":"refs/heads/417-deepl-variable-names","pushedAt":"2024-05-03T18:55:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"}},{"before":"dd24bece22181c6eca13d8bd1903815bfc21a8e4","after":null,"ref":"refs/heads/github-actions-skip-gem-update","pushedAt":"2024-05-03T18:54:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"}},{"before":"d76961f05c76a836a8832b0dcd9e72c771fa6b96","after":"88de40e634619912faa9bb1420dd287ec4a5e1e3","ref":"refs/heads/main","pushedAt":"2024-05-03T18:50:49.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"chore(deps): bump paambaati/codeclimate-action from 5 to 6\n\nBumps [paambaati/codeclimate-action](https://github.com/paambaati/codeclimate-action) from 5 to 6.\n- [Release notes](https://github.com/paambaati/codeclimate-action/releases)\n- [Changelog](https://github.com/paambaati/codeclimate-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/paambaati/codeclimate-action/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: paambaati/codeclimate-action\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"chore(deps): bump paambaati/codeclimate-action from 5 to 6"}},{"before":"d2e38db81773a9baad4e3f1f9f9249683e61bc36","after":"d76961f05c76a836a8832b0dcd9e72c771fa6b96","ref":"refs/heads/main","pushedAt":"2024-01-20T20:35:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Erb-scanner: Replaces better_html with regex\n\n- Simplify the ERB AST scanner by using the regex from erubi.","shortMessageHtmlLink":"Erb-scanner: Replaces better_html with regex"}},{"before":"30b7703104bcfcc9a17dde6d2bb956cee554e654","after":"d2e38db81773a9baad4e3f1f9f9249683e61bc36","ref":"refs/heads/main","pushedAt":"2024-01-15T22:09:51.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Only uses AST-parser for .html.erb\n\n- Fixes #537","shortMessageHtmlLink":"Only uses AST-parser for .html.erb"}},{"before":"bc7b06d99621b4d1ca53d3d75f9d4e6c14a08d92","after":"dd24bece22181c6eca13d8bd1903815bfc21a8e4","ref":"refs/heads/github-actions-skip-gem-update","pushedAt":"2023-12-30T19:52:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Github Actions: Skips gem update\n\n- Does not work with Ruby 2.6 and 2.7 anymore","shortMessageHtmlLink":"Github Actions: Skips gem update"}},{"before":"9abc5b0d4c3bf45659423bba4e316ecf64c50e00","after":"56bd2965e670c8873b37c4eedccc9aa48a928ece","ref":"refs/heads/537-do-not-parse-js-with-erb-ast","pushedAt":"2023-12-30T15:55:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Only uses AST-parser for .html.erb\n\n- Fixes #537","shortMessageHtmlLink":"Only uses AST-parser for .html.erb"}},{"before":"da0cef2184eb4befbb449643997e6b91ca74e069","after":"bc7b06d99621b4d1ca53d3d75f9d4e6c14a08d92","ref":"refs/heads/github-actions-skip-gem-update","pushedAt":"2023-12-30T11:22:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Github Actions: Skips gem update\n\n- Does not work with Ruby 2.6 and 2.7 anymore","shortMessageHtmlLink":"Github Actions: Skips gem update"}},{"before":"cee0a810436674acc3f798a8acf473db3b6831cc","after":"da0cef2184eb4befbb449643997e6b91ca74e069","ref":"refs/heads/github-actions-skip-gem-update","pushedAt":"2023-12-30T11:18:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Github Actions: Skips gem update\n\n- Does not work with Ruby 2.6 and 2.7 anymore","shortMessageHtmlLink":"Github Actions: Skips gem update"}},{"before":null,"after":"cee0a810436674acc3f798a8acf473db3b6831cc","ref":"refs/heads/github-actions-skip-gem-update","pushedAt":"2023-12-30T11:17:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Github Actions: Skips gem update\n\n- Does not work with Ruby 2.6 and 2.7 anymore","shortMessageHtmlLink":"Github Actions: Skips gem update"}},{"before":null,"after":"9abc5b0d4c3bf45659423bba4e316ecf64c50e00","ref":"refs/heads/537-do-not-parse-js-with-erb-ast","pushedAt":"2023-12-30T10:54:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Only uses AST-parser for .html.erb\n\n- Fixes #537","shortMessageHtmlLink":"Only uses AST-parser for .html.erb"}},{"before":"e939d0e1f51baaa5d8f229f54bc18d3cc438d71b","after":"30b7703104bcfcc9a17dde6d2bb956cee554e654","ref":"refs/heads/main","pushedAt":"2023-12-30T10:44:37.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Add an isolating router\n\nThis new router considers each source YAML file independant from each other, thus allowing each of them to include similar keys.\n\nHere is an overview of how it works:\n* when reading YAML files (as defined by patterns in the `data.read` configuration, like for other routers), it does not load them all in a common global space, but rather creates a top-level node for YAML file and then loads its content inside this node.\n* when routing a given forest, it actually iterates on all top-level keys (which are source file paths) then yields the given block for each top-level key, passing also its subtree.\n\nNote that the top-level key (which is the source file path) had to be enclosed in a character in order to prevent considering its dots (`.`) as a nesting level when de-flattening them. A mechanism to do this already existed for `{}`, `[]` and `()` but all of those enclosers have a meaning in regular expressions. Thus, this commit extends this mechanism to support `<>` and uses them as encloser for the top-level key. It also has the advantage of making this special part of the flattened key easily distinguishable by a human eye.\n\nFor example, the following YAML source files:\n\n* `app/components/movies_component.en.yml`:\n\n ```yaml\n en:\n title: Movies\n ```\n\n* `app/components/games_component.en.yml`\n\n ```yaml\n en:\n title: Games\n ```\n\n… result in the following forest once loaded in memory:\n```yaml\nen:\n :\n title: Movies\n :\n title: Games\n```\n\n… which in turn results in the following flattened keys:\n```\nen..title: Movies\nen..title: Games\n```\n\n… which can be sent to any translator and should come back as:\n```\nfr..title: Flims\nfr..title: Jeux\n```\n\n… finally, this router allows re-assigning each key to the appropriate target file, which gives:\n\n* `app/components/movies_component.fr.yml`:\n\n ```yaml\n fr:\n title: Flims\n ```\n\n* `app/components/games_component.fr.yml`\n\n ```yaml\n fr:\n title: Jeux\n ```\n\nThis implicitely adds support for ViewComponent (which suggests organizing YAML files in \"sidecars\" and which adds an implicit scope to keys in those files, based on their file path).","shortMessageHtmlLink":"Add an isolating router"}},{"before":null,"after":"26a92b68442cc232652723c1b8ca396803a0a1d7","ref":"refs/heads/syntax-tree-erb","pushedAt":"2023-12-30T10:44:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"WIP SyntaxTree","shortMessageHtmlLink":"WIP SyntaxTree"}},{"before":"400786149ee4adf57108829233f20055935794f7","after":"e939d0e1f51baaa5d8f229f54bc18d3cc438d71b","ref":"refs/heads/main","pushedAt":"2023-10-24T17:39:38.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"PatternScanner: Handles non \\w characters\n\n- Fixes #526","shortMessageHtmlLink":"PatternScanner: Handles non \\w characters"}},{"before":"067f0cd6dc8e740d75459490e2f783cb637ef673","after":null,"ref":"refs/heads/526-regex-in-characters","pushedAt":"2023-10-24T05:13:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"}},{"before":null,"after":"067f0cd6dc8e740d75459490e2f783cb637ef673","ref":"refs/heads/526-regex-in-characters","pushedAt":"2023-10-21T15:53:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"PatternScanner: Handles non \\w characters\n\n- Fixes #526","shortMessageHtmlLink":"PatternScanner: Handles non \\w characters"}},{"before":"dad8c25cab415b569cd68e3d0daf610e245a3b4d","after":"400786149ee4adf57108829233f20055935794f7","ref":"refs/heads/main","pushedAt":"2023-09-16T19:00:39.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"chore(deps): bump actions/checkout from 3 to 4\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n dependency-type: direct:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"chore(deps): bump actions/checkout from 3 to 4"}},{"before":"c8fb1a3df940d4464211db842429466ff547bfee","after":"9dc4af7cda4d8728c18b0ed2afd72e2bd37f4e72","ref":"refs/heads/417-deepl-variable-names","pushedAt":"2023-09-16T18:58:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Escape plain text in deepl translation","shortMessageHtmlLink":"Escape plain text in deepl translation"}},{"before":"3c8024792bc4bcd35f4f2dba9980a9e8961597e0","after":"c8fb1a3df940d4464211db842429466ff547bfee","ref":"refs/heads/417-deepl-variable-names","pushedAt":"2023-09-16T09:05:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"DeepL: Default to tag_handling: xml\n\n- Also asks DeepL to ignore the tag which is used to wrap\n interpolated variables.\n- Fixes #417","shortMessageHtmlLink":"DeepL: Default to tag_handling: xml"}},{"before":null,"after":"4fc90ea801a582a305fad60357d0bbc298f46d39","ref":"refs/heads/readme-translation-services-environment-variables","pushedAt":"2023-09-16T09:04:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"README: Adds information about environment variables\n\nRelated to #395","shortMessageHtmlLink":"README: Adds information about environment variables"}},{"before":null,"after":"3c8024792bc4bcd35f4f2dba9980a9e8961597e0","ref":"refs/heads/417-deepl-variable-names","pushedAt":"2023-09-16T08:56:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"DeepL: Default to tag_handling: xml\n\n- Also asks DeepL to ignore the tag which is used to wrap\n interpolated variables.\n- Fixes #417","shortMessageHtmlLink":"DeepL: Default to tag_handling: xml"}},{"before":"fee4e13f66d490e6a4afd0ab0418193e25c8dc4d","after":"dad8c25cab415b569cd68e3d0daf610e245a3b4d","ref":"refs/heads/main","pushedAt":"2023-04-30T08:57:01.702Z","pushType":"push","commitsCount":57,"pusher":{"login":"davidwessman","name":"David Wessman","path":"/davidwessman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6763624?s=80&v=4"},"commit":{"message":"Bump minimum `parser` version\n\nThis is the first version which includes the fix (https://github.com/whitequark/parser/pull/924) to a performance issue (https://github.com/whitequark/parser/issues/918) first introduced in 3.0.3.0 (https://github.com/whitequark/parser/commit/547d731adef312dd781472c600d38c5823635ac0)\r\n\r\nFixes #407","shortMessageHtmlLink":"Bump minimum parser version"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xN1QxNzozMDoyMC4wMDAwMDBazwAAAARNJ6pw","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xN1QxNzozMDoyMC4wMDAwMDBazwAAAARNJ6pw","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNC0zMFQwODo1NzowMS43MDI2MDZazwAAAAMjHG_W"}},"title":"Activity · davidwessman/i18n-tasks"}