def get_configure_plugin_fields(self, request, project, **kwargs): token = self.get_option("token", project) helptext = "Enter your API Token (found on " "your account Settings, under API Tokens)." secret_field = get_secret_field_config(token, helptext, include_prefix=True) secret_field.update({ "name": "token", "label": "API Token", "placeholder": "e.g. 12345678-1234-1234-1234-1234567890AB", }) return [ secret_field, { "name": "project", "label": "Project ID", "default": self.get_option("project", project), "type": "text", "placeholder": "e.g. 639281", "help": "Enter your project's numerical ID.", }, ]
def get_config(self, project, **kwargs): return [ { "name": "instance", "label": "Instance URL", "type": "url", "required": True, "help": "The HTTP Event Collector endpoint for your Splunk instance.", "placeholder": "e.g. https://input-foo.cloud.splunk.com:8088", }, { "name": "index", "label": "Index", "type": "string", "required": True, "default": "main", }, { "name": "source", "label": "Source", "type": "string", "required": True, "default": "sentry", }, get_secret_field_config(name="token", label="Token", secret=self.get_option("token", project)), ]
def get_configure_plugin_fields(self, request, project, **kwargs): token = self.get_option("token", project) helptext = "You may generate a Conduit API Token from your account settings in Phabricator." secret_field = get_secret_field_config(token, helptext, include_prefix=True) secret_field.update({"name": "token", "label": "Token", "required": False}) return [ { "name": "host", "label": "Host", "type": "text", "placeholder": "e.g. http://secure.phabricator.org", "required": True, }, secret_field, { "name": "username", "label": "Username", "type": "text", "help": "For token-based authentication you do not need to fill in username.", "required": False, }, { "name": "certificate", "label": "Certificate", "type": "textarea", "help": "For token-based authentication you do not need to fill in certificate.", "required": False, }, ]
def get_configure_plugin_fields(self, request, project, **kwargs): token = self.get_option("token", project) helptext = ( "Enter your API Token (found on " '<a href="https://www.pivotaltracker.com/profile"' ">pivotaltracker.com/profile</a>)." ) secret_field = get_secret_field_config(token, helptext, include_prefix=True) secret_field.update( { "name": "token", "label": "API Token", "placeholder": "e.g. a9877d72b6d13b23410a7109b35e88bc", } ) return [ secret_field, { "name": "project", "label": "Project ID", "default": self.get_option("project", project), "type": "text", "placeholder": "e.g. 639281", "help": "Enter your project's numerical ID.", }, ]
def get_config(self, project, **kwargs): return [ get_secret_field_config( name="write_key", label="Write Key", secret=self.get_option("write_key", project), help_text="Your Segment write key", ) ]
def get_config(self, **kwargs): return [ get_secret_field_config( name="api_key", label="API Key", secret=self.get_option("api_key", kwargs["project"]), help_text="VictorOps's Sentry API Key", include_prefix=True, ), { "name": "routing_key", "label": "Routing Key", "type": "string", "default": "everyone", "required": False, }, ]
def get_configure_plugin_fields(self, request, project, **kwargs): gitlab_token = self.get_option("gitlab_token", project) secret_field = get_secret_field_config(gitlab_token, "Enter your GitLab API token.", include_prefix=True) secret_field.update({ "name": "gitlab_token", "label": "Access Token", "placeholder": "e.g. g5DWFtLzaztgYFrqhVfE", }) return [ { "name": "gitlab_url", "label": "GitLab URL", "type": "url", "default": "https://gitlab.com", "placeholder": "e.g. https://gitlab.example.com", "required": True, "help": "Enter the URL for your GitLab server.", }, secret_field, { "name": "gitlab_repo", "label": "Repository Name", "type": "text", "placeholder": "e.g. getsentry/sentry", "required": True, "help": "Enter your repository name, including the owner.", }, { "name": "gitlab_labels", "label": "Issue Labels", "type": "text", "placeholder": "e.g. high, bug", "required": False, "help": "Enter the labels you want to auto assign to new issues.", }, ]
def get_config(self, **kwargs): service_key = self.get_option("service_key", kwargs["project"]) secret_field = get_secret_field_config( service_key, "PagerDuty's Sentry service Integration Key", include_prefix=True ) secret_field.update({"name": "service_key", "label": "Service Key"}) return [ secret_field, { "name": "routes", "label": "Tag routing", "type": "textarea", "placeholder": "environment,production,KEY1\ndevice,Other,KEY2", "required": False, "help": ( "Route each event to a different PagerDuty service key based " "on the event's tags. Each line should contain a tag, " "value, and service key separated by commas. The first " "line that matches a tag's key and value will send to that " "integration key instead of the main service key above." ), }, ]
def get_config(self, **kwargs): userkey = self.get_option("userkey", kwargs["project"]) apikey = self.get_option("apikey", kwargs["project"]) userkey_field = get_secret_field_config( userkey, "Your user key. See https://pushover.net/", include_prefix=True) userkey_field.update({"name": "userkey", "label": "User Key"}) apikey_field = get_secret_field_config( apikey, "Application API token. See https://pushover.net/apps/", include_prefix=True) apikey_field.update({"name": "apikey", "label": "API Key"}) return [ userkey_field, apikey_field, { "name": "priority", "label": "Message Priority", "type": "choice", "required": True, "choices": [ ("-2", "Lowest"), ("-1", "Low"), ("0", "Normal"), ("1", "High"), ("2", "Emergency"), ], "default": "0", }, { "name": "retry", "label": "Retry", "type": "number", "required": False, "placeholder": "e.g. 30", "help": 'How often (in seconds) you will receive the same notification. Minimum of 30 seconds. Only required for "Emergency" level priority.', }, { "name": "expire", "label": "Expire", "type": "number", "required": False, "placeholder": "e.g. 9000", "help": 'How many seconds your notification will continue to be retried for. Maximum of 10800 seconds. Only required for "Emergency" level priority.', }, ]
def get_configure_plugin_fields(self, request, project, **kwargs): instance = self.get_option("instance_url", project) username = self.get_option("username", project) pw = self.get_option("password", project) jira_project = self.get_option("default_project", project) default_priority = self.get_option("default_priority", project) default_issue_type = self.get_option("default_issue_type", project) project_choices = [] priority_choices = [] issue_type_choices = [] if instance and username and pw: client = JiraClient(instance, username, pw) try: projects = client.get_projects_list() except ApiError: projects = None else: if projects: project_choices = [ (p.get("key"), "%s (%s)" % (p.get("name"), p.get("key"))) for p in projects ] jira_project = jira_project or projects[0]["key"] if jira_project: try: priorities = client.get_priorities() except ApiError: priorities = None else: if priorities: priority_choices = [ (p.get("id"), "%s" % (p.get("name"))) for p in priorities ] default_priority = default_priority or priorities[0]["id"] try: meta = client.get_create_meta_for_project(jira_project) except ApiError: meta = None else: if meta: issue_type_choices = self.make_choices(meta["issuetypes"]) if issue_type_choices: default_issue_type = default_issue_type or issue_type_choices[0][0] secret_field = get_secret_field_config(pw, "") secret_field.update({"name": "password", "label": "Password/API Token"}) return [ { "name": "instance_url", "label": "JIRA Instance URL", "default": instance, "type": "text", "placeholder": 'e.g. "https://jira.atlassian.com"', "help": "It must be visible to the Sentry server", }, { "name": "username", "label": "Username/Email", "default": username, "type": "text", "help": "Ensure the JIRA user has admin permissions on the project", }, secret_field, { "name": "default_project", "label": "Linked Project", "type": "select", "choices": project_choices, "default": jira_project, "required": False, }, { "name": "ignored_fields", "label": "Ignored Fields", "type": "textarea", "required": False, "placeholder": 'e.g. "components, security, customfield_10006"', "default": self.get_option("ignored_fields", project), "help": "Comma-separated list of properties that you don't want to show in the form", }, { "name": "default_priority", "label": "Default Priority", "type": "select", "choices": priority_choices, "required": False, "default": default_priority, }, { "name": "default_issue_type", "label": "Default Issue Type", "type": "select", "choices": issue_type_choices, "required": False, "default": default_issue_type, }, { "name": "auto_create", "label": "Automatically create JIRA Tickets", "default": self.get_option("auto_create", project) or False, "type": "bool", "required": False, "help": "Automatically create a JIRA ticket for EVERY new issue", }, ]