{"push_id":2463047532,"size":29,"distinct_size":5,"ref":"refs/heads/fix-destroy","head":"ce272debee9495a9ae11dff1288b818dddb853b6","before":"cee24c2975f97f27d93b0c610108a926ccd47d9b","commits":[{"sha":"4013023d608549f773288dda7473b3eb9bcd2320","author":{"name":"Rosco Kalis","email":"fa52cdbd06ac7891ff8a91fdd60a7532fde1c28c@gmail.com"},"message":"🐛Added more language support to {{reading_time}} helper (#9509)\n\ncloses #9507\r\n\r\n- Changed the utils.wordCount implementation to the one used by simpleMDE\r\n- Added extra À-ÿ to the regex to support diacritics characters\r\n- Added corresponding text with Chinese text mentioned in the issue","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/4013023d608549f773288dda7473b3eb9bcd2320"},{"sha":"60386dbba5c900fc3f1073178bd682bcadd4c41a","author":{"name":"CriticalRespawn","email":"a18661fec35b7ddf28a5da9070699482347929a8@users.noreply.github.com"},"message":"🐛Fixed misspelled schema.org type for WebSite (#9526)\n\ncloses #9525\r\n\r\n- updated the schema type to 'WebSite' as it is the correct spelling according to schema.org. See [here](http://schema.org/WebSite)","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/60386dbba5c900fc3f1073178bd682bcadd4c41a"},{"sha":"7c6f690eb585f1dcf5b46202f49fddc5c8c8025b","author":{"name":"Katharina Irrgang","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"🐛  Fixed `updated_at` not being updated (#9532)\n\ncloses #9520\r\n\r\n- it contains a dependency bump of the latest Bookshelf release\r\n- Bookshelf introduced a bug in the last release\r\n  - see https://github.com/bookshelf/bookshelf/pull/1583\r\n  - see https://github.com/bookshelf/bookshelf/pull/1798\r\n- this has caused trouble in Ghost\r\n  - the `updated_at` attribute was not automatically set anymore\r\n\r\n---\r\n\r\nThe bookshelf added one breaking change: it's allow to pass custom `updated_at` and `created_at`.\r\nWe already have a protection for not being able to override the `created_at` date on update.\r\nWe had to add another protection to now allow to only change the `updated_at` property.\r\nYou can only change `updated_at` if you actually change something else e.g. the title of a post.\r\n\r\nTo be able to implement this check i discovered that Bookshelfs `model.changed` object has a tricky behaviour.\r\nIt remembers **all** attributes, which where changed, doesn't matter if they are valid or invalid model properties.\r\nWe had to add a line of code to avoid remembering none valid model attributes in this object.\r\n\r\ne.g. you change `tag.parent` (no valid model attribute). The valid property is `tag.parent_id`.\r\n     If you pass `tag.parent` but the value has **not** changed (`tag.parent` === `tag.parent_id`), it will output you `tag.changed.parent`. But this is wrong.\r\n     Bookshelf detects `changed` attributes too early. Or if you think the other way around, Ghost detects valid attributes too late.\r\n     But the current earliest possible stage is the `onSaving` event, there is no earlier way to pick valid attributes (except of `.forge`, but we don't use this fn ATM).\r\n     Later: the API should transform `tag.parent` into `tag.parent_id`, but we are not using it ATM, so no need to pre-optimise.\r\n     The API already transforms `post.author` into `post.author_id`.","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/7c6f690eb585f1dcf5b46202f49fddc5c8c8025b"},{"sha":"3a48ab3330d755cdda42e30fcf66670a6d6ceba3","author":{"name":"Kevin Ansfield","email":"ffb4761cba839470133bee36aeb139f58d7dbaa9@lookingsideways.co.uk"},"message":"Updated Ghost-Admin to 1.21.7","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/3a48ab3330d755cdda42e30fcf66670a6d6ceba3"},{"sha":"3e295bee7e6520cd46410f5f0c39e346d093a7e9","author":{"name":"Kevin Ansfield","email":"ffb4761cba839470133bee36aeb139f58d7dbaa9@lookingsideways.co.uk"},"message":"Version bump to 1.21.7","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/3e295bee7e6520cd46410f5f0c39e346d093a7e9"},{"sha":"40d0a745df900c2a1edd82425b7cc80f3f29b620","author":{"name":"Katharina Irrgang","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"✨ Multiple authors (#9426)\n\nno issue\r\n\r\nThis PR adds the server side logic for multiple authors. This adds the ability to add multiple authors per post. We keep and support single authors (maybe till the next major - this is still in discussion)\r\n\r\n### key notes\r\n\r\n- `authors` are not fetched by default, only if we need them\r\n- the migration script iterates over all posts and figures out if an author_id is valid and exists (in master we can add invalid author_id's) and then adds the relation (falls back to owner if invalid)\r\n- ~~i had to push a fork of bookshelf to npm because we currently can't bump bookshelf + the two bugs i discovered are anyway not yet merged (https://github.com/kirrg001/bookshelf/commits/master)~~ replaced by new bookshelf release\r\n- the implementation of single & multiple authors lives in a single place (introduction of a new concept: model relation)\r\n- if you destroy an author, we keep the behaviour for now -> remove all posts where the primary author id matches. furthermore, remove all relations in posts_authors (e.g. secondary author)\r\n- we make re-use of the `excludeAttrs` concept which was invented in the contributors PR (to protect editing authors as author/contributor role) -> i've added a clear todo that we need a logic to make a diff of the target relation -> both for tags and authors\r\n- `authors` helper available (same as `tags` helper)\r\n- `primary_author` computed field available\r\n- `primary_author` functionality available (same as `primary_tag` e.g. permalinks, prev/next helper etc)","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/40d0a745df900c2a1edd82425b7cc80f3f29b620"},{"sha":"e1ce8eff31703ee15697b53089c0d616d583febf","author":{"name":"Kevin Ansfield","email":"ffb4761cba839470133bee36aeb139f58d7dbaa9@lookingsideways.co.uk"},"message":"Updated Ghost-Admin to 1.22.0","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/e1ce8eff31703ee15697b53089c0d616d583febf"},{"sha":"3e33849e479c8829c1bc2cb8ff9bfc724b73c15c","author":{"name":"Kevin Ansfield","email":"ffb4761cba839470133bee36aeb139f58d7dbaa9@lookingsideways.co.uk"},"message":"Version bump to 1.22.0","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/3e33849e479c8829c1bc2cb8ff9bfc724b73c15c"},{"sha":"7bbde460af81c1183bc121aa131bce255dc60160","author":{"name":"Katharina Irrgang","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Speed up 1.22 migration script (#9541)\n\nno issue\r\n\r\n- insert `posts_authors` relation via knex\r\n- massive speed improvement\r\n\r\ne.g. 1500 posts\r\n\r\n- before: ~1min\r\n- after: ~10sec","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/7bbde460af81c1183bc121aa131bce255dc60160"},{"sha":"5dc2dddfc2282d566917e226615c64000f6e9001","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Fixed migration script 1.22 for invalid authors\n\nno issue\n\n- the previous commit will insert two post author relations if the author id of a post is invalid\n- if a blog has an invalid author_id (which should be an edge case), we update the author id to the owner id\n  - `posts_authors` are auto inserted in this case","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/5dc2dddfc2282d566917e226615c64000f6e9001"},{"sha":"9a43f36d44fee9eb57d34650bcd16c7478a43a46","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Updated Ghost-Admin to 1.22.1","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/9a43f36d44fee9eb57d34650bcd16c7478a43a46"},{"sha":"e3178fc1589e19e56260cda16061bc21254962ad","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Version bump to 1.22.1","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/e3178fc1589e19e56260cda16061bc21254962ad"},{"sha":"a22b6fb92e4bfe63a6fceac431a3a790333b949d","author":{"name":"Hannah Wolfe","email":"03bf40715d0f998843929e0338b4f270c51063aa@gmail.com"},"message":"✨  Slack -> Forum\n\n- replacing references to slack with forum","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/a22b6fb92e4bfe63a6fceac431a3a790333b949d"},{"sha":"bcb55103f3c66aab9ef1360fc51e2584005fa81b","author":{"name":"Hannah Wolfe","email":"126c4922842f7ca9b385bd9071006d438907a493@gmail.com"},"message":"Update SUPPORT.md - fix typo\n\nEdit derp","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/bcb55103f3c66aab9ef1360fc51e2584005fa81b"},{"sha":"e986ce4af7478db2032d17f6f570129e62b60931","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Bump ghost-ignition to version 2.9.1\n\nno issue\n\n- fixes a bug, which can slow down the process when using loggly transport","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/e986ce4af7478db2032d17f6f570129e62b60931"},{"sha":"2f8dc972867551135f76bca97ee54d6b2ca9f999","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Updated Ghost-Admin: API request without `updated_by`/`created_by`\n\nrefs https://github.com/TryGhost/Ghost/issues/9548\n\n- the Ghost-admin had sent booleans for `updated_by` and `created_by`\n- the easiest fix for now was just to remove the attrs at all\n- they are anyway not used on the server, because you can't update these attrs\n- only the server has the permission","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/2f8dc972867551135f76bca97ee54d6b2ca9f999"},{"sha":"bda76acba6354baedc334f84d5b82b28ed966019","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Extended the API object validation\n\nrefs #9548\n\n- do not forward `tag.parent` to the model layer\n  - the model layer should only know `tag.parent_id`\n  - and the API should only expose `tag.parent` (this is an API feature)\n  - currently Ghost has a mixture of using `toJSON` and the API validation layer for this\n  - we just continue with this for now (no time to fix this)\n- disallow sending nested-nested relations\n  - unsupported\n  - see comment for more information\n  - this can cause problems with calling `hasChanged` on relations\n- add unit tests","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/bda76acba6354baedc334f84d5b82b28ed966019"},{"sha":"19596dcf423cb957e5410961af0311c4030e1db6","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Tests: Added missing attrs to DataGenerator\n\nno issue\n\n- `createUser` did not return `updated_at` and `updated_by`\n- heyyyy 🤠","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/19596dcf423cb957e5410961af0311c4030e1db6"},{"sha":"5c5ecfd61d1bd75690e45a5a1e800068e802ff93","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"A bit of ES6 for `models/base/index.js`\n\nno issue","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/5c5ecfd61d1bd75690e45a5a1e800068e802ff93"},{"sha":"853b518a5151e43da47008dcb15fafbb1a7fd9d6","author":{"name":"kirrg001","email":"338f5b1288c98cabc8015eeb7f668bc6a38b6b21@googlemail.com"},"message":"Sanitize incoming model relation data\n\nrefs #9548\n\n- we always receive date strings from the client in ISO format\n- we ensure that we transform these strings into JS dates for comparison\n- when the client sends relations, we need to ensure that relations are checked as well\n- will only work for the post model for now, because this is the only model which uses `bookshelf-relations`\n- added unit tests\n- removed some model tests, which do the same","distinct":false,"url":"https://api.github.com/repos/kirrg001/Ghost/commits/853b518a5151e43da47008dcb15fafbb1a7fd9d6"}]}
{"actor":{"display_login":"kirrg001"}}