summary | Awesome automationWe use GitHub actions to make sure our code is always first-rate. We have put together a set of actions so you don't have to. These should be applied to all new projects and are slowly being added to our older projects. Just give in to your robot overlords and life will be much easier. 🤖 To get started, check out the GitHub action documentation Before you startThere are a few bits and bobs it's worth knowing about before diving into our actions. Firstly, most of the actions rely on you having other files. You will find a set of template files in the .github repo that should cover all the bases, but it is on the developer to make sure that they edit the templates where required to meet the requirements of the project.You should also be aware of our expectations around things like committing, testing and code structure. If you add these actions to a repo that isn't already compliant, you are going to have a bad time. As a minimum, before adding any of these actions, you should grab the tox file and run it against your code. This should highlight the vast majority of issues, but not all of them.Some of the actions require some initial setup steps on GitHub or PyPI. You will need to know about using secrets in GitHub actions and about authenticating with GitHub app generated tokens. Thankfully, the heavy lifting has been done, and you just need to add your repo to the app and the secrets to your repo. .github repoAll our actions can be found on our organisation's GitHub instance. As a bonus, you will also find a set of template files for tox and the README. Take a Look<br> Conventional PR TitleThis action check that the title of any pull request is consistent with the conventional commits specification. Don't know what that is? Have a read of the docs Take a Look<br> File CheckThis action checks to make sure that you have all the expected files. A wise man once said an empty README is worse than no README. Lucky, this action checks for both. It also makes sure your project has a CHANGELOG, licence, tox file and project.toml. Take a Look<br> PublishThe publish workflow uses poetry to build a distribution and then use trusted publishing to publish to PyPI. You will need to set up trusted publishing on any project that you wish to apply this action to. Luckily, it's super quick. It probably goes without saying, but I will say it just in case, you only need to apply this to repos that would be classed as packages.To run this action, you will need help from my trusty workflow runner bot, Ren 🤖. He is super awesome at running actions for you, which isn't possible from actions itself, because you could end up in an accidental recursive workflow run. ☠️ Take a Look<br> ReleaseIf, like me, you hate filling in changelogs and tagging releases on GitHub, this action is for you. This action relies on conventional commits to generate an amazing CHANGELOG and to automatically open a release branch. It uses Release Please Action which is made by google so you know it's going to be good. They recommend using squash merging and so do I, it's magic for your commit history. Take a Look<br> TestThis runs the tox script against your code. That's it..... oh no wait I forgot about TODO's, it also checks to make sure they conform to our expectation around those. Take a Look<br> ExtrasAs mentioned elsewhere, you can also find templates for all the other standard stuff we expect to find in our repos. Take a Look<br> Automatic PR'sEver wondered what happens to developers when they snap? Check out the automatic PR action for a glimps into your future. Do not apply this to any repos unless you are very sure you know what you are doing. This is super experimental and likely to blow up if handled incorrectly. 💣💥🤯 Take a Look<br> |
---|
page | {"name":"page","children":[{"id":"aZRmFOXpD3EomGMVVvfqc","params":{"background":{"light":"#ffffff","dark":"#1d2125"},"padding":20,"gap":10},"children":[{"id":"FKvhWz0r9Hn7JZFMsQ16U","name":"row","children":[{"id":"9f-aFTBWNOcMMeJGDS7oq","name":"column","children":[{"name":"image","params":{"templateId":"full-width","alignment":"center","position":"center center","borderRadius":{"all":0,"bbl":0,"bbr":0,"btl":0,"btr":0,"isIndividualCorners":false},"image":{"value":"att2615771137","target":"_blank","type":"attachment"},"width":370,"height":185},"children":[],"id":"5_Rim65enwZ1eqYmGLtne"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"O1juLYOxV5I_EEOFcEVuG","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"hmAabHUrdxFd08opVToQS","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"QX1KboA0oU5GkfkHK_i9Q","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"8AgmqvDifaQ9hs3s3b_zV","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"MfBG3kNo1Ys8XMqZKWB2L","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":10,"minHeight":100,"padding":10,"borderRadius":0}},{"id":"MWC4BH0FWQDxjmd1irbMK","name":"row","children":[{"id":"3dC8m0ZwcI9V6esgXI9i9","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Awesome automation","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}],"align":"center"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Open Sans, sans-serif"}]},{"type":"paragraph","children":[{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"We use GitHub actions to make sure our code is always first-rate. We have put together a set of actions so you don't have to. These should be applied to all new projects and are slowly being added to our older projects. Just give in to your robot overlords and life will be much easier. 🤖","fontFamily":"Poppins, sans-serif"}],"align":"center"}]}]}]},"children":[],"id":"oYn2fn0g2IxgVoOo1Dd-i"},{"name":"text","params":{"templateId":"simple paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"","fontFamily":"Poppins, sans-serif"},{"type":"link","link":{"value":"https://docs.github.com/en/actions","target":"_blank","type":"link"},"children":[{"fontSize":16,"lineHeight":"24px","letterSpacing":0,"text":"To get started, check out the GitHub action documentation","fontFamily":"Poppins, sans-serif","color":"#0091FF","underline":true}]},{"text":"","fontFamily":"Poppins, sans-serif"}],"align":"center"},{"type":"paragraph","align":"center","children":[{"text":""}]}]}]},"children":[],"id":"k4z1zXytJ8GNZE353_QeW"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"o4Uv4bmc6V5DoFDD9ktNE","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"EjqR0d1qGxlRPuVC9A5Sb","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"C-FfFSuNOFuHRGMw7tMrW","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"HdgOfTISxCKK93NA7Yr9y","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"gzneaTFOjaTp9HJFzB0VK","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":10,"minHeight":200,"padding":10,"borderRadius":0}},{"id":"Ba47T0TRdbf6q0LUo8yF3","name":"row","children":[{"id":"tdood_-RZ5ArpYwcmXNaj","name":"column","children":[{"name":"text","params":{"templateId":"simple paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Before you start","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"There are a few bits and bobs it's worth knowing about before diving into our actions. Firstly, most of the actions rely on you having other files. You will find a set of template files in the .github repo that should cover all the bases, but it is on the developer to make sure that they edit the templates where required to meet the requirements of the project."}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"You should also be aware of our expectations around things like committing, testing and code structure. If you add these actions to a repo that isn't already compliant, you are going to have a bad time. As a minimum, before adding any of these actions, you should grab the tox file and run it against your code. This should highlight the vast majority of issues, but not all of them."}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Some of the actions require some initial setup steps on GitHub or PyPI. You will need to know about "},{"type":"link","link":{"value":"https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions","target":"_blank","type":"link"},"children":[{"fontSize":16,"lineHeight":"24px","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"using secrets in GitHub actions","color":"#0091FF","underline":true}]},{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":" and about"},{"type":"link","link":{"value":"https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens","target":"_blank","type":"link"},"children":[{"fontSize":16,"lineHeight":"24px","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":" authenticating with GitHub app generated tokens","color":"#0091FF","underline":true}]},{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":". Thankfully, the heavy lifting has been done, and you just need to add your repo to the app and the secrets to your repo. "}]}]}]},"children":[],"id":"d16zhVOt6TkvskOSJ15nG"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"pH-Xwl4Z-LRbfV1149KAs","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"lJbR-fGAp2tZxknCNMrdJ","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"BKmXYeE70OIkKgR8esWsE","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"yqw8Y8jEDP6YZBbWfGpCe","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"J2k34chDp06N1CJNhQG6j","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}},{"id":"5bMkZmLr97RCy2cfhmmrr","name":"row","children":[{"id":"Nt2hxh0syf4IYxMNsGQg5","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":".github repo","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"All our actions can be found on our organisation's GitHub instance. As a bonus, you will also find a set of template files for tox and the README.","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"bBuo6m5BBPAr54612p23R"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github","target":"_blank","type":"link"}},"children":[],"id":"-3bXy2_xzqDXI8_XsGPqT"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"dJb9rgh4SbA65yfjcUrU7","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Conventional PR Title","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"This action check that the title of any pull request is consistent with the conventional commits specification. Don't know what that is? Have a read of the ","fontFamily":"Poppins, sans-serif"},{"type":"link","link":{"value":"https://www.conventionalcommits.org/en/v1.0.0/","target":"_blank","type":"link"},"children":[{"fontSize":16,"lineHeight":"24px","letterSpacing":0,"text":"docs","color":"#0091FF","underline":true,"fontFamily":"Poppins, sans-serif"}]},{"text":"","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"eL4S3tdOAbpTNS0Xm_9DG"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/conventional_pr_title.yml","target":"_blank","type":"link"}},"children":[],"id":"Yp8SZz_tAB3zoDd7t4cIl"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"sozjmFwqeTykrHAXUgViK","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"File Check","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"This action checks to make sure that you have all the expected files. A wise man once said an empty README is worse than no README. Lucky, this action checks for both. It also makes sure your project has a CHANGELOG, licence, tox file and project.toml.","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"TD3LX2RxGjK8Jdw52RbVo"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/python_file_check.yml","target":"_blank","type":"link"}},"children":[],"id":"aGFaYliiIsEwAEFy7naF2"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"nfxp-09RliOqmnUXGsz5_","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"x-u6uMmGoV_Y84xwTQLnJ","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"0Pl-5EUmq_NAOd5uEomgp","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1,1,1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}},{"id":"I3v4JQseORUVapBMEqssu","name":"row","children":[{"id":"0EiwOHfKgQbDeo5vYltsB","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Publish","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"The publish workflow uses ","fontFamily":"Poppins, sans-serif","fontSize":16},{"type":"link","link":{"value":"https://python-poetry.org/","target":"_blank","type":"link"},"children":[{"lineHeight":"24px","letterSpacing":0,"text":"poetry","color":"#0091FF","underline":true,"fontFamily":"Poppins, sans-serif","fontSize":16}]},{"text":" ","fontFamily":"Poppins, sans-serif","fontSize":16},{"fontFamily":"Poppins, sans-serif","fontSize":16,"text":"to build a distribution and then use","color":{"light":"#555"}},{"fontFamily":"Poppins, sans-serif","fontSize":16,"text":" "},{"type":"link","link":{"value":"https://docs.pypi.org/trusted-publishers/","target":"_blank","type":"link"},"children":[{"fontFamily":"Poppins, sans-serif","text":"trusted publishing","color":"#0091FF","underline":true,"fontSize":16}]},{"fontFamily":"Poppins, sans-serif","text":" ","fontSize":16},{"fontFamily":"Poppins, sans-serif","fontSize":16,"text":"to publish to PyPI. You will need to ","color":{"light":"#555"}},{"type":"link","link":{"value":"https://docs.pypi.org/trusted-publishers/adding-a-publisher/","target":"_blank","type":"link"},"children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"text":"set up","color":"#0091FF","underline":true}]},{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":" trusted publishing on any project that you wish to apply this action to. Luckily, it's super quick. It probably goes without saying, but I will say it just in case, you only need to apply this to repos that would be classed as packages."}]},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":""}]},{"type":"paragraph","children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":"To run this action, you will need help from my trusty workflow runner bot, "},{"type":"link","link":{"value":"https://github.com/organizations/renalreg/settings/installations","target":"_blank","type":"link"},"children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"text":"Ren","color":"#0091FF","underline":true}]},{"text":" "},{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":"🤖. He is super awesome at running actions for you, which isn't possible from actions itself, because you could end up in an "},{"type":"link","link":{"value":"https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow","target":"_blank","type":"link"},"children":[{"fontFamily":"Poppins, sans-serif","fontSize":16,"text":"accidental recursive workflow run","color":"#0091FF","underline":true}]},{"fontFamily":"Poppins, sans-serif","fontSize":16,"color":{"light":"#555"},"text":". ☠️"}]}]}]},"children":[],"id":"OE8jPMjomxDq4rb94qzbA"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/python_publish.yml","target":"_blank","type":"link"}},"children":[],"id":"SJ3nfMN8GBU3yFrY9JgSa"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"KHVuAyOzFfNWsMYmT-M2a","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Release","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":""}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"If, like me, you hate filling in changelogs and tagging releases on GitHub, this action is for you. This action relies on "},{"type":"link","link":{"value":"https://www.conventionalcommits.org/en/v1.0.0/","target":"_blank","type":"link"},"children":[{"fontSize":16,"lineHeight":"24px","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"conventional commits","color":"#0091FF","underline":true}]},{"text":" "},{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"to generate an amazing CHANGELOG and to automatically open a release branch. It uses "},{"type":"link","link":{"value":"https://github.com/google-github-actions/release-please-action#release-please-action","target":"_blank","type":"link"},"children":[{"fontSize":16,"lineHeight":"24px","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"Release Please Action","color":"#0091FF","underline":true}]},{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":" which is made by google so you know it's going to be good. They recommend using "},{"type":"link","link":{"value":"https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-commits","target":"_blank","type":"link"},"children":[{"fontSize":16,"lineHeight":"24px","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":"squash merging","color":"#0091FF","underline":true}]},{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif","text":" and so do I, it's magic for your commit history."}]}]}]},"children":[],"id":"Tau9nkPa5hmMEynXcgfUx"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/python_release.yml","target":"_blank","type":"link"}},"children":[],"id":"e4vZ77Wl7NZR-67MFWvB6"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"ew96CDUoS4uyrbjofmnaa","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Test","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"This runs the tox script against your code. That's it..... oh no wait I forgot about TODO's, it also checks to make sure they conform to our expectation around those.","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"GsP1AZfe6RA7oTynDRpvX"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/workflow-templates/python_test.yml","target":"_blank","type":"link"}},"children":[],"id":"_7Y8V5fdySzrgNeoXbv9A"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"TQIWb8iG23eXdy1KiRYwX","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"nHt7csltQsOQI99YA3a4q","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"5B8-5SSL1H3ShcZdlq5aG","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1,1,1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}},{"id":"aGY55ECq7DcvQYlwKFDBe","name":"row","children":[{"id":"p42i33PhxADuqRCj8vaRm","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Extras","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"As mentioned elsewhere, you can also find templates for all the other standard stuff we expect to find in our repos. ","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"MHCNB19xyksWaLh_2fb5R"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/tree/main/other-templates","target":"_blank","type":"link"}},"children":[],"id":"WJR3OXq1fZ9CZGapieQYS"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"i3jaOKRLM_fybUNg5YCmA","name":"column","children":[{"name":"text","params":{"templateId":"headline and paragraph","value":[{"type":"paragraph","children":[{"type":"paragraph","children":[{"text":"Automatic PR's","fontWeight":700,"letterSpacing":-1,"lineHeight":"unset","fontSize":32,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"text":"","fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"fontFamily":"Poppins, sans-serif"}]},{"type":"paragraph","children":[{"fontSize":16,"lineHeight":"24px","color":"#555","letterSpacing":0,"text":"Ever wondered what happens to developers when they snap? Check out the automatic PR action for a glimps into your future. Do not apply this to any repos unless you are very sure you know what you are doing. This is super experimental and likely to blow up if handled incorrectly. 💣💥🤯","fontFamily":"Poppins, sans-serif"}]}]}]},"children":[],"id":"UTwc_GujO9bBF5FIIYTqm"},{"name":"button","params":{"templateId":"small button","label":"Take a Look<br>","size":"small","shape":"circular","alignment":"start","states":{"idle":{"colors":{"background":"#1181F8"}},"hover":{"colors":{}}},"link":{"value":"https://github.com/renalreg/.github/blob/main/pull_request.yml","target":"_blank","type":"link"}},"children":[],"id":"q13prn2kvL9xKKxM7wFBx"}],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"-JNqjv8l1jVaFz3BH_SRO","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"74lRGzyIqCJ1GBDGqoJkc","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"jubGnc2RId-lp3f7ovsFv","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}},{"id":"CPSRKo-RbX4yA4-is36wZ","name":"column","children":[],"params":{"borderRadius":{"all":0,"btl":0,"bbl":0,"btr":0,"bbr":0,"isIndividualCorners":false},"padding":0,"gap":20,"verticalAlignment":"top"}}],"params":{"layout":[1,1,1],"gap":100,"minHeight":200,"padding":10,"borderRadius":0,"size":"full"}}],"name":"section"}],"id":"30pBDEr2IwtTYTas1VSQo"} |
---|
|