public GitLabClient(GitLabOptions gitLabOptions)
        {
            if (gitLabOptions == null)
            {
                throw new ArgumentNullException(nameof(gitLabOptions));
            }

            if (string.IsNullOrEmpty(gitLabOptions.ApiUrl))
            {
                throw new ArgumentNullException(nameof(gitLabOptions.ApiUrl));
            }

            if (string.IsNullOrEmpty(gitLabOptions.PrivateToken))
            {
                throw new ArgumentNullException(nameof(gitLabOptions.PrivateToken));
            }

            this.gitOptions = gitLabOptions;

            ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
            this.client = new HttpClient();
            this.client.DefaultRequestHeaders.Add("PRIVATE-TOKEN", gitOptions.PrivateToken);

            this.settings = new JsonSerializerSettings
            {
                DefaultValueHandling = DefaultValueHandling.Ignore
            };
        }
Esempio n. 2
0
 public GitLabController(ILogger <GitLabController> logger,
                         IMessageSender messageSender,
                         IOptions <GitLabOptions> options)
 {
     _logger        = logger;
     _messageSender = messageSender;
     _options       = options.Value;
 }
Esempio n. 3
0
        public static string GetWorkingOrTempDirectory(this GitLabOptions options)
        {
            var workingDirectory = !string.IsNullOrWhiteSpace(options.WorkingDirectory)
                ? options.WorkingDirectory
                : Path.Combine(Path.GetTempPath(), "GitLabCodeReview");

            return(workingDirectory);
        }
 public void RefreshOptions(GitLabOptions gitLabOptions)
 {
     this.options = gitLabOptions;
     this.SchedulePropertyChanged(nameof(this.ApiUrl));
     this.SchedulePropertyChanged(nameof(this.SelectedProjectId));
     this.SchedulePropertyChanged(nameof(this.RepositoryLocalPath));
     this.SchedulePropertyChanged(nameof(this.WorkingDirectory));
     this.SchedulePropertyChanged(nameof(this.AutoCleanWorkingDirectory));
 }
Esempio n. 5
0
 public MergeRequestNotifier(
     IMergeRequestsProvider mergeRequestsProvider,
     IOptions <GitLabOptions> gitLabOptions,
     IUsersRepository usersRepository,
     IBotService botService)
 {
     this.gitLabOptions         = gitLabOptions.Value;
     this.mergeRequestsProvider = mergeRequestsProvider;
     this.usersRepository       = usersRepository;
     this.botService            = botService;
 }
Esempio n. 6
0
 public ListReviewsCommand(
     IBotService botService,
     IUsersRepository usersRepository,
     IOptions <GitLabOptions> gitLabOptions,
     IMergeRequestsProvider mergeRequestsProvider)
 {
     this.gitLabOptions         = gitLabOptions.Value;
     this.botService            = botService;
     this.usersRepository       = usersRepository;
     this.mergeRequestsProvider = mergeRequestsProvider;
 }
        public static void SetFavoriteProjects(this GitLabOptions options, IEnumerable <long> ids)
        {
            if (options == null)
            {
                return;
            }

            var favoritesString = string.Join(Comma, ids);

            options.FavoriteProjects = favoritesString;
        }
 public MergeRequestProcessor(IGitLabApi api,
                              IRepositoryCache repositoryCache,
                              ICodeOwnersChangeset changeset,
                              ILogger <MergeRequestProcessor> logger,
                              IOptions <GitLabOptions> options)
 {
     _api             = api;
     _repositoryCache = repositoryCache;
     _changeset       = changeset;
     _logger          = logger;
     _options         = options.Value;
 }
Esempio n. 9
0
        public GitLabApi(IOptions <GitLabOptions> options,
                         ILogger <GitLabApi> logger)
        {
            _logger  = logger;
            _options = options.Value;
            if (string.IsNullOrEmpty(_options.ServerUrl))
            {
                throw new Exception("You must provide a GitLab server url.");
            }

            if (string.IsNullOrEmpty(_options.AuthenticationToken))
            {
                throw new Exception("You must provide a GitLab authentication token.");
            }
        }
        public static bool IsFavoriteProject(this GitLabOptions options, long projectId)
        {
            if (options == null || options.FavoriteProjects == null)
            {
                return(false);
            }

            var favoriteStrings = options.FavoriteProjects.Split(new[] { Comma }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var idString in favoriteStrings)
            {
                long tempId;
                if (long.TryParse(idString, out tempId) && tempId == projectId)
                {
                    return(true);
                }
            }

            return(false);
        }