/// <summary>
        ///     Add a new repository the crawled data. If that repository already exists (check will be done on the
        ///     GitHubRepositoryId) the repository data will be updated.
        /// </summary>
        /// <param name="repository">The repository to update or insert</param>
        /// <returns>If the last commit date was changed and therefore keywords needs to be updated</returns>
        public bool InsertOrUpdateRepository(ref GitHubRepository repository)
        {
            // Find already existing entry
            GitHubRepository existing = GitHubRepositories.Find(repository.GitHubRepositoryId);
            if (existing == null) // Repository is new => insert
            {
                GitHubRepositories.Add(repository);
                return true;
            }

            // Repository exists => Replace values in DB with values from reporitory parameter
            bool lastCommitChanged = existing.PushedAt != repository.PushedAt;
            existing.Update(repository);
            repository = existing;
            return lastCommitChanged;
        }