Handles all your issue tracking tools and version control systems for you!
The Flower
library is a set of common protocols for repositories, task trackers, and messaging
systems that includes integrations with the most common ones like Jira, TFS, GitLab, GitHub, and
Exchange. It may be useful for creating external automation scenarios.
Initially, it was designed to handle all routine operations of the PT Application Firewall development team:
If you need separate Python libraries with similar functionality, you may visit DevOpsHQ.
To install, add the following to your project :dependencies
:
[flower "0.4.2"]
Or use the Leiningen template to build a new application from scratch:
lein new flower my-flower-application
To install Flower
as Emacs package, set up MELPA and then do the following:
M-x package-install [RET] flower [RET]
This library supports multiple integrations with various systems related to development flow.
So the best way to showcase its potential is to demonstrate how it handles each of them by example. We will keep adding to the existing examples upon introducing new functionality.
However, there is a certain caveat you should be aware of before we go any further. Any function in
the library may be considered pure (except ones having exclamation marks) only on the top level.
Underlying code implicitly uses cache that may be explicitly cleared by a user after each query
if so needed. To do it, the user needs to rebind flower.common/*behavior-implicit-cache*
variable
using flower.macros/without-implicit-cache
macro or call (function-name-clear-cache!)
where
function-name
is a function defined with the flower.macros/public-definition
macro.
(require '[clojure.string])
(require '[flower.tracker.core :as tracker.core]
'[flower.tracker.proto :as tracker.proto])
;; Print all opened tasks in our task tracker
(loop [[task & other-tasks] (-> "https://github.com/PositiveTechnologies/flower"
(tracker.core/get-tracker)
(tracker.proto/get-tasks))]
(if task
(let [task-parts (-> task
(select-keys [:task-type :task-id :task-title])
(vals))
task-string (clojure.string/join " " task-parts)]
(println task-string)
(recur other-tasks))))
(require 'flower)
;; Each element of `flower-tracker-queries` vector has the following format:
;; * Tracker URL or nil if only query changed
;; * Use tracker without auth if nil or with default auth otherwise - see Flower auth
;; * Tracker query or nil for default query if applicable
(setq flower-tracker-queries [("https://github.com/PositiveTechnologies/flower" nil nil)
("https://github.com/melpa/melpa" nil nil)])
(add-hook 'org-mode 'flower-mode)
(global-set-key (kbd "C-c f f") 'flower-list-tasks)
(global-set-key (kbd "C-c f t") 'flower-show-task-info)
Activate Flower
with:
Check out Flower
recipes in the Cookbook:
Copyright © 2017-2018 JSC Positive Technologies. All rights reserved.
Distributed under the MIT License. See LICENSE.
All the libraries and systems are licensed and remain the property of their respective owners.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close