Project Issue
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as gitlab from "@pulumi/gitlab";
const foo = new gitlab.Project("foo", {
name: "example project",
description: "Lorem Ipsum",
visibilityLevel: "public",
});
const welcomeIssue = new gitlab.ProjectIssue("welcome_issue", {
project: foo.id,
title: "Welcome!",
description: pulumi.interpolate` Welcome to the ${foo.name} project!
`,
discussionLocked: true,
});
export const welcomeIssueWebUrl = webUrl;
import pulumi
import pulumi_gitlab as gitlab
foo = gitlab.Project("foo",
name="example project",
description="Lorem Ipsum",
visibility_level="public")
welcome_issue = gitlab.ProjectIssue("welcome_issue",
project=foo.id,
title="Welcome!",
description=foo.name.apply(lambda name: f""" Welcome to the {name} project!
"""),
discussion_locked=True)
pulumi.export("welcomeIssueWebUrl", web_url)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using GitLab = Pulumi.GitLab;
return await Deployment.RunAsync(() =>
{
var foo = new GitLab.Project("foo", new()
{
Name = "example project",
Description = "Lorem Ipsum",
VisibilityLevel = "public",
});
var welcomeIssue = new GitLab.ProjectIssue("welcome_issue", new()
{
Project = foo.Id,
Title = "Welcome!",
Description = foo.Name.Apply(name => @$" Welcome to the {name} project!
"),
DiscussionLocked = true,
});
return new Dictionary<string, object?>
{
["welcomeIssueWebUrl"] = webUrl,
};
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-gitlab/sdk/v7/go/gitlab"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
foo, err := gitlab.NewProject(ctx, "foo", &gitlab.ProjectArgs{
Name: pulumi.String("example project"),
Description: pulumi.String("Lorem Ipsum"),
VisibilityLevel: pulumi.String("public"),
})
if err != nil {
return err
}
_, err = gitlab.NewProjectIssue(ctx, "welcome_issue", &gitlab.ProjectIssueArgs{
Project: foo.ID(),
Title: pulumi.String("Welcome!"),
Description: foo.Name.ApplyT(func(name string) (string, error) {
return fmt.Sprintf(" Welcome to the %v project!\n\n", name), nil
}).(pulumi.StringOutput),
DiscussionLocked: pulumi.Bool(true),
})
if err != nil {
return err
}
ctx.Export("welcomeIssueWebUrl", webUrl)
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gitlab.Project;
import com.pulumi.gitlab.ProjectArgs;
import com.pulumi.gitlab.ProjectIssue;
import com.pulumi.gitlab.ProjectIssueArgs;
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 foo = new Project("foo", ProjectArgs.builder()
.name("example project")
.description("Lorem Ipsum")
.visibilityLevel("public")
.build());
var welcomeIssue = new ProjectIssue("welcomeIssue", ProjectIssueArgs.builder()
.project(foo.id())
.title("Welcome!")
.description(foo.name().applyValue(name -> """
Welcome to the %s project!
", name)))
.discussionLocked(true)
.build());
ctx.export("welcomeIssueWebUrl", webUrl);
}
}
resources:
foo:
type: gitlab:Project
properties:
name: example project
description: Lorem Ipsum
visibilityLevel: public
welcomeIssue:
type: gitlab:ProjectIssue
name: welcome_issue
properties:
project: ${foo.id}
title: Welcome!
description: |2+
Welcome to the ${foo.name} project!
discussionLocked: true
outputs:
welcomeIssueWebUrl: ${webUrl}
Import
You can import this resource with an id made up of {project-id}:{issue-id}
, e.g.
$ pulumi import gitlab:index/projectIssue:ProjectIssue welcome_issue 42:1
Properties
The IDs of the users to assign the issue to.
The ID of the user that closed the issue. Use gitlab.User
data source to get more information about the user.
Set an issue to be confidential.
Whether the issue is deleted instead of closed during destroy.
The description of an issue. Limited to 1,048,576 characters.
Whether the issue is locked for discussions or not.
The ID of a discussion to resolve. This fills out the issue with a default description and mark the discussion as resolved. Use in combination with mergerequesttoresolvediscussions_of.
The ID of the epic issue.
The external ID of the issue.
The human-readable time estimate of the issue.
The human-readable total time spent of the issue.
The ID of the issue link.
The number of merge requests associated with the issue.
The IID of a merge request in which to resolve all issues. This fills out the issue with a default description and mark all discussions as resolved. When passing a description or title, these values take precedence over the default values.
The global ID of a milestone to assign issue. To find the milestone_id associated with a milestone, view an issue with the milestone assigned and use the API to retrieve the issue's details.
The references of the issue.
Whether the authenticated user is subscribed to the issue or not.
The task completion status. It's always a one element list.
The time estimate of the issue.
The total time spent of the issue.
The number of user notes on the issue.