{"id":21698621,"url":"https://github.com/theohbrothers/generate-dockerimagevariantshelpers","last_synced_at":"2026-02-26T08:03:23.950Z","repository":{"id":192315805,"uuid":"686724371","full_name":"theohbrothers/Generate-DockerImageVariantsHelpers","owner":"theohbrothers","description":"Helpers to use with Generate-DockerImageVariants.","archived":false,"fork":false,"pushed_at":"2025-01-13T16:48:27.000Z","size":212,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T17:48:03.547Z","etag":null,"topics":["docker","generate-dockerimagevariants","module","powershell","pwsh"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theohbrothers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-03T18:29:33.000Z","updated_at":"2025-01-13T16:48:13.000Z","dependencies_parsed_at":"2023-09-04T05:25:09.332Z","dependency_job_id":"e41d82b8-7142-483c-aaeb-44cc8ef2db5c","html_url":"https://github.com/theohbrothers/Generate-DockerImageVariantsHelpers","commit_stats":null,"previous_names":["theohbrothers/generate-dockerimagevariantshelpers"],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theohbrothers%2FGenerate-DockerImageVariantsHelpers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theohbrothers%2FGenerate-DockerImageVariantsHelpers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theohbrothers%2FGenerate-DockerImageVariantsHelpers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theohbrothers%2FGenerate-DockerImageVariantsHelpers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theohbrothers","download_url":"https://codeload.github.com/theohbrothers/Generate-DockerImageVariantsHelpers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238937846,"owners_count":19555380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","generate-dockerimagevariants","module","powershell","pwsh"],"created_at":"2024-11-25T19:35:33.663Z","updated_at":"2025-10-14T05:32:12.400Z","avatar_url":"https://github.com/theohbrothers.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Generate-DockerImageVariantsHelpers\n\n[![github-actions](https://github.com/theohbrothers/Generate-DockerImageVariantsHelpers/actions/workflows/ci-master-pr.yml/badge.svg?branch=master)](https://github.com/theohbrothers/Generate-DockerImageVariantsHelpers/actions/workflows/ci-master-pr.yml)\n[![github-release](https://img.shields.io/github/v/release/theohbrothers/Generate-DockerImageVariantsHelpers?style=flat-square)](https://github.com/theohbrothers/Generate-DockerImageVariantsHelpers/releases/)\n[![powershell-gallery-release](https://img.shields.io/powershellgallery/v/Generate-DockerImageVariantsHelpers?logo=powershell\u0026logoColor=white\u0026label=PSGallery\u0026labelColor=\u0026style=flat-square)](https://www.powershellgallery.com/packages/Generate-DockerImageVariantsHelpers/)\n\nHelpers to use with [Generate-DockerImageVariants](https://github.com/theohbrothers/Generate-DockerImageVariants).\n\n## Install\n\nOpen [`powershell`](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/install/installing-windows-powershell?view=powershell-5.1) or [`pwsh`](https://github.com/powershell/powershell#-powershell) and type:\n\n```powershell\nInstall-Module -Name Generate-DockerImageVariantsHelpers -Repository PSGallery -Scope CurrentUser -Verbose\n```\n\nIf prompted to trust the repository, hit `Y` and `enter`.\n\nAll [required modules](src/Generate-DockerImageVariantsHelpers/Generate-DockerImageVariantsHelpers.psd1) are automatically installed:\n\n- [Generate-DockerImageVariants](https://www.powershellgallery.com/packages/Generate-DockerImageVariants/)\n- [PowerShellForGitHub](https://www.powershellgallery.com/packages/PowerShellForGitHub)\n\n## Usage\n\nImport the module, and the [cmdlets](src/Generate-DockerImageVariantsHelpers/public) will be available. For example:\n\n```powershell\nImport-Module Generate-DockerImageVariantsHelpers\n\n# Clone the current repo to a temporary directory\n$repo = Clone-TempRepo\ncd $repo\n\n# Create generate/definitions/versions.json\nNew-DockerImageVariantsVersions -Package coolpackage -VersionsChangeScope minor -VersionsNewScript { Invoke-RestMethod https://example.com/versions.json } #-Limit 1 -Whatif\nNew-DockerImageVariantsVersions -Package coolpackage -VersionsChangeScope patch -VersionsNewScript { Invoke-RestMethod https://example.com/versions.json } #-Limit 1 -Whatif\n\n# Get generate/definitions/versions.json\n$versionsConfig = Get-DockerImageVariantsVersions\n\n# Set generate/definitions/versions.json\nSet-DockerImageVariantsVersions @{\n    coolpackage = @{\n        versions = @(\n            '0.1.0'\n            '0.2.0'\n        )\n        versionsChangeScope = 'minor'\n        versionsNewScript = 'Invoke-RestMethod https://example.com/versions.json'\n        limit = 1 # optional\n    }\n} #-WhatIf\n\n# Execute commands\n{ git status } | Execute-Command -ErrorAction Stop #-WhatIf\n\n# Get changed versions\n$versionsChanged = Get-VersionsChanged -Versions @( '0.1.0' ) -VersionsNew @( '0.1.1', '0.2.0' ) -ChangeScope patch -AsObject\n$versionsChanged = Get-VersionsChanged -Versions @( '0.1.0' ) -VersionsNew @( '0.1.1', '0.2.0' ) -ChangeScope minor -AsObject\n\n# Open PR for each changed version\n$env:GITHUB_TOKEN = 'xxx'\n$prs = @(\n    foreach ($c in $versionsChanged.Values) {\n        if ($c['kind'] -eq 'new') {\n            New-DockerImageVariantsPR -Package coolpackage -Version $c['to'] -Verb add #-WhatIf\n        }\n        if ($c['kind'] -eq 'update') {\n            New-DockerImageVariantsPR -Package coolpackage -Version $c['from'] -VersionNew $c['to'] -Verb update #-WhatIf\n        }\n    }\n)\n# Merge each successful PR one after another\n$env:GITHUB_TOKEN = 'xxx'\nforeach ($pr in $prs) {\n    $pr = Automerge-DockerImageVariantsPR -PR $pr #-WhatIf\n}\n\n# Update ./generate/definitions/versions.json and open a PR for each changed version, and merge successful PRs one after another (to prevent merge conflicts)\n$env:GITHUB_TOKEN = 'xxx'\n$autoMergeResults = Update-DockerImageVariantsVersions -PR -AutoMergeQueue #-WhatIf\n# Update ./generate/definitions/versions.json and open a PR for each changed version, and merge successful PRs one after another (to prevent merge conflicts), and create a tagged release and close milestone\n$autoMergeResults = Update-DockerImageVariantsVersions -PR -AutoMergeQueue -AutoRelease -AutoReleaseTagConvention calver #-WhatIf\n$autoMergeResults = Update-DockerImageVariantsVersions -PR -AutoMergeQueue -AutoRelease -AutoReleaseTagConvention semver #-WhatIf\n\n# Get next tag\n$tag = Get-TagNext -TagConvention calver\n$tag = Get-TagNext -TagConvention semver\n\n# Tag \u003ctag\u003e, push new \u003ctag\u003e, rename milestone 'next-release' to \u003ctag\u003e, and close milestone\n$env:GITHUB_TOKEN = 'xxx'\n$tag = New-Release -TagConvention calver #-WhatIf\n$tag = New-Release -TagConvention semver #-WhatIf\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheohbrothers%2Fgenerate-dockerimagevariantshelpers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheohbrothers%2Fgenerate-dockerimagevariantshelpers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheohbrothers%2Fgenerate-dockerimagevariantshelpers/lists"}