diff --git a/website/.vitepress/config.ts b/website/.vitepress/config.ts index 92ad218a35..7150653949 100644 --- a/website/.vitepress/config.ts +++ b/website/.vitepress/config.ts @@ -317,11 +317,15 @@ export default defineConfig({ collapsed: false, items: [ { - text: 'go tool task', + text: 'GitHub SOSF', + link: '/blog/github-secure-open-source-program' + }, + { + text: 'Using `go tool task`', link: '/blog/go-tool-task' - }, + }, { - text: 'New "if:" Control and Variable Prompt', + text: 'Conditionals Statements', link: '/blog/if-and-variable-prompt' } ] diff --git a/website/src/blog/github-secure-open-source-program.md b/website/src/blog/github-secure-open-source-program.md new file mode 100644 index 0000000000..7d9a419f30 --- /dev/null +++ b/website/src/blog/github-secure-open-source-program.md @@ -0,0 +1,53 @@ +--- +title: GitHub Secure Open Source Fund +description: + Task participated in the session 4 of the GitHub Secure Open Source program. +author: andreynering +date: 2026-08-15 +outline: deep +editLink: false +--- + +# GitHub Secure Open Source Fund + + + + + +Did you know that GitHub has a special program to fund security in open source? +It's the [GitHub Secure Open Source Fund][fund]. We were selected to participate +in session 4 that happened in May 2026 and it was really special for us. + +71 maintainers from 50 different open source projects and across 22 countries +were selected to participate in the program. It was amazing to meet so many +maintainers from other critical open source projects to learn how to make the +open source software ecosystem more secure. We really acquired a meaningful +amount of knowledge about security and had the enjoyed opportunity to ask +questions and interact with both the GitHub Security Lab team and the other +maintainers. + +Some of the topics we learned about: + +- How to make CI and GitHub Actions more secure +- How to handle dependency updates in a secure way +- How to handle vulnerability reports +- How to use tools like CodeQL to make code more secure +- How to better review code contributions to avoid introducing security issues +- Many more... + +During the program we took action to make Task more secure, especially with +regard to CI. Since then, we also handled a few different vulnerability reports, +and having the knowledge to do that definitely helped us in the process. + +We also formalized our security policies and documented them in a new security +section of our website. See both our [incident response +plan][incident-response-plan] and our [threat model][threat-model]. + +Many thanks to the GitHub Security Lab for this opportunity! Want to read more? +GitHub wrote a blog post about session 4 that [you can read here][ghblog]. + +[fund]: https://github.com/open-source/github-secure-open-source-fund +[incident-response-plan]: + https://taskfile.dev/docs/security/incident-response-plan +[threat-model]: https://taskfile.dev/docs/security/threat-model +[ghblog]: https://github.blog/open-source/maintainers/what-50-open-source-projects-taught-us-about-security-in-the-ai-era/ diff --git a/website/src/blog/go-tool-task.md b/website/src/blog/go-tool-task.md index fe4e147109..fc913b7bcd 100644 --- a/website/src/blog/go-tool-task.md +++ b/website/src/blog/go-tool-task.md @@ -7,14 +7,14 @@ outline: deep editLink: false --- -# `go tool task` +# Using `go tool task` Do you know that you can use Task without really needing to install it? -If you work with Go, you probably depend on external binaries like linters, -code generators and... Task. +If you work with Go, you probably depend on external binaries like linters, code +generators and... Task. But asking your coworkers or contributors to install dependencies can be messy. Everyone is on a different operating system, use a different package manager, @@ -43,8 +43,8 @@ go tool task {arguments...} That's all! -Go will compile the specified Task version on demand when calling `go tool task`. -Don't worry, Go caches the tool, so subsequent calls are faster. +Go will compile the specified Task version on demand when calling +`go tool task`. Don't worry, Go caches the tool, so subsequent calls are faster. This is useful when running Task on CI, as you don't need to stress about having to install it. It also means it'll be pinned to a specific Task version (but diff --git a/website/src/blog/if-and-variable-prompt.md b/website/src/blog/if-and-variable-prompt.md index db65389d17..f48a6ca907 100644 --- a/website/src/blog/if-and-variable-prompt.md +++ b/website/src/blog/if-and-variable-prompt.md @@ -7,7 +7,7 @@ outline: deep editLink: false --- -# New `if:` Control and Variable Prompt +# Conditional Statements and Variable Prompts @@ -46,7 +46,7 @@ version: '3' tasks: conditional: vars: - ENABLE_FEATURE: "true" + ENABLE_FEATURE: 'true' cmds: - cmd: echo "Feature is enabled" if: '{{eq .ENABLE_FEATURE "true"}}' @@ -54,8 +54,8 @@ tasks: if: '{{ne .ENABLE_FEATURE "true"}}' ``` -For more details, please check out the [documentation][if-docs]. -The [examples][if-examples] from the test suite may be useful too. +For more details, please check out the [documentation][if-docs]. The +[examples][if-examples] from the test suite may be useful too. ::: info @@ -68,9 +68,9 @@ but this would halt the execution of the task instead of skipping it. ## Prompt for Required Variables -For backward-compatibility reasons, this feature is disabled by default. -To enable it, either pass `--interactive` flag or add `interactive: true` to -your `.taskrc.yml`. +For backward-compatibility reasons, this feature is disabled by default. To +enable it, either pass `--interactive` flag or add `interactive: true` to your +`.taskrc.yml`. Once you do that, Task will basically starting prompting you in runtime for any required variables. In the example below, `NAME` will be prompted at runtime: @@ -112,16 +112,22 @@ Once again, check out the [documentation][prompt-docs] for more details, and the ## Feedback -Let's us know if you have any feedback! You can find us on our -[Discord server][discord]. +Let's us know if you have any feedback! You can find us on our [Discord +server][discord]. [release]: https://github.com/go-task/task/releases/tag/v3.47.0 [vmaerten]: https://github.com/vmaerten -[sources]: https://taskfile.dev/docs/guide#by-fingerprinting-locally-generated-files-and-their-sources -[status]: https://taskfile.dev/docs/guide#using-programmatic-checks-to-indicate-a-task-is-up-to-date -[preconditions]: https://taskfile.dev/docs/guide#using-programmatic-checks-to-cancel-the-execution-of-a-task-and-its-dependencies +[sources]: + https://taskfile.dev/docs/guide#by-fingerprinting-locally-generated-files-and-their-sources +[status]: + https://taskfile.dev/docs/guide#using-programmatic-checks-to-indicate-a-task-is-up-to-date +[preconditions]: + https://taskfile.dev/docs/guide#using-programmatic-checks-to-cancel-the-execution-of-a-task-and-its-dependencies [if-docs]: https://taskfile.dev/docs/guide#conditional-execution-with-if -[if-examples]: https://github.com/go-task/task/blob/main/testdata/if/Taskfile.yml -[prompt-docs]: https://taskfile.dev/docs/guide#prompting-for-missing-variables-interactively -[prompt-examples]: https://github.com/go-task/task/blob/main/testdata/interactive_vars/Taskfile.yml +[if-examples]: + https://github.com/go-task/task/blob/main/testdata/if/Taskfile.yml +[prompt-docs]: + https://taskfile.dev/docs/guide#prompting-for-missing-variables-interactively +[prompt-examples]: + https://github.com/go-task/task/blob/main/testdata/interactive_vars/Taskfile.yml [discord]: https://discord.com/invite/6TY36E39UK diff --git a/website/src/blog/index.md b/website/src/blog/index.md index 4ed71f6804..429e4fcaa1 100644 --- a/website/src/blog/index.md +++ b/website/src/blog/index.md @@ -5,7 +5,16 @@ editLink: false --- + +