Esempio n. 1
0
        private void AddContribution(Commit commit, string canonicalName, CommitChange change, Contributor contributor)
        {
            var file = GetFile(canonicalName);

            var contribution = new Contribution()
            {
                ActivityId             = commit.Sha,
                ContributionType       = ContributionType.Commit,
                ContributorEmail       = commit.AuthorEmail,
                ContributorName        = commit.AuthorName,
                ContributorGithubLogin = commit.AuthorGitHubLogin ?? contributor.GitHubLogin,
                File           = file,
                SubscriptionId = _subscription.Id,
                Contributor    = contributor,
                DateTime       = commit.DateTime
            };

            file.AddHistory(commit, change, contribution);
            contributor.AssignContribution(contribution);
        }
Esempio n. 2
0
        private Contributor MergeContributors(Contributor nameContributor, Contributor emailContributor)
        {
            var contributions = emailContributor.Contributions.ToArray();

            foreach (var contribution in contributions)
            {
                nameContributor.AssignContribution(contribution);
            }

            emailContributor.RemoveContributions();

            var commits = emailContributor.Commits.ToArray();

            foreach (var commit in commits)
            {
                nameContributor.AssignCommits(commit);
            }

            emailContributor.RemoveCommits();

            _contributors.Remove(emailContributor.CanonicalName);

            var kvs = _contributorCanonicalMapper.Where(q => q.Value == emailContributor.CanonicalName).ToArray();

            foreach (var kv in kvs)
            {
                _contributorCanonicalMapper[kv.Key] = nameContributor.CanonicalName;
            }

            if (emailContributor.GitHubLogin != null && nameContributor.GitHubLogin == null)
            {
                nameContributor.GitHubLogin = emailContributor.GitHubLogin;
            }

            return(nameContributor);
        }