際際滷

際際滷Share a Scribd company logo
SortingHat:
Wizardry on Software Project Members
ICSE, Montreal, 2019 March 25th - 31st, 2019
David Moreno, Santiago Due単as, Valerio Cosentino, Miguel ngel Fern叩ndez,
Ahmed Zerouali, Gregorio Robles, Jesus M. Gonzalez-Barahona
@dlumbrer1, @sduenasd, @_valcos, @Mghfdez, @a_zerou, @gregoriorobles @jgbarah
[dmoreno, sduenas, valcos, mafesan, ahmed] at bitergia.com
[grex, jgb] at gsyc.urjc.es
https://speakerdeck.com/bitergia
Presented by:
Francisco Servant (@servant)
fservant@vt.edu
/context
/context
/problem
Who is who?
/problem
Manrique L坦pez <jsmanrique@bitergia.com>
Jos辿 Manrique L坦pez de la Fuente
<jsmanrique@gmail.com>
Manrique L坦pez <jsmanrique@gmail.com>
jsmanrique
jsmanrique@gmail.com
jsmanrique@bitergia.com
correo@jsmanrique.es
jsmanrique
jsmanrique@bitergia.com02/2005 - 12/2010 CTIC
01/2010 - 12/2012 Andago
01/2013 - 06/2013 TapQuo
07/2013 - 12/2015 freelance (ASOLIF,
CENATIC)
07/2013 - now Bitergia
/goal
/sortinghat
/operations
Unify: merge identities using a
matching algorithm
A鍖liate: enroll unique identities
to organizations using email
addresses and top/sub domains
Autopro鍖le: auto complete
pro鍖les with emails and names
found on the tools used in the
project
Autogender: auto complete
gender information using
genderize.io
Heuristics-basedManual
Add: add identities
Show: show info about identities
Pro鍖le: edit pro鍖le
Remove: delete an identity
Merge: merge unique identities
Move: move an identity into a
unique identity
Orgs: list, add or delete
organizations and domains
Enroll: enroll identities into
organizations
Withdraw: unlink identities from
organizations
/database
Hatstall
GraphQL
/use
# Adding identities
$ sortinghat add
--name "Harry Potter"
--email "hpotter@hogwarts.edu"
--source git
New identity 0ca..c1 added
$ sortinghat add
--name "Harry Potter"
--username "harryp"
--source github
New identity 11c..ab added
$ sortinghat add
--name "H. Potter"
--username "harryp"
--source slack
New identity 23d..r2 added
from sortinghat import api
def add_identity(cls, db, identity, backend):
...
uuid = api.add_identity(db, backend,
identity['email'],
identity['name'],
identity['username'])
return uuid
Command line Python library
/use
Hatstall
/use
GraphQL
/Q&A
chaoss/grimoirelab-sortinghat
chaoss/grimoirelab-hatstall
grimoirelab.github.io
ICSE 2019 - demostration
@grimoirelab
@bitergia
@CHAOSSproj
Video

More Related Content

More from Valerio Cosentino (11)

PDF
Perceval: Software Project Data at Your Will
Valerio Cosentino
PDF
Extending grimoirelab
Valerio Cosentino
PDF
Perceval
Valerio Cosentino
PDF
Gamification pres-scme-2017
Valerio Cosentino
PPT
A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...
Valerio Cosentino
PPTX
Gitana: a SQL-based Git Repository Inspector
Valerio Cosentino
PPTX
Assessing the Bus Factor of Git Repositories
Valerio Cosentino
PPT
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
Valerio Cosentino
PDF
Extracting Business Rules from COBOL: A Model-Based Framework
Valerio Cosentino
PDF
Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...
Valerio Cosentino
PDF
A Model Driven Reverse Engineering framework for extracting business rules ou...
Valerio Cosentino
Perceval: Software Project Data at Your Will
Valerio Cosentino
Extending grimoirelab
Valerio Cosentino
Gamification pres-scme-2017
Valerio Cosentino
A Model-Based Approach for Extracting Business Rules out of Legacy Informatio...
Valerio Cosentino
Gitana: a SQL-based Git Repository Inspector
Valerio Cosentino
Assessing the Bus Factor of Git Repositories
Valerio Cosentino
A Model-Driven Approach to Generate External DSLs from Object-Oriented APIs
Valerio Cosentino
Extracting Business Rules from COBOL: A Model-Based Framework
Valerio Cosentino
Extracting UML/OCL Integrity Constraints and Derived Types from Relational Da...
Valerio Cosentino
A Model Driven Reverse Engineering framework for extracting business rules ou...
Valerio Cosentino

Recently uploaded (20)

PPTX
Introduction to File Transfer Protocol with commands in FTP
BeulahS2
PPTX
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pptx
AsadShad4
PPTX
CST413 KTU S7 CSE Machine Learning Introduction Parameter Estimation MLE MAP ...
resming1
PDF
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Mark Billinghurst
PDF
How to Buy Verified CashApp Accounts IN 2025
Buy Verified CashApp Accounts
PPTX
Computer network Computer network Computer network Computer network
Shrikant317689
PDF
Designing for Tomorrow Architectures Role in the Sustainability Movement
BIM Services
PDF
01-introduction to the ProcessDesign.pdf
StiveBrack
PDF
Python Mini Project: Command-Line Quiz Game for School/College Students
MPREETHI7
PDF
Validating a Citizen Observatories enabling Platform by completing a Citizen ...
Diego L坦pez-de-Ipi単a Gonz叩lez-de-Artaza
PDF
Decision support system in machine learning models for a face recognition-bas...
TELKOMNIKA JOURNAL
PPTX
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
PDF
Rapid Prototyping for XR: Lecture 6 - AI for Prototyping and Research Directi...
Mark Billinghurst
PPTX
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
PDF
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Mark Billinghurst
PPTX
Functions in Python Programming Language
BeulahS2
PPTX
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Endang Saefullah
PPTX
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
grilcodes
PDF
NFPA 10 - Estandar para extintores de incendios portatiles (ed.22 ENG).pdf
Oscar Orozco
PPTX
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pptx
AsadShad4
Introduction to File Transfer Protocol with commands in FTP
BeulahS2
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pptx
AsadShad4
CST413 KTU S7 CSE Machine Learning Introduction Parameter Estimation MLE MAP ...
resming1
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Mark Billinghurst
How to Buy Verified CashApp Accounts IN 2025
Buy Verified CashApp Accounts
Computer network Computer network Computer network Computer network
Shrikant317689
Designing for Tomorrow Architectures Role in the Sustainability Movement
BIM Services
01-introduction to the ProcessDesign.pdf
StiveBrack
Python Mini Project: Command-Line Quiz Game for School/College Students
MPREETHI7
Validating a Citizen Observatories enabling Platform by completing a Citizen ...
Diego L坦pez-de-Ipi単a Gonz叩lez-de-Artaza
Decision support system in machine learning models for a face recognition-bas...
TELKOMNIKA JOURNAL
LECTURE 7 COMPUTATIONS OF LEVELING DATA APRIL 2025.pptx
rr22001247
Rapid Prototyping for XR: Lecture 6 - AI for Prototyping and Research Directi...
Mark Billinghurst
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Mark Billinghurst
Functions in Python Programming Language
BeulahS2
Kel.3_A_Review_on_Internet_of_Things_for_Defense_v3.pptx
Endang Saefullah
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
grilcodes
NFPA 10 - Estandar para extintores de incendios portatiles (ed.22 ENG).pdf
Oscar Orozco
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pptx
AsadShad4
Ad

SortingHat: Wizardry on Software Project Members

  • 1. SortingHat: Wizardry on Software Project Members ICSE, Montreal, 2019 March 25th - 31st, 2019 David Moreno, Santiago Due単as, Valerio Cosentino, Miguel ngel Fern叩ndez, Ahmed Zerouali, Gregorio Robles, Jesus M. Gonzalez-Barahona @dlumbrer1, @sduenasd, @_valcos, @Mghfdez, @a_zerou, @gregoriorobles @jgbarah [dmoreno, sduenas, valcos, mafesan, ahmed] at bitergia.com [grex, jgb] at gsyc.urjc.es https://speakerdeck.com/bitergia Presented by: Francisco Servant (@servant) fservant@vt.edu
  • 6. Manrique L坦pez <jsmanrique@bitergia.com> Jos辿 Manrique L坦pez de la Fuente <jsmanrique@gmail.com> Manrique L坦pez <jsmanrique@gmail.com> jsmanrique jsmanrique@gmail.com jsmanrique@bitergia.com correo@jsmanrique.es jsmanrique jsmanrique@bitergia.com02/2005 - 12/2010 CTIC 01/2010 - 12/2012 Andago 01/2013 - 06/2013 TapQuo 07/2013 - 12/2015 freelance (ASOLIF, CENATIC) 07/2013 - now Bitergia /goal
  • 8. /operations Unify: merge identities using a matching algorithm A鍖liate: enroll unique identities to organizations using email addresses and top/sub domains Autopro鍖le: auto complete pro鍖les with emails and names found on the tools used in the project Autogender: auto complete gender information using genderize.io Heuristics-basedManual Add: add identities Show: show info about identities Pro鍖le: edit pro鍖le Remove: delete an identity Merge: merge unique identities Move: move an identity into a unique identity Orgs: list, add or delete organizations and domains Enroll: enroll identities into organizations Withdraw: unlink identities from organizations
  • 10. /use # Adding identities $ sortinghat add --name "Harry Potter" --email "hpotter@hogwarts.edu" --source git New identity 0ca..c1 added $ sortinghat add --name "Harry Potter" --username "harryp" --source github New identity 11c..ab added $ sortinghat add --name "H. Potter" --username "harryp" --source slack New identity 23d..r2 added from sortinghat import api def add_identity(cls, db, identity, backend): ... uuid = api.add_identity(db, backend, identity['email'], identity['name'], identity['username']) return uuid Command line Python library