/// <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)); }
// 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); } }
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); }
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)); }
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)); }
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)); }
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)); }
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); }
/// <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)); } }
public SonarPermissionsSearchGlobal SearchGlobal(NameValueCollection configuration) { string url = string.Format("{0}api/permissions/search_global_permissions", SonarApiClient.BaseAddress); return(SonarApiClient.QueryObject <SonarPermissionsSearchGlobal>(url, configuration)); }
public SonarTags Tags(NameValueCollection configuration) { string url = string.Format("{0}api/rules/tags", SonarApiClient.BaseAddress); return(SonarApiClient.QueryObject <SonarTags>(url, configuration)); }
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)); }
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)); }
/// <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)); }
/// <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)); }
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)); }
public SonarSystemStatus Status(NameValueCollection configuration) { string url = string.Format("{0}api/system/status", SonarApiClient.BaseAddress); return(SonarApiClient.QueryObject <SonarSystemStatus>(url, configuration)); }
/// <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)); }
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; } } }
public SonarFiltersSearch Search(NameValueCollection configuration) { string url = string.Format("{0}api/issue_filters/search", SonarApiClient.BaseAddress); return(SonarApiClient.QueryObject <SonarFiltersSearch>(url, configuration)); }
public SonarQualityGatesList List(NameValueCollection configuration) { string url = string.Format("{0}api/qualitygates/list", SonarApiClient.BaseAddress); return(SonarApiClient.QueryObject <SonarQualityGatesList>(url, configuration)); }
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)); }
public SonarQualityProfilesSearch Search(NameValueCollection configuration) { string url = string.Format("{0}api/qualityprofiles/search", SonarApiClient.BaseAddress); return(SonarApiClient.QueryObject <SonarQualityProfilesSearch>(url, configuration)); }
public SonarMetricsTypes Types(NameValueCollection configuration) { string url = string.Format("{0}api/metrics/types", SonarApiClient.BaseAddress); return(SonarApiClient.QueryObject <SonarMetricsTypes>(url, configuration)); }
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; }
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)); }
public SonarFiltersFavorites Favorites(NameValueCollection configuration) { string url = string.Format("{0}api/issue_filters/favorites", SonarApiClient.BaseAddress); return(SonarApiClient.QueryObject <SonarFiltersFavorites>(url, configuration)); }
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)); }