From 89bf0102e1009b4184751776717dd183341d87ed Mon Sep 17 00:00:00 2001 From: Joe Robinson Date: Thu, 10 Dec 2015 17:48:03 +0000 Subject: Add basic gitlab controller for testing --- .../blaears/controllers/GitRelayController.java | 34 +++++++++++++ .../co/blatech/blaears/models/gitlab/Commit.java | 44 +++++++++++++++++ .../uk/co/blatech/blaears/models/gitlab/Push.java | 55 ++++++++++++++++++++++ .../blatech/blaears/models/gitlab/Repository.java | 27 +++++++++++ src/main/resources/templates/gitlab.vm | 10 ++++ 5 files changed, 170 insertions(+) create mode 100644 src/main/java/uk/co/blatech/blaears/controllers/GitRelayController.java create mode 100644 src/main/java/uk/co/blatech/blaears/models/gitlab/Commit.java create mode 100644 src/main/java/uk/co/blatech/blaears/models/gitlab/Push.java create mode 100644 src/main/java/uk/co/blatech/blaears/models/gitlab/Repository.java create mode 100644 src/main/resources/templates/gitlab.vm (limited to 'src/main') diff --git a/src/main/java/uk/co/blatech/blaears/controllers/GitRelayController.java b/src/main/java/uk/co/blatech/blaears/controllers/GitRelayController.java new file mode 100644 index 0000000..1fd9bc6 --- /dev/null +++ b/src/main/java/uk/co/blatech/blaears/controllers/GitRelayController.java @@ -0,0 +1,34 @@ +package uk.co.blatech.blaears.controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import uk.co.blatech.blaears.models.gitlab.Push; + +import java.io.IOException; + +/** + * Takes messages sent by GitLab and sends them to IRC + * Currently just testing to see what we get + */ +@Controller +public class GitRelayController { + + @RequestMapping(value = "/gitlab", method = RequestMethod.PUT) + String relay(@RequestBody Push pushMsg, Model model){ + try { + //DANGER + Runtime.getRuntime().exec(new String[]{"/bin/bash", "-c", "echo theblueroom " + pushMsg.getUserName() + " pushed to " + pushMsg.getRepository().getName() + " | bash /home/smsd/msgrelay.bash "}); + model.addAttribute("result", "OK"); + } catch (IOException e) { + System.out.println("Failed to run command"); + e.printStackTrace(); + model.addAttribute("result", "failed"); + } + return "gitlab"; + } + +} diff --git a/src/main/java/uk/co/blatech/blaears/models/gitlab/Commit.java b/src/main/java/uk/co/blatech/blaears/models/gitlab/Commit.java new file mode 100644 index 0000000..f5db061 --- /dev/null +++ b/src/main/java/uk/co/blatech/blaears/models/gitlab/Commit.java @@ -0,0 +1,44 @@ +package uk.co.blatech.blaears.models.gitlab; + +/** + * Model for a GitLab repository as contained in hook messages, to be converted from JSON + * See http://www.blatech.co.uk/help/web_hooks/web_hooks + */ +public class Commit { + String id; + String message; + String timestamp; + String url; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getTimestamp() { + return timestamp; + } + + public void setTimestamp(String timestamp) { + this.timestamp = timestamp; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } +} diff --git a/src/main/java/uk/co/blatech/blaears/models/gitlab/Push.java b/src/main/java/uk/co/blatech/blaears/models/gitlab/Push.java new file mode 100644 index 0000000..bd8c961 --- /dev/null +++ b/src/main/java/uk/co/blatech/blaears/models/gitlab/Push.java @@ -0,0 +1,55 @@ +package uk.co.blatech.blaears.models.gitlab; + +/** + * Model for a GitLab Push message, to be converted from JSON + * See http://www.blatech.co.uk/help/web_hooks/web_hooks + */ +public class Push { + + String objectKind; + String userName; + Repository repository; + + Commit[] commits; + int totalCommitsCount; + + public String getObjectKind() { + return objectKind; + } + + public void setObjectKind(String objectKind) { + this.objectKind = objectKind; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public Repository getRepository() { + return repository; + } + + public void setRepository(Repository repository) { + this.repository = repository; + } + + public Commit[] getCommits() { + return commits; + } + + public void setCommits(Commit[] commits) { + this.commits = commits; + } + + public int getTotalCommitsCount() { + return totalCommitsCount; + } + + public void setTotalCommitsCount(int totalCommitsCount) { + this.totalCommitsCount = totalCommitsCount; + } +} diff --git a/src/main/java/uk/co/blatech/blaears/models/gitlab/Repository.java b/src/main/java/uk/co/blatech/blaears/models/gitlab/Repository.java new file mode 100644 index 0000000..0e1e26f --- /dev/null +++ b/src/main/java/uk/co/blatech/blaears/models/gitlab/Repository.java @@ -0,0 +1,27 @@ +package uk.co.blatech.blaears.models.gitlab; + +/** + * Model for a GitLab repository as contained in hook messages, to be converted from JSON + * See http://www.blatech.co.uk/help/web_hooks/web_hooks + */ +public class Repository { + String name; + String url; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + +} diff --git a/src/main/resources/templates/gitlab.vm b/src/main/resources/templates/gitlab.vm new file mode 100644 index 0000000..e3529fc --- /dev/null +++ b/src/main/resources/templates/gitlab.vm @@ -0,0 +1,10 @@ + + + + + + + + $body + + \ No newline at end of file -- cgit v1.2.3