From d04727f4b5b89406a78f45c3d81ca06674076954 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 20 Jul 2018 09:39:55 -0400 Subject: [PATCH 01/13] Fixes #2255: Corrected display of report results in report list --- netbox/templates/extras/report_list.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/templates/extras/report_list.html b/netbox/templates/extras/report_list.html index 1d6fbb72e..5c64eaf0d 100644 --- a/netbox/templates/extras/report_list.html +++ b/netbox/templates/extras/report_list.html @@ -69,7 +69,7 @@ {{ report.name }}
- {% include 'extras/inc/report_label.html' %} + {% include 'extras/inc/report_label.html' with result=report.result %}
{% endfor %} From ba3ae0d80adcfad130e62799a770b61e5420d92f Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 23 Jul 2018 14:52:51 -0400 Subject: [PATCH 02/13] Fixes #2257: Corrected casting of RIR utilization stats as floats --- netbox/ipam/tables.py | 40 +++++++++++++++++++++++++++++----------- netbox/ipam/views.py | 36 ++++++++++++++---------------------- 2 files changed, 43 insertions(+), 33 deletions(-) diff --git a/netbox/ipam/tables.py b/netbox/ipam/tables.py index 08035d549..382eeae20 100644 --- a/netbox/ipam/tables.py +++ b/netbox/ipam/tables.py @@ -194,17 +194,35 @@ class RIRTable(BaseTable): class RIRDetailTable(RIRTable): - stats_total = tables.Column(accessor='stats.total', verbose_name='Total', - footer=lambda table: sum(r.stats['total'] for r in table.data)) - stats_active = tables.Column(accessor='stats.active', verbose_name='Active', - footer=lambda table: sum(r.stats['active'] for r in table.data)) - stats_reserved = tables.Column(accessor='stats.reserved', verbose_name='Reserved', - footer=lambda table: sum(r.stats['reserved'] for r in table.data)) - stats_deprecated = tables.Column(accessor='stats.deprecated', verbose_name='Deprecated', - footer=lambda table: sum(r.stats['deprecated'] for r in table.data)) - stats_available = tables.Column(accessor='stats.available', verbose_name='Available', - footer=lambda table: sum(r.stats['available'] for r in table.data)) - utilization = tables.TemplateColumn(template_code=RIR_UTILIZATION, verbose_name='Utilization') + stats_total = tables.Column( + accessor='stats.total', + verbose_name='Total', + footer=lambda table: sum(r.stats['total'] for r in table.data) + ) + stats_active = tables.Column( + accessor='stats.active', + verbose_name='Active', + footer=lambda table: sum(r.stats['active'] for r in table.data) + ) + stats_reserved = tables.Column( + accessor='stats.reserved', + verbose_name='Reserved', + footer=lambda table: sum(r.stats['reserved'] for r in table.data) + ) + stats_deprecated = tables.Column( + accessor='stats.deprecated', + verbose_name='Deprecated', + footer=lambda table: sum(r.stats['deprecated'] for r in table.data) + ) + stats_available = tables.Column( + accessor='stats.available', + verbose_name='Available', + footer=lambda table: sum(r.stats['available'] for r in table.data) + ) + utilization = tables.TemplateColumn( + template_code=RIR_UTILIZATION, + verbose_name='Utilization' + ) class Meta(RIRTable.Meta): fields = ( diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 1d4575e34..752ab97c2 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -192,9 +192,15 @@ class RIRListView(ObjectListView): queryset = Prefix.objects.filter(prefix__net_contained_or_equal=str(aggregate.prefix)) # Find all consumed space for each prefix status (we ignore containers for this purpose). - active_prefixes = netaddr.cidr_merge([p.prefix for p in queryset.filter(status=PREFIX_STATUS_ACTIVE)]) - reserved_prefixes = netaddr.cidr_merge([p.prefix for p in queryset.filter(status=PREFIX_STATUS_RESERVED)]) - deprecated_prefixes = netaddr.cidr_merge([p.prefix for p in queryset.filter(status=PREFIX_STATUS_DEPRECATED)]) + active_prefixes = netaddr.cidr_merge( + [p.prefix for p in queryset.filter(status=PREFIX_STATUS_ACTIVE)] + ) + reserved_prefixes = netaddr.cidr_merge( + [p.prefix for p in queryset.filter(status=PREFIX_STATUS_RESERVED)] + ) + deprecated_prefixes = netaddr.cidr_merge( + [p.prefix for p in queryset.filter(status=PREFIX_STATUS_DEPRECATED)] + ) # Find all available prefixes by subtracting each of the existing prefix sets from the aggregate prefix. available_prefixes = ( @@ -205,11 +211,11 @@ class RIRListView(ObjectListView): ) # Add the size of each metric to the RIR total. - stats['total'] += aggregate.prefix.size / denominator - stats['active'] += netaddr.IPSet(active_prefixes).size / denominator - stats['reserved'] += netaddr.IPSet(reserved_prefixes).size / denominator - stats['deprecated'] += netaddr.IPSet(deprecated_prefixes).size / denominator - stats['available'] += available_prefixes.size / denominator + stats['total'] += int(aggregate.prefix.size / denominator) + stats['active'] += int(netaddr.IPSet(active_prefixes).size / denominator) + stats['reserved'] += int(netaddr.IPSet(reserved_prefixes).size / denominator) + stats['deprecated'] += int(netaddr.IPSet(deprecated_prefixes).size / denominator) + stats['available'] += int(available_prefixes.size / denominator) # Calculate the percentage of total space for each prefix status. total = float(stats['total']) @@ -229,20 +235,6 @@ class RIRListView(ObjectListView): return rirs - def extra_context(self): - - totals = { - 'total': sum([rir.stats['total'] for rir in self.queryset]), - 'active': sum([rir.stats['active'] for rir in self.queryset]), - 'reserved': sum([rir.stats['reserved'] for rir in self.queryset]), - 'deprecated': sum([rir.stats['deprecated'] for rir in self.queryset]), - 'available': sum([rir.stats['available'] for rir in self.queryset]), - } - - return { - 'totals': totals, - } - class RIRCreateView(PermissionRequiredMixin, ObjectEditView): permission_required = 'ipam.add_rir' From a1d45023ab26ec3fb2a25890d53798271eba4b81 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 23 Jul 2018 15:50:44 -0400 Subject: [PATCH 03/13] Fixes #2256: Prevent navigation overlap when jumping to test results on report page --- netbox/project-static/css/base.css | 7 +++++ netbox/templates/extras/report.html | 44 ++++++++++++++++------------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/netbox/project-static/css/base.css b/netbox/project-static/css/base.css index bd1570827..e658589ac 100644 --- a/netbox/project-static/css/base.css +++ b/netbox/project-static/css/base.css @@ -378,6 +378,13 @@ table.reports td.stats label { margin-bottom: 0; min-width: 40px; } +table.report th { + position: relative; +} +table.report th a { + position: absolute; + top: -51px; +} /* AJAX loader */ .loading { diff --git a/netbox/templates/extras/report.html b/netbox/templates/extras/report.html index 050d6e445..0e637abbc 100644 --- a/netbox/templates/extras/report.html +++ b/netbox/templates/extras/report.html @@ -36,7 +36,7 @@
{% if report.result %} - +
@@ -45,27 +45,31 @@ - {% for method, data in report.result.data.items %} - - - - {% for time, level, obj, url, message in data.log %} - - - - - + + {% for method, data in report.result.data.items %} + + + {% for time, level, obj, url, message in data.log %} + + + + + + + {% endfor %} {% endfor %} - {% endfor %} +
TimeMessage
{{ method }}
{{ time }} - - - {% if obj and url %} - {{ obj }} - {% elif obj %} - {{ obj }} - {% endif %} - {{ message }}
+ {{ method }} +
{{ time }} + + + {% if obj and url %} + {{ obj }} + {% elif obj %} + {{ obj }} + {% endif %} + {{ message }}
{% else %}
No results are available for this report. Please run the report first.
From b518258e6dbcd8e9155ae64037e1b93d949243b6 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 23 Jul 2018 16:10:46 -0400 Subject: [PATCH 04/13] Closes #2250: Include stat counters on report result navigation --- netbox/project-static/css/base.css | 2 +- netbox/templates/extras/report.html | 104 ++++++++++++----------- netbox/templates/extras/report_list.html | 2 +- 3 files changed, 57 insertions(+), 51 deletions(-) diff --git a/netbox/project-static/css/base.css b/netbox/project-static/css/base.css index e658589ac..32bb8aea5 100644 --- a/netbox/project-static/css/base.css +++ b/netbox/project-static/css/base.css @@ -372,7 +372,7 @@ table.reports td.method { font-family: monospace; padding-left: 30px; } -table.reports td.stats label { +td.report-stats label { display: inline-block; line-height: 14px; margin-bottom: 0; diff --git a/netbox/templates/extras/report.html b/netbox/templates/extras/report.html index 0e637abbc..92753e23b 100644 --- a/netbox/templates/extras/report.html +++ b/netbox/templates/extras/report.html @@ -29,67 +29,73 @@

{{ report.description }}

{% endif %} {% if report.result %} -

Last run: {{ report.result.created }}

- {% else %} -

Last run: Never

+

Last run: {{ report.result.created }}

{% endif %} -
-
{% if report.result %} - - - - - - - - - - +
+
+ Report Methods +
+
TimeLevelObjectMessage
{% for method, data in report.result.data.items %} - + + - {% for time, level, obj, url, message in data.log %} - - - - - - - {% endfor %} {% endfor %} - -
- {{ method }} - {{ method }} + + + + +
{{ time }} - - - {% if obj and url %} - {{ obj }} - {% elif obj %} - {{ obj }} - {% endif %} - {{ message }}
+ +
+
+
+ Report Results +
+ + + + + + + + + + + {% for method, data in report.result.data.items %} + + + + {% for time, level, obj, url, message in data.log %} + + + + + + + {% endfor %} + {% endfor %} + +
TimeLevelObjectMessage
+ {{ method }} +
{{ time }} + + + {% if obj and url %} + {{ obj }} + {% elif obj %} + {{ obj }} + {% endif %} + {{ message }}
+
{% else %}
No results are available for this report. Please run the report first.
{% endif %}
{% if report.result %} -
-
- Methods -
-
    - {% for method, data in report.result.data.items %} -
  • - {{ method }} - {{ data.log|length }} -
  • - {% endfor %} -
-
{% endif %}
diff --git a/netbox/templates/extras/report_list.html b/netbox/templates/extras/report_list.html index 5c64eaf0d..7d2f8a2e2 100644 --- a/netbox/templates/extras/report_list.html +++ b/netbox/templates/extras/report_list.html @@ -38,7 +38,7 @@ {{ method }} - + From c8a73b5b15a796b2d5b30190877dd2f9e605299f Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 23 Jul 2018 23:00:09 -0400 Subject: [PATCH 05/13] Fixes #2266: Permit additional logging of exceptions beyond custom middleware --- netbox/netbox/urls.py | 2 ++ netbox/utilities/middleware.py | 29 +++++++++++++++-------------- netbox/utilities/views.py | 24 +++++++++++++++++++++++- 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/netbox/netbox/urls.py b/netbox/netbox/urls.py index 4907555ed..3a2a7205f 100644 --- a/netbox/netbox/urls.py +++ b/netbox/netbox/urls.py @@ -74,3 +74,5 @@ if settings.DEBUG: urlpatterns = [ url(r'^{}'.format(settings.BASE_PATH), include(_patterns)) ] + +handler500 = 'utilities.views.server_error' diff --git a/netbox/utilities/middleware.py b/netbox/utilities/middleware.py index 64fb70a07..a613d091a 100644 --- a/netbox/utilities/middleware.py +++ b/netbox/utilities/middleware.py @@ -4,8 +4,8 @@ import sys from django.conf import settings from django.db import ProgrammingError -from django.http import Http404, HttpResponseRedirect -from django.shortcuts import render +from django.http import Http404, HttpResponseRedirect, HttpResponseServerError +from django.template import loader from django.urls import reverse BASE_PATH = getattr(settings, 'BASE_PATH', False) @@ -65,23 +65,24 @@ class ExceptionHandlingMiddleware(object): if isinstance(exception, Http404): return - # Determine the type of exception + # Determine the type of exception. If it's a common issue, return a custom error page with instructions. + custom_template = None if isinstance(exception, ProgrammingError): - template_name = 'exceptions/programming_error.html' + custom_template = 'exceptions/programming_error.html' elif isinstance(exception, ImportError): - template_name = 'exceptions/import_error.html' + custom_template = 'exceptions/import_error.html' elif ( sys.version_info[0] >= 3 and isinstance(exception, PermissionError) ) or ( isinstance(exception, OSError) and exception.errno == 13 ): - template_name = 'exceptions/permission_error.html' - else: - template_name = '500.html' + custom_template = 'exceptions/permission_error.html' - # Return an error message - type_, error, traceback = sys.exc_info() - return render(request, template_name, { - 'exception': str(type_), - 'error': error, - }, status=500) + # Return a custom error message, or fall back to Django's default 500 error handling (500.html) + if custom_template: + type_, error, traceback = sys.exc_info() + template = loader.get_template(custom_template) + return HttpResponseServerError(template.render({ + 'exception': str(type_), + 'error': error, + })) diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py index 94b44fc48..dcb4529b1 100644 --- a/netbox/utilities/views.py +++ b/netbox/utilities/views.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from collections import OrderedDict from copy import deepcopy +import sys from django.conf import settings from django.contrib import messages @@ -10,12 +11,16 @@ from django.core.exceptions import ValidationError from django.db import transaction, IntegrityError from django.db.models import ProtectedError from django.forms import CharField, Form, ModelMultipleChoiceField, MultipleHiddenInput, Textarea +from django.http import HttpResponseServerError from django.shortcuts import get_object_or_404, redirect, render -from django.template.exceptions import TemplateSyntaxError +from django.template import loader +from django.template.exceptions import TemplateDoesNotExist, TemplateSyntaxError from django.urls import reverse from django.utils.html import escape from django.utils.http import is_safe_url from django.utils.safestring import mark_safe +from django.views.decorators.csrf import requires_csrf_token +from django.views.defaults import ERROR_500_TEMPLATE_NAME from django.views.generic import View from django_tables2 import RequestConfig @@ -858,3 +863,20 @@ class BulkComponentCreateView(View): 'table': table, 'return_url': reverse(self.default_return_url), }) + + +@requires_csrf_token +def server_error(request, template_name=ERROR_500_TEMPLATE_NAME): + """ + Custom 500 handler to provide additional context when rendering 500.html. + """ + try: + template = loader.get_template(template_name) + except TemplateDoesNotExist: + return HttpResponseServerError('

Server Error (500)

', content_type='text/html') + type_, error, traceback = sys.exc_info() + + return HttpResponseServerError(template.render({ + 'exception': str(type_), + 'error': error, + })) From e82bf66a766d77408fe784f23c32c08a4ef8235c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Mon, 23 Jul 2018 23:12:41 -0400 Subject: [PATCH 06/13] ExceptionHandlingMiddleware: Use server_error view for custom templates --- netbox/utilities/middleware.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/netbox/utilities/middleware.py b/netbox/utilities/middleware.py index a613d091a..70d018023 100644 --- a/netbox/utilities/middleware.py +++ b/netbox/utilities/middleware.py @@ -4,10 +4,11 @@ import sys from django.conf import settings from django.db import ProgrammingError -from django.http import Http404, HttpResponseRedirect, HttpResponseServerError -from django.template import loader +from django.http import Http404, HttpResponseRedirect from django.urls import reverse +from .views import server_error + BASE_PATH = getattr(settings, 'BASE_PATH', False) LOGIN_REQUIRED = getattr(settings, 'LOGIN_REQUIRED', False) @@ -78,11 +79,6 @@ class ExceptionHandlingMiddleware(object): ): custom_template = 'exceptions/permission_error.html' - # Return a custom error message, or fall back to Django's default 500 error handling (500.html) + # Return a custom error message, or fall back to Django's default 500 error handling if custom_template: - type_, error, traceback = sys.exc_info() - template = loader.get_template(custom_template) - return HttpResponseServerError(template.render({ - 'exception': str(type_), - 'error': error, - })) + return server_error(request, template_name=custom_template) From 431361efad02ecc0ea748cb6e24512a2fa4103e0 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 26 Jul 2018 12:17:16 -0400 Subject: [PATCH 07/13] Introduced purpose-specific GitHub issue templates --- .github/ISSUE_TEMPLATE.md | 49 ----------------- .github/ISSUE_TEMPLATE/bug_report.md | 34 ++++++++++++ .../ISSUE_TEMPLATE/documentation_change.md | 17 ++++++ .github/ISSUE_TEMPLATE/feature_request.md | 53 +++++++++++++++++++ .github/ISSUE_TEMPLATE/housekeeping.md | 16 ++++++ 5 files changed, 120 insertions(+), 49 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/documentation_change.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/housekeeping.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 59746cacd..000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,49 +0,0 @@ - -### Issue type -[ ] Feature request -[ ] Bug report -[ ] Documentation -[ ] Housekeeping - - -### Environment -* Python version: -* NetBox version: - - -### Description diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..20868696e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,34 @@ +--- +name: :bug: Bug Report +about: Report a reproducible bug in the current release of NetBox +--- + + +### Environment +* Python version: +* NetBox version: + + +### Steps to Reproduce + + + +### Expected Behavior + + + +### Observed Behavior diff --git a/.github/ISSUE_TEMPLATE/documentation_change.md b/.github/ISSUE_TEMPLATE/documentation_change.md new file mode 100644 index 000000000..a211116cc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation_change.md @@ -0,0 +1,17 @@ +--- +name: :book: Documentation Change +about: Suggest an addition or modification to the NetBox documentation +--- + + +### Change Type +[ ] Addition +[ ] Correction +[ ] Deprecation +[ ] Cleanup (formatting, typos, etc.) + + +### Proposed Changes diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..b9dc931b6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,53 @@ +--- +name: :new: Feature Request +about: Propose a new NetBox feature or enhancement +--- + + +### Environment +* Python version: +* NetBox version: + + +### Proposed Functionality + + + +### Use Case + + + +### Database Changes + + + +### External Dependencies diff --git a/.github/ISSUE_TEMPLATE/housekeeping.md b/.github/ISSUE_TEMPLATE/housekeeping.md new file mode 100644 index 000000000..0ca400cff --- /dev/null +++ b/.github/ISSUE_TEMPLATE/housekeeping.md @@ -0,0 +1,16 @@ +--- +name: :house: Housekeeping +about: A change pertaining to the codebase itself +--- + + +### Proposed Changes + + + +### Justification --> From 0497539ef267b074e11876683ee609def837e69a Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 26 Jul 2018 14:24:16 -0400 Subject: [PATCH 08/13] Release v2.3.7 --- netbox/netbox/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index f45024b57..8e0d5c8c2 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -22,7 +22,7 @@ if sys.version_info[0] < 3: DeprecationWarning ) -VERSION = '2.3.7-dev' +VERSION = '2.3.7' BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) From 684a0d9e360966e67c21ad7a215c971cff7721bc Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 26 Jul 2018 14:53:32 -0400 Subject: [PATCH 09/13] Update issue templates (#2277) * Update issue templates * Renamed documentation change template * Fixed description on bug report template --- .github/ISSUE_TEMPLATE/bug_report.md | 3 ++- .github/ISSUE_TEMPLATE/documentation_change.md | 3 ++- .github/ISSUE_TEMPLATE/feature_request.md | 3 ++- .github/ISSUE_TEMPLATE/housekeeping.md | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 20868696e..71e93a49e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,6 +1,7 @@ --- -name: :bug: Bug Report +name: Bug report about: Report a reproducible bug in the current release of NetBox + --- -### Justification --> +### Justification From 58a97b4e39cb1364753c7b217a5bc4998a9e08e1 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 26 Jul 2018 15:04:47 -0400 Subject: [PATCH 12/13] Trying emojis in issue template names --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/ISSUE_TEMPLATE/documentation_change.md | 2 +- .github/ISSUE_TEMPLATE/feature_request.md | 2 +- .github/ISSUE_TEMPLATE/housekeeping.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 19e121c74..9f5307d4d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,5 +1,5 @@ --- -name: Bug Report +name: :bug: Bug Report about: Report a reproducible bug in the current release of NetBox --- diff --git a/.github/ISSUE_TEMPLATE/documentation_change.md b/.github/ISSUE_TEMPLATE/documentation_change.md index 3dc7ba594..fc5ac9651 100644 --- a/.github/ISSUE_TEMPLATE/documentation_change.md +++ b/.github/ISSUE_TEMPLATE/documentation_change.md @@ -1,5 +1,5 @@ --- -name: Documentation Change +name: :book: Documentation Change about: Suggest an addition or modification to the NetBox documentation --- diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 7591eb6b1..2cfb4fe43 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,5 +1,5 @@ --- -name: Feature Request +name: :tada: Feature Request about: Propose a new NetBox feature or enhancement --- diff --git a/.github/ISSUE_TEMPLATE/housekeeping.md b/.github/ISSUE_TEMPLATE/housekeeping.md index c0f6b845c..3bc04353f 100644 --- a/.github/ISSUE_TEMPLATE/housekeeping.md +++ b/.github/ISSUE_TEMPLATE/housekeeping.md @@ -1,5 +1,5 @@ --- -name: Housekeeping +name: :house: Housekeeping about: A change pertaining to the codebase itself --- From 3166d12994c44b31cb4cea9f7f314c6c2e9b4f8c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 26 Jul 2018 15:09:19 -0400 Subject: [PATCH 13/13] Use real emojis for issue template names --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/ISSUE_TEMPLATE/documentation_change.md | 2 +- .github/ISSUE_TEMPLATE/feature_request.md | 2 +- .github/ISSUE_TEMPLATE/housekeeping.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9f5307d4d..4bf6fb9c6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,5 +1,5 @@ --- -name: :bug: Bug Report +name: 🐛 Bug Report about: Report a reproducible bug in the current release of NetBox --- diff --git a/.github/ISSUE_TEMPLATE/documentation_change.md b/.github/ISSUE_TEMPLATE/documentation_change.md index fc5ac9651..408beef44 100644 --- a/.github/ISSUE_TEMPLATE/documentation_change.md +++ b/.github/ISSUE_TEMPLATE/documentation_change.md @@ -1,5 +1,5 @@ --- -name: :book: Documentation Change +name: 📖 Documentation Change about: Suggest an addition or modification to the NetBox documentation --- diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 2cfb4fe43..ebe19d811 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,5 +1,5 @@ --- -name: :tada: Feature Request +name: ✨ Feature Request about: Propose a new NetBox feature or enhancement --- diff --git a/.github/ISSUE_TEMPLATE/housekeeping.md b/.github/ISSUE_TEMPLATE/housekeeping.md index 3bc04353f..e03ae63a2 100644 --- a/.github/ISSUE_TEMPLATE/housekeeping.md +++ b/.github/ISSUE_TEMPLATE/housekeeping.md @@ -1,5 +1,5 @@ --- -name: :house: Housekeeping +name: 🏡 Housekeeping about: A change pertaining to the codebase itself ---