def execute(self, args, ctrl_pressed, shift_pressed):
     import webbrowser
     build_result_key, plan_key = args[-2], args[-1]
     if ctrl_pressed:
         build_results = get_data_from_cache(STATUS_CACHE_KEY, UPDATE_INTERVAL_STATUS)
         build_result = next((br for br in build_results if br.build_result_key == build_result_key), None)
         webbrowser.open(build_result.artifact_href)
     elif shift_pressed:
         try:
             facade = build_bamboo_facade()
             facade.trigger_build(plan_key)
             print('Successfully triggered build for {}'.format(build_result_key))
         except Exception, e:
             print('Failed to trigger build for {}: {}'.format(build_result_key, str(e)))
def _num_pull_requests(mode):
    cache_key, update_interval = _pull_request_modes[mode]
    data = get_data_from_cache(cache_key, update_interval)
    return _counters.get(len(data), u'⑳⁺') if data else ''