forked from jaateixeira/ScrapLogGit2Net
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lessons-learned.txt
34 lines (25 loc) · 2.12 KB
/
lessons-learned.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
##Lessons Learned from Retrieving Individuals and Firm IDs from Git Repositories
Automation is Key:
The process is semi-automatic, and increasing automation reduces errors and saves time. Reprocessing due to mistakes in visualizations, network structures, or figures is highly time-consuming.
String Similarity Algorithms:
String similarity algorithms are invaluable for identifying similar names and emails. Resources such as Python String Similarity Metrics provide robust tools to address these challenges.
Using GitHub APIs:
The GitHub REST API and GraphQL API are excellent for resolving email domains like users.noreply.github.com and extracting organization information.
Challenges with Specific Subdomains:
Subdomains for companies like IBM and Intel often require manual grouping, as they don’t easily align with automated processes.
Identifying Bots:
Bots are relatively easy to identify due to their inhuman patterns and behavior in repositories.
Affiliation Resolution:
LinkedIn often helps resolve affiliation problems effectively. However, the increasing trend of using anonymous emails to avoid privacy and spam issues complicates the process.
Domain-Specific Observations:
Domains such as .com, .org, .edu, and .in generally improve success rates in affiliation resolution. However, domains like .cn, .fi, and .pt can pose challenges.
For hierarchical domains like a.b.c.com, it is often most effective to affiliate the domain with the top-level c.
Risks to Consider:
Alumni accounts and changes from non-anonymous to anonymous emails can introduce inconsistencies in data.
Commit annotations, such as "on-behalf-of: @ORG NAME[AT]ORGANIZATION.COM," must be accounted for, as they indicate organizational contributions.
Robustness Tests:
Use string similarity checks for names and emails.
Cross-verify names with those announced in releases.
Triangulate affiliations using GitHub APIs.
Ensure accuracy by cross-referencing commits made explicitly on behalf of organizations.
These lessons emphasize the importance of leveraging robust tools, APIs, and validation techniques to minimize errors and ensure accuracy in analyzing Git repository data