📚 go-openproject - Awesome Go Library for Third-party APIs

Go client library for interacting with [OpenProject](https://docs.openproject.org/api/) API
🏷️ Third-party APIs
📂 Third-party APIs
⭐ 0 stars
Detailed Description of go-openproject
OpenProject Go Client Library
Go client library for OpenProject

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) | :heavy_check_mark: | :heavy_check_mark: | implementing | - | pending |
| Attachments (Download) | :heavy_check_mark: | - | - | - | - |
| Categories | :heavy_check_mark: | :heavy_check_mark: | - | - | - |
| Documents | implementing | - | - | - | - |
| Projects | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | pending | pending |
| Queries | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - | :heavy_check_mark: |
| Schemas | pending | ||||
| Statuses | :heavy_check_mark: | :heavy_check_mark: | pending | pending | pending |
| Users | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
| Wiki Pages | :heavy_check_mark: | pending | pending | pending | pending |
| WorkPackages | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
| Activities | :heavy_check_mark: | :heavy_check_mark: |
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