Title: 馃殌 [Feature]: Settings鈥慏riven Workflow 路 Issue #232 路 PSModule/Process-PSModule 路 GitHub
Open Graph Title: 馃殌 [Feature]: Settings鈥慏riven Workflow 路 Issue #232 路 PSModule/Process-PSModule
X Title: 馃殌 [Feature]: Settings鈥慏riven Workflow 路 Issue #232 路 PSModule/Process-PSModule
Description: As a maintainer of the PSModule framework, I want all workflow configuration, settings, and conditions to be collected into a single Settings object that is passed through the workflow as one unit. Each workflow step should have access t...
Open Graph Description: As a maintainer of the PSModule framework, I want all workflow configuration, settings, and conditions to be collected into a single Settings object that is passed through the workflow as one unit....
X Description: As a maintainer of the PSModule framework, I want all workflow configuration, settings, and conditions to be collected into a single Settings object that is passed through the workflow as one unit....
Opengraph URL: https://github.com/PSModule/Process-PSModule/issues/232
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"馃殌 [Feature]: Settings鈥慏riven Workflow","articleBody":"As a maintainer of the PSModule framework, I want all workflow configuration, settings, and conditions to be collected into a single Settings object that is passed through the workflow as one unit.\nEach workflow step should have access to the whole set of settings and additional data, so it can extract the data it needs from this shared context. This makes integrations cleaner, removes scattered configuration logic, and turns Settings into a versatile data store rather than a set of hardcoded checks and variables.\nThis change is internal and structural.\nIt does not alter user behavior, unless a user chooses to inspect or customize the workflow process itself.\n\n### What This Solves\n- Eliminates hardcoded values spread across workflow steps\n- Greatly reduces conditional if: logic\n- Makes workflows easier to reason about, extend, and debug\n- Creates a clear, explicit flow of data through the workflow\n\n### Design Summary\nA single configuration source is loaded at workflow start\nThat configuration becomes a Settings context object\nThe Settings object:\n- Is immutable after load\n- Is passed unchanged between workflow steps\n- Can contain settings, environment data, runtime conditions, and derived values\n\n### Workflow steps:\n\nRead what they need from Settings\nSimplify the interface between the master workflow and its child/internal workflows.\n\n### Expected Outcomes\n\nFewer conditionals and cleaner workflow files\nConfiguration changes require no workflow edits\nNew settings automatically flow through the workflow\nEnvironment differences are handled by data, not logic\n\n### Scope and Constraints\n\nWorks within GitHub Actions\nSupports existing configuration formats (YAML / JSON / PSData)\nAllows gradual migration from current workflows\nMaintains backward compatibility\n\n### Success Criteria\n\nWorkflow logic becomes data鈥慸riven rather than conditional鈥慸riven\nSettings is the single source of truth\nThe workflow reads as a pipeline of steps, not a decision tree.\n\n### Laying the groundwork\n\nFurther down the line we want to make GitHub Actions a way to run the jobs, but ultimately we want to be able to run the scripts in the PSModule framework locally, meaning that we need a way to remove logic from GitHub workflows, and into PowerShell scripts/modules so it can be run locally.","author":{"url":"https://github.com/MariusStorhaug","@type":"Person","name":"MariusStorhaug"},"datePublished":"2025-10-14T11:46:35.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/232/Process-PSModule/issues/232"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:95552147-c9f9-d4fa-f989-9a799d9c1585 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D8F8:2F2BD9:16F7F1A:1F63A4E:697B26C4 |
| html-safe-nonce | b7e244a20dfae4c56598837f10fdce4c3a896e035fc16b180575ba591a02f5b8 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEOEY4OjJGMkJEOToxNkY3RjFBOjFGNjNBNEU6Njk3QjI2QzQiLCJ2aXNpdG9yX2lkIjoiMjQ0ODQ4ODUzODU1OTk0ODQ4NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | a4f82a9c01d4f28a83b3e9475de67c54cf285e36b76dd4c054f905328ea915e0 |
| hovercard-subject-tag | issue:3513551517 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/PSModule/Process-PSModule/232/issue_layout |
| twitter:image | https://opengraph.githubassets.com/76128c3a94ce493dbcb1d85984409080c887297900f164a86cd394f6b4e68349/PSModule/Process-PSModule/issues/232 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/76128c3a94ce493dbcb1d85984409080c887297900f164a86cd394f6b4e68349/PSModule/Process-PSModule/issues/232 |
| og:image:alt | As a maintainer of the PSModule framework, I want all workflow configuration, settings, and conditions to be collected into a single Settings object that is passed through the workflow as one unit.... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | MariusStorhaug |
| hostname | github.com |
| expected-hostname | github.com |
| None | 26ee438f0a804360f1b93f477a85a7932f8df33f19cc3cc6231e1782206b194a |
| turbo-cache-control | no-preview |
| go-import | github.com/PSModule/Process-PSModule git https://github.com/PSModule/Process-PSModule.git |
| octolytics-dimension-user_id | 142951047 |
| octolytics-dimension-user_login | PSModule |
| octolytics-dimension-repository_id | 706356420 |
| octolytics-dimension-repository_nwo | PSModule/Process-PSModule |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 706356420 |
| octolytics-dimension-repository_network_root_nwo | PSModule/Process-PSModule |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | c845ccd48a615635f346dc49a2d3da3f5224a529 |
| ui-target | canary-2 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width