Giter Site home page Giter Site logo

notify's Introduction

notify logo

codecov Go Report Card Codacy Badge Maintainability go.dev reference

A dead simple Go library for sending notifications to various messaging services.

About

Notify was born out of my own need to have my API servers running in production be able to notify me when critical errors occur. Of course, Notify can be used for any other purpose as well. The library is kept as simple as possible for quick integration and ease of use.

Disclaimer

Any misuse of this library is your own liability and responsibility and cannot be attributed to the authors of this library. See license for more.

Spamming through the use of this library may get you permanently banned on most supported platforms.

Since Notify is highly dependent on the consistency of the supported external services and the corresponding latest client libraries, we cannot guarantee its reliability nor its consistency, and therefore you should probably not use or rely on Notify in critical scenarios.

Install

go get -u github.com/nikoksr/notify

Example usage

// Create a telegram service. Ignoring error for demo simplicity.
telegramService, _ := telegram.New("your_telegram_api_token")

// Passing a telegram chat id as receiver for our messages.
// Basically where should our message be sent?
telegramService.AddReceivers(-1234567890)

// Tell our notifier to use the telegram service. You can repeat the above process
// for as many services as you like and just tell the notifier to use them.
// Inspired by http middlewares used in higher level libraries.
notify.UseServices(telegramService)

// Send a test message.
_ = notify.Send(
	context.Background(),
	"Subject/Title",
	"The actual message - Hello, you awesome gophers! :)",
)

Recommendation

In this example, we use the global Send() function. Similar to most logging libraries such as zap, we provide global functions for convenience. However, as with most logging libraries, we also recommend avoiding the use of global functions as much as possible. Instead, use one of our versatile constructor functions to create a new local Notify instance and pass it down the stream.

Read the library docs for more information.

Contributing

Yes, please! Contributions of all kinds are very welcome! Feel free to check our open issues. Please also take a look at the contribution guidelines.

Psst, don't forget to check the list of missing services waiting to be added by you or create a new issue if you want a new service to be added.

Supported services

Click here to request a missing service.

Service Path Credits Status
Amazon SES service/amazonses aws/aws-sdk-go-v2 ✔️
Amazon SNS service/amazonsns aws/aws-sdk-go-v2 ✔️
Bark service/bark - ✔️
DingTalk service/dinding blinkbean/dingtalk ✔️
Discord service/discord bwmarrin/discordgo ✔️
Email service/mail jordan-wright/email ✔️
Firebase Cloud Messaging service/fcm appleboy/go-fcm ✔️
Google Chat service/googlechat googleapis/google-api-go-client ✔️
HTTP service/http - ✔️
Lark service/lark go-lark/lark ✔️
Line service/line line/line-bot-sdk-go ✔️
Line Notify service/line utahta/go-linenotify ✔️
Mailgun service/mailgun mailgun/mailgun-go ✔️
Matrix service/matrix mautrix/go ✔️
Microsoft Teams service/msteams atc0005/go-teams-notify ✔️
Plivo service/plivo plivo/plivo-go ✔️
Pushover service/pushover gregdel/pushover ✔️
Pushbullet service/pushbullet cschomburg/go-pushbullet ✔️
Reddit service/reddit vartanbeno/go-reddit ✔️
RocketChat service/rocketchat RocketChat/Rocket.Chat.Go.SDK ✔️
SendGrid service/sendgrid sendgrid/sendgrid-go ✔️
Slack service/slack slack-go/slack ✔️
Syslog service/syslog log/syslog ✔️
Telegram service/telegram go-telegram-bot-api/telegram-bot-api ✔️
TextMagic service/textmagic textmagic/textmagic-rest-go-v2 ✔️
Twilio service/twilio kevinburke/twilio-go ✔️
Twitter service/twitter drswork/go-twitter ✔️
Viber service/viber mileusna/viber ✔️
WeChat service/wechat silenceper/wechat ✔️
Webpush Notification service/webpush SherClockHolmes/webpush-go ✔️
WhatsApp service/whatsapp Rhymen/go-whatsapp

Special Thanks

Maintainers

Logo

The logo was made by the amazing MariaLetta.

Similar projects

Just to clarify, Notify was not inspired by any other project. I created it as a tiny subpackage of a larger project and only later decided to make it a standalone project. In this section I just want to mention other great projects.

Show your support

Please give a ⭐️ if you like the project! It draws more attention to the project, which helps us improve it even faster.

notify's People

Contributors

arnocornette avatar chanioxaris avatar checkaayush avatar dependabot[bot] avatar ethanefung avatar grantbirki avatar gtourkas avatar hasit avatar himsngh avatar imgbotapp avatar immanuelhume avatar irfansofyana avatar janboll avatar joshm91 avatar karitham avatar kaviisuri avatar kha7iq avatar kodiakhq[bot] avatar krishanbhalla avatar mischala avatar moond4rk avatar nikoksr avatar panapol-p avatar pkwong4321 avatar prashanthpai avatar qwqcode avatar renovate-bot avatar renovate[bot] avatar svaloumas avatar yoelsusanto avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.