1. Packages
  2. GitHub
  3. API Docs
  4. Release
GitHub v6.1.0 published on Monday, Mar 11, 2024 by Pulumi

github.Release

Explore with Pulumi AI

github logo
GitHub v6.1.0 published on Monday, Mar 11, 2024 by Pulumi

    This resource allows you to create and manage a release in a specific GitHub repository.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as github from "@pulumi/github";
    
    const repo = new github.Repository("repo", {
        description: "GitHub repo managed by Terraform",
        "private": false,
    });
    const example = new github.Release("example", {
        repository: repo.name,
        tagName: "v1.0.0",
    });
    
    import pulumi
    import pulumi_github as github
    
    repo = github.Repository("repo",
        description="GitHub repo managed by Terraform",
        private=False)
    example = github.Release("example",
        repository=repo.name,
        tag_name="v1.0.0")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-github/sdk/v6/go/github"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		repo, err := github.NewRepository(ctx, "repo", &github.RepositoryArgs{
    			Description: pulumi.String("GitHub repo managed by Terraform"),
    			Private:     pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = github.NewRelease(ctx, "example", &github.ReleaseArgs{
    			Repository: repo.Name,
    			TagName:    pulumi.String("v1.0.0"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Github = Pulumi.Github;
    
    return await Deployment.RunAsync(() => 
    {
        var repo = new Github.Repository("repo", new()
        {
            Description = "GitHub repo managed by Terraform",
            Private = false,
        });
    
        var example = new Github.Release("example", new()
        {
            Repository = repo.Name,
            TagName = "v1.0.0",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.github.Repository;
    import com.pulumi.github.RepositoryArgs;
    import com.pulumi.github.Release;
    import com.pulumi.github.ReleaseArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var repo = new Repository("repo", RepositoryArgs.builder()        
                .description("GitHub repo managed by Terraform")
                .private_(false)
                .build());
    
            var example = new Release("example", ReleaseArgs.builder()        
                .repository(repo.name())
                .tagName("v1.0.0")
                .build());
    
        }
    }
    
    resources:
      repo:
        type: github:Repository
        properties:
          description: GitHub repo managed by Terraform
          private: false
      example:
        type: github:Release
        properties:
          repository: ${repo.name}
          tagName: v1.0.0
    

    On Non-Default Branch

    import * as pulumi from "@pulumi/pulumi";
    import * as github from "@pulumi/github";
    
    const exampleRepository = new github.Repository("exampleRepository", {autoInit: true});
    const exampleBranch = new github.Branch("exampleBranch", {
        repository: exampleRepository.name,
        branch: "branch_name",
        sourceBranch: exampleRepository.defaultBranch,
    });
    const exampleRelease = new github.Release("exampleRelease", {
        repository: exampleRepository.name,
        tagName: "v1.0.0",
        targetCommitish: exampleBranch.branch,
        draft: false,
        prerelease: false,
    });
    
    import pulumi
    import pulumi_github as github
    
    example_repository = github.Repository("exampleRepository", auto_init=True)
    example_branch = github.Branch("exampleBranch",
        repository=example_repository.name,
        branch="branch_name",
        source_branch=example_repository.default_branch)
    example_release = github.Release("exampleRelease",
        repository=example_repository.name,
        tag_name="v1.0.0",
        target_commitish=example_branch.branch,
        draft=False,
        prerelease=False)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-github/sdk/v6/go/github"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		exampleRepository, err := github.NewRepository(ctx, "exampleRepository", &github.RepositoryArgs{
    			AutoInit: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		exampleBranch, err := github.NewBranch(ctx, "exampleBranch", &github.BranchArgs{
    			Repository:   exampleRepository.Name,
    			Branch:       pulumi.String("branch_name"),
    			SourceBranch: exampleRepository.DefaultBranch,
    		})
    		if err != nil {
    			return err
    		}
    		_, err = github.NewRelease(ctx, "exampleRelease", &github.ReleaseArgs{
    			Repository:      exampleRepository.Name,
    			TagName:         pulumi.String("v1.0.0"),
    			TargetCommitish: exampleBranch.Branch,
    			Draft:           pulumi.Bool(false),
    			Prerelease:      pulumi.Bool(false),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Github = Pulumi.Github;
    
    return await Deployment.RunAsync(() => 
    {
        var exampleRepository = new Github.Repository("exampleRepository", new()
        {
            AutoInit = true,
        });
    
        var exampleBranch = new Github.Branch("exampleBranch", new()
        {
            Repository = exampleRepository.Name,
            BranchName = "branch_name",
            SourceBranch = exampleRepository.DefaultBranch,
        });
    
        var exampleRelease = new Github.Release("exampleRelease", new()
        {
            Repository = exampleRepository.Name,
            TagName = "v1.0.0",
            TargetCommitish = exampleBranch.BranchName,
            Draft = false,
            Prerelease = false,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.github.Repository;
    import com.pulumi.github.RepositoryArgs;
    import com.pulumi.github.Branch;
    import com.pulumi.github.BranchArgs;
    import com.pulumi.github.Release;
    import com.pulumi.github.ReleaseArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var exampleRepository = new Repository("exampleRepository", RepositoryArgs.builder()        
                .autoInit(true)
                .build());
    
            var exampleBranch = new Branch("exampleBranch", BranchArgs.builder()        
                .repository(exampleRepository.name())
                .branch("branch_name")
                .sourceBranch(exampleRepository.defaultBranch())
                .build());
    
            var exampleRelease = new Release("exampleRelease", ReleaseArgs.builder()        
                .repository(exampleRepository.name())
                .tagName("v1.0.0")
                .targetCommitish(exampleBranch.branch())
                .draft(false)
                .prerelease(false)
                .build());
    
        }
    }
    
    resources:
      exampleRepository:
        type: github:Repository
        properties:
          autoInit: true
      exampleBranch:
        type: github:Branch
        properties:
          repository: ${exampleRepository.name}
          branch: branch_name
          sourceBranch: ${exampleRepository.defaultBranch}
      exampleRelease:
        type: github:Release
        properties:
          repository: ${exampleRepository.name}
          tagName: v1.0.0
          targetCommitish: ${exampleBranch.branch}
          draft: false
          prerelease: false
    

    Create Release Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Release(name: string, args: ReleaseArgs, opts?: CustomResourceOptions);
    @overload
    def Release(resource_name: str,
                args: ReleaseArgs,
                opts: Optional[ResourceOptions] = None)
    
    @overload
    def Release(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                repository: Optional[str] = None,
                tag_name: Optional[str] = None,
                body: Optional[str] = None,
                discussion_category_name: Optional[str] = None,
                draft: Optional[bool] = None,
                generate_release_notes: Optional[bool] = None,
                name: Optional[str] = None,
                prerelease: Optional[bool] = None,
                target_commitish: Optional[str] = None)
    func NewRelease(ctx *Context, name string, args ReleaseArgs, opts ...ResourceOption) (*Release, error)
    public Release(string name, ReleaseArgs args, CustomResourceOptions? opts = null)
    public Release(String name, ReleaseArgs args)
    public Release(String name, ReleaseArgs args, CustomResourceOptions options)
    
    type: github:Release
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ReleaseArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ReleaseArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ReleaseArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ReleaseArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ReleaseArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

    The following reference example uses placeholder values for all input properties.

    var releaseResource = new Github.Release("releaseResource", new()
    {
        Repository = "string",
        TagName = "string",
        Body = "string",
        DiscussionCategoryName = "string",
        Draft = false,
        GenerateReleaseNotes = false,
        Name = "string",
        Prerelease = false,
        TargetCommitish = "string",
    });
    
    example, err := github.NewRelease(ctx, "releaseResource", &github.ReleaseArgs{
    	Repository:             pulumi.String("string"),
    	TagName:                pulumi.String("string"),
    	Body:                   pulumi.String("string"),
    	DiscussionCategoryName: pulumi.String("string"),
    	Draft:                  pulumi.Bool(false),
    	GenerateReleaseNotes:   pulumi.Bool(false),
    	Name:                   pulumi.String("string"),
    	Prerelease:             pulumi.Bool(false),
    	TargetCommitish:        pulumi.String("string"),
    })
    
    var releaseResource = new Release("releaseResource", ReleaseArgs.builder()        
        .repository("string")
        .tagName("string")
        .body("string")
        .discussionCategoryName("string")
        .draft(false)
        .generateReleaseNotes(false)
        .name("string")
        .prerelease(false)
        .targetCommitish("string")
        .build());
    
    release_resource = github.Release("releaseResource",
        repository="string",
        tag_name="string",
        body="string",
        discussion_category_name="string",
        draft=False,
        generate_release_notes=False,
        name="string",
        prerelease=False,
        target_commitish="string")
    
    const releaseResource = new github.Release("releaseResource", {
        repository: "string",
        tagName: "string",
        body: "string",
        discussionCategoryName: "string",
        draft: false,
        generateReleaseNotes: false,
        name: "string",
        prerelease: false,
        targetCommitish: "string",
    });
    
    type: github:Release
    properties:
        body: string
        discussionCategoryName: string
        draft: false
        generateReleaseNotes: false
        name: string
        prerelease: false
        repository: string
        tagName: string
        targetCommitish: string
    

    Release Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The Release resource accepts the following input properties:

    Repository string
    The name of the repository.
    TagName string
    The name of the tag.
    Body string
    Text describing the contents of the tag.
    DiscussionCategoryName string
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    Draft bool
    Set to false to create a published release.
    GenerateReleaseNotes bool
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    Name string
    The name of the release.
    Prerelease bool
    Set to false to identify the release as a full release.
    TargetCommitish string
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    Repository string
    The name of the repository.
    TagName string
    The name of the tag.
    Body string
    Text describing the contents of the tag.
    DiscussionCategoryName string
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    Draft bool
    Set to false to create a published release.
    GenerateReleaseNotes bool
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    Name string
    The name of the release.
    Prerelease bool
    Set to false to identify the release as a full release.
    TargetCommitish string
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    repository String
    The name of the repository.
    tagName String
    The name of the tag.
    body String
    Text describing the contents of the tag.
    discussionCategoryName String
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    draft Boolean
    Set to false to create a published release.
    generateReleaseNotes Boolean
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    name String
    The name of the release.
    prerelease Boolean
    Set to false to identify the release as a full release.
    targetCommitish String
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    repository string
    The name of the repository.
    tagName string
    The name of the tag.
    body string
    Text describing the contents of the tag.
    discussionCategoryName string
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    draft boolean
    Set to false to create a published release.
    generateReleaseNotes boolean
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    name string
    The name of the release.
    prerelease boolean
    Set to false to identify the release as a full release.
    targetCommitish string
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    repository str
    The name of the repository.
    tag_name str
    The name of the tag.
    body str
    Text describing the contents of the tag.
    discussion_category_name str
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    draft bool
    Set to false to create a published release.
    generate_release_notes bool
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    name str
    The name of the release.
    prerelease bool
    Set to false to identify the release as a full release.
    target_commitish str
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    repository String
    The name of the repository.
    tagName String
    The name of the tag.
    body String
    Text describing the contents of the tag.
    discussionCategoryName String
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    draft Boolean
    Set to false to create a published release.
    generateReleaseNotes Boolean
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    name String
    The name of the release.
    prerelease Boolean
    Set to false to identify the release as a full release.
    targetCommitish String
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Release resource produces the following output properties:

    Etag string
    Id string
    The provider-assigned unique ID for this managed resource.
    Etag string
    Id string
    The provider-assigned unique ID for this managed resource.
    etag String
    id String
    The provider-assigned unique ID for this managed resource.
    etag string
    id string
    The provider-assigned unique ID for this managed resource.
    etag str
    id str
    The provider-assigned unique ID for this managed resource.
    etag String
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing Release Resource

    Get an existing Release resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ReleaseState, opts?: CustomResourceOptions): Release
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            body: Optional[str] = None,
            discussion_category_name: Optional[str] = None,
            draft: Optional[bool] = None,
            etag: Optional[str] = None,
            generate_release_notes: Optional[bool] = None,
            name: Optional[str] = None,
            prerelease: Optional[bool] = None,
            repository: Optional[str] = None,
            tag_name: Optional[str] = None,
            target_commitish: Optional[str] = None) -> Release
    func GetRelease(ctx *Context, name string, id IDInput, state *ReleaseState, opts ...ResourceOption) (*Release, error)
    public static Release Get(string name, Input<string> id, ReleaseState? state, CustomResourceOptions? opts = null)
    public static Release get(String name, Output<String> id, ReleaseState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Body string
    Text describing the contents of the tag.
    DiscussionCategoryName string
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    Draft bool
    Set to false to create a published release.
    Etag string
    GenerateReleaseNotes bool
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    Name string
    The name of the release.
    Prerelease bool
    Set to false to identify the release as a full release.
    Repository string
    The name of the repository.
    TagName string
    The name of the tag.
    TargetCommitish string
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    Body string
    Text describing the contents of the tag.
    DiscussionCategoryName string
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    Draft bool
    Set to false to create a published release.
    Etag string
    GenerateReleaseNotes bool
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    Name string
    The name of the release.
    Prerelease bool
    Set to false to identify the release as a full release.
    Repository string
    The name of the repository.
    TagName string
    The name of the tag.
    TargetCommitish string
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    body String
    Text describing the contents of the tag.
    discussionCategoryName String
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    draft Boolean
    Set to false to create a published release.
    etag String
    generateReleaseNotes Boolean
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    name String
    The name of the release.
    prerelease Boolean
    Set to false to identify the release as a full release.
    repository String
    The name of the repository.
    tagName String
    The name of the tag.
    targetCommitish String
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    body string
    Text describing the contents of the tag.
    discussionCategoryName string
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    draft boolean
    Set to false to create a published release.
    etag string
    generateReleaseNotes boolean
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    name string
    The name of the release.
    prerelease boolean
    Set to false to identify the release as a full release.
    repository string
    The name of the repository.
    tagName string
    The name of the tag.
    targetCommitish string
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    body str
    Text describing the contents of the tag.
    discussion_category_name str
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    draft bool
    Set to false to create a published release.
    etag str
    generate_release_notes bool
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    name str
    The name of the release.
    prerelease bool
    Set to false to identify the release as a full release.
    repository str
    The name of the repository.
    tag_name str
    The name of the tag.
    target_commitish str
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.
    body String
    Text describing the contents of the tag.
    discussionCategoryName String
    If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. For more information, see Managing categories for discussions in your repository.
    draft Boolean
    Set to false to create a published release.
    etag String
    generateReleaseNotes Boolean
    Set to true to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes.
    name String
    The name of the release.
    prerelease Boolean
    Set to false to identify the release as a full release.
    repository String
    The name of the repository.
    tagName String
    The name of the tag.
    targetCommitish String
    The branch name or commit SHA the tag is created from. Defaults to the default branch of the repository.

    Import

    This resource can be imported using the name of the repository, combined with the id of the release, and a : character for separating components, e.g.

    $ pulumi import github:index/release:Release example repo:12345678
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    GitHub pulumi/pulumi-github
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the github Terraform Provider.
    github logo
    GitHub v6.1.0 published on Monday, Mar 11, 2024 by Pulumi