cachet alternatives and similar packages
Based on the "Third-party APIs" category.
Alternatively, view cachet alternatives based on common mentions on social networks and blogs.
-
go-openai
OpenAI ChatGPT, GPT-3, GPT-4, DALL·E, Whisper API wrapper for Go -
goamz
Popular fork of goamz which adds some missing API calls to certain packages. -
webhooks
:fishing_pole_and_fish: Webhook receiver for GitHub, Bitbucket, GitLab, Gogs -
githubql
Package githubv4 is a client library for accessing GitHub GraphQL API v4 (https://docs.github.com/en/graphql). -
twitter-scraper
Scrape the Twitter Frontend API without authentication with Golang. -
lark
Feishu(飞书)/Lark Open API Go SDK, Support ALL Open API and Event Callback. -
openaigo
OpenAI GPT3/3.5 ChatGPT API Client Library for Go, simple, less dependencies, and well-tested -
gostorm
GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. -
hipchat (xmpp)
A golang package to communicate with HipChat over XMPP -
clarifai
DEPRECATED: please use https://github.com/Clarifai/clarifai-go-grpc -
go-lark
An easy-to-use SDK for Feishu and Lark Open Platform (Messaging API only) -
go-trending
Go library for accessing trending repositories and developers at Github. -
simples3
Simple no frills AWS S3 Golang Library using REST with V4 Signing (without AWS Go SDK) -
go-tgbot
Golang telegram bot API wrapper, session-based router and middleware -
go-postman-collection
Go module to work with Postman Collections -
ynab
Go client for the YNAB API. Unofficial. It covers 100% of the resources made available by the YNAB API.
Static code analysis for 29 languages.
Do you think we are missing an alternative of cachet or a related project?
Popular Comparisons
README
cachet
Go(lang) client library for Cachet (open source status page system).
Features
- Full API support
- Components
- Incidents
- Metrics
- Subscribers
- Various authentication methods (Basic Auth and Token based)
- Fully tested
Installation
It is go gettable
$ go get github.com/andygrunwald/cachet
(optional) to run unit / example tests:
$ cd $GOPATH/src/github.com/andygrunwald/cachet
$ go test -v ./...
API
Please have a look at the GoDoc documentation for a detailed API description.
Authentication
Cachet supports two different ways for authentication: BasicAuth and API Token. Both are supported by this library.
For BasicAuth you need to call the AuthenticationService and apply your email address and your password:
client.Authentication.SetBasicAuth("[email protected]", "test123")
To use the API Token way, you do nearly the same but use the SetTokenAuth
function:
client.Authentication.SetTokenAuth("MY-SECRET-TOKEN")
Examples
Further a few examples how the API can be used. A few more examples are available in the GoDoc examples section.
Ping
Call the API test endpoint. Example without error handling. Full example available in the GoDoc examples section.
package main
import (
"fmt"
"github.com/andygrunwald/cachet"
)
func main() {
client, _ := cachet.NewClient("https://demo.cachethq.io/", nil)
pong, resp, _ := client.General.Ping()
fmt.Printf("Result: %s\n", pong)
fmt.Printf("Status: %s\n", resp.Status)
// Output: Result: Pong!
// Status: 200 OK
}
Create a new component
Calling /components. Example without error handling. Full example available in the GoDoc examples section.
package main
import (
"fmt"
"github.com/andygrunwald/cachet"
)
func main() {
client, _ := cachet.NewClient("https://demo.cachethq.io/", nil)
client.Authentication.SetBasicAuth("[email protected]", "test123")
component := &cachet.Component{
Name: "Beer Fridge",
Description: "Status of the beer fridge in the kitchen",
Status: cachet.ComponentStatusOperational,
}
newComponent, resp, _ := client.Components.Create(component)
fmt.Printf("Result: %s\n", newComponent.Name)
if newComponent.ID > 0 {
fmt.Println("ID > 0!")
}
fmt.Printf("Status: %s\n", resp.Status)
// Output: Beer Fridge
// ID > 0!
// Status: 200 OK
}
Supported versions
Tested with v1.2.1 of Cachet. It may works with older and / or newer versions. Newer versions will be supported. Older versions not.
License
This project is released under the terms of the MIT license.
Contribution and Contact
Contribution, in any kind of way, is highly welcome! It doesn't matter if you are not able to write code. Creating issues or holding talks and help other people to use cachet is contribution, too! A few examples:
- Correct typos in the README / documentation
- Reporting bugs
- Implement a new feature or endpoint
- Sharing the love if cachet and help people to get use to it
If you are new to pull requests, checkout Collaborating on projects using issues and pull requests / Creating a pull request. If you've found a bug, a typo, have a question or a want to request new feature, please report it as a GitHub issue.
For other queries, i'm available on Twitter (@andygrunwald).
*Note that all licence references and agreements mentioned in the cachet README section above
are relevant to that project's source code only.