示例#1
0
        /// <summary>
        /// List project permissions. A project can be a technical project, a view or a developer
        /// </summary>
        /// <param name="sonarPermissionsSearchProjectArgs"></param>
        /// <returns></returns>
        public SonarPermissionsSearchProject SearchProject(SonarPermissionsSearchProjectArgs sonarPermissionsSearchProjectArgs, IConfigurationRoot configuration)
        {
            string url = string.Format("{0}api/permissions/search_project_permissions{1}", SonarApiClient.BaseAddress
                                       , (sonarPermissionsSearchProjectArgs == null) ? String.Empty : sonarPermissionsSearchProjectArgs.ToString());

            return(SonarApiClient.QueryObject <SonarPermissionsSearchProject>(url, configuration));
        }
示例#2
0
        // Fill for each profile: the attributes ProfileName, profileKey and the attributes buildName of profileBuilds
        public static void FillProfiles(SonarApiClient SonarClient, IConfigurationRoot configuration)
        {
            int NumberOfProfiles;

            Int32.TryParse(configuration["NumberProfiles"], out NumberOfProfiles);

            for (int number = 0; number < NumberOfProfiles; number++)
            {
                Profile           profile           = new Profile();
                SonarProjectsArgs SonarProjectsArgs = new SonarProjectsArgs();

                string ProfileKey  = "Profiles:" + number + ":Key";
                string ProfileName = "Profiles:" + number + ":ProfileName";

                profile.profileKey  = configuration[ProfileKey];
                profile.ProfileName = configuration[ProfileName];

                SonarProjectsArgs.ProfileKey = configuration[ProfileKey];
                SonarProjectsArgs.PageSize   = "400";
                SonarQualityProfileProjects SonarQualityProfileProjects = SonarClient.QualityProfiles.Projects(SonarProjectsArgs, configuration);


                foreach (SonarProjet project in SonarQualityProfileProjects.QualityProfileProjects)
                {
                    Build b = new Build();
                    b.buildName = project.Name;
                    profile.profileBuilds.Add(b);
                }

                profiles.Add(profile);
            }
        }
示例#3
0
        public SonarPermissionsSearchTemplates SearchTemplate(SonarPermissionsSearchTemplatesArgs sonarPermissionsSearchTemplatesArgs, NameValueCollection configuration)
        {
            string url = string.Format("{0}api/permissions/search_templates{1}", SonarApiClient.BaseAddress
                                       , (sonarPermissionsSearchTemplatesArgs == null) ? String.Empty : sonarPermissionsSearchTemplatesArgs.ToString());

            return(SonarApiClient.QueryObject <SonarPermissionsSearchTemplates>(url, configuration));
        }
        /// <summary>
        /// Create a sonar base object
        /// </summary>
        /// <param name="sonarApiClient"></param>
        /// <returns></returns>
        public static T CreateObject(SonarApiClient sonarApiClient)
        {
            T result = new T();

            result.SetSonarApiClient(sonarApiClient);
            return(result);
        }
示例#5
0
        public SonarQualityGateShow Show(SonarQualityGateShowArgs sonarQualityGateShowArgs, NameValueCollection configuration)
        {
            if (!sonarQualityGateShowArgs.Id.HasValue && String.IsNullOrEmpty(sonarQualityGateShowArgs.Name))
            {
                throw new ArgumentException("Either id or name must be set");
            }
            string url = string.Format("{0}api/qualitygates/show{1}", SonarApiClient.BaseAddress, sonarQualityGateShowArgs);

            return(SonarApiClient.QueryObject <SonarQualityGateShow>(url, configuration));
        }
示例#6
0
        public SonarQualityProfileProjects Projects(SonarProjectsArgs SonarProjectsArgs, NameValueCollection configuration)
        {
            if (String.IsNullOrEmpty(SonarProjectsArgs.ProfileKey) &&
                (String.IsNullOrEmpty(SonarProjectsArgs.PageSize)))
            {
                throw new ArgumentException("Quality profile key And PageSize must be set.");
            }
            string url = string.Format("{0}api/qualityprofiles/projects{1}", SonarApiClient.BaseAddress, SonarProjectsArgs);

            return(SonarApiClient.QueryObject <SonarQualityProfileProjects>(url, configuration));
        }
示例#7
0
        public ComponentMeasureResponse Component(SonarComponentArgs SonarComponentArgs, NameValueCollection configuration)
        {
            if (String.IsNullOrEmpty(SonarComponentArgs.ComponentKey))
            {
                throw new ArgumentException("ComponentKey must be set.");
            }

            string url = string.Format("{0}api/measures/component{1}", SonarApiClient.BaseAddress, (SonarComponentArgs == null) ? String.Empty : SonarComponentArgs.ToString());

            return(SonarApiClient.QueryObject <ComponentMeasureResponse>(url, configuration));
        }
示例#8
0
        public SonarInheritance Inheritance(SonarInheritanceArgs sonarInheritanceArgs, NameValueCollection configuration)
        {
            if (String.IsNullOrEmpty(sonarInheritanceArgs.ProfileKey) &&
                (String.IsNullOrEmpty(sonarInheritanceArgs.Language) || String.IsNullOrEmpty(sonarInheritanceArgs.ProfileName)))
            {
                throw new ArgumentException("Either quality profile key, or a combination of profileName + language must be set.");
            }
            string url = string.Format("{0}api/qualityprofiles/inheritance{1}", SonarApiClient.BaseAddress, sonarInheritanceArgs);

            return(SonarApiClient.QueryObject <SonarInheritance>(url, configuration));
        }
示例#9
0
        public static List <Profile> ExtractProfiles(IConfigurationRoot configuration)
        {
            SonarApiClient      SonarClient = new SonarApiClient(configuration);
            List <SonarProject> projects    = SonarClient.Projects.Index(null, configuration);

            FillBuildsNamesKeys(projects);
            getTestResultsForBuildsFromTFS(configuration);
            FillProfiles(SonarClient, configuration);
            FillBuildsMetrics(SonarClient, configuration);
            FillBuildProfiles(configuration);

            return(profiles);
        }
示例#10
0
 /// <summary>
 /// Search for users with membership information with respect to a group
 /// </summary>
 /// <param name="sonarUserGroupsUsersArgs"></param>
 /// <returns></returns>
 public SonarUsersList <SonarUserOfGroup> Users(SonarUserGroupsUsersArgs sonarUserGroupsUsersArgs, IConfigurationRoot configuration)
 {
     if (sonarUserGroupsUsersArgs == null)
     {
         throw new ArgumentException("The argument can't be null.");
     }
     else if ((!sonarUserGroupsUsersArgs.Id.HasValue && String.IsNullOrEmpty(sonarUserGroupsUsersArgs.Name)) ||
              (sonarUserGroupsUsersArgs.Id.HasValue && !String.IsNullOrEmpty(sonarUserGroupsUsersArgs.Name)))
     {
         throw new ArgumentException("Group name or group id must be provided, not both.");
     }
     else
     {
         string url = string.Format("{0}api/user_groups/users{1}", SonarApiClient.BaseAddress, sonarUserGroupsUsersArgs);
         return(SonarApiClient.QueryObject <SonarUsersList <SonarUserOfGroup> >(url, configuration));
     }
 }
示例#11
0
        public SonarPermissionsSearchGlobal SearchGlobal(NameValueCollection configuration)
        {
            string url = string.Format("{0}api/permissions/search_global_permissions", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarPermissionsSearchGlobal>(url, configuration));
        }
示例#12
0
文件: Rules.cs 项目: Cyrinehl/Portail
        public SonarTags Tags(NameValueCollection configuration)
        {
            string url = string.Format("{0}api/rules/tags", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarTags>(url, configuration));
        }
示例#13
0
        public ComponentShowResponse Show(SonarComponentShowArgs SonarComponentShowArgs, NameValueCollection configuration)
        {
            string url = string.Format("{0}api/components/show{1}", SonarApiClient.BaseAddress, (SonarComponentShowArgs == null) ? String.Empty : SonarComponentShowArgs.ToString());

            return(SonarApiClient.QueryObject <ComponentShowResponse>(url, configuration));
        }
示例#14
0
文件: Rules.cs 项目: Cyrinehl/Portail
        public SonarRulesSearch Search(SonarRulesSearchArgs sonarRulesSearchArgs, NameValueCollection configuration)
        {
            string url = string.Format("{0}api/rules/search{1}", SonarApiClient.BaseAddress, (sonarRulesSearchArgs == null) ? String.Empty : sonarRulesSearchArgs.ToString());

            return(SonarApiClient.QueryObject <SonarRulesSearch>(url, configuration));
        }
示例#15
0
文件: Rules.cs 项目: Cyrinehl/Portail
        /// <summary>
        /// List available rule repositories
        /// </summary>
        /// <returns></returns>
        public SonarRepositories Repositories(IConfigurationRoot configuration)
        {
            string url = string.Format("{0}api/rules/repositories", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarRepositories>(url, configuration));
        }
示例#16
0
        /// <summary>
        /// Search for user groups
        /// </summary>
        /// <param name="sonarUserGroupsSearchArgs">Arguments</param>
        /// <returns></returns>
        public SonarUserGroupsSearch Search(SonarUserGroupsSearchArgs sonarUserGroupsSearchArgs, IConfigurationRoot configuration)
        {
            string url = string.Format("{0}api/user_groups/search{1}", SonarApiClient.BaseAddress, (sonarUserGroupsSearchArgs == null) ? String.Empty : sonarUserGroupsSearchArgs.ToString());

            return(SonarApiClient.QueryObject <SonarUserGroupsSearch>(url, configuration));
        }
示例#17
0
        public SonarPluginsInstalled Installed(SonarPluginsInstalledArgs sonarPluginsInstalledArgs, NameValueCollection configuration)
        {
            string url = string.Format("{0}api/plugins/installed{1}", SonarApiClient.BaseAddress, (sonarPluginsInstalledArgs == null) ? string.Empty : sonarPluginsInstalledArgs.ToString());

            return(SonarApiClient.QueryObject <SonarPluginsInstalled>(url, configuration));
        }
示例#18
0
        public SonarSystemStatus Status(NameValueCollection configuration)
        {
            string url = string.Format("{0}api/system/status", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarSystemStatus>(url, configuration));
        }
示例#19
0
        /// <summary>
        /// Search for issues
        /// </summary>
        /// <param name="sonarIssuesSearchArg">Search arguments. If null, return all issues</param>
        /// <returns></returns>
        public SonarIssuesSearch Search(SonarIssuesSearchArgs sonarIssuesSearchArg, IConfigurationRoot configuration)
        {
            string url = string.Format("{0}api/issues/search{1}", SonarApiClient.BaseAddress, (sonarIssuesSearchArg == null)?String.Empty : sonarIssuesSearchArg.ToString());

            return(SonarApiClient.QueryObject <SonarIssuesSearch>(url, configuration));
        }
示例#20
0
        public static void ExtractIssues(IConfigurationRoot configuration)
        {
            List <Profile> list = new List <Profile>();

            list = TreatExport.ExtractProfiles(configuration); //services for the wanted profiles


            SonarApiClient SonarClient = new SonarApiClient(configuration);

            SonarIssuesSearchArgs SonarIssuesSearch = new SonarIssuesSearchArgs();

            SonarIssuesSearch.Rules = RulesKey; //issues for the wanted rules

            foreach (Profile profile in list)
            {
                List <Build> tmpList      = profile.profileBuilds;
                int          countTmpList = tmpList.Count;


                for (int i = 0; i < countTmpList; i++)
                {// issues for each service
                    SonarIssuesSearch SonarIssues = new SonarIssuesSearch();
                    SonarIssuesSearch.ProjectKeys.Add(tmpList[i].buildKey);

                    SonarIssues = SonarClient.Issues.Search(SonarIssuesSearch, configuration);

                    // fill list a issue for each service
                    while (SonarIssues.Issues.Count < SonarIssues.Paging.Total)
                    {
                        SonarIssuesSearch.SonarPagingQuery.PageIndex++;
                        SonarIssuesSearch tmp = SonarClient.Issues.Search(SonarIssuesSearch, configuration);
                        foreach (SonarIssue issue in tmp.Issues)
                        {
                            SonarIssues.Issues.Add(issue);
                        }
                    }

                    // fill issues list (the private static variable)
                    foreach (SonarIssue issue in SonarIssues.Issues)
                    {
                        Issue b = new Issue();

                        b.ProfileName = tmpList[i].ProfileName;
                        b.projectName = tmpList[i].buildName;
                        b.RuleKey     = issue.RuleKey;
                        b.Severity    = issue.Severity;
                        b.Type        = issue.Type;
                        b.Assignee    = issue.Assignee;
                        b.Line        = issue.Line;
                        b.ModuleKey   = issue.SubProject;
                        b.fileKey     = issue.Component;
                        issues.Add(b);
                    }

                    SonarIssuesSearch.ProjectKeys.Clear();
                }
            }

            foreach (Issue issue in issues)
            {
                SonarComponentShowArgs SonarComponentShowArgsModule = new SonarComponentShowArgs();
                SonarComponentShowArgs SonarComponentShowArgsFile   = new SonarComponentShowArgs();

                if ((String.IsNullOrEmpty(issue.ModuleKey)))
                {
                }
                else
                {
                    SonarComponentShowArgsModule.ComponentKey = issue.ModuleKey;
                    ComponentShowResponse ComponentShowResponseModule = SonarClient.Components.Show(SonarComponentShowArgsModule, configuration);
                    issue.Module = ComponentShowResponseModule.Component.ComponentName;
                }


                if ((String.IsNullOrEmpty(issue.fileKey)))
                {
                }
                else
                {
                    SonarComponentShowArgsFile.ComponentKey = issue.fileKey;
                    ComponentShowResponse ComponentShowResponseFile = SonarClient.Components.Show(SonarComponentShowArgsFile, configuration);
                    issue.file = ComponentShowResponseFile.Component.ComponentName;
                }
            }
        }
示例#21
0
        public SonarFiltersSearch Search(NameValueCollection configuration)
        {
            string url = string.Format("{0}api/issue_filters/search", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarFiltersSearch>(url, configuration));
        }
示例#22
0
        public SonarQualityGatesList List(NameValueCollection configuration)
        {
            string url = string.Format("{0}api/qualitygates/list", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarQualityGatesList>(url, configuration));
        }
示例#23
0
        public SonarQualityGatesSearch Search(SonarQualityGatesSearchArgs sonarQualityGatesSearchArgs, NameValueCollection configuration)
        {
            string url = string.Format("{0}api/qualitygates/search{1}", SonarApiClient.BaseAddress, sonarQualityGatesSearchArgs);

            return(SonarApiClient.QueryObject <SonarQualityGatesSearch>(url, configuration));
        }
示例#24
0
        public SonarQualityProfilesSearch Search(NameValueCollection configuration)
        {
            string url = string.Format("{0}api/qualityprofiles/search", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarQualityProfilesSearch>(url, configuration));
        }
示例#25
0
        public SonarMetricsTypes Types(NameValueCollection configuration)
        {
            string url = string.Format("{0}api/metrics/types", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarMetricsTypes>(url, configuration));
        }
示例#26
0
        public async Task <SonarIssuesSearch> SearchAsync(SonarIssuesSearchArgs sonarIssuesSearchArg, NameValueCollection configuration)
        {
            string url = string.Format("{0}api/issues/search{1}", SonarApiClient.BaseAddress, (sonarIssuesSearchArg == null) ? String.Empty : sonarIssuesSearchArg.ToString());

            return(await SonarApiClient.QueryObjectAsync <SonarIssuesSearch>(url, configuration).ConfigureAwait(false));
        }
 /// <summary>
 /// Set the sonar API client to the object
 /// </summary>
 /// <param name="client"></param>
 void IBaseObjectApi.SetSonarApiClient(SonarApiClient client)
 {
     _sonarApiClient = client;
 }
示例#28
0
        public List <SonarProject> Index(SonarProjectsIndexArgs sonarProjectsIndexArgs, NameValueCollection configuration)
        {
            string url = string.Format("{0}api/projects/index{1}", SonarApiClient.BaseAddress, (sonarProjectsIndexArgs == null) ? String.Empty : sonarProjectsIndexArgs.ToString());

            return(SonarApiClient.QueryList <SonarProject>(url, configuration));
        }
示例#29
0
        public SonarFiltersFavorites Favorites(NameValueCollection configuration)
        {
            string url = string.Format("{0}api/issue_filters/favorites", SonarApiClient.BaseAddress);

            return(SonarApiClient.QueryObject <SonarFiltersFavorites>(url, configuration));
        }
示例#30
0
        public SonarLanguagesList List(SonarLanguagesListArgs sonarLanguagesListArgs, NameValueCollection configuration)
        {
            string url = string.Format("{0}api/languages/list{1}", SonarApiClient.BaseAddress, (sonarLanguagesListArgs == null) ? String.Empty : sonarLanguagesListArgs.ToString());

            return(SonarApiClient.QueryObject <SonarLanguagesList>(url, configuration));
        }