This example demonstrates how to create a new project and then add a snippet to that specific project using the ProjectSnippets service.
package main
import (
"log"
"github.com/xanzy/go-gitlab"
)
func main() {
git, err := gitlab.NewClient("yourtokengoeshere")
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// Create new project
p := &gitlab.CreateProjectOptions{
Name: gitlab.Ptr("My Project"),
Description: gitlab.Ptr("Just a test project to play with"),
MergeRequestsAccessLevel: gitlab.Ptr(gitlab.EnabledAccessControl),
SnippetsAccessLevel: gitlab.Ptr(gitlab.EnabledAccessControl),
Visibility: gitlab.Ptr(gitlab.PublicVisibility),
}
project, _, err := git.Projects.CreateProject(p)
if err != nil {
log.Fatal(err)
}
// Add a new snippet
s := &gitlab.CreateProjectSnippetOptions{
Title: gitlab.Ptr("Dummy Snippet"),
FileName: gitlab.Ptr("snippet.go"),
Content: gitlab.Ptr("package main...."),
Visibility: gitlab.Ptr(gitlab.PublicVisibility),
}
_, _, err = git.ProjectSnippets.CreateSnippet(project.ID, s)
if err != nil {
log.Fatal(err)
}
}