Exemplo n.º 1
0
 public void TestGitLab(PropertyInfo property, GitLab instance)
 {
     AssertProperty(instance, property);
     Assert.True(instance.Ci);
     Assert.True(instance.GitLabCi);
     Assert.True(instance.Server);
 }
 private Task <IEnumerable <MergeRequest> > loadMergeRequests(GitLab gl, MergeRequestsFilter filter)
 {
     if (_query.MaxResults.HasValue && !String.IsNullOrWhiteSpace(_query.ProjectName))
     {
         return(gl
                .Projects
                .Get(_query.ProjectName)
                .MergeRequests
                .LoadTaskAsync(filter, getTrivialPageFilter()));
     }
     else if (_query.MaxResults.HasValue)
     {
         return(gl
                .MergeRequests
                .LoadTaskAsync(filter, getTrivialPageFilter()));
     }
     else if (!String.IsNullOrWhiteSpace(_query.ProjectName))
     {
         return(gl
                .Projects
                .Get(_query.ProjectName)
                .MergeRequests
                .LoadAllTaskAsync(filter));
     }
     else
     {
         return(gl
                .MergeRequests
                .LoadAllTaskAsync(filter));
     }
 }
        async protected Task <IEnumerable <MergeRequest> > load(GitLab gl, string projectname, int?maxResults,
                                                                MergeRequestsFilter filter)
        {
            Task <IEnumerable <MergeRequest> > t = maxResults.HasValue
            ? gl.Projects.Get(projectname).MergeRequests.LoadTaskAsync(filter, new PageFilter(maxResults.Value, 1))
            : gl.Projects.Get(projectname).MergeRequests.LoadAllTaskAsync(filter);

            return(await t);
        }
Exemplo n.º 4
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());

            PowerShell ps = new PowerShell();

            GitLab gitlab = new GitLab("http://192.168.10.15");

            gitlab.UpdateJobStatus();
        }
Exemplo n.º 5
0
        public async override Task <IEnumerable <MergeRequest> > Process(GitLab gl, int?_)
        {
            string lowercaseLabel = Constants.GitLabLabelPrefix + _username.ToLower();
            IEnumerable <MergeRequest> byLabel = await loadByLabel(gl, lowercaseLabel);

            IEnumerable <MergeRequest> byAuthor = await loadByAuthor(gl, _username);

            return(byLabel
                   .Concat(byAuthor)
                   .GroupBy(x => x.Id) // filter out non-unique, important to use Id because search is cross-project
                   .Select(group => group.First()));
        }
Exemplo n.º 6
0
        public async override Task <IEnumerable <MergeRequest> > Process(GitLab gl, int?_)
        {
            MergeRequest mergeRequest = await gl.Projects.Get(_projectname).MergeRequests.Get(_iid).LoadTaskAsync();

            if (mergeRequest == null)
            {
                return(Array.Empty <MergeRequest>());
            }

            if (_stateFilter == MergeRequestsFilter.StateFilter.All ||
                (_stateFilter == MergeRequestsFilter.StateFilter.Closed && mergeRequest.State == "closed") ||
                (_stateFilter == MergeRequestsFilter.StateFilter.Merged && mergeRequest.State == "merged" ||
                 (_stateFilter == MergeRequestsFilter.StateFilter.Open && mergeRequest.State == "opened")))
            {
                return(new MergeRequest[] { mergeRequest });
            }
            return(Array.Empty <MergeRequest>());
        }
        async internal Task <IEnumerable <MergeRequest> > Process(GitLab gl)
        {
            // See restrictions at https://docs.gitlab.com/ee/api/README.html#offset-based-pagination
            Debug.Assert(!_query.MaxResults.HasValue || _query.MaxResults.Value <= 100);

            int?authorId = await getAuthorId(gl);

            int?   iid         = getIId();
            string labels      = getLabels();
            string stateFilter = getStateFilter();

            MergeRequestsFilter.WorkInProgressFilter wipStatus = getWIPFilter();
            MergeRequestsFilter filter = new MergeRequestsFilter(labels, wipStatus, stateFilter, false, _query.Text,
                                                                 _query.TargetBranchName, iid.HasValue ? new int[] { iid.Value } : null, authorId);

            IEnumerable <MergeRequest> mergeRequests = await loadMergeRequests(gl, filter);

            return(filterMergeRequests(iid, mergeRequests, stateFilter));
        }
Exemplo n.º 8
0
        async private Task <IEnumerable <MergeRequest> > loadByAuthor(GitLab gl, string username)
        {
            User user = GlobalCache.GetUser(gl.Host, username);

            if (user == null)
            {
                IEnumerable <User> users = await gl.Users.SearchByUsernameTaskAsync(username);

                if (users == null || !users.Any())
                {
                    return(System.Array.Empty <MergeRequest>());
                }
                user = users.First();
                GlobalCache.AddUser(gl.Host, user);
            }

            return(await load(gl, null, new MergeRequestsFilter(
                                  null, _wipFilter, _stateFilter, false, null, null, null, user.Id)));
        }
        async private Task <int?> getAuthorId(GitLab gl)
        {
            if (!String.IsNullOrEmpty(_query.AuthorUserName))
            {
                User user = GlobalCache.GetUser(gl.Host, _query.AuthorUserName);
                if (user == null)
                {
                    IEnumerable <User> users = await gl.Users.SearchByUsernameTaskAsync(_query.AuthorUserName);

                    if (users == null || !users.Any())
                    {
                        return(null);
                    }
                    user = users.First();
                    GlobalCache.AddUser(gl.Host, user);
                }
                return(user.Id);
            }
            return(null);
        }
 public override abstract Task <IEnumerable <MergeRequest> > Process(GitLab gl, int?maxResults);
Exemplo n.º 11
0
 internal GitLabTask(string host, string token, Func <GitLab, Task <object> > func)
 {
     _gitlab = new GitLab(host, token);
     _func   = func;
 }
Exemplo n.º 12
0
 public override Task <IEnumerable <MergeRequest> > Process(GitLab gl, int?maxResults)
 {
     return(load(gl, maxResults, new MergeRequestsFilter(
                     null, _wipFilter, _stateFilter, false, _text, null, null, null)));
 }
Exemplo n.º 13
0
 private Task <IEnumerable <MergeRequest> > loadByLabel(GitLab gl, string label)
 {
     return(load(gl, null, new MergeRequestsFilter(
                     label, _wipFilter, _stateFilter, false, null, null, null, null)));
 }