17 |
18 |
19 | GrimoireLab Last Events Demo
20 | Because knowledge empowers
21 |
22 |
23 |
28 |
29 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/docs/tools-and-tips/scripts/perceval_git_counter.py:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env python3
2 | # Count commits
3 |
4 | import argparse
5 |
6 | from perceval.backends.core.git import Git
7 |
8 | # Read command line arguments
9 | parser = argparse.ArgumentParser(description = "Count commits in a git repo")
10 | parser.add_argument("repo", help = "Repository url")
11 | parser.add_argument("dir", help = "Directory for cloning the repository")
12 | parser.add_argument("--print", action='store_true', help = "Print hashes")
13 | args = parser.parse_args()
14 |
15 | # create a Git object, and count commmits
16 | repo = Git(uri=args.repo, gitpath=args.dir)
17 | count = 0
18 | for commit in repo.fetch():
19 | if args.print:
20 | print(commit['data']['commit'])
21 | count += 1
22 | print("Number of commmits: %d." % count)
23 |
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-complete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-complete.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-dashboard-noarthur-nomordred-nopanels-nosh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-dashboard-noarthur-nomordred-nopanels-nosh.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-dashboard-noarthur-nomordred-nopanels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-dashboard-noarthur-nomordred-nopanels.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-dashboard-noarthur-nomordred.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-dashboard-noarthur-nomordred.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-dashboard-noarthur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-dashboard-noarthur.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-dashboard.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-grimoireelk-raw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-grimoireelk-raw.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-perceval-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-perceval-1.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-perceval-n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-perceval-n.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-all-reports.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-all-reports.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-fit-grimoireelk-enrich-sh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-fit-grimoireelk-enrich-sh.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-fit-grimoireelk-enrich.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-fit-grimoireelk-enrich.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-fit-grimoireelk-raw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-fit-grimoireelk-raw.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-fit-perceval-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-fit-perceval-1.png
--------------------------------------------------------------------------------
/docs/workflow/assets/grimoirelab-fit-perceval-n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/docs/workflow/assets/grimoirelab-fit-perceval-n.png
--------------------------------------------------------------------------------
/docs/workflow/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Workflow
4 | permalink: /workflow
5 | nav_order: 2
6 | has_children: true
7 | has_toc: true
8 | ---
9 |
10 | # GrimoireLab Components
11 |
12 | The following figure summarizes the different tools used in GrimoreLab.
13 |
14 | 
15 |
16 | GrimoireLab is composed of different tools, which are listed below:
17 |
18 | ### Data retrieval related components:
19 | - [Perceval](https://github.com/chaoss/grimoirelab-perceval): retrieval of
20 | data from data sources
21 | - [Graal](https://github.com/chaoss/grimoirelab-graal): source data analysis
22 | with external tools
23 | - [KingArthur](https://github.com/chaoss/grimoirelab-kingarthur): batch
24 | processing for massive retrieval
25 |
26 | ### Data enrichment related components:
27 | - [GrimoireELK](https://github.com/chaoss/grimoirelab-elk): storage and
28 | enrichment of data
29 | - [Cereslib](https://github.com/chaoss/grimoirelab-cereslib): generic data
30 | processor
31 | - [SortingHat](https://github.com/chaoss/grimoirelab-sortinghat): identity
32 | management
33 |
34 | ### Data consumption related components:
35 | - [Kibiter](https://github.com/chaoss/grimoirelab-kibiter): dashboard,
36 | downstream version of Kibana
37 | - [Sigils](https://github.com/chaoss/grimoirelab-sigils): visualizations and
38 | dashboards
39 | - [Kidash](https://github.com/chaoss/grimoirelab-kidash): visualizations and
40 | dashboards manager
41 | - [Manuscripts](https://github.com/chaoss/grimoirelab-manuscripts): reporting
42 |
43 | ### Platform management, orchestration, and common utils:
44 | - [Mordred](https://github.com/chaoss/grimoirelab-mordred): orchestration
45 | - [GrimoireLab Toolkit](https://github.com/chaoss/grimoirelab-toolkit): common
46 | utilities
47 | - [Bestiary](https://github.com/chaoss/grimoirelab-bestiary): web-based user
48 | interface to manage repositories and projects for Mordred
49 | - [Hatstall](https://github.com/chaoss/grimoirelab-hatstall): web-based user
50 | interface to manage SortingHat identities
51 |
--------------------------------------------------------------------------------
/docs/workflow/workflow.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Workflow
4 | nav_order: 1
5 | parent: Workflow
6 | ---
7 |
8 | # Workflow
9 |
10 | GrimoireLab is a platform for making it easy to apply analytics on data related
11 | to software development. It provides components for:
12 |
13 | * Automatic and incremental data retrieval from software development support
14 | systems (data sources). Those include source code management, issue tracking,
15 | communication, testing, code review systems, among others.
16 | * Automatic organization and enrichment of retrieved data, so that it can be
17 | analyzed more easily.
18 | * Management of different identities for the same person, and other data related
19 | to persons, such as affiliation to companies.
20 | * Visualization of the data in actionable dashboards.
21 | * Production of reports about specific aspects of software development
22 | processes.
23 |
24 | Most of the components in GrimoireLab are written in Python, and provide Python
25 | APIs and standalone programs.
26 |
27 | The main components of GrimoireLab are:
28 |
29 | * **Perceval**. Includes components for retrieving data from data sources. All
30 | components provide an uniform API for accessing their data sources, based on
31 | Python generators and data dictionaries (JSON documents). [Learn more about
32 | Perceval](https://perceval.readthedocs.io).
33 | * **Graal**. leverages on the Git backend of Perceval and enhances it to set up
34 | ad-hoc source code analysis. It fetches the commits from a Git repository and
35 | provides a mechanism to plug third-party tools/libraries focused on source
36 | code analysis. [Learn more about
37 | Graal](/grimoirelab-tutorial/graal/intro.html).
38 | * **KingArthur**. Organizes the data retrieval from large collections of
39 | repositories of different kinds, providing a uniform API to all of them, and
40 | to the different retrieval jobs running in any moment. [Learn more about
41 | KingArthur](https://github.com/chaoss/grimoirelab-kingarthur).
42 | * **GrimoireELK**. Collects data retrieved by Arthur, or directly by Perceval,
43 | and stores it in ElasticSearch indexes (raw indexes). It also organizes and
44 | transforms those raw indexes into other ElasticSearch indexes (enriched
45 | indexes), more suitable for visualization or reporting. [Learn more about
46 | GrimoireELK](/grimoirelab-tutorial/gelk/intro.html).
47 | * **SortingHat**. Manages identities for persons, including capabilities for
48 | merging the many identities corresponding to the same person, and other data
49 | related to them (such as affiliation to companies). [Learn more about
50 | SortingHat](https://sortinghat.readthedocs.io).
51 | * **Kibiter**. Visualization platform. It is a soft fork of
52 | [Kibana](https://www.elastic.co/products/kibana), which allows for the
53 | construction of actionable dashboards to show the data in enriched indexes.
54 | * **Sigils**. Definition of Kibiter dashboards. They encode the panels,
55 | visualizations and other details needed to produce dashboards in Kibiter or
56 | Kibana. [Learn more about
57 | Sigils](https://chaoss.github.io/grimoirelab-sigils/).
58 | * **Manuscripts**. Production of PDF documents reporting on the main
59 | characteristics of a project. [Learn more about
60 | Manuscripts](https://github.com/chaoss/grimoirelab-manuscripts).
61 | * **Mordred**. Manages the configuration of all the components needed to produce
62 | a dashboard, automating its production. [Learn more about
63 | Mordred](https://github.com/chaoss/grimoirelab-sirmordred).
64 |
65 | 
66 |
67 | In the figure above, GrimoireLab components are represented in the pale green
68 | box. Bold arrows show the main data flow: from data sources to Perceval (which
69 | retrieves them), to Arthur (which schedules retrieval batches and stores results
70 | in Redis), to GrimoireELK (which stores retrieved items as raw indexes, and then
71 | uses them to produce enriched indexes, both in ElasticSearch), to Reports (to
72 | produce specialized reports) or Kibiter (to visualize in actionable dashboards).
73 |
74 | GrimoireELK uses SortingHat to store all the identities it finds in a MariaDB
75 | database. SortingHat uses lists of known identifiers (usually maintained in
76 | configuration files) and heuristics to merge identities corresponding to the
77 | same person, and related information (such as affiliation).
78 |
79 | All the process is configured and orchestrated by Mordred, which uses its own
80 | configuration about, for example, which data sources to use.
81 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chaoss/grimoirelab-tutorial/85bb9ad8da1c069700e62b83dff86b8ec6b5ba02/favicon.ico
--------------------------------------------------------------------------------