Giter Site home page Giter Site logo

erikdoe / ccmenu Goto Github PK

View Code? Open in Web Editor NEW
337.0 14.0 41.0 7.48 MB

CCMenu is a Mac application to monitor continuous integration servers.

Home Page: http://ccmenu.org

License: Other

Objective-C 98.03% Makefile 0.18% Ruby 1.23% Shell 0.02% C 0.55%
ccmenu thoughtworks jenkins ci cicd ci-cd continuous-integration continuous-delivery gocd cruisecontrol

ccmenu's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ccmenu's Issues

invalid SSL certificate promps should now be ever showed

Almost every time I connect to a WiFi with a captive portal I get a popup from CCMenu that complains about invalid certificates.

This should never happen. If CCMenu would encounter this it should only assume that the network connection is down, nothing more prompts for SSL certificates are only a bad user experience and a high security risks. Any invalid SSL certificate should be considered a failure, no prompts at all. Less Is More ;)

screenshot 2015-01-26 09 24 19

El Capitan: URL with spaces are not linking correctly

I have a project in my firewalled environment named "QA Project". Everything works fine except when I click on the taskbar trying to link to it - instead of taking me to http://ci/job/QA%20Project/ it takes me to http://ci/job/QA%2520Project/ (Notice the extra characters 25). I am on Mac OSX El Capitan. Is this a behavior with CC Menu or the OS Behavior ?

Note: This does not happen when I don't have spaces for my project name. For example QA_Project works just fine.

Related to #29 or #41 ?

Tagging releases?

Hi there!

I'm trying to tackle the ccmenu-jenkins-authentication-via-github hurdle, and from the CHANGES.txt is appears that some work was done in 1.9 to make things better, as well as some closed issues.

It's not clear when a changeset was released - if at all - any chance you might consider adding release tags when cutting a release for the App Store?

(Also, is there some way I can grab the code, compile/install it myself to test the behavior?

Unable to turn off a given type of notification

Currently it's not possible to turn off some kind of event notifications, f.e. one do not interested in successful builds. Earlier version had this option, now only the sound alert can be customized or turned off not the hole notification of a given state.

[copied from: https://sourceforge.net/p/ccmenu/bugs/18/]

Jenkins authentication not working

I have Jenkins running on a local box using built-in matrix security and the main user has full permissions. I cannot get your app to auth with either the username/password conbo in the auth box or the user/api key in the url box. Alternatively, I cannot access cc.xml using the api-key/url method you guys described. I can only imagine that your auth methods are broken for the app.

Jenkins: 1.597
CCMenu: 1.8 (266a)
OSX: 10.10.1

Love the tool and would love to make it work without exposing job details to the world.

Thanks!

URL with already-escaped characters incorrectly escaped when opening project in browser

If a server URL already has escaped characters in it, clicking on a project causes the % character to be escaped when opening the project in a browser.

Example

Server URL = https://my.server.com/view/Build%20Artifacts/cc.xml
URL opened in browser = https://my.server.com/view/Build%2520Artifacts/job/my_build/

note that %25 is the result of escaping a % character

Environment Details

CCMenu version: 1.10.1
OS X version: 10.11
Server type: Jenkins

Enable/disable user notification per project

Hi,

I'd like to choose which project should send me an user notification.

More context about my use case: each commit trigger a lot of stages and each stage is a project, so I constantly receive user notification (that on the right top). There's some specific projects that I care more than others. For example, I'd like to be notified immediately when someone trigger production, but I don't want to see a user notification for a push into the docs project.

Does it make sense for you?

ps: great work!

Add ability to group build tasks

We have two different builds with very similar steps that are all setup as subtasks of the main build. I'd love to have some way to group all of the related tasks so I can tell which "Unit Test" task is which.

The ability to add an arbitrary prefix to the task name would work as well (I think I saw that in another issue), but the ability to group would work a bit better imo.

Ability to prepend jenkins instance name to build name

In my workplace we have one Jenkins instance per project, which is running a pipeline of jobs such as build/system test/user acceptance etc.

Each Jenkins has identical build names and it makes it difficult to understand which build is associated with a given project in CCMenu.

It would be nice if we could specify a Jenkins Name/Project Name that is prepended on to each Jenkins Build.

screen shot 2015-04-01 at 15 22 53

Support NTLM authentication (was: Adding projects seems to be broken?)

I just built & ran from the current code, as I was having trouble with Jenkins authentication.

The authentication seems to be working now (I'm getting a list of jobs to add), but when I select a job and hit Add, nothing happens.

Fwiw I'm getting the following console output when the app starts:

screen shot 2015-02-02 at 13 03 21

Authenticate with Github

Hey there,

Is there any way we can connect to a Jenkins box that requires authenticating into Github first? That would be great for those of us who use the Github Authentication Plugin + Github OAuth.

Copying Config Between Machines

I've been digging around to try to copy my CCMenu config between machines and found the following file:

~/Library/Containers/net.sourceforge.cruisecontrol.CCMenu/Data/Library/Preferences/net.sourceforge.cruisecontrol.CCMenu.plist

Copying this to another machine however hasn't worked, although it's the only file I found while grepping that contained my travis URLs... and removing the file does wipe out the configuration so I'm sure it's being read.

Is this a general non-portability issue with the plist format or am I missing something?

It would be nice if configuration management of CCMenu was documented.

Clicking on a project ignores teamcity http port

Say I add the http://teamcity:8111/httpAuth/app/rest/cctray/projects.xml url and choose some projects. In the project list, clicking on one of them will open http://teamcity/viewType.html?buildTypeId=ProjectName_Target in my browser, but without the 8111 port.

create ccmenu github organization

I do think that it would be a good idea to create a github organization for ccmenu and use it as the main repository.

Why?

  • improve accessibility of ccmenu - when you google, you get lots of github forks of is hard to pick the right one.
  • as an organization you could give push access to the best contributors or to share management, preventing the single point of failure problem of one-man projects
  • you can move the ownership from personal account to organization account with a single click, you would remain the full owner of the organization

BTW, I used a similar approach for the few Python projects that I am maintaining, by creating a github organization for them (is called PyContribs). I worked quite well for more than two years and I do not see any downsides yet. I guess not so many people are using virtual organizations because they have the wrong impression that they do require a paid plan.

CCMenu crashes when adding project - NSInvalidArgumentException

Every time i try to add a project to CCMenu 1.10.3, it crashes and presents me with the following error:

ccmenu crash

I have never been able to get it to run. I have tried deleting the app package, reinstalled from the app store, with no luck. Suggestions? Or another similar ticket i can reference?
Sorry in advance the lack of details. I'm happy to provide more. Thanks.

Compatibility with Folders plugin

Hello,

CCMenu seems to be not compatible with the Folders plugin, probably because the related jobs does not appear in http://jenkins-server/cc.xml.
Is there any way to configure it or a work in progress to support it?

Thx

Change icon selection algorithm to match CCTray

Current behaviors:

CCMenu: Shows the most recent build status. Seems to prefer building statuses to non-building statuses; if no builds are active, shows red if there are any failing projects, otherwise green.

CCTray: Shows the "worst" status of all monitored projects. Statuses, from best to worst are as follows (disconnected is omitted because I don't recall where it fits in)
Successful
Successful and building
Broken and building
Broken

I find CCTray's behavior to be vastly preferable to that of CCMenu: if I am monitoring two projects, one of which is successful and building and one broken, I would much rather see a red icon in my menu. As it is now, I feel like I can't trust the single CCMenu icon, and I must often click the icon to see full statuses for all of my projects in order to tell what is really going on.

Similarly, if one project is broken, and another is broken and building, I'd still rather see the red icon: if I'm using CCTray, and orange icon tells me that someone else may have already fixed the build, while a red icon tells me that there's still work to do.

[copied from: https://sourceforge.net/p/ccmenu/feature-requests/6/]

Execute Script on Build Result

Hey
As a suggestion, I would love to see an option to execute an executable File (e.g. shell script) once a build result is there, and handing over the build status (Success, Fixed, Broken, Still Broken), along with the project name to that script.

What do you think?

support for unstable builds (orange/yellow/amber)

It seems that CCTray does not support the three colour states, where you do also have a yellow one that marks "unstable" build, usually ones the have a lower code-coverage.

For example we have code coverage alerts configured to mark builds as unstable if the coverage went down, but this can happen quite easily by rounding errors and now I see lots of "red"s which are in fact yellow-ish ones.

Aborted builds show up as failed in the menubar

It seems like aborted builds show up as failed in the menu. I think it would make more sense to show a gray icon instead of a red one for aborted builds (aborting isn't necessarily a bad thing).

For example, this is what my menu looks like:

image

... for a job who's last build was merely aborted:

image

Another view, from the project window where it says that build "failed" despite it only being aborted (note 1:55pm is 5:55pm because my computer is in EST while the build server is in UTC):

image

Google login

App doesn't support Google Apps Login, could you add this?

Authentication issue with Jenkins

Hi. I have a fresh Jenkins secured setup (TLS on a non-standard port, user account) and, as I merrily went to configure this marvelous CCMenu to fetch those new jobs statuses... it just said no.

To reproduce:

Not too sure how to debug this, I checked Jenkins logs that mentioned the CCMenu request to be treated as anonymous. So... I checked both requests details with http://requestb.in and all I could spot was the missing Authorization header when using CCMenu:

Accept-Language: fr-fr
Via: 1.1 vegur
Host: requestb.in
Connect-Time: 63
Connection: close
Accept-Encoding: gzip, deflate
Total-Route-Time: 0
X-Request-Id: 083aa043-5236-49ad-b45b-a7625f5cfcae
User-Agent: CCMenu/266 CFNetwork/720.1.1 Darwin/14.0.0 (x86_64)
Accept: */*

Curl does send it:

Via: 1.1 vegur
Host: requestb.in
Connect-Time: 1
Connection: close
Total-Route-Time: 0
X-Request-Id: 0e492527-c74d-4e99-afc4-6114030bc9ed
User-Agent: curl/7.37.1
Authorization: Basic dXNlcjpwYXNz
Accept: */*

While writing this report, I found https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients - I quote:

"Note that Jenkins does not do any authorization negotiation. Ie. it immediately returns a 403 (Forbidden) response instead of a 401 (Unauthorized) response, so make sure to send the authentication information from the first request (aka "preemptive authentication".)"

I am not sure this is the cause, but it would explain why the Authorization header is not sent on requestb.in as well: CCMenu, or CFNetwork would expect a 401 returned by the server before sending auth credentials; alas, Jenkins is not so chatty.

I'm afraid I can't help much on the code level at this point, but I hope this helps find and fix the cause. Thank you so much for CCMenu anyway!

Exporting project list

Is there a config file somewhere where the list of projects is stored?

It would be useful to back up and use across multiple machines.

SSL client certificate support?

We protect our Jenkins server with TLS mutual authentication, which means that in browsers we preset our client certificates to the server (rather, the proxy in front of it). However, CCMenu does not appear to support a way of configuring a client certificate to use (eg, from the Apple Keychain).

Any chance of getting this support added?

Enhancement: Adding a CLI Tool

First off: great tool, I think it's fantastic that you've provided this tool, and I want to let you know that I definitely appreciate it!

So we use CircleCI at my company, and new test builds will run on every git push for all branches. CircleCI has email notifications on build successes, but they won't allow granular control over which branch you're interested in.

So the ask: let's say I have a branch called feature-branch-1 and I push new commits to it, CircleCI will run new builds, and the build status feed URL is a function of the branch name. Thus, what would be sweet is to leverage a new CLI tool that could add/remove project URLs into CCMenu. That way I can write simple bash scripts that wraps the logic around 1) handling git push and 2) adding the project URL to CCMenu like so:

git push origin feature-branch-1
ccmenu add "https://circleci.com/gh/johnkchow/some-repo/tree/feature-branch-1.cc.xml?circle-token=$CIRCLE_CI_TOKEN"

Just a thought, thanks!

Support for importing/exporting of projects

It would be useful to have import/export/sync options so I can host my project settings on something like Dropbox and have CCMenu read from that location across my machines.

URL concatenation is incorrect with a period in the username

The behaviour of the auth screen has issues -

  • even with "use URL as entered above" selected, the user @ values are propagated into the Feed URL field
  • My user contains a period, user.name, this isn't being parsed correctly
  • As the user and password fields are edited, multiple values are embedded into the
    screen shot 2015-07-28 at 4 05 51 pm

Automatically add new projects

I'm using feature builds and some of the SAAS based CI servers. They will automatically create new projects based off of feature branches and build them. I'd love to be able to point ccmenu at the cc based xml file and have it automatically handle the list of projects based out of the url.

[copied from: https://sourceforge.net/p/ccmenu/feature-requests/14/]

integrate ccmenu with bamboo ci

At this moment it seems that Atlassian Bamboo does not publish build status information using the cc.xml format, preferring to use their own format (as opposed to 99% of open-source and commercial build servers).

There is a feature request for adding this at https://jira.atlassian.com/browse/BAM-2800 which is 8 years old.

It seem far more likely to add support for Bamboo in CCMenu than pursuing Atlassian to implement it.

I do encourage anyone, that want to see this fixed, to comment on Atlassian bug and to tweet about it using http://ctt.ec/885xz

Wrong IP address when I select the project from the menu

I have changed the IP of my buildservers. I have recreated the project list under preferences and the status is displayed correctly in the menu, but when I select the menu item, the browser shows the old IP of the project. This makes it impossible to open the project status page from the menu.

Manual refresh option

There should be a menu option allowing the user to tell CCMenu to ping all cruise control servers manually. The current workaround for this is to go into settings and adjust the automatic refresh to 5 seconds temporarily.

[Copied from: https://sourceforge.net/p/ccmenu/feature-requests/10/]

Encoding issue for project page URL

OS X El Capitan support

Whilst attempting to add a GoCD cctray feed xml which is running on http only, we get a message stating that App Transport Security policy prevents from adding a non https url. Is there a way to override this behaviour in CCMenu?

App Transport Security policy problem with CCMenu 1.10.1

Was working perfectly until I updated this morning, now I get this when trying to connect to the same Jenkins server.

"...The resource could not be loaded because the App Transport Security policy requires the use of a secure connection."

Feature Request: Alert when build has started

Add option with notification/sound that can be triggered when a build starts. Useful for team environment when you want to be alerted that someone else's checkin has just kicked off CI.

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.