Dagger
Search

ghrelease

Create looks at git history to determine the next semver tag, generates
categorized release notes, and creates a GitHub release via the gh CLI.

Installation

dagger install github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e

Entrypoint

Return Type
Ghrelease !
Arguments
NameTypeDefault ValueDescription
tokenSecret !-GitHub token with permissions to create releases
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET
func (m *MyModule) Example(token *dagger.Secret) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token)
}
@function
def example(token: dagger.Secret) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token)
	)
@func()
example(token: Secret): Ghrelease {
	return dag
		.ghrelease(token)
}

Types

Ghrelease 🔗

Ghrelease manages github releases.

create() 🔗

Create inspects the git history in Source to determine the next semantic version, generates categorized release notes, and creates a new GitHub release. Commits since the last tag are classified as follows:

  • “⚠️ breaking:” → major bump
  • “✨ feat:” → minor bump
  • “🔧 fix:” and everything else → patch bump

The highest-priority bump wins. WithSource must be called before Create. Chain WithDryRun before Create to skip the actual release creation.

Return Type
String !
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET create
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret) string  {
	return dag.
			Ghrelease(token).
			Create(ctx)
}
@function
async def example(token: dagger.Secret) -> str:
	return await (
		dag.ghrelease(token)
		.create()
	)
@func()
async example(token: Secret): Promise<string> {
	return dag
		.ghrelease(token)
		.create()
}

upload() 🔗

Upload uploads all assets to a GitHub release. If WithFlatten was chained, the assets are flattened first. The tag must have been set via WithTag before calling Upload.

Return Type
Void !
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET upload
func (m *MyModule) Example(ctx context.Context, token *dagger.Secret)   {
	return dag.
			Ghrelease(token).
			Upload(ctx)
}
@function
async def example(token: dagger.Secret) -> None:
	return await (
		dag.ghrelease(token)
		.upload()
	)
@func()
async example(token: Secret): Promise<void> {
	return dag
		.ghrelease(token)
		.upload()
}

withAssets() 🔗

WithAssets sets the assets directory for release upload

Return Type
Ghrelease !
Arguments
NameTypeDefault ValueDescription
assetsDirectory !-No description provided
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET with-assets --assets DIR_PATH
func (m *MyModule) Example(token *dagger.Secret, assets *dagger.Directory) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token).
			WithAssets(assets)
}
@function
def example(token: dagger.Secret, assets: dagger.Directory) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token)
		.with_assets(assets)
	)
@func()
example(token: Secret, assets: Directory): Ghrelease {
	return dag
		.ghrelease(token)
		.withAssets(assets)
}

withDryRun() 🔗

WithDryRun enables dry-run mode. When chained before Create, all version calculation and release note generation runs as normal, but the actual gh release create call is skipped. Useful for smoke-testing.

Return Type
Ghrelease !
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET with-dry-run
func (m *MyModule) Example(token *dagger.Secret) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token).
			WithDryRun()
}
@function
def example(token: dagger.Secret) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token)
		.with_dry_run()
	)
@func()
example(token: Secret): Ghrelease {
	return dag
		.ghrelease(token)
		.withDryRun()
}

withFlatten() 🔗

WithFlatten enables flattening of the assets directory before upload. When chained, the // directory structure is collapsed into a flat directory with files renamed to -- (or --.sha256 for checksum files).

Return Type
Ghrelease !
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET with-flatten
func (m *MyModule) Example(token *dagger.Secret) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token).
			WithFlatten()
}
@function
def example(token: dagger.Secret) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token)
		.with_flatten()
	)
@func()
example(token: Secret): Ghrelease {
	return dag
		.ghrelease(token)
		.withFlatten()
}

withRepo() 🔗

WithRepo sets the “org/repo” repo string for release target

Return Type
Ghrelease !
Arguments
NameTypeDefault ValueDescription
repoString !-No description provided
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET with-repo --repo string
func (m *MyModule) Example(token *dagger.Secret, repo string) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token).
			WithRepo(repo)
}
@function
def example(token: dagger.Secret, repo: str) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token)
		.with_repo(repo)
	)
@func()
example(token: Secret, repo: string): Ghrelease {
	return dag
		.ghrelease(token)
		.withRepo(repo)
}

withSource() 🔗

WithSource sets the git source directory used by Create to inspect tags and commit history. The directory must include .git (e.g. –source=. from the repository root).

Return Type
Ghrelease !
Arguments
NameTypeDefault ValueDescription
sourceDirectory -A directory containing a git repository (must include .git)
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET with-source
func (m *MyModule) Example(token *dagger.Secret) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token).
			WithSource()
}
@function
def example(token: dagger.Secret) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token)
		.with_source()
	)
@func()
example(token: Secret): Ghrelease {
	return dag
		.ghrelease(token)
		.withSource()
}

withTag() 🔗

WithTag stores the release tag for upload.

Return Type
Ghrelease !
Arguments
NameTypeDefault ValueDescription
tagString !-Release tag to upload assets to (e.g., "nightly", "v1.0.0")
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
 --token env:MYSECRET with-tag --tag string
func (m *MyModule) Example(token *dagger.Secret, tag string) *dagger.Ghrelease  {
	return dag.
			Ghrelease(token).
			WithTag(tag)
}
@function
def example(token: dagger.Secret, tag: str) -> dagger.Ghrelease:
	return (
		dag.ghrelease(token)
		.with_tag(tag)
	)
@func()
example(token: Secret, tag: string): Ghrelease {
	return dag
		.ghrelease(token)
		.withTag(tag)
}