- updates Flask (>=2.1.3) and Flask-WTF (1.0.*)
- move revision statuses to constants
- refactors and DRYs up report generation with
ReportSectionConfig
- adds WIP diffs section to RevisionStatusReport
- adds flag
include_in_slack
for sections to include in Slack
- Updates to use explicitly set Conduit API token, Phabricator base URL, etc
- Adds
/users
listing page and user profile page - Adds utils for fetching users: single user by user name, multiple users, all active users
- Adds the ability to show metrics for specific users
- Adds more colors from flatuicolors.com
- Upgrades to Chart.js 3.8.0 and adds legend event hooks
- cleanup: rename
*_pages
to*_endpoints
for several view
- Fixes breadcrumbs for report names by preserving case
- Removes an incorrect type hint
- Fixes metric aggregation by customer, service, and owner (#12)
- Fixes
start_of_month
by simply using1
, instead ofcalendar.monthrange[0]
, (#11) - Minor improvements to metrics explorer (#10)
- adds
CUSTOM_STATIC_DIR
andCUSTOM_STYLESHEETS
served by{{ url_for('custom_static', filename=filename) }}
(#9)
- Include all open Maniphest statuses for upcoming tasks due report
- awaitingbusiness
- inprogress
- open
- stalled
- added Explore page and blueprint
- adds mechanism to retrieve a list of Customers (special Project tag)
- adds the ability to filter task metrics by Customer
- styling for applied filters string
- formatting for task metrics
- adds custom segments (including nested segments) for projects on explore page
- filter by bulk project names
- add hyperlinks with quarter interval to explore
- slightly improved interval calculation
- improved section headings indicating interval
- adds aggregated metrics, normalized metrics and rate metrics
- tasks by project_phids query use AND, so need to make multiple queries
- display 2 decimal points
- adds AggregatedTaskMetricsStats as companion to TaskMetricsStats
- segment tasks by customer, users, and service
- move/refactor utils.py and constants.py into module with submodules
- add checks for null projects
- adds statistical analysis
- Version bump only
- adds Stories, Features, Tasks in addition to Bugs as metric types
- adds filters to web metrics
- adds the ability to select interval: week/month
- adds the ability to set custom start and end period
- Adds breadcrumbs to website
- Adds report setting: non_group_reviewer_acceptance_threshold
- Allows requiring a minimum number of acceptances by non-group reviewers for GroupReviewStatusReport
- Adds GroupReviewStatusReport
- adds web link for RevisionStatusReport and GroupsReviewStatusReport
- convert REPORTS config from dict to list
- update Maniphest open, closed statuses
- fix BugMetric namedtuple name
- Use accordion component to show/collapse bugs
- Fix Maniphest str representation
- fix MANIPHEST_STATUSES_CLOSED vs MANIPHEST_STATUSES_OPE
- add metrics class and utils for generating metrics
- adds bugs report to metrics
- refactored get_maniphest_tasks functions to properly paginate
- moves markdown to requirements
- fixes an HTML revision status report formatting bug
- update README with release instructions
- include [web] variant of phablytics
- include Flask in requirements_web.txt
- explicitly require minimum Python 3.0
- properly package *.html template files with distribution
- add HTML-formatted reports
- convert emoji aliases to unicode characters
- handles paginated results for Maniphest search
- filter out changes-planned, include needs-revision
- adds new dataclass ReportConfig to configure how reports should run
- all reports now work with ReportConfig
- adds report_name setting, which is a higher-level object than report_type
- multiple reports (with different report_names) can have different configurations using the same report_type
- updates differential revision search to include statuses of accepted, changes-planned, needs-review
- switches -r from --report_type to --report_name
- all Slack messages now support customizing username and emoji
- isort everything (switching to multi-line combo imports)
- updated README with some basic Get Started instructions
- split out reports into its own directory module and separate files
- use python-dotenv to read in env
- use settings.py in cwd
- various bug fixes
- added CLI mode
- update README, add LICENSE and a bunch of other build-related files