mirror of
https://github.com/thegeeklab/drone-matrix.git
synced 2024-11-21 18:10:39 +00:00
Initial import
This commit is contained in:
commit
cb1c390141
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
*.swp
|
||||
*~
|
||||
/drone-plugin-matrix
|
||||
/vendor
|
8
Dockerfile
Normal file
8
Dockerfile
Normal file
@ -0,0 +1,8 @@
|
||||
# vim: set ft=dockerfile:
|
||||
FROM alpine:3.6
|
||||
# Author with no obligation to maintain
|
||||
MAINTAINER Paul Tötterman <paul.totterman@gmail.com>
|
||||
|
||||
RUN apk --no-cache add ca-certificates
|
||||
ADD drone-plugin-matrix /
|
||||
ENTRYPOINT /drone-plugin-matrix
|
15
Gopkg.lock
generated
Normal file
15
Gopkg.lock
generated
Normal file
@ -0,0 +1,15 @@
|
||||
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
|
||||
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/matrix-org/gomatrix"
|
||||
packages = ["."]
|
||||
revision = "a7fc80c8060c2544fe5d4dae465b584f8e9b4e27"
|
||||
|
||||
[solve-meta]
|
||||
analyzer-name = "dep"
|
||||
analyzer-version = 1
|
||||
inputs-digest = "d631b7f46070377e77e160dda36075f4421695f6149e974427eafc8458012b3c"
|
||||
solver-name = "gps-cdcl"
|
||||
solver-version = 1
|
26
Gopkg.toml
Normal file
26
Gopkg.toml
Normal file
@ -0,0 +1,26 @@
|
||||
|
||||
# Gopkg.toml example
|
||||
#
|
||||
# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md
|
||||
# for detailed Gopkg.toml documentation.
|
||||
#
|
||||
# required = ["github.com/user/thing/cmd/thing"]
|
||||
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
|
||||
#
|
||||
# [[constraint]]
|
||||
# name = "github.com/user/project"
|
||||
# version = "1.0.0"
|
||||
#
|
||||
# [[constraint]]
|
||||
# name = "github.com/user/project2"
|
||||
# branch = "dev"
|
||||
# source = "github.com/myfork/project2"
|
||||
#
|
||||
# [[override]]
|
||||
# name = "github.com/x/y"
|
||||
# version = "2.4.0"
|
||||
|
||||
|
||||
[[constraint]]
|
||||
branch = "master"
|
||||
name = "github.com/matrix-org/gomatrix"
|
13
LICENSE
Normal file
13
LICENSE
Normal file
@ -0,0 +1,13 @@
|
||||
Copyright (c) 2017, Paul Tötterman <ptman@iki.fi>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
13
Makefile
Normal file
13
Makefile
Normal file
@ -0,0 +1,13 @@
|
||||
.PHONY: build
|
||||
build: drone-plugin-matrix
|
||||
|
||||
drone-plugin-matrix: main.go
|
||||
CGO_ENABLED=0 go build -ldflags '-s -w'
|
||||
|
||||
.PHONY: docker
|
||||
docker: drone-plugin-matrix
|
||||
docker build -t drone-plugin-matrix .
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f drone-plugin-matrix
|
25
README.md
Normal file
25
README.md
Normal file
@ -0,0 +1,25 @@
|
||||
# drone-plugin-matrix
|
||||
|
||||
[Drone](https://drone.io/) notifications to [Matrix](https://matrix.org/)
|
||||
|
||||
Usage:
|
||||
|
||||
```yaml
|
||||
matrix:
|
||||
image: ptman/drone-plugin-matrix
|
||||
homeserver: https://matrix.org
|
||||
roomid: '!0123456789abcdef:matrix.org' # room has to already be joined
|
||||
username: ourbot # either username
|
||||
password: *account-password* # and password
|
||||
userid: @ourbot:matrix.org # or userid
|
||||
accesstoken: 0123456789abcdef # and accesstoken
|
||||
secrets: # and a better idea
|
||||
- source: matrix_username # is to not store
|
||||
target: plugin_username # credentials in the git repo
|
||||
- source: matrix_password # but instead use drone
|
||||
target: plugin_password # secret management
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
ISC
|
65
main.go
Normal file
65
main.go
Normal file
@ -0,0 +1,65 @@
|
||||
// Copyright (c) 2017 Paul Tötterman <ptman@iki.fi>. All rights reserved.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/matrix-org/gomatrix"
|
||||
)
|
||||
|
||||
func main() {
|
||||
homeServer := os.Getenv("PLUGIN_HOMESERVER")
|
||||
userName := os.Getenv("PLUGIN_USERNAME")
|
||||
password := os.Getenv("PLUGIN_PASSWORD")
|
||||
|
||||
userID := os.Getenv("PLUGIN_USERID")
|
||||
accessToken := os.Getenv("PLUGIN_ACCESSTOKEN")
|
||||
|
||||
roomID := os.Getenv("PLUGIN_ROOMID")
|
||||
message := os.Getenv("PLUGIN_MESSAGE")
|
||||
|
||||
repoOwner := os.Getenv("DRONE_REPO_OWNER")
|
||||
repoName := os.Getenv("DRONE_REPO_NAME")
|
||||
|
||||
buildStatus := os.Getenv("DRONE_BUILD_STATUS")
|
||||
buildLink := os.Getenv("DRONE_BUILD_LINK")
|
||||
buildBranch := os.Getenv("DRONE_BRANCH")
|
||||
buildAuthor := os.Getenv("DRONE_COMMIT_AUTHOR")
|
||||
buildCommit := os.Getenv("DRONE_COMMIT")
|
||||
|
||||
m, err := gomatrix.NewClient(homeServer, userID, accessToken)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if userID == "" || accessToken == "" {
|
||||
r, err := m.Login(&gomatrix.ReqLogin{
|
||||
Type: "m.login.password",
|
||||
User: userName,
|
||||
Password: password,
|
||||
InitialDeviceDisplayName: "Drone",
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
m.SetCredentials(r.UserID, r.AccessToken)
|
||||
}
|
||||
|
||||
if message == "" {
|
||||
message = fmt.Sprintf("Build %s <%s> %s/%s#%s (%s) by %s",
|
||||
buildStatus,
|
||||
buildLink,
|
||||
repoOwner,
|
||||
repoName,
|
||||
buildCommit[:8],
|
||||
buildBranch,
|
||||
buildAuthor)
|
||||
}
|
||||
|
||||
if _, err := m.SendNotice(roomID, message); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user