github / janky

Continuous integration server built on top of Jenkins and Hubot
MIT License
2.75k stars 213 forks source link

Making Git repo locations more human friendly #212

Closed mjrussell closed 6 years ago

mjrussell commented 9 years ago

The git repo URI returned by Janky isn't friendly to chat services/Jenkins jobs.

Here's what I mean, if I run

ci setup github/janky

Janky will create a build for repo git://github.com/github/janky and paste that back in chat whenever referencing the repo.

If I use a private repo instead, it uses the ssh format, i.e. git@github.com:github/janky-secrets

However it would be much more convenient if this used the https github format for displaying to users (so they can click on it in chat!). Also, inside of my jenkins template (for displaying github commit info), I have to use the following regex in my erb.

repo.include?("@github.com") ? repo.gsub(/:/,'/').gsub(/git@/,'https://') : repo.gsub(/git:\/\//,'https://')

I think it would worthwhile to add a repo url value which contains the https github url.

Unless there is something obvious I'm missing I'd like to make a PR for this

mattr- commented 9 years ago

I understand the click the link in chat use case and that's an awesome idea.

I don't understand why you're mucking around with the URLs in the jenkins template though. The goal of Janky is to replace the Jenkins UI as the frontend for your CI server along with providing the chatops integration.Are you still accessing the Jenkins UI directly?

mjrussell commented 9 years ago

Ah, I guess its because my current setup is using the Jenkins/Slack integration and I've been able to get better info if I hook in the git plugin within my jenkins template (i.e. commit changes). Here's an example: https://github.com/Simspace/janky-bot/blob/new-templates/config/sbt.xml.erb

Maybe I'm still missing a step in my workflow though, I'm still trying to figure out the ideal system and recently started using janky

mjrussell commented 9 years ago

Actually, maybe my notifications are just not setup correctly for hubot + slack

mattr- commented 9 years ago

IMHO, unless you're running out of available integrations on Slack, I'd set up Slack to listen to repo events directly via webhooks, in addition to the webhook that Janky puts on the repo in order to know when to queue builds. The direct Slack integration would give you a lot more information that you may not be getting now, such as when PRs are opened, PR and commit comments, pushes, etc.

Janky's designed to be the man in the middle, like so:

+----------+        +--------+       +----------+
|  github  |  <-->  | janky  | <-->  | jenkins  |
+----------+        +--------+       +----------+
                         ^
                         |        +---------+
                         +----->  |  slack  |
                                  | (hubot) |
                                  +---------+
mjrussell commented 9 years ago

Thanks for the advice, and of course I'm running out of integrations :) But I think I can cannibalize one I'm not using to make a better setup like you described.

I'll still try to work a PR for the original reason I opened this.

mattr- commented 9 years ago

With v0.11.1, you should be able to use the hubot chat service for janky and potentially save an integration by going through hubot rather than directly to the chat service. Obviously, since it's been out of the gemspec forever, I have no idea if it'll work or not. :disappointed_relieved:

mjrussell commented 9 years ago

Haha yeah that's what I've been trying to do which is how I noticed the gemspec problem. Seems like pushing to Janky via hubot is fine, but I have issues with the slack room notifications. Trying to see if its simple config problem or something more. If so I'll open a separate issue