插件目录 » Redmine Toggl 插件
|
作者 | ozgur yazilimas |
---|---|---|
网站 | https://github.com/ozguryazilimas/redmine_toggl | |
代码仓库 | https://github.com/ozguryazilimas/redmine_toggl | |
注册于 | 2018-07-10(大约6年前) | |
当前版本 | 0.7.2 | |
兼容 | Redmine 3.4.x, 3.3.x, 3.2.x, 3.1.x, 3.0.x | |
用户评分 |
Redmine Toggl 是一个 Redmine 插件,用于同步 Toggl 时间跟踪工具条目与 Redmine 时间条目。
需要 redmine 版本 >= 3.0.3
功能
Synchronize Toggl entries for users that has Toggl API key set in Redmine
Automatically create / update / delete Redmine time entry for related issue
Time entry activities can be mapped to tags on Toggl entries. You can define which Toggl tag matches which Redmine time entry activity on Redmine Admin plugin settings page.
User interface in Redmine for viewing (with search, sort etc. support) and managing entries
Create new entry, will create the entry in Toggl and sync to Redmine
Edit entries (description, start time, duration, project, task workspace both in Toggl and in Redmine), will also update related Redmine time entry if any
Delete entry, will delete from Toggl and Redmine if any. Currently if you delete the entry on Toggl, it is not deleted from Redmine automatically.
User rights are controlled with Redmine permissions
安装说明
前往您的 Redmine 安装目录下的插件目录
cd /path/to/redmine/plugins
并将 Redmine Toggl 放入插件目录。例如,如果您想使用 master 分支的最新代码,您可以使用 git 克隆仓库
git clone https://github.com/zaburt/redmine_toggl.git
前往您的 Redmine 安装目录,使用 bundler 安装必要的 gems 并迁移插件以创建必要的数据库表。
RAILS_ENV=production bundle install
RAILS_ENV=production bundle exec rake redmine:plugins:migrate
重新启动 Redmine。您将注意到在用户个人资料页面有两个新的自定义字段
Toggl API Key: API token to be used to interact with Toggl. Every users API token must be configured separately. You can get your own token from Toggl Profile page.
Toggl Workspace: Optional. If set, only entries for given workspace will be synchronized. Multiple workspaces can be defined comma separated. If left blank, all workspaces will be synchronized.
您至少需要设置一个用户 API 令牌,并且至少有一个用户拥有在 Toggl 中查看 Toggl 项目和任务列表的权限。假设 Redmine 用户 zaburt 在 Redmine 中配置了 API 令牌,并且拥有在 Toggl 中获取项目列表和任务列表以同步 Toggl 基础数据的权限。
RAILS_ENV=production bundle exec rake toggl:sync_base_data[zaburt]
您只需同步一次基础数据。如果您在 Toggl 中更新项目或任务,您可以再次运行 rake 任务以在 Redmine 中更新。
Rake 任务
同步所有活动 Redmine 用户的 Toggl 条目,这些用户在用户个人资料中设置了 API 令牌。默认情况下,Toggl API 提供大约最近 9 天的条目,每个用户的最大条目数为 1000。有关更多信息,请参阅 Toggl API 文档。
RAILS_ENV=production bundle exec rake toggl:sync_time_entries
您也可以指定要同步的时间范围,时间值必须为 UTC。请注意,Toggl API 限制仍然适用,但您可以在不同的时间范围内多次调用 rake 任务以同步更大的时间范围。要获取 "2016-01-10 12:00" 和 "2016-01-11 12:00" 之间的条目,请使用以下命令。空白值将被忽略。
RAILS_ENV=production bundle exec rake toggl:sync_time_entries["2016-01-10 12:00","2016-01-11 12:00"]
目前Toggl在获取多个时间条目时不会提供删除条目的信息,这就是为什么sync_time_entries任务不会删除从Toggl中删除但仍存在于Redmine中的条目。如果您想从Redmine中删除这些条目,可以尝试运行sync_time_entries_remove_missing任务,该任务首先执行sync_time_entries的操作,然后尝试通过比较最新的Toggl数据和Redmine数据库中的记录来确定条目是否已从Toggl中删除。这可能会稍微花费更多时间,但应该会智能地工作,因此差异不会太大。如果您想进行真正的同步,请运行此任务。
使用这种方法有一个问题,如果您在Toggl中有10个条目,将它们同步到Redmine,然后在Toggl中添加一个新的条目(条目11成为最新条目),然后删除它,此rake任务在首次运行时不会捕获删除操作。然而,一旦您在Toggl中添加另一个条目,系统将检测到删除操作并将条目从Redmine中删除。
如果您想,可以将这两个任务结合起来。例如,您可以按照您喜欢的频率(例如每小时一次)运行sync_time_entries,然后在午夜运行sync_time_entries_remove_missing,这样删除同步就会每天发生一次。Rake任务参数与sync_time_entries相同,并且不是强制的。
RAILS_ENV=production bundle exec rake toggl:sync_time_entries_remove_missing
要获取与Redmine问题不关联的Toggl条目列表,可以运行以下rake任务。参数格式为"hours,recipients,language"。Hours选项决定Toggl条目开始时间多久之前。Recipients可以是多个电子邮件地址,用管道 "|" 分隔。Language是可选的,默认为Redmine默认。
RAILS_ENV=production bundle exec rake toggl:report_without_issue[24,"[email protected]|[email protected]","en"]
您还可以获取没有选择Toggl项目的Toggl条目的相同报告
RAILS_ENV=production bundle exec rake toggl:report_without_project[24,"[email protected]|[email protected]","en"]
所有rake任务必须在Redmine安装位置运行。
有关更多信息,您可以访问 https://github.com/ozguryazilimas/redmine_toggl
变更日志
0.7.2 (2018-01-02)
兼容Redmine 3.4.x, 3.3.x, 3.2.x, 3.1.x, 3.0.x。