From a797b8458e90caa00427d1270b82031c5e64ec09 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Tue, 21 Mar 2023 13:39:27 +0800 Subject: [PATCH 01/10] Keep (add if not existing) xmlns attribute for generated SVG images (#23410) Fix #23409 Developers could browse & preview the local SVG images files directly. It still has clear output. ![image](https://user-images.githubusercontent.com/2114189/224317107-f4b26c76-e36a-4e80-9eee-d8dc2e16421f.png) ![image](https://user-images.githubusercontent.com/2114189/224317527-2d4ca131-978c-4933-b071-4bae483f06e1.png) --------- Co-authored-by: silverwind Co-authored-by: delvh --- build/generate-svg.js | 12 ++++++++++-- modules/svg/svg.go | 6 ++++++ public/img/svg/fontawesome-openid.svg | 2 +- public/img/svg/fontawesome-save.svg | 2 +- public/img/svg/fontawesome-send.svg | 2 +- public/img/svg/fontawesome-windows.svg | 2 +- public/img/svg/gitea-cargo.svg | 2 +- public/img/svg/gitea-chef.svg | 2 +- public/img/svg/gitea-codebase.svg | 2 +- public/img/svg/gitea-composer.svg | 2 +- public/img/svg/gitea-conan.svg | 2 +- public/img/svg/gitea-conda.svg | 2 +- public/img/svg/gitea-double-chevron-left.svg | 2 +- public/img/svg/gitea-double-chevron-right.svg | 2 +- public/img/svg/gitea-exclamation.svg | 2 +- public/img/svg/gitea-git.svg | 2 +- public/img/svg/gitea-gitbucket.svg | 2 +- public/img/svg/gitea-gitea.svg | 2 +- public/img/svg/gitea-github.svg | 2 +- public/img/svg/gitea-gitlab.svg | 2 +- public/img/svg/gitea-gogs.svg | 2 +- public/img/svg/gitea-helm.svg | 2 +- public/img/svg/gitea-join.svg | 2 +- public/img/svg/gitea-lock-cog.svg | 2 +- public/img/svg/gitea-lock.svg | 2 +- public/img/svg/gitea-matrix.svg | 2 +- public/img/svg/gitea-maven.svg | 2 +- public/img/svg/gitea-npm.svg | 2 +- public/img/svg/gitea-nuget.svg | 2 +- public/img/svg/gitea-onedev.svg | 2 +- public/img/svg/gitea-pub.svg | 2 +- public/img/svg/gitea-python.svg | 2 +- public/img/svg/gitea-rubygems.svg | 2 +- public/img/svg/gitea-split.svg | 2 +- public/img/svg/gitea-swift.svg | 2 +- public/img/svg/gitea-unlock.svg | 2 +- public/img/svg/gitea-vagrant.svg | 2 +- public/img/svg/gitea-vscode.svg | 2 +- public/img/svg/gitea-whitespace.svg | 2 +- public/img/svg/material-invert-colors.svg | 2 +- public/img/svg/material-palette.svg | 2 +- public/img/svg/octicon-accessibility-inset.svg | 2 +- public/img/svg/octicon-accessibility.svg | 2 +- public/img/svg/octicon-alert-fill.svg | 2 +- public/img/svg/octicon-alert.svg | 2 +- public/img/svg/octicon-apps.svg | 2 +- public/img/svg/octicon-archive.svg | 2 +- public/img/svg/octicon-arrow-both.svg | 2 +- public/img/svg/octicon-arrow-down-left.svg | 2 +- public/img/svg/octicon-arrow-down-right.svg | 2 +- public/img/svg/octicon-arrow-down.svg | 2 +- public/img/svg/octicon-arrow-left.svg | 2 +- public/img/svg/octicon-arrow-right.svg | 2 +- public/img/svg/octicon-arrow-switch.svg | 2 +- public/img/svg/octicon-arrow-up-left.svg | 2 +- public/img/svg/octicon-arrow-up-right.svg | 2 +- public/img/svg/octicon-arrow-up.svg | 2 +- public/img/svg/octicon-beaker.svg | 2 +- public/img/svg/octicon-bell-fill.svg | 2 +- public/img/svg/octicon-bell-slash.svg | 2 +- public/img/svg/octicon-bell.svg | 2 +- public/img/svg/octicon-blocked.svg | 2 +- public/img/svg/octicon-bold.svg | 2 +- public/img/svg/octicon-book.svg | 2 +- public/img/svg/octicon-bookmark-slash.svg | 2 +- public/img/svg/octicon-bookmark.svg | 2 +- public/img/svg/octicon-briefcase.svg | 2 +- public/img/svg/octicon-broadcast.svg | 2 +- public/img/svg/octicon-browser.svg | 2 +- public/img/svg/octicon-bug.svg | 2 +- public/img/svg/octicon-cache.svg | 2 +- public/img/svg/octicon-calendar.svg | 2 +- public/img/svg/octicon-check-circle-fill.svg | 2 +- public/img/svg/octicon-check-circle.svg | 2 +- public/img/svg/octicon-check.svg | 2 +- public/img/svg/octicon-checkbox.svg | 2 +- public/img/svg/octicon-checklist.svg | 2 +- public/img/svg/octicon-chevron-down.svg | 2 +- public/img/svg/octicon-chevron-left.svg | 2 +- public/img/svg/octicon-chevron-right.svg | 2 +- public/img/svg/octicon-chevron-up.svg | 2 +- public/img/svg/octicon-circle-slash.svg | 2 +- public/img/svg/octicon-circle.svg | 2 +- public/img/svg/octicon-clock-fill.svg | 2 +- public/img/svg/octicon-clock.svg | 2 +- public/img/svg/octicon-cloud-offline.svg | 2 +- public/img/svg/octicon-cloud.svg | 2 +- public/img/svg/octicon-code-of-conduct.svg | 2 +- public/img/svg/octicon-code-review.svg | 2 +- public/img/svg/octicon-code-square.svg | 2 +- public/img/svg/octicon-code.svg | 2 +- public/img/svg/octicon-codescan-checkmark.svg | 2 +- public/img/svg/octicon-codescan.svg | 2 +- public/img/svg/octicon-codespaces.svg | 2 +- public/img/svg/octicon-columns.svg | 2 +- public/img/svg/octicon-command-palette.svg | 2 +- public/img/svg/octicon-comment-discussion.svg | 2 +- public/img/svg/octicon-comment.svg | 2 +- public/img/svg/octicon-container.svg | 2 +- public/img/svg/octicon-copilot-error.svg | 2 +- public/img/svg/octicon-copilot-warning.svg | 2 +- public/img/svg/octicon-copilot.svg | 2 +- public/img/svg/octicon-copy.svg | 2 +- public/img/svg/octicon-cpu.svg | 2 +- public/img/svg/octicon-credit-card.svg | 2 +- public/img/svg/octicon-cross-reference.svg | 2 +- public/img/svg/octicon-dash.svg | 2 +- public/img/svg/octicon-database.svg | 2 +- public/img/svg/octicon-dependabot.svg | 2 +- public/img/svg/octicon-desktop-download.svg | 2 +- public/img/svg/octicon-device-camera-video.svg | 2 +- public/img/svg/octicon-device-camera.svg | 2 +- public/img/svg/octicon-device-desktop.svg | 2 +- public/img/svg/octicon-device-mobile.svg | 2 +- public/img/svg/octicon-diamond.svg | 2 +- public/img/svg/octicon-diff-added.svg | 2 +- public/img/svg/octicon-diff-ignored.svg | 2 +- public/img/svg/octicon-diff-modified.svg | 2 +- public/img/svg/octicon-diff-removed.svg | 2 +- public/img/svg/octicon-diff-renamed.svg | 2 +- public/img/svg/octicon-diff.svg | 2 +- public/img/svg/octicon-discussion-closed.svg | 2 +- public/img/svg/octicon-discussion-duplicate.svg | 2 +- public/img/svg/octicon-discussion-outdated.svg | 2 +- public/img/svg/octicon-dot-fill.svg | 2 +- public/img/svg/octicon-dot.svg | 2 +- public/img/svg/octicon-download.svg | 2 +- public/img/svg/octicon-duplicate.svg | 2 +- public/img/svg/octicon-ellipsis.svg | 2 +- public/img/svg/octicon-eye-closed.svg | 2 +- public/img/svg/octicon-eye.svg | 2 +- public/img/svg/octicon-feed-discussion.svg | 2 +- public/img/svg/octicon-feed-forked.svg | 2 +- public/img/svg/octicon-feed-heart.svg | 2 +- public/img/svg/octicon-feed-merged.svg | 2 +- public/img/svg/octicon-feed-person.svg | 2 +- public/img/svg/octicon-feed-repo.svg | 2 +- public/img/svg/octicon-feed-rocket.svg | 2 +- public/img/svg/octicon-feed-star.svg | 2 +- public/img/svg/octicon-feed-tag.svg | 2 +- public/img/svg/octicon-feed-trophy.svg | 2 +- public/img/svg/octicon-file-added.svg | 2 +- public/img/svg/octicon-file-badge.svg | 2 +- public/img/svg/octicon-file-binary.svg | 2 +- public/img/svg/octicon-file-code.svg | 2 +- public/img/svg/octicon-file-diff.svg | 2 +- public/img/svg/octicon-file-directory-fill.svg | 2 +- public/img/svg/octicon-file-directory-open-fill.svg | 2 +- public/img/svg/octicon-file-directory.svg | 2 +- public/img/svg/octicon-file-moved.svg | 2 +- public/img/svg/octicon-file-removed.svg | 2 +- public/img/svg/octicon-file-submodule.svg | 2 +- public/img/svg/octicon-file-symlink-file.svg | 2 +- public/img/svg/octicon-file-zip.svg | 2 +- public/img/svg/octicon-file.svg | 2 +- public/img/svg/octicon-filter.svg | 2 +- public/img/svg/octicon-fiscal-host.svg | 2 +- public/img/svg/octicon-flame.svg | 2 +- public/img/svg/octicon-fold-down.svg | 2 +- public/img/svg/octicon-fold-up.svg | 2 +- public/img/svg/octicon-fold.svg | 2 +- public/img/svg/octicon-gear.svg | 2 +- public/img/svg/octicon-gift.svg | 2 +- public/img/svg/octicon-git-branch.svg | 2 +- public/img/svg/octicon-git-commit.svg | 2 +- public/img/svg/octicon-git-compare.svg | 2 +- public/img/svg/octicon-git-merge-queue.svg | 2 +- public/img/svg/octicon-git-merge.svg | 2 +- public/img/svg/octicon-git-pull-request-closed.svg | 2 +- public/img/svg/octicon-git-pull-request-draft.svg | 2 +- public/img/svg/octicon-git-pull-request.svg | 2 +- public/img/svg/octicon-globe.svg | 2 +- public/img/svg/octicon-goal.svg | 2 +- public/img/svg/octicon-grabber.svg | 2 +- public/img/svg/octicon-graph.svg | 2 +- public/img/svg/octicon-hash.svg | 2 +- public/img/svg/octicon-heading.svg | 2 +- public/img/svg/octicon-heart-fill.svg | 2 +- public/img/svg/octicon-heart.svg | 2 +- public/img/svg/octicon-history.svg | 2 +- public/img/svg/octicon-home.svg | 2 +- public/img/svg/octicon-horizontal-rule.svg | 2 +- public/img/svg/octicon-hourglass.svg | 2 +- public/img/svg/octicon-hubot.svg | 2 +- public/img/svg/octicon-id-badge.svg | 2 +- public/img/svg/octicon-image.svg | 2 +- public/img/svg/octicon-inbox.svg | 2 +- public/img/svg/octicon-infinity.svg | 2 +- public/img/svg/octicon-info.svg | 2 +- public/img/svg/octicon-issue-closed.svg | 2 +- public/img/svg/octicon-issue-draft.svg | 2 +- public/img/svg/octicon-issue-opened.svg | 2 +- public/img/svg/octicon-issue-reopened.svg | 2 +- public/img/svg/octicon-issue-tracked-by.svg | 2 +- public/img/svg/octicon-issue-tracks.svg | 2 +- public/img/svg/octicon-italic.svg | 2 +- public/img/svg/octicon-iterations.svg | 2 +- public/img/svg/octicon-kebab-horizontal.svg | 2 +- public/img/svg/octicon-key-asterisk.svg | 2 +- public/img/svg/octicon-key.svg | 2 +- public/img/svg/octicon-law.svg | 2 +- public/img/svg/octicon-light-bulb.svg | 2 +- public/img/svg/octicon-link-external.svg | 2 +- public/img/svg/octicon-link.svg | 2 +- public/img/svg/octicon-list-ordered.svg | 2 +- public/img/svg/octicon-list-unordered.svg | 2 +- public/img/svg/octicon-location.svg | 2 +- public/img/svg/octicon-lock.svg | 2 +- public/img/svg/octicon-log.svg | 2 +- public/img/svg/octicon-logo-gist.svg | 2 +- public/img/svg/octicon-logo-github.svg | 2 +- public/img/svg/octicon-mail.svg | 2 +- public/img/svg/octicon-mark-github.svg | 2 +- public/img/svg/octicon-markdown.svg | 2 +- public/img/svg/octicon-megaphone.svg | 2 +- public/img/svg/octicon-mention.svg | 2 +- public/img/svg/octicon-meter.svg | 2 +- public/img/svg/octicon-milestone.svg | 2 +- public/img/svg/octicon-mirror.svg | 2 +- public/img/svg/octicon-moon.svg | 2 +- public/img/svg/octicon-mortar-board.svg | 2 +- public/img/svg/octicon-move-to-bottom.svg | 2 +- public/img/svg/octicon-move-to-end.svg | 2 +- public/img/svg/octicon-move-to-start.svg | 2 +- public/img/svg/octicon-move-to-top.svg | 2 +- public/img/svg/octicon-multi-select.svg | 2 +- public/img/svg/octicon-mute.svg | 2 +- public/img/svg/octicon-no-entry.svg | 2 +- public/img/svg/octicon-north-star.svg | 2 +- public/img/svg/octicon-note.svg | 2 +- public/img/svg/octicon-number.svg | 2 +- public/img/svg/octicon-organization.svg | 2 +- public/img/svg/octicon-package-dependencies.svg | 2 +- public/img/svg/octicon-package-dependents.svg | 2 +- public/img/svg/octicon-package.svg | 2 +- public/img/svg/octicon-paintbrush.svg | 2 +- public/img/svg/octicon-paper-airplane.svg | 2 +- public/img/svg/octicon-paperclip.svg | 2 +- public/img/svg/octicon-passkey-fill.svg | 2 +- public/img/svg/octicon-paste.svg | 2 +- public/img/svg/octicon-pencil.svg | 2 +- public/img/svg/octicon-people.svg | 2 +- public/img/svg/octicon-person-add.svg | 2 +- public/img/svg/octicon-person-fill.svg | 2 +- public/img/svg/octicon-person.svg | 2 +- public/img/svg/octicon-pin.svg | 2 +- public/img/svg/octicon-play.svg | 2 +- public/img/svg/octicon-plug.svg | 2 +- public/img/svg/octicon-plus-circle.svg | 2 +- public/img/svg/octicon-plus.svg | 2 +- public/img/svg/octicon-project-roadmap.svg | 2 +- public/img/svg/octicon-project-symlink.svg | 2 +- public/img/svg/octicon-project.svg | 2 +- public/img/svg/octicon-pulse.svg | 2 +- public/img/svg/octicon-question.svg | 2 +- public/img/svg/octicon-quote.svg | 2 +- public/img/svg/octicon-read.svg | 2 +- public/img/svg/octicon-rel-file-path.svg | 2 +- public/img/svg/octicon-reply.svg | 2 +- public/img/svg/octicon-repo-clone.svg | 2 +- public/img/svg/octicon-repo-deleted.svg | 2 +- public/img/svg/octicon-repo-forked.svg | 2 +- public/img/svg/octicon-repo-locked.svg | 2 +- public/img/svg/octicon-repo-pull.svg | 2 +- public/img/svg/octicon-repo-push.svg | 2 +- public/img/svg/octicon-repo-template.svg | 2 +- public/img/svg/octicon-repo.svg | 2 +- public/img/svg/octicon-report.svg | 2 +- public/img/svg/octicon-rocket.svg | 2 +- public/img/svg/octicon-rows.svg | 2 +- public/img/svg/octicon-rss.svg | 2 +- public/img/svg/octicon-ruby.svg | 2 +- public/img/svg/octicon-screen-full.svg | 2 +- public/img/svg/octicon-screen-normal.svg | 2 +- public/img/svg/octicon-search.svg | 2 +- public/img/svg/octicon-server.svg | 2 +- public/img/svg/octicon-share-android.svg | 2 +- public/img/svg/octicon-share.svg | 2 +- public/img/svg/octicon-shield-check.svg | 2 +- public/img/svg/octicon-shield-lock.svg | 2 +- public/img/svg/octicon-shield-slash.svg | 2 +- public/img/svg/octicon-shield-x.svg | 2 +- public/img/svg/octicon-shield.svg | 2 +- public/img/svg/octicon-sidebar-collapse.svg | 2 +- public/img/svg/octicon-sidebar-expand.svg | 2 +- public/img/svg/octicon-sign-in.svg | 2 +- public/img/svg/octicon-sign-out.svg | 2 +- public/img/svg/octicon-single-select.svg | 2 +- public/img/svg/octicon-skip-fill.svg | 2 +- public/img/svg/octicon-skip.svg | 2 +- public/img/svg/octicon-sliders.svg | 2 +- public/img/svg/octicon-smiley.svg | 2 +- public/img/svg/octicon-sort-asc.svg | 2 +- public/img/svg/octicon-sort-desc.svg | 2 +- public/img/svg/octicon-sparkle-fill.svg | 2 +- public/img/svg/octicon-sponsor-tiers.svg | 2 +- public/img/svg/octicon-square-fill.svg | 2 +- public/img/svg/octicon-square.svg | 2 +- public/img/svg/octicon-squirrel.svg | 2 +- public/img/svg/octicon-stack.svg | 2 +- public/img/svg/octicon-star-fill.svg | 2 +- public/img/svg/octicon-star.svg | 2 +- public/img/svg/octicon-stop.svg | 2 +- public/img/svg/octicon-stopwatch.svg | 2 +- public/img/svg/octicon-strikethrough.svg | 2 +- public/img/svg/octicon-sun.svg | 2 +- public/img/svg/octicon-sync.svg | 2 +- public/img/svg/octicon-tab-external.svg | 2 +- public/img/svg/octicon-table.svg | 2 +- public/img/svg/octicon-tag.svg | 2 +- public/img/svg/octicon-tasklist.svg | 2 +- public/img/svg/octicon-telescope-fill.svg | 2 +- public/img/svg/octicon-telescope.svg | 2 +- public/img/svg/octicon-terminal.svg | 2 +- public/img/svg/octicon-three-bars.svg | 2 +- public/img/svg/octicon-thumbsdown.svg | 2 +- public/img/svg/octicon-thumbsup.svg | 2 +- public/img/svg/octicon-tools.svg | 2 +- public/img/svg/octicon-trash.svg | 2 +- public/img/svg/octicon-triangle-down.svg | 2 +- public/img/svg/octicon-triangle-left.svg | 2 +- public/img/svg/octicon-triangle-right.svg | 2 +- public/img/svg/octicon-triangle-up.svg | 2 +- public/img/svg/octicon-trophy.svg | 2 +- public/img/svg/octicon-typography.svg | 2 +- public/img/svg/octicon-unfold.svg | 2 +- public/img/svg/octicon-unlink.svg | 2 +- public/img/svg/octicon-unlock.svg | 2 +- public/img/svg/octicon-unmute.svg | 2 +- public/img/svg/octicon-unread.svg | 2 +- public/img/svg/octicon-unverified.svg | 2 +- public/img/svg/octicon-upload.svg | 2 +- public/img/svg/octicon-verified.svg | 2 +- public/img/svg/octicon-versions.svg | 2 +- public/img/svg/octicon-video.svg | 2 +- public/img/svg/octicon-webhook.svg | 2 +- public/img/svg/octicon-workflow.svg | 2 +- public/img/svg/octicon-x-circle-fill.svg | 2 +- public/img/svg/octicon-x-circle.svg | 2 +- public/img/svg/octicon-x.svg | 2 +- public/img/svg/octicon-zap.svg | 2 +- public/img/svg/octicon-zoom-in.svg | 2 +- public/img/svg/octicon-zoom-out.svg | 2 +- 343 files changed, 357 insertions(+), 343 deletions(-) diff --git a/build/generate-svg.js b/build/generate-svg.js index 31e65b8a7579..dc82ed465a20 100755 --- a/build/generate-svg.js +++ b/build/generate-svg.js @@ -25,14 +25,22 @@ async function processFile(file, {prefix, fullName} = {}) { if (prefix === 'octicon') name = name.replace(/-[0-9]+$/, ''); // chop of '-16' on octicons } + // Set the `xmlns` attribute so that the files are displayable in standalone documents + // The svg backend module will strip the attribute during startup for inline display const {data} = optimize(await readFile(file, 'utf8'), { plugins: [ {name: 'preset-default'}, - {name: 'removeXMLNS'}, {name: 'removeDimensions'}, {name: 'prefixIds', params: {prefix: () => name}}, {name: 'addClassesToSVGElement', params: {classNames: ['svg', name]}}, - {name: 'addAttributesToSVGElement', params: {attributes: [{'width': '16'}, {'height': '16'}, {'aria-hidden': 'true'}]}}, + { + name: 'addAttributesToSVGElement', params: { + attributes: [ + {'xmlns': 'http://www.w3.org/2000/svg'}, + {'width': '16'}, {'height': '16'}, {'aria-hidden': 'true'}, + ] + } + }, ], }); diff --git a/modules/svg/svg.go b/modules/svg/svg.go index e0f0a263f300..b74ee3535800 100644 --- a/modules/svg/svg.go +++ b/modules/svg/svg.go @@ -25,6 +25,12 @@ const defaultSize = 16 // Init discovers SVGs and populates the `SVGs` variable func Init() { SVGs = Discover() + + // Remove `xmlns` because inline SVG does not need it + r := regexp.MustCompile(`(]*?)\s+xmlns="[^"]*"`) + for name, svg := range SVGs { + SVGs[name] = r.ReplaceAllString(svg, "$1") + } } // Render render icons - arguments icon name (string), size (int), class (string) diff --git a/public/img/svg/fontawesome-openid.svg b/public/img/svg/fontawesome-openid.svg index 9bcb92b877ab..f806899bde9e 100644 --- a/public/img/svg/fontawesome-openid.svg +++ b/public/img/svg/fontawesome-openid.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/fontawesome-save.svg b/public/img/svg/fontawesome-save.svg index f7beb90d949e..ece457e55918 100644 --- a/public/img/svg/fontawesome-save.svg +++ b/public/img/svg/fontawesome-save.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/fontawesome-send.svg b/public/img/svg/fontawesome-send.svg index b1170fd9e7c6..f94715d40191 100644 --- a/public/img/svg/fontawesome-send.svg +++ b/public/img/svg/fontawesome-send.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/fontawesome-windows.svg b/public/img/svg/fontawesome-windows.svg index 8e322daf0e6e..ec8633761c0b 100644 --- a/public/img/svg/fontawesome-windows.svg +++ b/public/img/svg/fontawesome-windows.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-cargo.svg b/public/img/svg/gitea-cargo.svg index 91d53941cad9..0d82ee3c4a26 100644 --- a/public/img/svg/gitea-cargo.svg +++ b/public/img/svg/gitea-cargo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-chef.svg b/public/img/svg/gitea-chef.svg index 8f1cd6165cab..0ec6916eef9b 100644 --- a/public/img/svg/gitea-chef.svg +++ b/public/img/svg/gitea-chef.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-codebase.svg b/public/img/svg/gitea-codebase.svg index cb95323a0084..7871527b2c29 100644 --- a/public/img/svg/gitea-codebase.svg +++ b/public/img/svg/gitea-codebase.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-composer.svg b/public/img/svg/gitea-composer.svg index 6647813b7683..2ffe9e2af02c 100644 --- a/public/img/svg/gitea-composer.svg +++ b/public/img/svg/gitea-composer.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-conan.svg b/public/img/svg/gitea-conan.svg index 55e27f9a44e6..f1857c7f20c0 100644 --- a/public/img/svg/gitea-conan.svg +++ b/public/img/svg/gitea-conan.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-conda.svg b/public/img/svg/gitea-conda.svg index cd4817adf2e3..90080440cf00 100644 --- a/public/img/svg/gitea-conda.svg +++ b/public/img/svg/gitea-conda.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-double-chevron-left.svg b/public/img/svg/gitea-double-chevron-left.svg index 8921eef58601..ec7d12142100 100644 --- a/public/img/svg/gitea-double-chevron-left.svg +++ b/public/img/svg/gitea-double-chevron-left.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-double-chevron-right.svg b/public/img/svg/gitea-double-chevron-right.svg index da4304542d27..e312728cd48d 100644 --- a/public/img/svg/gitea-double-chevron-right.svg +++ b/public/img/svg/gitea-double-chevron-right.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-exclamation.svg b/public/img/svg/gitea-exclamation.svg index d6c86136b31c..cf5a7b76f52c 100644 --- a/public/img/svg/gitea-exclamation.svg +++ b/public/img/svg/gitea-exclamation.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-git.svg b/public/img/svg/gitea-git.svg index f0d692251dc9..ba4318c8b1b4 100644 --- a/public/img/svg/gitea-git.svg +++ b/public/img/svg/gitea-git.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-gitbucket.svg b/public/img/svg/gitea-gitbucket.svg index 3d07adebdd00..edea1e5fe69c 100644 --- a/public/img/svg/gitea-gitbucket.svg +++ b/public/img/svg/gitea-gitbucket.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-gitea.svg b/public/img/svg/gitea-gitea.svg index b989d10ed218..f9015a31bdd8 100644 --- a/public/img/svg/gitea-gitea.svg +++ b/public/img/svg/gitea-gitea.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-github.svg b/public/img/svg/gitea-github.svg index 1634cbb119c4..ee3c9fdafcf8 100644 --- a/public/img/svg/gitea-github.svg +++ b/public/img/svg/gitea-github.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-gitlab.svg b/public/img/svg/gitea-gitlab.svg index 9d7176ceef71..2891da094f36 100644 --- a/public/img/svg/gitea-gitlab.svg +++ b/public/img/svg/gitea-gitlab.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-gogs.svg b/public/img/svg/gitea-gogs.svg index 7c2a02a05b5a..e46a10c063c9 100644 --- a/public/img/svg/gitea-gogs.svg +++ b/public/img/svg/gitea-gogs.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-helm.svg b/public/img/svg/gitea-helm.svg index 1e16850e38c8..6f15925a683e 100644 --- a/public/img/svg/gitea-helm.svg +++ b/public/img/svg/gitea-helm.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-join.svg b/public/img/svg/gitea-join.svg index 678b9374f731..574c8b272f4f 100644 --- a/public/img/svg/gitea-join.svg +++ b/public/img/svg/gitea-join.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-lock-cog.svg b/public/img/svg/gitea-lock-cog.svg index e2b90a2677ca..c7be1f09c0de 100644 --- a/public/img/svg/gitea-lock-cog.svg +++ b/public/img/svg/gitea-lock-cog.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-lock.svg b/public/img/svg/gitea-lock.svg index 3da5f730c5c2..3f1df87b7906 100644 --- a/public/img/svg/gitea-lock.svg +++ b/public/img/svg/gitea-lock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-matrix.svg b/public/img/svg/gitea-matrix.svg index cc5e08d3c7f1..33e2708d6477 100644 --- a/public/img/svg/gitea-matrix.svg +++ b/public/img/svg/gitea-matrix.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-maven.svg b/public/img/svg/gitea-maven.svg index 6c1e0bc23d93..b739ae486bf3 100644 --- a/public/img/svg/gitea-maven.svg +++ b/public/img/svg/gitea-maven.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-npm.svg b/public/img/svg/gitea-npm.svg index e11a4fcf595a..68f3f6c94551 100644 --- a/public/img/svg/gitea-npm.svg +++ b/public/img/svg/gitea-npm.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-nuget.svg b/public/img/svg/gitea-nuget.svg index a835cebc9639..da6bfd24536d 100644 --- a/public/img/svg/gitea-nuget.svg +++ b/public/img/svg/gitea-nuget.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-onedev.svg b/public/img/svg/gitea-onedev.svg index 1f0d1d8363b4..75a79ab3baed 100644 --- a/public/img/svg/gitea-onedev.svg +++ b/public/img/svg/gitea-onedev.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-pub.svg b/public/img/svg/gitea-pub.svg index 0b326973e211..fd6bfe90b9d5 100644 --- a/public/img/svg/gitea-pub.svg +++ b/public/img/svg/gitea-pub.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-python.svg b/public/img/svg/gitea-python.svg index 62ec452aeb84..87585b2b6947 100644 --- a/public/img/svg/gitea-python.svg +++ b/public/img/svg/gitea-python.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-rubygems.svg b/public/img/svg/gitea-rubygems.svg index 0747f8585c4f..db89cf9e05b1 100644 --- a/public/img/svg/gitea-rubygems.svg +++ b/public/img/svg/gitea-rubygems.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-split.svg b/public/img/svg/gitea-split.svg index f819255cca68..e2c6f7db7242 100644 --- a/public/img/svg/gitea-split.svg +++ b/public/img/svg/gitea-split.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-swift.svg b/public/img/svg/gitea-swift.svg index ebfea951da33..0e26bcd45293 100644 --- a/public/img/svg/gitea-swift.svg +++ b/public/img/svg/gitea-swift.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-unlock.svg b/public/img/svg/gitea-unlock.svg index f7340b69c66f..b63393485075 100644 --- a/public/img/svg/gitea-unlock.svg +++ b/public/img/svg/gitea-unlock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-vagrant.svg b/public/img/svg/gitea-vagrant.svg index 4c1b78cab540..ba50101d5286 100644 --- a/public/img/svg/gitea-vagrant.svg +++ b/public/img/svg/gitea-vagrant.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-vscode.svg b/public/img/svg/gitea-vscode.svg index 4ef94dec3b63..1d36330524e0 100644 --- a/public/img/svg/gitea-vscode.svg +++ b/public/img/svg/gitea-vscode.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/gitea-whitespace.svg b/public/img/svg/gitea-whitespace.svg index 6b34f33736ff..35e19439f046 100644 --- a/public/img/svg/gitea-whitespace.svg +++ b/public/img/svg/gitea-whitespace.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/material-invert-colors.svg b/public/img/svg/material-invert-colors.svg index 018a693a02da..576ec72a785b 100644 --- a/public/img/svg/material-invert-colors.svg +++ b/public/img/svg/material-invert-colors.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/material-palette.svg b/public/img/svg/material-palette.svg index d257e65d3355..f719dadc5d02 100644 --- a/public/img/svg/material-palette.svg +++ b/public/img/svg/material-palette.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-accessibility-inset.svg b/public/img/svg/octicon-accessibility-inset.svg index 533cfa0fde52..2ab660c5004c 100644 --- a/public/img/svg/octicon-accessibility-inset.svg +++ b/public/img/svg/octicon-accessibility-inset.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-accessibility.svg b/public/img/svg/octicon-accessibility.svg index 2a708549ca08..6e26a53f3b84 100644 --- a/public/img/svg/octicon-accessibility.svg +++ b/public/img/svg/octicon-accessibility.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-alert-fill.svg b/public/img/svg/octicon-alert-fill.svg index 4ea5649737eb..6173f0648c0d 100644 --- a/public/img/svg/octicon-alert-fill.svg +++ b/public/img/svg/octicon-alert-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-alert.svg b/public/img/svg/octicon-alert.svg index e403314080e6..0d81ca2f4b7e 100644 --- a/public/img/svg/octicon-alert.svg +++ b/public/img/svg/octicon-alert.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-apps.svg b/public/img/svg/octicon-apps.svg index b1a2dfad7242..9119636d4f43 100644 --- a/public/img/svg/octicon-apps.svg +++ b/public/img/svg/octicon-apps.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-archive.svg b/public/img/svg/octicon-archive.svg index 072053acec92..6816984e69c8 100644 --- a/public/img/svg/octicon-archive.svg +++ b/public/img/svg/octicon-archive.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-both.svg b/public/img/svg/octicon-arrow-both.svg index 9fac0c6d44d9..e5fa8275f803 100644 --- a/public/img/svg/octicon-arrow-both.svg +++ b/public/img/svg/octicon-arrow-both.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-down-left.svg b/public/img/svg/octicon-arrow-down-left.svg index 64dbb3b799b2..6001d57767fb 100644 --- a/public/img/svg/octicon-arrow-down-left.svg +++ b/public/img/svg/octicon-arrow-down-left.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-down-right.svg b/public/img/svg/octicon-arrow-down-right.svg index 5d693457a85b..4404432e3c54 100644 --- a/public/img/svg/octicon-arrow-down-right.svg +++ b/public/img/svg/octicon-arrow-down-right.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-down.svg b/public/img/svg/octicon-arrow-down.svg index 441723c98826..6fb58b267706 100644 --- a/public/img/svg/octicon-arrow-down.svg +++ b/public/img/svg/octicon-arrow-down.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-left.svg b/public/img/svg/octicon-arrow-left.svg index 0eb1061361f0..e347e0600583 100644 --- a/public/img/svg/octicon-arrow-left.svg +++ b/public/img/svg/octicon-arrow-left.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-right.svg b/public/img/svg/octicon-arrow-right.svg index a446fda056e5..993df7ecf28d 100644 --- a/public/img/svg/octicon-arrow-right.svg +++ b/public/img/svg/octicon-arrow-right.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-switch.svg b/public/img/svg/octicon-arrow-switch.svg index c3cd4a1e50db..daf1fc001d5b 100644 --- a/public/img/svg/octicon-arrow-switch.svg +++ b/public/img/svg/octicon-arrow-switch.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-up-left.svg b/public/img/svg/octicon-arrow-up-left.svg index 8ad8a9febeb2..053102b63432 100644 --- a/public/img/svg/octicon-arrow-up-left.svg +++ b/public/img/svg/octicon-arrow-up-left.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-up-right.svg b/public/img/svg/octicon-arrow-up-right.svg index 4b0bb32f7fc5..4d760cec6588 100644 --- a/public/img/svg/octicon-arrow-up-right.svg +++ b/public/img/svg/octicon-arrow-up-right.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-arrow-up.svg b/public/img/svg/octicon-arrow-up.svg index 0dd87c7c27b3..fdd8fa6a2f36 100644 --- a/public/img/svg/octicon-arrow-up.svg +++ b/public/img/svg/octicon-arrow-up.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-beaker.svg b/public/img/svg/octicon-beaker.svg index 6177ca3b014a..7c72b85494e3 100644 --- a/public/img/svg/octicon-beaker.svg +++ b/public/img/svg/octicon-beaker.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-bell-fill.svg b/public/img/svg/octicon-bell-fill.svg index 873aea69bd10..96cdfb2842fe 100644 --- a/public/img/svg/octicon-bell-fill.svg +++ b/public/img/svg/octicon-bell-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-bell-slash.svg b/public/img/svg/octicon-bell-slash.svg index 298aa1867167..e1989c6b39fa 100644 --- a/public/img/svg/octicon-bell-slash.svg +++ b/public/img/svg/octicon-bell-slash.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-bell.svg b/public/img/svg/octicon-bell.svg index cfb8a3995185..c2f18ab371c9 100644 --- a/public/img/svg/octicon-bell.svg +++ b/public/img/svg/octicon-bell.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-blocked.svg b/public/img/svg/octicon-blocked.svg index 1a2a004b0086..be9ec7e6e9b1 100644 --- a/public/img/svg/octicon-blocked.svg +++ b/public/img/svg/octicon-blocked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-bold.svg b/public/img/svg/octicon-bold.svg index 484dc66dc772..396bf74ccfab 100644 --- a/public/img/svg/octicon-bold.svg +++ b/public/img/svg/octicon-bold.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-book.svg b/public/img/svg/octicon-book.svg index a64db1179102..ee48f48a84e3 100644 --- a/public/img/svg/octicon-book.svg +++ b/public/img/svg/octicon-book.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-bookmark-slash.svg b/public/img/svg/octicon-bookmark-slash.svg index edf7e2d2e43e..c3ebabe79d7a 100644 --- a/public/img/svg/octicon-bookmark-slash.svg +++ b/public/img/svg/octicon-bookmark-slash.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-bookmark.svg b/public/img/svg/octicon-bookmark.svg index 4544b79dd34a..5b25ef620f67 100644 --- a/public/img/svg/octicon-bookmark.svg +++ b/public/img/svg/octicon-bookmark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-briefcase.svg b/public/img/svg/octicon-briefcase.svg index 379af2fd0003..7d3559638c47 100644 --- a/public/img/svg/octicon-briefcase.svg +++ b/public/img/svg/octicon-briefcase.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-broadcast.svg b/public/img/svg/octicon-broadcast.svg index 19d0ce733873..a89f1250b7bc 100644 --- a/public/img/svg/octicon-broadcast.svg +++ b/public/img/svg/octicon-broadcast.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-browser.svg b/public/img/svg/octicon-browser.svg index cb01bfac14fe..c1399fad6138 100644 --- a/public/img/svg/octicon-browser.svg +++ b/public/img/svg/octicon-browser.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-bug.svg b/public/img/svg/octicon-bug.svg index ec0fe60febf1..f398ef82b83b 100644 --- a/public/img/svg/octicon-bug.svg +++ b/public/img/svg/octicon-bug.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-cache.svg b/public/img/svg/octicon-cache.svg index 064f57645335..1630aa2224bd 100644 --- a/public/img/svg/octicon-cache.svg +++ b/public/img/svg/octicon-cache.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-calendar.svg b/public/img/svg/octicon-calendar.svg index 7d77b8679707..3d43f26bc934 100644 --- a/public/img/svg/octicon-calendar.svg +++ b/public/img/svg/octicon-calendar.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-check-circle-fill.svg b/public/img/svg/octicon-check-circle-fill.svg index 225c00635791..f3a9f6a15da1 100644 --- a/public/img/svg/octicon-check-circle-fill.svg +++ b/public/img/svg/octicon-check-circle-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-check-circle.svg b/public/img/svg/octicon-check-circle.svg index 6e2e8da048c9..89ce3a750cbf 100644 --- a/public/img/svg/octicon-check-circle.svg +++ b/public/img/svg/octicon-check-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-check.svg b/public/img/svg/octicon-check.svg index 7171f388a69e..e38a8f4103c0 100644 --- a/public/img/svg/octicon-check.svg +++ b/public/img/svg/octicon-check.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-checkbox.svg b/public/img/svg/octicon-checkbox.svg index 7b840f518d12..88ff9cf487f7 100644 --- a/public/img/svg/octicon-checkbox.svg +++ b/public/img/svg/octicon-checkbox.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-checklist.svg b/public/img/svg/octicon-checklist.svg index 831938e5c16c..7d4cd8566d4f 100644 --- a/public/img/svg/octicon-checklist.svg +++ b/public/img/svg/octicon-checklist.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-chevron-down.svg b/public/img/svg/octicon-chevron-down.svg index 4206f09b57c6..84e71ca4d8a2 100644 --- a/public/img/svg/octicon-chevron-down.svg +++ b/public/img/svg/octicon-chevron-down.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-chevron-left.svg b/public/img/svg/octicon-chevron-left.svg index 00751dee728e..a56612a7eb3c 100644 --- a/public/img/svg/octicon-chevron-left.svg +++ b/public/img/svg/octicon-chevron-left.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-chevron-right.svg b/public/img/svg/octicon-chevron-right.svg index b974356efd86..e9d04c151a49 100644 --- a/public/img/svg/octicon-chevron-right.svg +++ b/public/img/svg/octicon-chevron-right.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-chevron-up.svg b/public/img/svg/octicon-chevron-up.svg index b294d013d4f4..958bd3ab980c 100644 --- a/public/img/svg/octicon-chevron-up.svg +++ b/public/img/svg/octicon-chevron-up.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-circle-slash.svg b/public/img/svg/octicon-circle-slash.svg index 29b5bbf68e96..817158aa0775 100644 --- a/public/img/svg/octicon-circle-slash.svg +++ b/public/img/svg/octicon-circle-slash.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-circle.svg b/public/img/svg/octicon-circle.svg index 1642bdb18152..6dc288a16ea6 100644 --- a/public/img/svg/octicon-circle.svg +++ b/public/img/svg/octicon-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-clock-fill.svg b/public/img/svg/octicon-clock-fill.svg index 9ebf1d177f23..43e87de195fb 100644 --- a/public/img/svg/octicon-clock-fill.svg +++ b/public/img/svg/octicon-clock-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-clock.svg b/public/img/svg/octicon-clock.svg index 58dcdce060d4..f1140b8efdc2 100644 --- a/public/img/svg/octicon-clock.svg +++ b/public/img/svg/octicon-clock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-cloud-offline.svg b/public/img/svg/octicon-cloud-offline.svg index ce696c32e6a1..f0963b818d2b 100644 --- a/public/img/svg/octicon-cloud-offline.svg +++ b/public/img/svg/octicon-cloud-offline.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-cloud.svg b/public/img/svg/octicon-cloud.svg index a23697dd1caa..7ff6f5b3eabb 100644 --- a/public/img/svg/octicon-cloud.svg +++ b/public/img/svg/octicon-cloud.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-code-of-conduct.svg b/public/img/svg/octicon-code-of-conduct.svg index 302b483ebb60..2477aa7279a5 100644 --- a/public/img/svg/octicon-code-of-conduct.svg +++ b/public/img/svg/octicon-code-of-conduct.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-code-review.svg b/public/img/svg/octicon-code-review.svg index 4a7a33eb3151..ce9e16cb421f 100644 --- a/public/img/svg/octicon-code-review.svg +++ b/public/img/svg/octicon-code-review.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-code-square.svg b/public/img/svg/octicon-code-square.svg index 57cc48a5eb87..a95ca37e162d 100644 --- a/public/img/svg/octicon-code-square.svg +++ b/public/img/svg/octicon-code-square.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-code.svg b/public/img/svg/octicon-code.svg index b40aa2a1a84c..33c920829df4 100644 --- a/public/img/svg/octicon-code.svg +++ b/public/img/svg/octicon-code.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-codescan-checkmark.svg b/public/img/svg/octicon-codescan-checkmark.svg index 1aa88a5f4545..9e150c49c323 100644 --- a/public/img/svg/octicon-codescan-checkmark.svg +++ b/public/img/svg/octicon-codescan-checkmark.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-codescan.svg b/public/img/svg/octicon-codescan.svg index e2f7fa45bdca..85cbc27392c4 100644 --- a/public/img/svg/octicon-codescan.svg +++ b/public/img/svg/octicon-codescan.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-codespaces.svg b/public/img/svg/octicon-codespaces.svg index 706ae12f6b80..701ceefd5fb4 100644 --- a/public/img/svg/octicon-codespaces.svg +++ b/public/img/svg/octicon-codespaces.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-columns.svg b/public/img/svg/octicon-columns.svg index 94b4eba8bedb..a6344001a16a 100644 --- a/public/img/svg/octicon-columns.svg +++ b/public/img/svg/octicon-columns.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-command-palette.svg b/public/img/svg/octicon-command-palette.svg index 668cf25e199d..e41255b40be5 100644 --- a/public/img/svg/octicon-command-palette.svg +++ b/public/img/svg/octicon-command-palette.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-comment-discussion.svg b/public/img/svg/octicon-comment-discussion.svg index bacec1829c99..6be15c7bcfbf 100644 --- a/public/img/svg/octicon-comment-discussion.svg +++ b/public/img/svg/octicon-comment-discussion.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-comment.svg b/public/img/svg/octicon-comment.svg index 0fca1d59913b..634038587918 100644 --- a/public/img/svg/octicon-comment.svg +++ b/public/img/svg/octicon-comment.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-container.svg b/public/img/svg/octicon-container.svg index 5794644ec436..2e6056bf415a 100644 --- a/public/img/svg/octicon-container.svg +++ b/public/img/svg/octicon-container.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-copilot-error.svg b/public/img/svg/octicon-copilot-error.svg index 32b2496fd1e1..a0e2232f737c 100644 --- a/public/img/svg/octicon-copilot-error.svg +++ b/public/img/svg/octicon-copilot-error.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-copilot-warning.svg b/public/img/svg/octicon-copilot-warning.svg index c1f6bb668b35..a9d856384d1f 100644 --- a/public/img/svg/octicon-copilot-warning.svg +++ b/public/img/svg/octicon-copilot-warning.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-copilot.svg b/public/img/svg/octicon-copilot.svg index 7ebf01134a7c..64eddfa1d5d1 100644 --- a/public/img/svg/octicon-copilot.svg +++ b/public/img/svg/octicon-copilot.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-copy.svg b/public/img/svg/octicon-copy.svg index 12275d058ab5..a372c5b275b8 100644 --- a/public/img/svg/octicon-copy.svg +++ b/public/img/svg/octicon-copy.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-cpu.svg b/public/img/svg/octicon-cpu.svg index d8e447884e6d..41b6e7cfaec8 100644 --- a/public/img/svg/octicon-cpu.svg +++ b/public/img/svg/octicon-cpu.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-credit-card.svg b/public/img/svg/octicon-credit-card.svg index 3d5990b210dd..1ba32dee7282 100644 --- a/public/img/svg/octicon-credit-card.svg +++ b/public/img/svg/octicon-credit-card.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-cross-reference.svg b/public/img/svg/octicon-cross-reference.svg index 665589b18263..cca24cd13f67 100644 --- a/public/img/svg/octicon-cross-reference.svg +++ b/public/img/svg/octicon-cross-reference.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-dash.svg b/public/img/svg/octicon-dash.svg index fe0eafcf385b..f3665638a673 100644 --- a/public/img/svg/octicon-dash.svg +++ b/public/img/svg/octicon-dash.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-database.svg b/public/img/svg/octicon-database.svg index 28d99c0313f8..03b5de464f57 100644 --- a/public/img/svg/octicon-database.svg +++ b/public/img/svg/octicon-database.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-dependabot.svg b/public/img/svg/octicon-dependabot.svg index 8d6ca5ce6f64..cfda70fee28f 100644 --- a/public/img/svg/octicon-dependabot.svg +++ b/public/img/svg/octicon-dependabot.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-desktop-download.svg b/public/img/svg/octicon-desktop-download.svg index f8b68d7f5e41..643829c9e948 100644 --- a/public/img/svg/octicon-desktop-download.svg +++ b/public/img/svg/octicon-desktop-download.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-device-camera-video.svg b/public/img/svg/octicon-device-camera-video.svg index 42a68a067966..ebbed57707f9 100644 --- a/public/img/svg/octicon-device-camera-video.svg +++ b/public/img/svg/octicon-device-camera-video.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-device-camera.svg b/public/img/svg/octicon-device-camera.svg index 39e6dbef2419..7ad8d402ac8c 100644 --- a/public/img/svg/octicon-device-camera.svg +++ b/public/img/svg/octicon-device-camera.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-device-desktop.svg b/public/img/svg/octicon-device-desktop.svg index 49f4a636bec2..2bb49e477840 100644 --- a/public/img/svg/octicon-device-desktop.svg +++ b/public/img/svg/octicon-device-desktop.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-device-mobile.svg b/public/img/svg/octicon-device-mobile.svg index e0c827cf9496..2f0ca5975299 100644 --- a/public/img/svg/octicon-device-mobile.svg +++ b/public/img/svg/octicon-device-mobile.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-diamond.svg b/public/img/svg/octicon-diamond.svg index 9a0bb6ebd9fa..cc30842ce93c 100644 --- a/public/img/svg/octicon-diamond.svg +++ b/public/img/svg/octicon-diamond.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-diff-added.svg b/public/img/svg/octicon-diff-added.svg index 800db65b62b1..9ac76132be84 100644 --- a/public/img/svg/octicon-diff-added.svg +++ b/public/img/svg/octicon-diff-added.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-diff-ignored.svg b/public/img/svg/octicon-diff-ignored.svg index 5960963fc207..47d59486e5bd 100644 --- a/public/img/svg/octicon-diff-ignored.svg +++ b/public/img/svg/octicon-diff-ignored.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-diff-modified.svg b/public/img/svg/octicon-diff-modified.svg index d0e01d04ab11..68969b686542 100644 --- a/public/img/svg/octicon-diff-modified.svg +++ b/public/img/svg/octicon-diff-modified.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-diff-removed.svg b/public/img/svg/octicon-diff-removed.svg index c4fb21add62a..86bcb54838bd 100644 --- a/public/img/svg/octicon-diff-removed.svg +++ b/public/img/svg/octicon-diff-removed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-diff-renamed.svg b/public/img/svg/octicon-diff-renamed.svg index 85cf98e3dacc..96bec22a26bb 100644 --- a/public/img/svg/octicon-diff-renamed.svg +++ b/public/img/svg/octicon-diff-renamed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-diff.svg b/public/img/svg/octicon-diff.svg index f3bea7d3a14e..30bc1e95df74 100644 --- a/public/img/svg/octicon-diff.svg +++ b/public/img/svg/octicon-diff.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-discussion-closed.svg b/public/img/svg/octicon-discussion-closed.svg index 5529a2a5c026..08c17812d76b 100644 --- a/public/img/svg/octicon-discussion-closed.svg +++ b/public/img/svg/octicon-discussion-closed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-discussion-duplicate.svg b/public/img/svg/octicon-discussion-duplicate.svg index 98fb9d95dbad..8c705dbd982e 100644 --- a/public/img/svg/octicon-discussion-duplicate.svg +++ b/public/img/svg/octicon-discussion-duplicate.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-discussion-outdated.svg b/public/img/svg/octicon-discussion-outdated.svg index 268db61d41ac..960920d6965d 100644 --- a/public/img/svg/octicon-discussion-outdated.svg +++ b/public/img/svg/octicon-discussion-outdated.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-dot-fill.svg b/public/img/svg/octicon-dot-fill.svg index ff91cf1ddc81..d9c61d9db55f 100644 --- a/public/img/svg/octicon-dot-fill.svg +++ b/public/img/svg/octicon-dot-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-dot.svg b/public/img/svg/octicon-dot.svg index 9f67ffa9facd..62dcc189fe90 100644 --- a/public/img/svg/octicon-dot.svg +++ b/public/img/svg/octicon-dot.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-download.svg b/public/img/svg/octicon-download.svg index 17d78ef8bff7..f5ae4e389dcd 100644 --- a/public/img/svg/octicon-download.svg +++ b/public/img/svg/octicon-download.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-duplicate.svg b/public/img/svg/octicon-duplicate.svg index 5e4f71721319..323c8f3df62b 100644 --- a/public/img/svg/octicon-duplicate.svg +++ b/public/img/svg/octicon-duplicate.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-ellipsis.svg b/public/img/svg/octicon-ellipsis.svg index 3ab6dffc11e6..8f4da5d8054d 100644 --- a/public/img/svg/octicon-ellipsis.svg +++ b/public/img/svg/octicon-ellipsis.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-eye-closed.svg b/public/img/svg/octicon-eye-closed.svg index a1b50922239c..2cfdf6640650 100644 --- a/public/img/svg/octicon-eye-closed.svg +++ b/public/img/svg/octicon-eye-closed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-eye.svg b/public/img/svg/octicon-eye.svg index 349c56fc6766..5f63e08dea56 100644 --- a/public/img/svg/octicon-eye.svg +++ b/public/img/svg/octicon-eye.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-discussion.svg b/public/img/svg/octicon-feed-discussion.svg index 937fc44e81ea..7ffa53cdca7a 100644 --- a/public/img/svg/octicon-feed-discussion.svg +++ b/public/img/svg/octicon-feed-discussion.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-forked.svg b/public/img/svg/octicon-feed-forked.svg index 4b0d6e1a0239..c64a5a1a22ad 100644 --- a/public/img/svg/octicon-feed-forked.svg +++ b/public/img/svg/octicon-feed-forked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-heart.svg b/public/img/svg/octicon-feed-heart.svg index 75f8622db73b..3179473eeb10 100644 --- a/public/img/svg/octicon-feed-heart.svg +++ b/public/img/svg/octicon-feed-heart.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-merged.svg b/public/img/svg/octicon-feed-merged.svg index a3a249f49366..4679ea202b71 100644 --- a/public/img/svg/octicon-feed-merged.svg +++ b/public/img/svg/octicon-feed-merged.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-person.svg b/public/img/svg/octicon-feed-person.svg index 5b4ee2d2cc00..7c9bbf4c37bc 100644 --- a/public/img/svg/octicon-feed-person.svg +++ b/public/img/svg/octicon-feed-person.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-repo.svg b/public/img/svg/octicon-feed-repo.svg index dcce09083f95..69a1989476c7 100644 --- a/public/img/svg/octicon-feed-repo.svg +++ b/public/img/svg/octicon-feed-repo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-rocket.svg b/public/img/svg/octicon-feed-rocket.svg index 5d0327d097ce..843560a9de6b 100644 --- a/public/img/svg/octicon-feed-rocket.svg +++ b/public/img/svg/octicon-feed-rocket.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-star.svg b/public/img/svg/octicon-feed-star.svg index d6a2e632ece9..1688aab55dbf 100644 --- a/public/img/svg/octicon-feed-star.svg +++ b/public/img/svg/octicon-feed-star.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-tag.svg b/public/img/svg/octicon-feed-tag.svg index 30dfc0d1abc5..c598c4d4c4bb 100644 --- a/public/img/svg/octicon-feed-tag.svg +++ b/public/img/svg/octicon-feed-tag.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-feed-trophy.svg b/public/img/svg/octicon-feed-trophy.svg index 6d10691ad242..6dc8d5a56ba5 100644 --- a/public/img/svg/octicon-feed-trophy.svg +++ b/public/img/svg/octicon-feed-trophy.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-added.svg b/public/img/svg/octicon-file-added.svg index 1fd2f9da78eb..927784d2e6f8 100644 --- a/public/img/svg/octicon-file-added.svg +++ b/public/img/svg/octicon-file-added.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-badge.svg b/public/img/svg/octicon-file-badge.svg index 0f41ca1d951b..944b52275750 100644 --- a/public/img/svg/octicon-file-badge.svg +++ b/public/img/svg/octicon-file-badge.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-binary.svg b/public/img/svg/octicon-file-binary.svg index 4048fe5c7860..45f4e86fb6e5 100644 --- a/public/img/svg/octicon-file-binary.svg +++ b/public/img/svg/octicon-file-binary.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-code.svg b/public/img/svg/octicon-file-code.svg index 49ce3379efff..38baefd9e98a 100644 --- a/public/img/svg/octicon-file-code.svg +++ b/public/img/svg/octicon-file-code.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-diff.svg b/public/img/svg/octicon-file-diff.svg index bbfc28ca2393..6fdf5c5735eb 100644 --- a/public/img/svg/octicon-file-diff.svg +++ b/public/img/svg/octicon-file-diff.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-directory-fill.svg b/public/img/svg/octicon-file-directory-fill.svg index 99777bdc869d..f16ba39e0e84 100644 --- a/public/img/svg/octicon-file-directory-fill.svg +++ b/public/img/svg/octicon-file-directory-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-directory-open-fill.svg b/public/img/svg/octicon-file-directory-open-fill.svg index 04331093c43d..ca7a4adf6b4e 100644 --- a/public/img/svg/octicon-file-directory-open-fill.svg +++ b/public/img/svg/octicon-file-directory-open-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-directory.svg b/public/img/svg/octicon-file-directory.svg index 248e166d1fdf..2376e5a6134f 100644 --- a/public/img/svg/octicon-file-directory.svg +++ b/public/img/svg/octicon-file-directory.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-moved.svg b/public/img/svg/octicon-file-moved.svg index 9775ce8c2e06..86670ef6ce94 100644 --- a/public/img/svg/octicon-file-moved.svg +++ b/public/img/svg/octicon-file-moved.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-removed.svg b/public/img/svg/octicon-file-removed.svg index 65f301be1a15..08158afe5515 100644 --- a/public/img/svg/octicon-file-removed.svg +++ b/public/img/svg/octicon-file-removed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-submodule.svg b/public/img/svg/octicon-file-submodule.svg index 81faea9d8773..ba947cc988d8 100644 --- a/public/img/svg/octicon-file-submodule.svg +++ b/public/img/svg/octicon-file-submodule.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-symlink-file.svg b/public/img/svg/octicon-file-symlink-file.svg index df29b91a9930..bc712b5ba1a3 100644 --- a/public/img/svg/octicon-file-symlink-file.svg +++ b/public/img/svg/octicon-file-symlink-file.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file-zip.svg b/public/img/svg/octicon-file-zip.svg index 75d3a38a5cd2..2f0250305441 100644 --- a/public/img/svg/octicon-file-zip.svg +++ b/public/img/svg/octicon-file-zip.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-file.svg b/public/img/svg/octicon-file.svg index bdcc67e212a3..976d8d99d3ea 100644 --- a/public/img/svg/octicon-file.svg +++ b/public/img/svg/octicon-file.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-filter.svg b/public/img/svg/octicon-filter.svg index 58f9fb5b5b07..f93cc0159b48 100644 --- a/public/img/svg/octicon-filter.svg +++ b/public/img/svg/octicon-filter.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-fiscal-host.svg b/public/img/svg/octicon-fiscal-host.svg index 9bc628b140aa..67f683604bf4 100644 --- a/public/img/svg/octicon-fiscal-host.svg +++ b/public/img/svg/octicon-fiscal-host.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-flame.svg b/public/img/svg/octicon-flame.svg index 759dd358d639..6fa5050d6b89 100644 --- a/public/img/svg/octicon-flame.svg +++ b/public/img/svg/octicon-flame.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-fold-down.svg b/public/img/svg/octicon-fold-down.svg index 586eacb2408b..22e6ad1d4423 100644 --- a/public/img/svg/octicon-fold-down.svg +++ b/public/img/svg/octicon-fold-down.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-fold-up.svg b/public/img/svg/octicon-fold-up.svg index f95d157ddc81..2b7d4bdf8dcb 100644 --- a/public/img/svg/octicon-fold-up.svg +++ b/public/img/svg/octicon-fold-up.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-fold.svg b/public/img/svg/octicon-fold.svg index 2167f72ad2b7..7fd4e9d56de3 100644 --- a/public/img/svg/octicon-fold.svg +++ b/public/img/svg/octicon-fold.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-gear.svg b/public/img/svg/octicon-gear.svg index 14a542626071..6f5e36af10e5 100644 --- a/public/img/svg/octicon-gear.svg +++ b/public/img/svg/octicon-gear.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-gift.svg b/public/img/svg/octicon-gift.svg index 4a5afae9fd97..866461c45320 100644 --- a/public/img/svg/octicon-gift.svg +++ b/public/img/svg/octicon-gift.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-git-branch.svg b/public/img/svg/octicon-git-branch.svg index bbff4a8b6658..fdd05567b4bb 100644 --- a/public/img/svg/octicon-git-branch.svg +++ b/public/img/svg/octicon-git-branch.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-git-commit.svg b/public/img/svg/octicon-git-commit.svg index 0c627ddae620..6e5b5fc07f4f 100644 --- a/public/img/svg/octicon-git-commit.svg +++ b/public/img/svg/octicon-git-commit.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-git-compare.svg b/public/img/svg/octicon-git-compare.svg index 174a93d7ea7a..3c61c1025708 100644 --- a/public/img/svg/octicon-git-compare.svg +++ b/public/img/svg/octicon-git-compare.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-git-merge-queue.svg b/public/img/svg/octicon-git-merge-queue.svg index c969158a1a21..4890a68d8cf7 100644 --- a/public/img/svg/octicon-git-merge-queue.svg +++ b/public/img/svg/octicon-git-merge-queue.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-git-merge.svg b/public/img/svg/octicon-git-merge.svg index 45c078cd86ad..6aa3d4ce4e8e 100644 --- a/public/img/svg/octicon-git-merge.svg +++ b/public/img/svg/octicon-git-merge.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-git-pull-request-closed.svg b/public/img/svg/octicon-git-pull-request-closed.svg index 2385c086198f..47b18f87e920 100644 --- a/public/img/svg/octicon-git-pull-request-closed.svg +++ b/public/img/svg/octicon-git-pull-request-closed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-git-pull-request-draft.svg b/public/img/svg/octicon-git-pull-request-draft.svg index fb99e6b9ba53..43ebe4569c89 100644 --- a/public/img/svg/octicon-git-pull-request-draft.svg +++ b/public/img/svg/octicon-git-pull-request-draft.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-git-pull-request.svg b/public/img/svg/octicon-git-pull-request.svg index f9c6de9d49fe..e9965677d265 100644 --- a/public/img/svg/octicon-git-pull-request.svg +++ b/public/img/svg/octicon-git-pull-request.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-globe.svg b/public/img/svg/octicon-globe.svg index 5ae492dba7f5..a90f1d16ad38 100644 --- a/public/img/svg/octicon-globe.svg +++ b/public/img/svg/octicon-globe.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-goal.svg b/public/img/svg/octicon-goal.svg index 54371c92272f..46f224661f86 100644 --- a/public/img/svg/octicon-goal.svg +++ b/public/img/svg/octicon-goal.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-grabber.svg b/public/img/svg/octicon-grabber.svg index f882da3d2b1e..33cc2478197e 100644 --- a/public/img/svg/octicon-grabber.svg +++ b/public/img/svg/octicon-grabber.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-graph.svg b/public/img/svg/octicon-graph.svg index 1eb6bd3c5619..fa108db0a0af 100644 --- a/public/img/svg/octicon-graph.svg +++ b/public/img/svg/octicon-graph.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-hash.svg b/public/img/svg/octicon-hash.svg index 1a30f5a077e9..3c74070d2b15 100644 --- a/public/img/svg/octicon-hash.svg +++ b/public/img/svg/octicon-hash.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-heading.svg b/public/img/svg/octicon-heading.svg index 5b9162ac5b5d..9caceb6157ad 100644 --- a/public/img/svg/octicon-heading.svg +++ b/public/img/svg/octicon-heading.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-heart-fill.svg b/public/img/svg/octicon-heart-fill.svg index f1ab0f61329d..0665a1689462 100644 --- a/public/img/svg/octicon-heart-fill.svg +++ b/public/img/svg/octicon-heart-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-heart.svg b/public/img/svg/octicon-heart.svg index f90922b18e19..9f178cfdedb5 100644 --- a/public/img/svg/octicon-heart.svg +++ b/public/img/svg/octicon-heart.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-history.svg b/public/img/svg/octicon-history.svg index 1569bc64aabb..72526f113cea 100644 --- a/public/img/svg/octicon-history.svg +++ b/public/img/svg/octicon-history.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-home.svg b/public/img/svg/octicon-home.svg index 0b8fd4d05a85..0ebd98fccb2e 100644 --- a/public/img/svg/octicon-home.svg +++ b/public/img/svg/octicon-home.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-horizontal-rule.svg b/public/img/svg/octicon-horizontal-rule.svg index ccd44f2695cc..1cdc4a8ccf15 100644 --- a/public/img/svg/octicon-horizontal-rule.svg +++ b/public/img/svg/octicon-horizontal-rule.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-hourglass.svg b/public/img/svg/octicon-hourglass.svg index bcc3d53e226d..815ddcd1c10b 100644 --- a/public/img/svg/octicon-hourglass.svg +++ b/public/img/svg/octicon-hourglass.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-hubot.svg b/public/img/svg/octicon-hubot.svg index dd637e936aa5..6ba0c672e69f 100644 --- a/public/img/svg/octicon-hubot.svg +++ b/public/img/svg/octicon-hubot.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-id-badge.svg b/public/img/svg/octicon-id-badge.svg index f9f155151b25..927d780883be 100644 --- a/public/img/svg/octicon-id-badge.svg +++ b/public/img/svg/octicon-id-badge.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-image.svg b/public/img/svg/octicon-image.svg index 278ac33d3cfd..47b70c1663a7 100644 --- a/public/img/svg/octicon-image.svg +++ b/public/img/svg/octicon-image.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-inbox.svg b/public/img/svg/octicon-inbox.svg index bea8281d374a..42cc08fa80de 100644 --- a/public/img/svg/octicon-inbox.svg +++ b/public/img/svg/octicon-inbox.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-infinity.svg b/public/img/svg/octicon-infinity.svg index 22409c528caf..7e52e4ad6e7e 100644 --- a/public/img/svg/octicon-infinity.svg +++ b/public/img/svg/octicon-infinity.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-info.svg b/public/img/svg/octicon-info.svg index bf5f316d6881..ab4b4c597088 100644 --- a/public/img/svg/octicon-info.svg +++ b/public/img/svg/octicon-info.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-issue-closed.svg b/public/img/svg/octicon-issue-closed.svg index bafa63aaf32b..51be962aac99 100644 --- a/public/img/svg/octicon-issue-closed.svg +++ b/public/img/svg/octicon-issue-closed.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-issue-draft.svg b/public/img/svg/octicon-issue-draft.svg index e853f2bcef9c..8ec858247962 100644 --- a/public/img/svg/octicon-issue-draft.svg +++ b/public/img/svg/octicon-issue-draft.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-issue-opened.svg b/public/img/svg/octicon-issue-opened.svg index d2fc7e53aa7a..9f60583d99e3 100644 --- a/public/img/svg/octicon-issue-opened.svg +++ b/public/img/svg/octicon-issue-opened.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-issue-reopened.svg b/public/img/svg/octicon-issue-reopened.svg index 73d889964f34..48eebc2e0e21 100644 --- a/public/img/svg/octicon-issue-reopened.svg +++ b/public/img/svg/octicon-issue-reopened.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-issue-tracked-by.svg b/public/img/svg/octicon-issue-tracked-by.svg index 28608b7b5ffe..2fd4c95f3ed1 100644 --- a/public/img/svg/octicon-issue-tracked-by.svg +++ b/public/img/svg/octicon-issue-tracked-by.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-issue-tracks.svg b/public/img/svg/octicon-issue-tracks.svg index f6e396d88598..503ed5cdafcd 100644 --- a/public/img/svg/octicon-issue-tracks.svg +++ b/public/img/svg/octicon-issue-tracks.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-italic.svg b/public/img/svg/octicon-italic.svg index c09cca3f2ac5..112374864746 100644 --- a/public/img/svg/octicon-italic.svg +++ b/public/img/svg/octicon-italic.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-iterations.svg b/public/img/svg/octicon-iterations.svg index 6eef9d62a36a..a8a6a2555ee2 100644 --- a/public/img/svg/octicon-iterations.svg +++ b/public/img/svg/octicon-iterations.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-kebab-horizontal.svg b/public/img/svg/octicon-kebab-horizontal.svg index c8b1c838135a..faa581329fae 100644 --- a/public/img/svg/octicon-kebab-horizontal.svg +++ b/public/img/svg/octicon-kebab-horizontal.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-key-asterisk.svg b/public/img/svg/octicon-key-asterisk.svg index 8fe241588335..f04c044590e2 100644 --- a/public/img/svg/octicon-key-asterisk.svg +++ b/public/img/svg/octicon-key-asterisk.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-key.svg b/public/img/svg/octicon-key.svg index c531db86fff4..10c0b1aa8ace 100644 --- a/public/img/svg/octicon-key.svg +++ b/public/img/svg/octicon-key.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-law.svg b/public/img/svg/octicon-law.svg index 4a9f7d64d864..8df6eec3bbde 100644 --- a/public/img/svg/octicon-law.svg +++ b/public/img/svg/octicon-law.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-light-bulb.svg b/public/img/svg/octicon-light-bulb.svg index c12dbc053978..f3c58d47a5ae 100644 --- a/public/img/svg/octicon-light-bulb.svg +++ b/public/img/svg/octicon-light-bulb.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-link-external.svg b/public/img/svg/octicon-link-external.svg index df16286ec24e..4479d3aac0a7 100644 --- a/public/img/svg/octicon-link-external.svg +++ b/public/img/svg/octicon-link-external.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-link.svg b/public/img/svg/octicon-link.svg index 077629e8975d..e6b60a12f705 100644 --- a/public/img/svg/octicon-link.svg +++ b/public/img/svg/octicon-link.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-list-ordered.svg b/public/img/svg/octicon-list-ordered.svg index 039775ff67c2..dabed4edce4e 100644 --- a/public/img/svg/octicon-list-ordered.svg +++ b/public/img/svg/octicon-list-ordered.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-list-unordered.svg b/public/img/svg/octicon-list-unordered.svg index 74a25fe5af3f..32640eca9717 100644 --- a/public/img/svg/octicon-list-unordered.svg +++ b/public/img/svg/octicon-list-unordered.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-location.svg b/public/img/svg/octicon-location.svg index 1fba46da19a2..81c3ed60d4b7 100644 --- a/public/img/svg/octicon-location.svg +++ b/public/img/svg/octicon-location.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-lock.svg b/public/img/svg/octicon-lock.svg index da213efa813b..3e3dae06cafd 100644 --- a/public/img/svg/octicon-lock.svg +++ b/public/img/svg/octicon-lock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-log.svg b/public/img/svg/octicon-log.svg index 7ab609dc1cc4..21c263e79261 100644 --- a/public/img/svg/octicon-log.svg +++ b/public/img/svg/octicon-log.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-logo-gist.svg b/public/img/svg/octicon-logo-gist.svg index f060d2e0dbf2..861764a6634a 100644 --- a/public/img/svg/octicon-logo-gist.svg +++ b/public/img/svg/octicon-logo-gist.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-logo-github.svg b/public/img/svg/octicon-logo-github.svg index ca33522ca758..546a7cd2529e 100644 --- a/public/img/svg/octicon-logo-github.svg +++ b/public/img/svg/octicon-logo-github.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-mail.svg b/public/img/svg/octicon-mail.svg index 168198a26e69..6a6a036410d3 100644 --- a/public/img/svg/octicon-mail.svg +++ b/public/img/svg/octicon-mail.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-mark-github.svg b/public/img/svg/octicon-mark-github.svg index 3bf0a3f1118f..0e5bf3b4d67d 100644 --- a/public/img/svg/octicon-mark-github.svg +++ b/public/img/svg/octicon-mark-github.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-markdown.svg b/public/img/svg/octicon-markdown.svg index e77cfce56162..6e81e9a11c0c 100644 --- a/public/img/svg/octicon-markdown.svg +++ b/public/img/svg/octicon-markdown.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-megaphone.svg b/public/img/svg/octicon-megaphone.svg index e892a46e511d..f2a69adb7d70 100644 --- a/public/img/svg/octicon-megaphone.svg +++ b/public/img/svg/octicon-megaphone.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-mention.svg b/public/img/svg/octicon-mention.svg index 08c79c2a1465..606675755832 100644 --- a/public/img/svg/octicon-mention.svg +++ b/public/img/svg/octicon-mention.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-meter.svg b/public/img/svg/octicon-meter.svg index e5c65c1fee03..d60c0689877e 100644 --- a/public/img/svg/octicon-meter.svg +++ b/public/img/svg/octicon-meter.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-milestone.svg b/public/img/svg/octicon-milestone.svg index 67581ce3bcdf..69da41891d62 100644 --- a/public/img/svg/octicon-milestone.svg +++ b/public/img/svg/octicon-milestone.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-mirror.svg b/public/img/svg/octicon-mirror.svg index 986e1936926f..0acd01b01b9d 100644 --- a/public/img/svg/octicon-mirror.svg +++ b/public/img/svg/octicon-mirror.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-moon.svg b/public/img/svg/octicon-moon.svg index ada1acc4bb5f..a51e2230348a 100644 --- a/public/img/svg/octicon-moon.svg +++ b/public/img/svg/octicon-moon.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-mortar-board.svg b/public/img/svg/octicon-mortar-board.svg index 58fd33f1872f..871d1ae70254 100644 --- a/public/img/svg/octicon-mortar-board.svg +++ b/public/img/svg/octicon-mortar-board.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-move-to-bottom.svg b/public/img/svg/octicon-move-to-bottom.svg index 801a05c92e26..3fb8f9739156 100644 --- a/public/img/svg/octicon-move-to-bottom.svg +++ b/public/img/svg/octicon-move-to-bottom.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-move-to-end.svg b/public/img/svg/octicon-move-to-end.svg index fd9f053284bf..d4b5cb62bf92 100644 --- a/public/img/svg/octicon-move-to-end.svg +++ b/public/img/svg/octicon-move-to-end.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-move-to-start.svg b/public/img/svg/octicon-move-to-start.svg index 84369e10b2fc..00a24a4c9f6b 100644 --- a/public/img/svg/octicon-move-to-start.svg +++ b/public/img/svg/octicon-move-to-start.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-move-to-top.svg b/public/img/svg/octicon-move-to-top.svg index 9bb1f96d6407..78498db364d7 100644 --- a/public/img/svg/octicon-move-to-top.svg +++ b/public/img/svg/octicon-move-to-top.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-multi-select.svg b/public/img/svg/octicon-multi-select.svg index 12dcc1130e68..cebcebce6c30 100644 --- a/public/img/svg/octicon-multi-select.svg +++ b/public/img/svg/octicon-multi-select.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-mute.svg b/public/img/svg/octicon-mute.svg index 6e4eb08f23ef..db465e41d51f 100644 --- a/public/img/svg/octicon-mute.svg +++ b/public/img/svg/octicon-mute.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-no-entry.svg b/public/img/svg/octicon-no-entry.svg index 31ccf5e383bd..ac897b84b483 100644 --- a/public/img/svg/octicon-no-entry.svg +++ b/public/img/svg/octicon-no-entry.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-north-star.svg b/public/img/svg/octicon-north-star.svg index 5bd7e614a8f3..69b64feebaf5 100644 --- a/public/img/svg/octicon-north-star.svg +++ b/public/img/svg/octicon-north-star.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-note.svg b/public/img/svg/octicon-note.svg index 34a115d23321..d3eb92b3b547 100644 --- a/public/img/svg/octicon-note.svg +++ b/public/img/svg/octicon-note.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-number.svg b/public/img/svg/octicon-number.svg index af8dcb5e57ad..22cf46846841 100644 --- a/public/img/svg/octicon-number.svg +++ b/public/img/svg/octicon-number.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-organization.svg b/public/img/svg/octicon-organization.svg index 662116a2ed3e..beef876a970b 100644 --- a/public/img/svg/octicon-organization.svg +++ b/public/img/svg/octicon-organization.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-package-dependencies.svg b/public/img/svg/octicon-package-dependencies.svg index c29c1513f664..ae408868b8cb 100644 --- a/public/img/svg/octicon-package-dependencies.svg +++ b/public/img/svg/octicon-package-dependencies.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-package-dependents.svg b/public/img/svg/octicon-package-dependents.svg index 79046fc2e7d8..bad01efc9b46 100644 --- a/public/img/svg/octicon-package-dependents.svg +++ b/public/img/svg/octicon-package-dependents.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-package.svg b/public/img/svg/octicon-package.svg index 262de9f221b7..aab1e40c4d4d 100644 --- a/public/img/svg/octicon-package.svg +++ b/public/img/svg/octicon-package.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-paintbrush.svg b/public/img/svg/octicon-paintbrush.svg index 44b4ea38d582..8cbfcf3ee4a5 100644 --- a/public/img/svg/octicon-paintbrush.svg +++ b/public/img/svg/octicon-paintbrush.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-paper-airplane.svg b/public/img/svg/octicon-paper-airplane.svg index fd6aaa484616..8e4a92915fd1 100644 --- a/public/img/svg/octicon-paper-airplane.svg +++ b/public/img/svg/octicon-paper-airplane.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-paperclip.svg b/public/img/svg/octicon-paperclip.svg index 40d3caddecf8..326c8b8c3ffd 100644 --- a/public/img/svg/octicon-paperclip.svg +++ b/public/img/svg/octicon-paperclip.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-passkey-fill.svg b/public/img/svg/octicon-passkey-fill.svg index caff2fe6f42d..bca3a2475726 100644 --- a/public/img/svg/octicon-passkey-fill.svg +++ b/public/img/svg/octicon-passkey-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-paste.svg b/public/img/svg/octicon-paste.svg index 066cf5466404..1b3ee09ce1b0 100644 --- a/public/img/svg/octicon-paste.svg +++ b/public/img/svg/octicon-paste.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-pencil.svg b/public/img/svg/octicon-pencil.svg index dabd0ab5afa8..41c638fcedb3 100644 --- a/public/img/svg/octicon-pencil.svg +++ b/public/img/svg/octicon-pencil.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-people.svg b/public/img/svg/octicon-people.svg index 1c61c598a0d3..14e9d75d4dde 100644 --- a/public/img/svg/octicon-people.svg +++ b/public/img/svg/octicon-people.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-person-add.svg b/public/img/svg/octicon-person-add.svg index 45ff7908df69..a04727ce0bfe 100644 --- a/public/img/svg/octicon-person-add.svg +++ b/public/img/svg/octicon-person-add.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-person-fill.svg b/public/img/svg/octicon-person-fill.svg index 966ff0011985..aef505980710 100644 --- a/public/img/svg/octicon-person-fill.svg +++ b/public/img/svg/octicon-person-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-person.svg b/public/img/svg/octicon-person.svg index 7f23ba079164..0c18220b4184 100644 --- a/public/img/svg/octicon-person.svg +++ b/public/img/svg/octicon-person.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-pin.svg b/public/img/svg/octicon-pin.svg index 7df3a7f24861..f41a4a35804e 100644 --- a/public/img/svg/octicon-pin.svg +++ b/public/img/svg/octicon-pin.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-play.svg b/public/img/svg/octicon-play.svg index 6a53430be1e0..39a3650dfdcf 100644 --- a/public/img/svg/octicon-play.svg +++ b/public/img/svg/octicon-play.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-plug.svg b/public/img/svg/octicon-plug.svg index 569cf4d2ed2f..e496b584d365 100644 --- a/public/img/svg/octicon-plug.svg +++ b/public/img/svg/octicon-plug.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-plus-circle.svg b/public/img/svg/octicon-plus-circle.svg index 164233e8f460..d8f4cee27d66 100644 --- a/public/img/svg/octicon-plus-circle.svg +++ b/public/img/svg/octicon-plus-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-plus.svg b/public/img/svg/octicon-plus.svg index 8e727d01e299..227b946e3513 100644 --- a/public/img/svg/octicon-plus.svg +++ b/public/img/svg/octicon-plus.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-project-roadmap.svg b/public/img/svg/octicon-project-roadmap.svg index ba8d11aaad58..a61cd569b63e 100644 --- a/public/img/svg/octicon-project-roadmap.svg +++ b/public/img/svg/octicon-project-roadmap.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-project-symlink.svg b/public/img/svg/octicon-project-symlink.svg index e0dd56b78b19..0ca269236b03 100644 --- a/public/img/svg/octicon-project-symlink.svg +++ b/public/img/svg/octicon-project-symlink.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-project.svg b/public/img/svg/octicon-project.svg index 4faff0697a79..52d86d4b77d3 100644 --- a/public/img/svg/octicon-project.svg +++ b/public/img/svg/octicon-project.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-pulse.svg b/public/img/svg/octicon-pulse.svg index 3dc1f0b5e392..b164f2ea762d 100644 --- a/public/img/svg/octicon-pulse.svg +++ b/public/img/svg/octicon-pulse.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-question.svg b/public/img/svg/octicon-question.svg index b4ec8e36ff96..b21e8675257b 100644 --- a/public/img/svg/octicon-question.svg +++ b/public/img/svg/octicon-question.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-quote.svg b/public/img/svg/octicon-quote.svg index 60887fd89ee1..2647b0bf47ac 100644 --- a/public/img/svg/octicon-quote.svg +++ b/public/img/svg/octicon-quote.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-read.svg b/public/img/svg/octicon-read.svg index d6a7cd8eefae..dc27b12ae2f6 100644 --- a/public/img/svg/octicon-read.svg +++ b/public/img/svg/octicon-read.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-rel-file-path.svg b/public/img/svg/octicon-rel-file-path.svg index 6b36861cf181..4f235bae2e63 100644 --- a/public/img/svg/octicon-rel-file-path.svg +++ b/public/img/svg/octicon-rel-file-path.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-reply.svg b/public/img/svg/octicon-reply.svg index 47feacc042a9..124511dae2f8 100644 --- a/public/img/svg/octicon-reply.svg +++ b/public/img/svg/octicon-reply.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-repo-clone.svg b/public/img/svg/octicon-repo-clone.svg index fa248b0f59aa..03c4a24c46ab 100644 --- a/public/img/svg/octicon-repo-clone.svg +++ b/public/img/svg/octicon-repo-clone.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-repo-deleted.svg b/public/img/svg/octicon-repo-deleted.svg index 8ff6cba32afa..59fbeaff6251 100644 --- a/public/img/svg/octicon-repo-deleted.svg +++ b/public/img/svg/octicon-repo-deleted.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-repo-forked.svg b/public/img/svg/octicon-repo-forked.svg index f91f7c859cdd..08bd8e5a70f4 100644 --- a/public/img/svg/octicon-repo-forked.svg +++ b/public/img/svg/octicon-repo-forked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-repo-locked.svg b/public/img/svg/octicon-repo-locked.svg index 3674b8ceac1d..382a1f0a7868 100644 --- a/public/img/svg/octicon-repo-locked.svg +++ b/public/img/svg/octicon-repo-locked.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-repo-pull.svg b/public/img/svg/octicon-repo-pull.svg index b68d6d289dba..82e3cca7da1b 100644 --- a/public/img/svg/octicon-repo-pull.svg +++ b/public/img/svg/octicon-repo-pull.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-repo-push.svg b/public/img/svg/octicon-repo-push.svg index cd24d5e28fac..f473dcb2b9f4 100644 --- a/public/img/svg/octicon-repo-push.svg +++ b/public/img/svg/octicon-repo-push.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-repo-template.svg b/public/img/svg/octicon-repo-template.svg index 9823f16a6065..12da1960e08a 100644 --- a/public/img/svg/octicon-repo-template.svg +++ b/public/img/svg/octicon-repo-template.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-repo.svg b/public/img/svg/octicon-repo.svg index 8c0b2b6f824c..c237a5f1f477 100644 --- a/public/img/svg/octicon-repo.svg +++ b/public/img/svg/octicon-repo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-report.svg b/public/img/svg/octicon-report.svg index 9c727259d0ea..615c52b20d2f 100644 --- a/public/img/svg/octicon-report.svg +++ b/public/img/svg/octicon-report.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-rocket.svg b/public/img/svg/octicon-rocket.svg index 1f0640ec553f..e3a5f805d1b0 100644 --- a/public/img/svg/octicon-rocket.svg +++ b/public/img/svg/octicon-rocket.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-rows.svg b/public/img/svg/octicon-rows.svg index ff7a4dd74fa9..9cd752698da8 100644 --- a/public/img/svg/octicon-rows.svg +++ b/public/img/svg/octicon-rows.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-rss.svg b/public/img/svg/octicon-rss.svg index 377d64de367f..d9aa600d333c 100644 --- a/public/img/svg/octicon-rss.svg +++ b/public/img/svg/octicon-rss.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-ruby.svg b/public/img/svg/octicon-ruby.svg index f2df66a4c7a7..b4f9f426f4be 100644 --- a/public/img/svg/octicon-ruby.svg +++ b/public/img/svg/octicon-ruby.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-screen-full.svg b/public/img/svg/octicon-screen-full.svg index 55e915724869..040ddf9ed99e 100644 --- a/public/img/svg/octicon-screen-full.svg +++ b/public/img/svg/octicon-screen-full.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-screen-normal.svg b/public/img/svg/octicon-screen-normal.svg index 307005e71aa1..1cf1e0868919 100644 --- a/public/img/svg/octicon-screen-normal.svg +++ b/public/img/svg/octicon-screen-normal.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-search.svg b/public/img/svg/octicon-search.svg index a5d91ba8338a..5c3a88bca6ab 100644 --- a/public/img/svg/octicon-search.svg +++ b/public/img/svg/octicon-search.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-server.svg b/public/img/svg/octicon-server.svg index 728e26764c2d..3d80f856bada 100644 --- a/public/img/svg/octicon-server.svg +++ b/public/img/svg/octicon-server.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-share-android.svg b/public/img/svg/octicon-share-android.svg index 71dc8a6340b6..81d0df456e7d 100644 --- a/public/img/svg/octicon-share-android.svg +++ b/public/img/svg/octicon-share-android.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-share.svg b/public/img/svg/octicon-share.svg index f672b5a98daf..eb4dc00656d7 100644 --- a/public/img/svg/octicon-share.svg +++ b/public/img/svg/octicon-share.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-shield-check.svg b/public/img/svg/octicon-shield-check.svg index d91190af5963..13df0052fb3c 100644 --- a/public/img/svg/octicon-shield-check.svg +++ b/public/img/svg/octicon-shield-check.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-shield-lock.svg b/public/img/svg/octicon-shield-lock.svg index 2a728cb43a2b..cc85d282110a 100644 --- a/public/img/svg/octicon-shield-lock.svg +++ b/public/img/svg/octicon-shield-lock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-shield-slash.svg b/public/img/svg/octicon-shield-slash.svg index 45070e2c526e..b4c2fe18df49 100644 --- a/public/img/svg/octicon-shield-slash.svg +++ b/public/img/svg/octicon-shield-slash.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-shield-x.svg b/public/img/svg/octicon-shield-x.svg index 2a3a2e23e7a6..a87b9c189cb0 100644 --- a/public/img/svg/octicon-shield-x.svg +++ b/public/img/svg/octicon-shield-x.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-shield.svg b/public/img/svg/octicon-shield.svg index 72c267feda6d..be209575db52 100644 --- a/public/img/svg/octicon-shield.svg +++ b/public/img/svg/octicon-shield.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sidebar-collapse.svg b/public/img/svg/octicon-sidebar-collapse.svg index d8eb04b0f8ad..7b307bdda27c 100644 --- a/public/img/svg/octicon-sidebar-collapse.svg +++ b/public/img/svg/octicon-sidebar-collapse.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sidebar-expand.svg b/public/img/svg/octicon-sidebar-expand.svg index 993c8805778b..42816121a6ed 100644 --- a/public/img/svg/octicon-sidebar-expand.svg +++ b/public/img/svg/octicon-sidebar-expand.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sign-in.svg b/public/img/svg/octicon-sign-in.svg index 9ed9b01f1525..f44aa4a614a8 100644 --- a/public/img/svg/octicon-sign-in.svg +++ b/public/img/svg/octicon-sign-in.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sign-out.svg b/public/img/svg/octicon-sign-out.svg index 85fec36afbc4..b703ae8b5695 100644 --- a/public/img/svg/octicon-sign-out.svg +++ b/public/img/svg/octicon-sign-out.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-single-select.svg b/public/img/svg/octicon-single-select.svg index f9c981e4d58b..55a1a933bc81 100644 --- a/public/img/svg/octicon-single-select.svg +++ b/public/img/svg/octicon-single-select.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-skip-fill.svg b/public/img/svg/octicon-skip-fill.svg index 5a18f708e739..d3e854314e10 100644 --- a/public/img/svg/octicon-skip-fill.svg +++ b/public/img/svg/octicon-skip-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-skip.svg b/public/img/svg/octicon-skip.svg index d8ceb454db32..97905054381b 100644 --- a/public/img/svg/octicon-skip.svg +++ b/public/img/svg/octicon-skip.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sliders.svg b/public/img/svg/octicon-sliders.svg index 9933b72c39e4..a76bf5180f7c 100644 --- a/public/img/svg/octicon-sliders.svg +++ b/public/img/svg/octicon-sliders.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-smiley.svg b/public/img/svg/octicon-smiley.svg index fe5a6715ddbf..619b0960f76d 100644 --- a/public/img/svg/octicon-smiley.svg +++ b/public/img/svg/octicon-smiley.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sort-asc.svg b/public/img/svg/octicon-sort-asc.svg index f58561b5a8d3..fe05e58ed87e 100644 --- a/public/img/svg/octicon-sort-asc.svg +++ b/public/img/svg/octicon-sort-asc.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sort-desc.svg b/public/img/svg/octicon-sort-desc.svg index 3135d144f9e6..b35567d75ff0 100644 --- a/public/img/svg/octicon-sort-desc.svg +++ b/public/img/svg/octicon-sort-desc.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sparkle-fill.svg b/public/img/svg/octicon-sparkle-fill.svg index 62177ed92dde..3b8a7d276f34 100644 --- a/public/img/svg/octicon-sparkle-fill.svg +++ b/public/img/svg/octicon-sparkle-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sponsor-tiers.svg b/public/img/svg/octicon-sponsor-tiers.svg index c80b9257114e..08e0ae6e6015 100644 --- a/public/img/svg/octicon-sponsor-tiers.svg +++ b/public/img/svg/octicon-sponsor-tiers.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-square-fill.svg b/public/img/svg/octicon-square-fill.svg index 8976749e7f43..24deb106db8b 100644 --- a/public/img/svg/octicon-square-fill.svg +++ b/public/img/svg/octicon-square-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-square.svg b/public/img/svg/octicon-square.svg index c895c22c0609..846af69405f6 100644 --- a/public/img/svg/octicon-square.svg +++ b/public/img/svg/octicon-square.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-squirrel.svg b/public/img/svg/octicon-squirrel.svg index 98f89460dbe7..4d04ca8061de 100644 --- a/public/img/svg/octicon-squirrel.svg +++ b/public/img/svg/octicon-squirrel.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-stack.svg b/public/img/svg/octicon-stack.svg index df1ee4bb5732..683c6c4e2d0c 100644 --- a/public/img/svg/octicon-stack.svg +++ b/public/img/svg/octicon-stack.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-star-fill.svg b/public/img/svg/octicon-star-fill.svg index 3497781fd372..3d5c976fef19 100644 --- a/public/img/svg/octicon-star-fill.svg +++ b/public/img/svg/octicon-star-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-star.svg b/public/img/svg/octicon-star.svg index 4e0f43992641..42e42ab5e6f7 100644 --- a/public/img/svg/octicon-star.svg +++ b/public/img/svg/octicon-star.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-stop.svg b/public/img/svg/octicon-stop.svg index e94f50d0ac87..03cdceb1f213 100644 --- a/public/img/svg/octicon-stop.svg +++ b/public/img/svg/octicon-stop.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-stopwatch.svg b/public/img/svg/octicon-stopwatch.svg index c4a2ff74e940..b63aba3421d6 100644 --- a/public/img/svg/octicon-stopwatch.svg +++ b/public/img/svg/octicon-stopwatch.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-strikethrough.svg b/public/img/svg/octicon-strikethrough.svg index 6d5cfea81f8a..d75258995bf1 100644 --- a/public/img/svg/octicon-strikethrough.svg +++ b/public/img/svg/octicon-strikethrough.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sun.svg b/public/img/svg/octicon-sun.svg index 344ae9481017..1abeab2d1c6a 100644 --- a/public/img/svg/octicon-sun.svg +++ b/public/img/svg/octicon-sun.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-sync.svg b/public/img/svg/octicon-sync.svg index 5a642a85bc5d..146e48f379ae 100644 --- a/public/img/svg/octicon-sync.svg +++ b/public/img/svg/octicon-sync.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-tab-external.svg b/public/img/svg/octicon-tab-external.svg index 30a89215d001..b86888e68731 100644 --- a/public/img/svg/octicon-tab-external.svg +++ b/public/img/svg/octicon-tab-external.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-table.svg b/public/img/svg/octicon-table.svg index 6aca7bf67810..c4bdbc228ba1 100644 --- a/public/img/svg/octicon-table.svg +++ b/public/img/svg/octicon-table.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-tag.svg b/public/img/svg/octicon-tag.svg index 6d8c4548457a..35c4f2e8174e 100644 --- a/public/img/svg/octicon-tag.svg +++ b/public/img/svg/octicon-tag.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-tasklist.svg b/public/img/svg/octicon-tasklist.svg index c8b4654fb51e..a568cc8c04a3 100644 --- a/public/img/svg/octicon-tasklist.svg +++ b/public/img/svg/octicon-tasklist.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-telescope-fill.svg b/public/img/svg/octicon-telescope-fill.svg index 185661430473..c1961c33235d 100644 --- a/public/img/svg/octicon-telescope-fill.svg +++ b/public/img/svg/octicon-telescope-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-telescope.svg b/public/img/svg/octicon-telescope.svg index e0f995e98347..ccac95cd5946 100644 --- a/public/img/svg/octicon-telescope.svg +++ b/public/img/svg/octicon-telescope.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-terminal.svg b/public/img/svg/octicon-terminal.svg index bbd1a7611422..4744caec0af3 100644 --- a/public/img/svg/octicon-terminal.svg +++ b/public/img/svg/octicon-terminal.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-three-bars.svg b/public/img/svg/octicon-three-bars.svg index 806af37bf7ea..2b6fc0abedb0 100644 --- a/public/img/svg/octicon-three-bars.svg +++ b/public/img/svg/octicon-three-bars.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-thumbsdown.svg b/public/img/svg/octicon-thumbsdown.svg index 3f392394b120..1a22693ea0d5 100644 --- a/public/img/svg/octicon-thumbsdown.svg +++ b/public/img/svg/octicon-thumbsdown.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-thumbsup.svg b/public/img/svg/octicon-thumbsup.svg index d505448bfbf3..ed38245f05a4 100644 --- a/public/img/svg/octicon-thumbsup.svg +++ b/public/img/svg/octicon-thumbsup.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-tools.svg b/public/img/svg/octicon-tools.svg index 5727deeea4f7..8b051eb3fd00 100644 --- a/public/img/svg/octicon-tools.svg +++ b/public/img/svg/octicon-tools.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-trash.svg b/public/img/svg/octicon-trash.svg index 7b287b658a9a..d0c0a5f712bf 100644 --- a/public/img/svg/octicon-trash.svg +++ b/public/img/svg/octicon-trash.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-triangle-down.svg b/public/img/svg/octicon-triangle-down.svg index efbcc3f67e52..fd1dce1fe825 100644 --- a/public/img/svg/octicon-triangle-down.svg +++ b/public/img/svg/octicon-triangle-down.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-triangle-left.svg b/public/img/svg/octicon-triangle-left.svg index 9769beea9bfa..66343551a928 100644 --- a/public/img/svg/octicon-triangle-left.svg +++ b/public/img/svg/octicon-triangle-left.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-triangle-right.svg b/public/img/svg/octicon-triangle-right.svg index e127d1d50c9e..7b39a67e6e68 100644 --- a/public/img/svg/octicon-triangle-right.svg +++ b/public/img/svg/octicon-triangle-right.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-triangle-up.svg b/public/img/svg/octicon-triangle-up.svg index 43b7b49518c8..f4b386b1756f 100644 --- a/public/img/svg/octicon-triangle-up.svg +++ b/public/img/svg/octicon-triangle-up.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-trophy.svg b/public/img/svg/octicon-trophy.svg index ee4aaab2cd65..0f1328e2e0ee 100644 --- a/public/img/svg/octicon-trophy.svg +++ b/public/img/svg/octicon-trophy.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-typography.svg b/public/img/svg/octicon-typography.svg index 3df3688a8392..0b2088ed2fb3 100644 --- a/public/img/svg/octicon-typography.svg +++ b/public/img/svg/octicon-typography.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-unfold.svg b/public/img/svg/octicon-unfold.svg index e55592b4f947..ff4a0dd56a8b 100644 --- a/public/img/svg/octicon-unfold.svg +++ b/public/img/svg/octicon-unfold.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-unlink.svg b/public/img/svg/octicon-unlink.svg index 95e876a774e5..0f77b14734ce 100644 --- a/public/img/svg/octicon-unlink.svg +++ b/public/img/svg/octicon-unlink.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-unlock.svg b/public/img/svg/octicon-unlock.svg index 8267be89aaa5..b0739c670351 100644 --- a/public/img/svg/octicon-unlock.svg +++ b/public/img/svg/octicon-unlock.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-unmute.svg b/public/img/svg/octicon-unmute.svg index 6cb45758265d..79234174e97a 100644 --- a/public/img/svg/octicon-unmute.svg +++ b/public/img/svg/octicon-unmute.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-unread.svg b/public/img/svg/octicon-unread.svg index e3940c6ca3a8..9652a18ff017 100644 --- a/public/img/svg/octicon-unread.svg +++ b/public/img/svg/octicon-unread.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-unverified.svg b/public/img/svg/octicon-unverified.svg index 60f2c0930203..c4bbddfab0b6 100644 --- a/public/img/svg/octicon-unverified.svg +++ b/public/img/svg/octicon-unverified.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-upload.svg b/public/img/svg/octicon-upload.svg index e0cf667b43d6..16e3f04222fc 100644 --- a/public/img/svg/octicon-upload.svg +++ b/public/img/svg/octicon-upload.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-verified.svg b/public/img/svg/octicon-verified.svg index b4e2a8304553..a6de1a30d69f 100644 --- a/public/img/svg/octicon-verified.svg +++ b/public/img/svg/octicon-verified.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-versions.svg b/public/img/svg/octicon-versions.svg index b44a25786c37..b37de6aebee9 100644 --- a/public/img/svg/octicon-versions.svg +++ b/public/img/svg/octicon-versions.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-video.svg b/public/img/svg/octicon-video.svg index 0b13a8612cd9..95d92d87a632 100644 --- a/public/img/svg/octicon-video.svg +++ b/public/img/svg/octicon-video.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-webhook.svg b/public/img/svg/octicon-webhook.svg index 809fef91c8ed..afb2e08209ac 100644 --- a/public/img/svg/octicon-webhook.svg +++ b/public/img/svg/octicon-webhook.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-workflow.svg b/public/img/svg/octicon-workflow.svg index af89aeb88e9a..2bf204bbe594 100644 --- a/public/img/svg/octicon-workflow.svg +++ b/public/img/svg/octicon-workflow.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-x-circle-fill.svg b/public/img/svg/octicon-x-circle-fill.svg index 39a0d5e90532..eafea6df78a4 100644 --- a/public/img/svg/octicon-x-circle-fill.svg +++ b/public/img/svg/octicon-x-circle-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-x-circle.svg b/public/img/svg/octicon-x-circle.svg index 53780ff84a1a..26cce460d5c8 100644 --- a/public/img/svg/octicon-x-circle.svg +++ b/public/img/svg/octicon-x-circle.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-x.svg b/public/img/svg/octicon-x.svg index 465315631878..de54c0928e75 100644 --- a/public/img/svg/octicon-x.svg +++ b/public/img/svg/octicon-x.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-zap.svg b/public/img/svg/octicon-zap.svg index 3db1d82a7d7d..f711e01eb14e 100644 --- a/public/img/svg/octicon-zap.svg +++ b/public/img/svg/octicon-zap.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-zoom-in.svg b/public/img/svg/octicon-zoom-in.svg index 44945547629f..88540b576681 100644 --- a/public/img/svg/octicon-zoom-in.svg +++ b/public/img/svg/octicon-zoom-in.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/public/img/svg/octicon-zoom-out.svg b/public/img/svg/octicon-zoom-out.svg index c2b8b27fc519..d03925e0df89 100644 --- a/public/img/svg/octicon-zoom-out.svg +++ b/public/img/svg/octicon-zoom-out.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From ad6444ff1c825f14ef5f0f09d09c293351a6994e Mon Sep 17 00:00:00 2001 From: Matthias Loibl Date: Tue, 21 Mar 2023 10:17:58 +0000 Subject: [PATCH 02/10] Remove @metalmatze as maintainer (#23612) It's time. I haven't been active in years. --- MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 79c4ac4c34ff..f66973576d34 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5,7 +5,6 @@ Kees de Vries (@Bwko) Kim Carlbäcker (@bkcsoft) LefsFlare (@LefsFlarey) Lunny Xiao (@lunny) -Matthias Loibl (@metalmatze) Rachid Zarouali (@xinity) Rémy Boulanouar (@DblK) Sandro Santilli (@strk) From 253a00aaac6b17346927e42c709f3f96672caaf3 Mon Sep 17 00:00:00 2001 From: silverwind Date: Tue, 21 Mar 2023 20:11:25 +0100 Subject: [PATCH 03/10] Remove conflicting CSS rules on notifications, improve notifications table (#23565) Dropdowns on `/notifications/subscriptions` before and after: Screenshot 2023-03-18 at 20 37 12 Screenshot 2023-03-18 at 20 41 29 These selectors are meant to target the notification list which I improved: Screenshot 2023-03-19 at 01 52 11 Screenshot 2023-03-19 at 01 54 17 --- .../user/notification/notification_div.tmpl | 16 +++++----- web_src/css/user.css | 30 ++++++------------- 2 files changed, 17 insertions(+), 29 deletions(-) diff --git a/templates/user/notification/notification_div.tmpl b/templates/user/notification/notification_div.tmpl index c8db659c13ea..9a4fbe786eab 100644 --- a/templates/user/notification/notification_div.tmpl +++ b/templates/user/notification/notification_div.tmpl @@ -35,26 +35,26 @@ {{$issue := .Issue}} {{$repo := .Repository}} - + {{if eq .Status 3}} - {{svg "octicon-pin"}} + {{svg "octicon-pin" 16 "text blue"}} {{else if not $issue}} - {{svg "octicon-repo"}} + {{svg "octicon-repo" 16 "text grey"}} {{else if $issue.IsPull}} {{if $issue.IsClosed}} {{if $issue.GetPullRequest.HasMerged}} - {{svg "octicon-git-merge"}} + {{svg "octicon-git-merge" 16 "text purple"}} {{else}} - {{svg "octicon-git-pull-request"}} + {{svg "octicon-git-pull-request" 16 "text red"}} {{end}} {{else}} - {{svg "octicon-git-pull-request"}} + {{svg "octicon-git-pull-request" 16 "text green"}} {{end}} {{else}} {{if $issue.IsClosed}} - {{svg "octicon-issue-closed"}} + {{svg "octicon-issue-closed" 16 "text red"}} {{else}} - {{svg "octicon-issue-opened"}} + {{svg "octicon-issue-opened" 16 "text green"}} {{end}} {{end}} diff --git a/web_src/css/user.css b/web_src/css/user.css index a3379440dfe6..8722181c2907 100644 --- a/web_src/css/user.css +++ b/web_src/css/user.css @@ -90,27 +90,6 @@ padding: 8px 15px; } -.user.notification .svg { - float: left; - font-size: 2em; -} - -.user.notification .svg.green { - color: var(--color-green); -} - -.user.notification .svg.red { - color: var(--color-red); -} - -.user.notification .svg.purple { - color: var(--color-purple); -} - -.user.notification .svg.blue { - color: var(--color-blue); -} - .user.notification .content { float: left; margin-left: 7px; @@ -175,4 +154,13 @@ #notification_div .tab.segment { overflow-x: auto; + padding: 0; +} + +#notification_div .menu .active.item { + background: var(--color-box-body); +} + +#notification_table { + border: none; } From ce9dee5a1e8ae670c97621bca409d8cf43a90102 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Wed, 22 Mar 2023 04:02:49 +0800 Subject: [PATCH 04/10] Introduce path Clean/Join helper functions (#23495) Since #23493 has conflicts with latest commits, this PR is my proposal for fixing #23371 Details are in the comments And refactor the `modules/options` module, to make it always use "filepath" to access local files. Benefits: * No need to do `util.CleanPath(strings.ReplaceAll(p, "\\", "/"))), "/")` any more (not only one before) * The function behaviors are clearly defined --- models/git/lfs_lock.go | 6 +- modules/options/base.go | 67 +++++++++++--- modules/options/dynamic.go | 48 ++-------- modules/options/static.go | 39 +++----- modules/public/public.go | 26 ++---- modules/storage/local.go | 17 ++-- modules/storage/local_test.go | 20 ++--- modules/storage/minio.go | 2 +- modules/util/path.go | 94 +++++++++++++++++--- modules/util/path_test.go | 74 +++++++++++++-- routers/web/base.go | 6 +- routers/web/repo/editor.go | 2 +- routers/web/repo/lfs.go | 2 +- services/migrations/gitea_uploader.go | 4 +- services/packages/container/blob_uploader.go | 4 +- services/repository/files/file.go | 2 +- 16 files changed, 261 insertions(+), 152 deletions(-) diff --git a/models/git/lfs_lock.go b/models/git/lfs_lock.go index 178fa72f09bf..261c73032aa2 100644 --- a/models/git/lfs_lock.go +++ b/models/git/lfs_lock.go @@ -34,7 +34,7 @@ func init() { // BeforeInsert is invoked from XORM before inserting an object of this type. func (l *LFSLock) BeforeInsert() { - l.Path = util.CleanPath(l.Path) + l.Path = util.PathJoinRel(l.Path) } // CreateLFSLock creates a new lock. @@ -49,7 +49,7 @@ func CreateLFSLock(ctx context.Context, repo *repo_model.Repository, lock *LFSLo return nil, err } - lock.Path = util.CleanPath(lock.Path) + lock.Path = util.PathJoinRel(lock.Path) lock.RepoID = repo.ID l, err := GetLFSLock(dbCtx, repo, lock.Path) @@ -69,7 +69,7 @@ func CreateLFSLock(ctx context.Context, repo *repo_model.Repository, lock *LFSLo // GetLFSLock returns release by given path. func GetLFSLock(ctx context.Context, repo *repo_model.Repository, path string) (*LFSLock, error) { - path = util.CleanPath(path) + path = util.PathJoinRel(path) rel := &LFSLock{RepoID: repo.ID} has, err := db.GetEngine(ctx).Where("lower(path) = ?", strings.ToLower(path)).Get(rel) if err != nil { diff --git a/modules/options/base.go b/modules/options/base.go index e83e8df5d094..7882ed008159 100644 --- a/modules/options/base.go +++ b/modules/options/base.go @@ -7,36 +7,38 @@ import ( "fmt" "io/fs" "os" - "path" "path/filepath" + "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/util" ) +var directories = make(directorySet) + // Locale reads the content of a specific locale from static/bindata or custom path. func Locale(name string) ([]byte, error) { - return fileFromDir(path.Join("locale", util.CleanPath(name))) + return fileFromOptionsDir("locale", name) } // Readme reads the content of a specific readme from static/bindata or custom path. func Readme(name string) ([]byte, error) { - return fileFromDir(path.Join("readme", util.CleanPath(name))) + return fileFromOptionsDir("readme", name) } // Gitignore reads the content of a gitignore locale from static/bindata or custom path. func Gitignore(name string) ([]byte, error) { - return fileFromDir(path.Join("gitignore", util.CleanPath(name))) + return fileFromOptionsDir("gitignore", name) } // License reads the content of a specific license from static/bindata or custom path. func License(name string) ([]byte, error) { - return fileFromDir(path.Join("license", util.CleanPath(name))) + return fileFromOptionsDir("license", name) } // Labels reads the content of a specific labels from static/bindata or custom path. func Labels(name string) ([]byte, error) { - return fileFromDir(path.Join("label", util.CleanPath(name))) + return fileFromOptionsDir("label", name) } // WalkLocales reads the content of a specific locale @@ -79,17 +81,54 @@ func walkAssetDir(root string, callback func(path, name string, d fs.DirEntry, e return nil } -func statDirIfExist(dir string) ([]string, error) { - isDir, err := util.IsDir(dir) +// mustLocalPathAbs coverts a path to absolute path +// FIXME: the old behavior (StaticRootPath might not be absolute), not ideal, just keep the same as before +func mustLocalPathAbs(s string) string { + abs, err := filepath.Abs(s) if err != nil { - return nil, fmt.Errorf("unable to check if static directory %s is a directory. %w", dir, err) + // This should never happen in a real system. If it happens, the user must have already been in trouble: the system is not able to resolve its own paths. + log.Fatal("Unable to get absolute path for %q: %v", s, err) } - if !isDir { - return nil, nil + return abs +} + +func joinLocalPaths(baseDirs []string, subDir string, elems ...string) (paths []string) { + abs := make([]string, len(elems)+2) + abs[1] = subDir + copy(abs[2:], elems) + for _, baseDir := range baseDirs { + abs[0] = mustLocalPathAbs(baseDir) + paths = append(paths, util.FilePathJoinAbs(abs...)) } - files, err := util.StatDir(dir, true) - if err != nil { - return nil, fmt.Errorf("unable to read directory %q. %w", dir, err) + return paths +} + +func listLocalDirIfExist(baseDirs []string, subDir string, elems ...string) (files []string, err error) { + for _, localPath := range joinLocalPaths(baseDirs, subDir, elems...) { + isDir, err := util.IsDir(localPath) + if err != nil { + return nil, fmt.Errorf("unable to check if path %q is a directory. %w", localPath, err) + } else if !isDir { + continue + } + + dirFiles, err := util.StatDir(localPath, true) + if err != nil { + return nil, fmt.Errorf("unable to read directory %q. %w", localPath, err) + } + files = append(files, dirFiles...) } return files, nil } + +func readLocalFile(baseDirs []string, subDir string, elems ...string) ([]byte, error) { + for _, localPath := range joinLocalPaths(baseDirs, subDir, elems...) { + data, err := os.ReadFile(localPath) + if err == nil { + return data, nil + } else if !os.IsNotExist(err) { + log.Error("Unable to read file %q. Error: %v", localPath, err) + } + } + return nil, os.ErrNotExist +} diff --git a/modules/options/dynamic.go b/modules/options/dynamic.go index 8c954492ae51..3d6261983f2d 100644 --- a/modules/options/dynamic.go +++ b/modules/options/dynamic.go @@ -6,62 +6,26 @@ package options import ( - "fmt" - "os" - "path" - - "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" - "code.gitea.io/gitea/modules/util" ) -var directories = make(directorySet) - // Dir returns all files from static or custom directory. func Dir(name string) ([]string, error) { if directories.Filled(name) { return directories.Get(name), nil } - var result []string - - for _, dir := range []string{ - path.Join(setting.CustomPath, "options", name), // custom dir - path.Join(setting.StaticRootPath, "options", name), // static dir - } { - files, err := statDirIfExist(dir) - if err != nil { - return nil, err - } - result = append(result, files...) + result, err := listLocalDirIfExist([]string{setting.CustomPath, setting.StaticRootPath}, "options", name) + if err != nil { + return nil, err } return directories.AddAndGet(name, result), nil } -// fileFromDir is a helper to read files from static or custom path. -func fileFromDir(name string) ([]byte, error) { - customPath := path.Join(setting.CustomPath, "options", name) - - isFile, err := util.IsFile(customPath) - if err != nil { - log.Error("Unable to check if %s is a file. Error: %v", customPath, err) - } - if isFile { - return os.ReadFile(customPath) - } - - staticPath := path.Join(setting.StaticRootPath, "options", name) - - isFile, err = util.IsFile(staticPath) - if err != nil { - log.Error("Unable to check if %s is a file. Error: %v", staticPath, err) - } - if isFile { - return os.ReadFile(staticPath) - } - - return []byte{}, fmt.Errorf("Asset file does not exist: %s", name) +// fileFromOptionsDir is a helper to read files from custom or static path. +func fileFromOptionsDir(elems ...string) ([]byte, error) { + return readLocalFile([]string{setting.CustomPath, setting.StaticRootPath}, "options", elems...) } // IsDynamic will return false when using embedded data (-tags bindata) diff --git a/modules/options/static.go b/modules/options/static.go index 549f4e25b11a..0482dea6817c 100644 --- a/modules/options/static.go +++ b/modules/options/static.go @@ -8,33 +8,20 @@ package options import ( "fmt" "io" - "os" - "path" - "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/util" ) -var directories = make(directorySet) - -// Dir returns all files from bindata or custom directory. +// Dir returns all files from custom directory or bindata. func Dir(name string) ([]string, error) { if directories.Filled(name) { return directories.Get(name), nil } - var result []string - - for _, dir := range []string{ - path.Join(setting.CustomPath, "options", name), // custom dir - // no static dir - } { - files, err := statDirIfExist(dir) - if err != nil { - return nil, err - } - result = append(result, files...) + result, err := listLocalDirIfExist([]string{setting.CustomPath}, "options", name) + if err != nil { + return nil, err } files, err := AssetDir(name) @@ -64,24 +51,18 @@ func AssetDir(dirName string) ([]string, error) { return results, nil } -// fileFromDir is a helper to read files from bindata or custom path. -func fileFromDir(name string) ([]byte, error) { - customPath := path.Join(setting.CustomPath, "options", name) - - isFile, err := util.IsFile(customPath) - if err != nil { - log.Error("Unable to check if %s is a file. Error: %v", customPath, err) - } - if isFile { - return os.ReadFile(customPath) +// fileFromOptionsDir is a helper to read files from custom path or bindata. +func fileFromOptionsDir(elems ...string) ([]byte, error) { + // only try custom dir, no static dir + if data, err := readLocalFile([]string{setting.CustomPath}, "options", elems...); err == nil { + return data, nil } - f, err := Assets.Open(name) + f, err := Assets.Open(util.PathJoinRelX(elems...)) if err != nil { return nil, err } defer f.Close() - return io.ReadAll(f) } diff --git a/modules/public/public.go b/modules/public/public.go index e1d60d89eb9f..30b03a27954a 100644 --- a/modules/public/public.go +++ b/modules/public/public.go @@ -45,29 +45,19 @@ func AssetsHandlerFunc(opts *Options) http.HandlerFunc { return } - file := req.URL.Path - file = file[len(opts.Prefix):] - if len(file) == 0 { - resp.WriteHeader(http.StatusNotFound) - return - } - if strings.Contains(file, "\\") { - resp.WriteHeader(http.StatusBadRequest) - return - } - file = "/" + file - - var written bool + var corsSent bool if opts.CorsHandler != nil { - written = true opts.CorsHandler(http.HandlerFunc(func(http.ResponseWriter, *http.Request) { - written = false + corsSent = true })).ServeHTTP(resp, req) } - if written { + // If CORS is not sent, the response must have been written by other handlers + if !corsSent { return } + file := req.URL.Path[len(opts.Prefix):] + // custom files if opts.handle(resp, req, http.Dir(custPath), file) { return @@ -102,8 +92,8 @@ func setWellKnownContentType(w http.ResponseWriter, file string) { } func (opts *Options) handle(w http.ResponseWriter, req *http.Request, fs http.FileSystem, file string) bool { - // use clean to keep the file is a valid path with no . or .. - f, err := fs.Open(util.CleanPath(file)) + // actually, fs (http.FileSystem) is designed to be a safe interface, relative paths won't bypass its parent directory, it's also fine to do a clean here + f, err := fs.Open(util.PathJoinRelX(file)) if err != nil { if os.IsNotExist(err) { return false diff --git a/modules/storage/local.go b/modules/storage/local.go index 15f5761e8f05..d22974a65add 100644 --- a/modules/storage/local.go +++ b/modules/storage/local.go @@ -5,11 +5,11 @@ package storage import ( "context" + "fmt" "io" "net/url" "os" "path/filepath" - "strings" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/util" @@ -41,13 +41,19 @@ func NewLocalStorage(ctx context.Context, cfg interface{}) (ObjectStorage, error } config := configInterface.(LocalStorageConfig) + if !filepath.IsAbs(config.Path) { + return nil, fmt.Errorf("LocalStorageConfig.Path should have been prepared by setting/storage.go and should be an absolute path, but not: %q", config.Path) + } log.Info("Creating new Local Storage at %s", config.Path) if err := os.MkdirAll(config.Path, os.ModePerm); err != nil { return nil, err } if config.TemporaryPath == "" { - config.TemporaryPath = config.Path + "/tmp" + config.TemporaryPath = filepath.Join(config.Path, "tmp") + } + if !filepath.IsAbs(config.TemporaryPath) { + return nil, fmt.Errorf("LocalStorageConfig.TemporaryPath should be an absolute path, but not: %q", config.TemporaryPath) } return &LocalStorage{ @@ -58,7 +64,7 @@ func NewLocalStorage(ctx context.Context, cfg interface{}) (ObjectStorage, error } func (l *LocalStorage) buildLocalPath(p string) string { - return filepath.Join(l.dir, util.CleanPath(strings.ReplaceAll(p, "\\", "/"))) + return util.FilePathJoinAbs(l.dir, p) } // Open a file @@ -128,10 +134,7 @@ func (l *LocalStorage) URL(path, name string) (*url.URL, error) { // IterateObjects iterates across the objects in the local storage func (l *LocalStorage) IterateObjects(prefix string, fn func(path string, obj Object) error) error { - dir := l.dir - if prefix != "" { - dir = filepath.Join(l.dir, util.CleanPath(prefix)) - } + dir := l.buildLocalPath(prefix) return filepath.WalkDir(dir, func(path string, d os.DirEntry, err error) error { if err != nil { return err diff --git a/modules/storage/local_test.go b/modules/storage/local_test.go index 2b112df8f12b..9649761a0f96 100644 --- a/modules/storage/local_test.go +++ b/modules/storage/local_test.go @@ -20,29 +20,29 @@ func TestBuildLocalPath(t *testing.T) { expected string }{ { - "a", + "/a", "0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", - "a/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", + "/a/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", }, { - "a", + "/a", "../0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", - "a/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", + "/a/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", }, { - "a", + "/a", "0\\a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", - "a/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", + "/a/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", }, { - "b", + "/b", "a/../0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", - "b/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", + "/b/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", }, { - "b", + "/b", "a\\..\\0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", - "b/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", + "/b/0/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a14", }, } diff --git a/modules/storage/minio.go b/modules/storage/minio.go index 8cc06bcdd3df..5c67dbf26a29 100644 --- a/modules/storage/minio.go +++ b/modules/storage/minio.go @@ -121,7 +121,7 @@ func NewMinioStorage(ctx context.Context, cfg interface{}) (ObjectStorage, error } func (m *MinioStorage) buildMinioPath(p string) string { - return strings.TrimPrefix(path.Join(m.basePath, util.CleanPath(strings.ReplaceAll(p, "\\", "/"))), "/") + return util.PathJoinRelX(m.basePath, p) } // Open open a file diff --git a/modules/util/path.go b/modules/util/path.go index 5aa9e15f5c3e..37d06e9813e0 100644 --- a/modules/util/path.go +++ b/modules/util/path.go @@ -5,6 +5,7 @@ package util import ( "errors" + "fmt" "net/url" "os" "path" @@ -14,21 +15,92 @@ import ( "strings" ) -// CleanPath ensure to clean the path -func CleanPath(p string) string { - if strings.HasPrefix(p, "/") { - return path.Clean(p) +// PathJoinRel joins the path elements into a single path, each element is cleaned by path.Clean separately. +// It only returns the following values (like path.Join), any redundant part (empty, relative dots, slashes) is removed. +// It's caller's duty to make every element not bypass its own directly level, to avoid security issues. +// +// empty => `` +// `` => `` +// `..` => `.` +// `dir` => `dir` +// `/dir/` => `dir` +// `foo\..\bar` => `foo\..\bar` +// {`foo`, ``, `bar`} => `foo/bar` +// {`foo`, `..`, `bar`} => `foo/bar` +func PathJoinRel(elem ...string) string { + elems := make([]string, len(elem)) + for i, e := range elem { + if e == "" { + continue + } + elems[i] = path.Clean("/" + e) + } + p := path.Join(elems...) + if p == "" { + return "" + } else if p == "/" { + return "." + } else { + return p[1:] + } +} + +// PathJoinRelX joins the path elements into a single path like PathJoinRel, +// and covert all backslashes to slashes. (X means "extended", also means the combination of `\` and `/`). +// It's caller's duty to make every element not bypass its own directly level, to avoid security issues. +// It returns similar results as PathJoinRel except: +// +// `foo\..\bar` => `bar` (because it's processed as `foo/../bar`) +// +// All backslashes are handled as slashes, the result only contains slashes. +func PathJoinRelX(elem ...string) string { + elems := make([]string, len(elem)) + for i, e := range elem { + if e == "" { + continue + } + elems[i] = path.Clean("/" + strings.ReplaceAll(e, "\\", "/")) } - return path.Clean("/" + p)[1:] + return PathJoinRel(elems...) } -// EnsureAbsolutePath ensure that a path is absolute, making it -// relative to absoluteBase if necessary -func EnsureAbsolutePath(path, absoluteBase string) string { - if filepath.IsAbs(path) { - return path +const pathSeparator = string(os.PathSeparator) + +// FilePathJoinAbs joins the path elements into a single file path, each element is cleaned by filepath.Clean separately. +// All slashes/backslashes are converted to path separators before cleaning, the result only contains path separators. +// The first element must be an absolute path, caller should prepare the base path. +// It's caller's duty to make every element not bypass its own directly level, to avoid security issues. +// Like PathJoinRel, any redundant part (empty, relative dots, slashes) is removed. +// +// {`/foo`, ``, `bar`} => `/foo/bar` +// {`/foo`, `..`, `bar`} => `/foo/bar` +func FilePathJoinAbs(elem ...string) string { + elems := make([]string, len(elem)) + + // POISX filesystem can have `\` in file names. Windows: `\` and `/` are both used for path separators + // to keep the behavior consistent, we do not allow `\` in file names, replace all `\` with `/` + if isOSWindows() { + elems[0] = filepath.Clean(elem[0]) + } else { + elems[0] = filepath.Clean(strings.ReplaceAll(elem[0], "\\", pathSeparator)) + } + if !filepath.IsAbs(elems[0]) { + // This shouldn't happen. If there is really necessary to pass in relative path, return the full path with filepath.Abs() instead + panic(fmt.Sprintf("FilePathJoinAbs: %q (for path %v) is not absolute, do not guess a relative path based on current working directory", elems[0], elems)) + } + + for i := 1; i < len(elem); i++ { + if elem[i] == "" { + continue + } + if isOSWindows() { + elems[i] = filepath.Clean(pathSeparator + elem[i]) + } else { + elems[i] = filepath.Clean(pathSeparator + strings.ReplaceAll(elem[i], "\\", pathSeparator)) + } } - return filepath.Join(absoluteBase, path) + // the elems[0] must be an absolute path, just join them together + return filepath.Join(elems...) } // IsDir returns true if given path is a directory, diff --git a/modules/util/path_test.go b/modules/util/path_test.go index 2f020f924dd2..1d27c9bf0c0f 100644 --- a/modules/util/path_test.go +++ b/modules/util/path_test.go @@ -138,13 +138,75 @@ func TestMisc_IsReadmeFileName(t *testing.T) { } func TestCleanPath(t *testing.T) { - cases := map[string]string{ - "../../test": "test", - "/test": "/test", - "/../test": "/test", + cases := []struct { + elems []string + expected string + }{ + {[]string{}, ``}, + {[]string{``}, ``}, + {[]string{`..`}, `.`}, + {[]string{`a`}, `a`}, + {[]string{`/a/`}, `a`}, + {[]string{`../a/`, `../b`, `c/..`, `d`}, `a/b/d`}, + {[]string{`a\..\b`}, `a\..\b`}, + {[]string{`a`, ``, `b`}, `a/b`}, + {[]string{`a`, `..`, `b`}, `a/b`}, + {[]string{`lfs`, `repo/..`, `user/../path`}, `lfs/path`}, + } + for _, c := range cases { + assert.Equal(t, c.expected, PathJoinRel(c.elems...), "case: %v", c.elems) + } + + cases = []struct { + elems []string + expected string + }{ + {[]string{}, ``}, + {[]string{``}, ``}, + {[]string{`..`}, `.`}, + {[]string{`a`}, `a`}, + {[]string{`/a/`}, `a`}, + {[]string{`../a/`, `../b`, `c/..`, `d`}, `a/b/d`}, + {[]string{`a\..\b`}, `b`}, + {[]string{`a`, ``, `b`}, `a/b`}, + {[]string{`a`, `..`, `b`}, `a/b`}, + {[]string{`lfs`, `repo/..`, `user/../path`}, `lfs/path`}, + } + for _, c := range cases { + assert.Equal(t, c.expected, PathJoinRelX(c.elems...), "case: %v", c.elems) } - for k, v := range cases { - assert.Equal(t, v, CleanPath(k)) + // for POSIX only, but the result is similar on Windows, because the first element must be an absolute path + if isOSWindows() { + cases = []struct { + elems []string + expected string + }{ + {[]string{`C:\..`}, `C:\`}, + {[]string{`C:\a`}, `C:\a`}, + {[]string{`C:\a/`}, `C:\a`}, + {[]string{`C:\..\a\`, `../b`, `c\..`, `d`}, `C:\a\b\d`}, + {[]string{`C:\a/..\b`}, `C:\b`}, + {[]string{`C:\a`, ``, `b`}, `C:\a\b`}, + {[]string{`C:\a`, `..`, `b`}, `C:\a\b`}, + {[]string{`C:\lfs`, `repo/..`, `user/../path`}, `C:\lfs\path`}, + } + } else { + cases = []struct { + elems []string + expected string + }{ + {[]string{`/..`}, `/`}, + {[]string{`/a`}, `/a`}, + {[]string{`/a/`}, `/a`}, + {[]string{`/../a/`, `../b`, `c/..`, `d`}, `/a/b/d`}, + {[]string{`/a\..\b`}, `/b`}, + {[]string{`/a`, ``, `b`}, `/a/b`}, + {[]string{`/a`, `..`, `b`}, `/a/b`}, + {[]string{`/lfs`, `repo/..`, `user/../path`}, `/lfs/path`}, + } + } + for _, c := range cases { + assert.Equal(t, c.expected, FilePathJoinAbs(c.elems...), "case: %v", c.elems) } } diff --git a/routers/web/base.go b/routers/web/base.go index 2eb0b6f39118..da18a75643e6 100644 --- a/routers/web/base.go +++ b/routers/web/base.go @@ -45,7 +45,7 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor routing.UpdateFuncInfo(req.Context(), funcInfo) rPath := strings.TrimPrefix(req.URL.Path, "/"+prefix+"/") - rPath = util.CleanPath(strings.ReplaceAll(rPath, "\\", "/")) + rPath = util.PathJoinRelX(rPath) u, err := objStore.URL(rPath, path.Base(rPath)) if err != nil { @@ -81,8 +81,8 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor routing.UpdateFuncInfo(req.Context(), funcInfo) rPath := strings.TrimPrefix(req.URL.Path, "/"+prefix+"/") - rPath = util.CleanPath(strings.ReplaceAll(rPath, "\\", "/")) - if rPath == "" { + rPath = util.PathJoinRelX(rPath) + if rPath == "" || rPath == "." { http.Error(w, "file not found", http.StatusNotFound) return } diff --git a/routers/web/repo/editor.go b/routers/web/repo/editor.go index 4f208098e476..07241b88700f 100644 --- a/routers/web/repo/editor.go +++ b/routers/web/repo/editor.go @@ -726,7 +726,7 @@ func UploadFilePost(ctx *context.Context) { func cleanUploadFileName(name string) string { // Rebase the filename - name = strings.Trim(util.CleanPath(name), "/") + name = util.PathJoinRel(name) // Git disallows any filenames to have a .git directory in them. for _, part := range strings.Split(name, "/") { if strings.ToLower(part) == ".git" { diff --git a/routers/web/repo/lfs.go b/routers/web/repo/lfs.go index 43f5527986b9..9957869c999a 100644 --- a/routers/web/repo/lfs.go +++ b/routers/web/repo/lfs.go @@ -207,7 +207,7 @@ func LFSLockFile(ctx *context.Context) { ctx.Redirect(ctx.Repo.RepoLink + "/settings/lfs/locks") return } - lockPath = util.CleanPath(lockPath) + lockPath = util.PathJoinRel(lockPath) if len(lockPath) == 0 { ctx.Flash.Error(ctx.Tr("repo.settings.lfs_invalid_locking_path", originalPath)) ctx.Redirect(ctx.Repo.RepoLink + "/settings/lfs/locks") diff --git a/services/migrations/gitea_uploader.go b/services/migrations/gitea_uploader.go index ca961524d12c..0eb34b5fe562 100644 --- a/services/migrations/gitea_uploader.go +++ b/services/migrations/gitea_uploader.go @@ -865,8 +865,8 @@ func (g *GiteaLocalUploader) CreateReviews(reviews ...*base.Review) error { _, _, line, _ = git.ParseDiffHunkString(comment.DiffHunk) } - // SECURITY: The TreePath must be cleaned! - comment.TreePath = util.CleanPath(comment.TreePath) + // SECURITY: The TreePath must be cleaned! use relative path + comment.TreePath = util.PathJoinRel(comment.TreePath) var patch string reader, writer := io.Pipe() diff --git a/services/packages/container/blob_uploader.go b/services/packages/container/blob_uploader.go index 860672587d2b..bae2e2d6af66 100644 --- a/services/packages/container/blob_uploader.go +++ b/services/packages/container/blob_uploader.go @@ -8,8 +8,6 @@ import ( "errors" "io" "os" - "path/filepath" - "strings" packages_model "code.gitea.io/gitea/models/packages" packages_module "code.gitea.io/gitea/modules/packages" @@ -33,7 +31,7 @@ type BlobUploader struct { } func buildFilePath(id string) string { - return filepath.Join(setting.Packages.ChunkedUploadPath, util.CleanPath(strings.ReplaceAll(id, "\\", "/"))) + return util.FilePathJoinAbs(setting.Packages.ChunkedUploadPath, id) } // NewBlobUploader creates a new blob uploader for the given id diff --git a/services/repository/files/file.go b/services/repository/files/file.go index 7939491aec62..dc1e547dcdae 100644 --- a/services/repository/files/file.go +++ b/services/repository/files/file.go @@ -129,7 +129,7 @@ func GetAuthorAndCommitterUsers(author, committer *IdentityOptions, doer *user_m // CleanUploadFileName Trims a filename and returns empty string if it is a .git directory func CleanUploadFileName(name string) string { // Rebase the filename - name = strings.Trim(util.CleanPath(name), "/") + name = util.PathJoinRel(name) // Git disallows any filenames to have a .git directory in them. for _, part := range strings.Split(name, "/") { if strings.ToLower(part) == ".git" { From 9b0190884d88ad15cf67e1288a302d22e88d37aa Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Wed, 22 Mar 2023 04:35:02 +0800 Subject: [PATCH 05/10] Remove `id="comment-form"` dead code, fix tag (#23555) The code has been dead code since #5073 . `#5073` duplicated the code in a new `if` block. The dead code blocks * #23290 --- templates/repo/issue/view_content.tmpl | 68 ++++++-------------------- 1 file changed, 15 insertions(+), 53 deletions(-) diff --git a/templates/repo/issue/view_content.tmpl b/templates/repo/issue/view_content.tmpl index 1b3cbdbec2e0..3e43701b6351 100644 --- a/templates/repo/issue/view_content.tmpl +++ b/templates/repo/issue/view_content.tmpl @@ -17,15 +17,15 @@ {{$createdStr:= TimeSinceUnix .Issue.CreatedUnix $.locale}}
- +
- {{if .Issue.OriginalAuthor}} + {{if .Issue.OriginalAuthor}} - {{else}} + {{else}} {{avatar $.Context .Issue.Poster}} - {{end}} + {{end}}
@@ -97,6 +97,7 @@ {{if and .Issue.IsPull (not $.Repository.IsArchived)}} {{template "repo/issue/view_content/pull".}} {{end}} + {{if .IsSigned}} {{if and (or .IsRepoAdmin .HasIssuesOrPullsWritePermission (not .Issue.IsLocked)) (not .Repository.IsArchived)}}
@@ -142,61 +143,22 @@ {{end}}
{{end}} - {{else}} - {{if .Repository.IsArchived}} -
- {{if .Issue.IsPull}} - {{.locale.Tr "repo.archive.pull.nocomment"}} - {{else}} - {{.locale.Tr "repo.archive.issue.nocomment"}} - {{end}} -
- {{else}} - {{if .IsSigned}} - {{if .Repository.IsArchived}} -
- - {{avatar $.Context .SignedUser}} - -
-
- {{template "repo/issue/comment_tab" .}} - {{.CsrfTokenHtml}} - - -
-
+ {{else}} {{/* not .IsSigned */}} + {{if .Repository.IsArchived}} +
+ {{if .Issue.IsPull}} + {{.locale.Tr "repo.archive.pull.nocomment"}} + {{else}} + {{.locale.Tr "repo.archive.issue.nocomment"}} + {{end}}
- {{end}} {{else}}
{{.locale.Tr "repo.issues.sign_in_require_desc" (.SignInLink|Escape) | Safe}}
{{end}} - {{end}} - {{end}} - + {{end}}{{/* end if: .IsSigned */}} +
{{template "repo/issue/view_content/sidebar" .}} From 76a1edf74f5f7fdf733b46fde12df644295e9fe8 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Wed, 22 Mar 2023 05:04:17 +0800 Subject: [PATCH 06/10] Decouple the issue-template code from comment_tab.tmpl (#23556) It would help #23290 The issue-template code is only useful for "new issue" or "new PR", so it could only be put in the `new_form.tmpl` --- templates/repo/issue/comment_tab.tmpl | 17 ----------------- templates/repo/issue/new_form.tmpl | 24 +++++++++++++++++++++++- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/templates/repo/issue/comment_tab.tmpl b/templates/repo/issue/comment_tab.tmpl index b04a3c6bbbb4..b8e8d2d9aa40 100644 --- a/templates/repo/issue/comment_tab.tmpl +++ b/templates/repo/issue/comment_tab.tmpl @@ -1,19 +1,3 @@ -{{if .Fields}} - - {{range .Fields}} - {{if eq .Type "input"}} - {{template "repo/issue/fields/input" Dict "Context" $.Context "item" .}} - {{else if eq .Type "markdown"}} - {{template "repo/issue/fields/markdown" Dict "Context" $.Context "item" .}} - {{else if eq .Type "textarea"}} - {{template "repo/issue/fields/textarea" Dict "Context" $.Context "item" .}} - {{else if eq .Type "dropdown"}} - {{template "repo/issue/fields/dropdown" Dict "Context" $.Context "item" .}} - {{else if eq .Type "checkboxes"}} - {{template "repo/issue/fields/checkboxes" Dict "Context" $.Context "item" .}} - {{end}} - {{end}} -{{else}}
-{{end}} {{if .IsAttachmentEnabled}}
{{template "repo/upload" .}} diff --git a/templates/repo/issue/new_form.tmpl b/templates/repo/issue/new_form.tmpl index 4945203ca533..f6ef8e6754d9 100644 --- a/templates/repo/issue/new_form.tmpl +++ b/templates/repo/issue/new_form.tmpl @@ -16,7 +16,29 @@
{{.locale.Tr "repo.pulls.title_wip_desc" (index .PullRequestWorkInProgressPrefixes 0| Escape) | Safe}}
{{end}}
- {{template "repo/issue/comment_tab" .}} + {{if .Fields}} + + {{range .Fields}} + {{if eq .Type "input"}} + {{template "repo/issue/fields/input" Dict "Context" $.Context "item" .}} + {{else if eq .Type "markdown"}} + {{template "repo/issue/fields/markdown" Dict "Context" $.Context "item" .}} + {{else if eq .Type "textarea"}} + {{template "repo/issue/fields/textarea" Dict "Context" $.Context "item" .}} + {{else if eq .Type "dropdown"}} + {{template "repo/issue/fields/dropdown" Dict "Context" $.Context "item" .}} + {{else if eq .Type "checkboxes"}} + {{template "repo/issue/fields/checkboxes" Dict "Context" $.Context "item" .}} + {{end}} + {{end}} + {{if .IsAttachmentEnabled}} +
+ {{template "repo/upload" .}} +
+ {{end}} + {{else}} + {{template "repo/issue/comment_tab" .}} + {{end}}