Skip to content

manuelbcd/go-openproject

Repository files navigation

OpenProject Go Client Library

codecov Go Report Card Go Reference License: MIT

Go client library for OpenProject

Openproject client library written in Go

API doc

https://docs.openproject.org/api

Usage examples

Single work-package request

Basic work-package retrieval (Single work-package with ID 36353 from community.openproject.org) Please check examples folder for different use-cases.

import (
	"fmt"
	openproj "github.com/manuelbcd/go-openproject"
)

func main() {
	client, _ := openproj.NewClient(nil, "https://community.openproject.org/")
	wpResponse, _, err := client.WorkPackage.Get("36353", nil)
	if err != nil {
		panic(err)
	}

	// Output specific fields from response
	fmt.Printf("\n\nSubject: %s \nDescription: %s\n\n", wpResponse.Subject, wpResponse.Description.Raw)
}

Create a work package

Create a single work package

package main

import (
	"fmt"
	"strings"

	openproj "github.com/manuelbcd/go-openproject"
)

func main() {
	client, err := openproj.NewClient(nil, "https://youropenproject.url")
	if err != nil {
		fmt.Printf("\nerror: %v\n", err)
		return
	}

	i := openproj.WorkPackage{
		Subject: "This is my test work package",
		Description: &openproj.WPDescription{
			Format: "textile",
			Raw:    "This is just a demo workpackage description",
		},
	}

	wpResponse, _, err := client.WorkPackage.Create(&i, "demo-project")
	if err != nil {
		panic(err)
	}

	// Output specific fields from response
	fmt.Printf("\n\nSubject: %s \nDescription: %s\n\n", wpResponse.Subject, wpResponse.Description.Raw)
}

Supported objects

Endpoint GET single GET many POST PUT DELETE
Attachments (Info) ✔️ ✔️ implementing - pending
Attachments (Download) ✔️ - - - -
Categories ✔️ ✔️ - - -
Documents implementing - - - -
Projects ✔️ ✔️ ✔️ pending pending
Queries ✔️ ✔️ ✔️ - ✔️
Schemas pending
Statuses ✔️ ✔️ pending pending pending
Users ✔️ ✔️ ✔️ ✔️
Wiki Pages ✔️ pending pending pending pending
WorkPackages ✔️ ✔️ ✔️ ✔️
Activities ✔️ ✔️

Thanks

Thanks Wieland, Oliver and OpenProject team for your support.

Thank you very much Andy Grunwald for the idea and your base code.

Inspired in Go Jira library

About

Go client library for OpenProject

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published