ghrelease
Create looks at git history to determine the next semver tag, generatescategorized release notes, and creates a GitHub release via the gh CLI.
Installation
dagger install github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629eEntrypoint
Return Type
Ghrelease !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| token | Secret ! | - | GitHub token with permissions to create releases |
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
--token env:MYSECRETfunc (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 createfunc (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 uploadfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| assets | Directory ! | - | No description provided |
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
--token env:MYSECRET with-assets --assets DIR_PATHfunc (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-runfunc (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-flattenfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| repo | String ! | - | No description provided |
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
--token env:MYSECRET with-repo --repo stringfunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | A directory containing a git repository (must include .git) |
Example
dagger -m github.com/papercomputeco/daggerverse/ghrelease@37fe9f4213e1679b7909ff67d09b046a19fe629e call \
--token env:MYSECRET with-sourcefunc (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
| Name | Type | Default Value | Description |
|---|---|---|---|
| tag | String ! | - | 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 stringfunc (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)
}