Skip to content

Commit

Permalink
Decouple 'commit' object and add commit.link (#51)
Browse files Browse the repository at this point in the history
* Decouple commit out from build and add commit.link

* Fix tests for Commit decouple

* Update documentation for Commit decouple
  • Loading branch information
rafi authored and appleboy committed Sep 11, 2017
1 parent 709c4ce commit 6f651a9
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 49 deletions.
30 changes: 18 additions & 12 deletions DOCS.md
Expand Up @@ -207,6 +207,24 @@ repo.owner
repo.name
: repository name

commit.sha
: git sha for current commit

commit.branch
: git branch for current commit

commit.link
: git commit link in remote

commit.author
: git author for current commit

commit.email
: git author email for current commit

commit.message
: git current commit message

build.status
: build status type enumeration, either `success` or `failure`

Expand All @@ -216,21 +234,9 @@ build.event
build.number
: build number

build.commit
: git sha for current commit

build.branch
: git branch for current commit

build.tag
: git tag for current commit

build.ref
: git ref for current commit

build.author
: git author for current commit

build.link
: link the the build results in drone

Expand Down
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -81,6 +81,7 @@ docker run --rm \
-e DRONE_REPO_NAME=go-hello \
-e DRONE_COMMIT_SHA=e5e82b5eb3737205c25955dcc3dcacc839b7be52 \
-e DRONE_COMMIT_BRANCH=master \
-e DRONE_COMMIT_LINK=https://github.com/appleboy/go-hello/compare/master... \
-e DRONE_COMMIT_AUTHOR=appleboy \
-e DRONE_COMMIT_AUTHOR_EMAIL=appleboy@gmail.com \
-e DRONE_BUILD_NUMBER=1 \
Expand Down
18 changes: 13 additions & 5 deletions main.go
Expand Up @@ -115,6 +115,11 @@ func main() {
Usage: "git commit branch",
EnvVar: "DRONE_COMMIT_BRANCH",
},
cli.StringFlag{
Name: "commit.link",
Usage: "git commit link",
EnvVar: "DRONE_COMMIT_LINK",
},
cli.StringFlag{
Name: "commit.author",
Usage: "git author name",
Expand Down Expand Up @@ -191,16 +196,19 @@ func run(c *cli.Context) error {
Owner: c.String("repo.owner"),
Name: c.String("repo.name"),
},
Commit: Commit{
Sha: c.String("commit.sha"),
Branch: c.String("commit.branch"),
Link: c.String("commit.link"),
Author: c.String("commit.author"),
Email: c.String("commit.author.email"),
Message: c.String("commit.message"),
},
Build: Build{
Tag: c.String("build.tag"),
Number: c.Int("build.number"),
Event: c.String("build.event"),
Status: c.String("build.status"),
Commit: c.String("commit.sha"),
Branch: c.String("commit.branch"),
Author: c.String("commit.author"),
Email: c.String("commit.author.email"),
Message: c.String("commit.message"),
Link: c.String("build.link"),
Started: c.Float64("job.started"),
Finished: c.Float64("job.finished"),
Expand Down
39 changes: 24 additions & 15 deletions plugin.go
Expand Up @@ -19,16 +19,21 @@ type (
Name string
}

// Commit information.
Commit struct {
Sha string
Branch string
Link string
Author string
Email string
Message string
}

// Build information.
Build struct {
Tag string
Event string
Number int
Commit string
Message string
Branch string
Author string
Email string
Status string
Link string
Started float64
Expand Down Expand Up @@ -58,6 +63,7 @@ type (
// Plugin values.
Plugin struct {
Repo Repo
Commit Commit
Build Build
Config Config
}
Expand Down Expand Up @@ -212,7 +218,7 @@ func (p Plugin) Exec() error {
if len(p.Config.Message) > 0 {
message = p.Config.Message
} else {
message = p.Message(p.Repo, p.Build)
message = p.Message(p.Repo, p.Commit, p.Build)
}

bot, err := tgbotapi.NewBotAPI(p.Config.Token)
Expand All @@ -225,7 +231,7 @@ func (p Plugin) Exec() error {

bot.Debug = p.Config.Debug

ids := parseTo(p.Config.To, p.Build.Email, p.Config.MatchEmail)
ids := parseTo(p.Config.To, p.Commit.Email, p.Config.MatchEmail)
photos := fileExist(trimElement(p.Config.Photo))
documents := fileExist(trimElement(p.Config.Document))
stickers := fileExist(trimElement(p.Config.Sticker))
Expand All @@ -240,10 +246,13 @@ func (p Plugin) Exec() error {
if p.Config.Format == "markdown" {
message = escapeMarkdown(message)

p.Build.Message = escapeMarkdownOne(p.Build.Message)
p.Build.Branch = escapeMarkdownOne(p.Build.Branch)
p.Build.Author = escapeMarkdownOne(p.Build.Author)
p.Build.Email = escapeMarkdownOne(p.Build.Email)
p.Commit.Message = escapeMarkdownOne(p.Commit.Message)
p.Commit.Branch = escapeMarkdownOne(p.Commit.Branch)
p.Commit.Link = escapeMarkdownOne(p.Commit.Link)
p.Commit.Author = escapeMarkdownOne(p.Commit.Author)
p.Commit.Email = escapeMarkdownOne(p.Commit.Email)

p.Build.Tag = escapeMarkdownOne(p.Build.Tag)
p.Build.Link = escapeMarkdownOne(p.Build.Link)
p.Build.PR = escapeMarkdownOne(p.Build.PR)

Expand Down Expand Up @@ -333,12 +342,12 @@ func (p Plugin) Send(bot *tgbotapi.BotAPI, msg tgbotapi.Chattable) {
}

// Message is plugin default message.
func (p Plugin) Message(repo Repo, build Build) []string {
func (p Plugin) Message(repo Repo, commit Commit, build Build) []string {
return []string{fmt.Sprintf("[%s] <%s> (%s)『%s』by %s",
build.Status,
build.Link,
build.Branch,
build.Message,
build.Author,
commit.Branch,
commit.Message,
commit.Author,
)}
}
40 changes: 23 additions & 17 deletions plugin_test.go
Expand Up @@ -33,18 +33,20 @@ func TestDefaultMessageFormat(t *testing.T) {
Name: "go-hello",
Owner: "appleboy",
},
Build: Build{
Number: 101,
Status: "success",
Link: "https://github.com/appleboy/go-hello",
Commit: Commit{
Sha: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2",
Author: "Bo-Yi Wu",
Branch: "master",
Message: "update travis",
Commit: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2",
},
Build: Build{
Number: 101,
Status: "success",
Link: "https://github.com/appleboy/go-hello",
},
}

message := plugin.Message(plugin.Repo, plugin.Build)
message := plugin.Message(plugin.Repo, plugin.Commit, plugin.Build)

assert.Equal(t, []string{"[success] <https://github.com/appleboy/go-hello> (master)『update travis』by Bo-Yi Wu"}, message)
}
Expand All @@ -55,17 +57,19 @@ func TestSendMessage(t *testing.T) {
Name: "go-hello",
Owner: "appleboy",
},
Build: Build{
Tag: "1.0.0",
Number: 101,
Status: "success",
Link: "https://github.com/appleboy/go-hello",
Commit: Commit{
Sha: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2",
Author: "Bo-Yi Wu",
Branch: "master",
Message: "update travis by drone plugin",
Commit: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2",
Email: "test@gmail.com",
},
Build: Build{
Tag: "1.0.0",
Number: 101,
Status: "success",
Link: "https://github.com/appleboy/go-hello",
},

Config: Config{
Token: os.Getenv("TELEGRAM_TOKEN"),
Expand Down Expand Up @@ -103,14 +107,16 @@ func TestBotError(t *testing.T) {
Name: "go-hello",
Owner: "appleboy",
},
Build: Build{
Number: 101,
Status: "success",
Link: "https://github.com/appleboy/go-hello",
Commit: Commit{
Sha: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2",
Author: "Bo-Yi Wu",
Branch: "master",
Message: "update travis by drone plugin",
Commit: "e7c4f0a63ceeb42a39ac7806f7b51f3f0d204fd2",
},
Build: Build{
Number: 101,
Status: "success",
Link: "https://github.com/appleboy/go-hello",
},

Config: Config{
Expand Down

0 comments on commit 6f651a9

Please sign in to comment.