From b340832c7fba1673ffaa38f504aca0e3aa3e2af8 Mon Sep 17 00:00:00 2001 From: Awiteb Date: Fri, 1 Mar 2024 23:55:08 +0300 Subject: [PATCH] First commit Initialize the configurations --- LICENSE | 21 + README.md | 45 ++ docker-compose.yml | 67 +++ forgejo-runner/config.yml | 80 +++ forgejo/forgejo/conf/app.ini | 177 ++++++ .../public/assets/css/theme-github.css | 556 ++++++++++++++++++ 6 files changed, 946 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 forgejo-runner/config.yml create mode 100644 forgejo/forgejo/conf/app.ini create mode 100644 forgejo/forgejo/public/assets/css/theme-github.css diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9d67435 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2024, Awiteb + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..6842b14 --- /dev/null +++ b/README.md @@ -0,0 +1,45 @@ +# Awiteb's forgejo personal instance + +This is my personal instance of forgejo. the place where I hack. + +## What is forgejo? +See https://forgejo.org + +## What is this configurations aims to do? +Is just a personal instance, means that you are only one have rights to do anything. +Others are only contributors means that they can only fork your repository and make pull requests and create issues, +they can't create repositories. + +## Imortant notes +After you create your account, you need to change your account visibility to public, by going to your profile and then click on the settings and then change the visibility to public, then change the [app.ini](/forgejo/forgejo/conf/app.ini) and remove the `public` visibility from the `ALLOWED_USER_VISIBILITY_MODES`. This will make you the only visible user in the instance. + +## Secrets +Forgejo will add the secrets to the [app.ini](/forgejo/forgejo/conf/app.ini) file, so make sure to not remove the [app.ini](/forgejo/forgejo/conf/app.ini) file from the repository, and do not share it with anyone. + +## How to use this configuration? +Just clone this repository, then read the [app.ini](/forgejo/forgejo/conf/app.ini) file and changes the values to your needs, then run the following command: +```bash +sed -i -e "s/{SHARED_SECRET}/$(openssl rand -hex 20)/" docker-compose.yml +docker-compose up -d +``` +The instance will be available at `http://0.0.0.0:8080` so proxy it to your domain. + +## Upgrading +When you want to upgrade the forgejo version, change the version in the [docker-compose.yml](/docker-compose.yml) file and then remove the containers +by running `docker-compose rm -s -f` and then run `docker-compose up -d` again. + +## Restaring +When you want to restart the forgejo, do not run `docker-compose restart` I see that makes some changes to the configuration, so it's better to remove the containers by running `docker-compose rm -s -f` and then run `docker-compose up -d` again. + +## Database +Is using sqlite3, and is more than enough for personal use. + +## Backup +The data is stored in the [forgejo](/forgejo) directory and [forgejo-runner](/forgejo-runner) directory, so you can backup them. +The containers are stateless, so it's do not store any data. + +## How to contribute? +Make issue first to discuss the changes, then make pull request (if the issue is accepted) + +## License +The configuration is licensed under the MIT License. See [LICENSE](/LICENSE) file for more information. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a5034b3 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,67 @@ +# Copyright 2023 The Forgejo Authors. +# SPDX-License-Identifier: MIT + +version: "3" + +services: + docker-in-docker: + image: docker:dind + container_name: runner-docker + privileged: true + command: [ "dockerd", "-H", "tcp://0.0.0.0:2375", "--tls=false" ] + + forgejo: + image: codeberg.org/forgejo/forgejo:1.21 + container_name: forgejo + command: >- + bash -c ' + /bin/s6-svscan /etc/s6 & + sleep 10 ; + su -c "forgejo forgejo-cli actions register --secret {SHARED_SECRET} --labels debian:lxc://debian:bullseye --version 3.3.0" git ; + sleep infinity + ' + environment: + - USER_UID=1000 + - USER_GID=1000 + - FORGEJO_WORK_DIR=/data/forgejo + - FORGEJO_CUSTOM=/data/forgejo + volumes: + - ./forgejo:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - 8080:3000 + + runner-register: + image: code.forgejo.org/forgejo/runner:3.3.0 + container_name: runner-register + links: + - docker-in-docker + - forgejo + environment: + DOCKER_HOST: tcp://docker-in-docker:2375 + volumes: + - ./forgejo-runner:/data + command: >- + bash -ec ' + while : ; do + forgejo-runner create-runner-file --connect --instance http://forgejo:3000 --name runner --secret {SHARED_SECRET} && break ; + sleep 1 ; + done ; + chown -R 1000:1000 /data + ' + + runner-daemon: + image: code.forgejo.org/forgejo/runner:3.3.0 + container_name: runner-daemon + links: + - docker-in-docker + - forgejo + environment: + DOCKER_HOST: tcp://docker-in-docker:2375 + depends_on: + runner-register: + condition: service_completed_successfully + volumes: + - ./forgejo-runner:/data + command: "forgejo-runner --config config.yml daemon" diff --git a/forgejo-runner/config.yml b/forgejo-runner/config.yml new file mode 100644 index 0000000..9d75870 --- /dev/null +++ b/forgejo-runner/config.yml @@ -0,0 +1,80 @@ +log: + # The level of logging, can be trace, debug, info, warn, error, fatal + level: info + +runner: + # Where to store the registration result. + file: .runner + # Execute how many tasks concurrently at the same time. + capacity: 3 + # The timeout for a job to be finished. + # Please note that the Forgejo instance also has a timeout (3h by default) for the job. + # So the job could be stopped by the Forgejo instance if it's timeout is shorter than this. + timeout: 30m + # Whether skip verifying the TLS certificate of the Forgejo instance. + insecure: false + # The timeout for fetching the job from the Forgejo instance. + fetch_timeout: 15s + # The interval for fetching the job from the Forgejo instance. + fetch_interval: 10s + # The labels of a runner are used to determine which jobs the runner can run, and how to run them. + # Like: ["macos-arm64:host", "ubuntu-latest:docker://node:16-bullseye", "ubuntu-22.04:docker://node:16-bullseye"] + # If it's empty when registering, it will ask for inputting labels. + # If it's empty when execute `deamon`, will use labels in `.runner` file. + labels: ["debian:lxc://debian:bullseye"] + +cache: + # Enable cache server to use actions/cache. + enabled: true + # The directory to store the cache data. + # If it's empty, the cache data will be stored in $HOME/.cache/actcache. + dir: "" + # The host of the cache server. + # It's not for the address to listen, but the address to connect from job containers. + # So 0.0.0.0 is a bad choice, leave it empty to detect automatically. + host: "" + # The port of the cache server. + # 0 means to use a random available port. + port: 0 + # The external cache server URL. Valid only when enable is true. + # If it's specified, act_runner will use this URL as the ACTIONS_CACHE_URL rather than start a server by itself. + # The URL should generally end with "/". + external_server: "" + +container: + # Specifies the network to which the container will connect. + # Could be host, bridge or the name of a custom network. + # If it's empty, create a network automatically. + network: host + # Whether to create networks with IPv6 enabled. Requires the Docker daemon to be set up accordingly. + # Only takes effect if "network" is set to "". + enable_ipv6: false + # Whether to use privileged mode or not when launching task containers (privileged mode is required for Docker-in-Docker). + privileged: false + # And other options to be used when the container is started (eg, --add-host=my.forgejo.url:host-gateway). + options: + # The parent directory of a job's working directory. + # If it's empty, /workspace will be used. + workdir_parent: + # Volumes (including bind mounts) can be mounted to containers. Glob syntax is supported, see https://github.com/gobwas/glob + # You can specify multiple volumes. If the sequence is empty, no volumes can be mounted. + # For example, if you only allow containers to mount the `data` volume and all the json files in `/src`, you should change the config to: + # valid_volumes: + # - data + # - /src/*.json + # If you want to allow any volume, please use the following configuration: + # valid_volumes: + # - '**' + valid_volumes: [] + # overrides the docker client host with the specified one. + # If it's empty, act_runner will find an available docker host automatically. + # If it's "-", act_runner will find an available docker host automatically, but the docker host won't be mounted to the job containers and service containers. + # If it's not empty or "-", the specified docker host will be used. An error will be returned if it doesn't work. + docker_host: "" + # Pull docker image(s) even if already present + force_pull: false + +host: + # The parent directory of a job's working directory. + # If it's empty, $HOME/.cache/act/ will be used. + workdir_parent: diff --git a/forgejo/forgejo/conf/app.ini b/forgejo/forgejo/conf/app.ini new file mode 100644 index 0000000..5c5c2df --- /dev/null +++ b/forgejo/forgejo/conf/app.ini @@ -0,0 +1,177 @@ +; My personal forgejo instance configuration, you can use this as a template for your own forgejo instance. +; This configuration aims to be personal git hosting instance, and only allows new registers user to fork +; repositories and create issues and pull requests. It also has a few other settings that I like to have. +; Also make sure to create `.profile` repoo in your account, and add a `README.md` file, becuase your account will be the landing page +; of your forgejo instance, this will make your forgejo instance look better and more personal. +; +; You need to change every value that has `CHANGE_ME` comment to your own value. +; +; Forgejo version: 1.21 +; License : MIT +; +; Copyright (c) 2024 Awiteb + +; CHANGE_ME +APP_NAME = Awiteb's Forgejo Instance +RUN_MODE = prod +RUN_USER = git +WORK_PATH = /data/forgejo + +[ui] +DEFAULT_THEME = github +THEMES = github,forgejo-auto,forgejo-light,forgejo-dark,arc-green +CUSTOM_EMOJIS = forgejo,codeberg,git +ONLY_SHOW_RELEVANT_REPOS = true + +[ui.meta] +; CHANGE_ME +AUTHOR = Awiteb +; CHANGE_ME +DESCRIPTION = My personal forgejo instance. Where I hack on things. + +[repository] +ROOT = /data/git/repositories +DISABLED_REPO_UNITS = repo.wiki,repo.ext_wiki,repo.packages +DEFAULT_REPO_UNITS = repo.code,repo.releases,repo.actions,repo.issues,repo.pulls +DISABLE_STARS = true +DEFAULT_BRANCH = master +; This will make the users unable to create new repositories +MAX_CREATION_LIMIT = 0 +; but they can still fork repositories and create issues and pull requests +ALLOW_FORK_WITHOUT_MAXIMUM_LIMIT = true +PREFERRED_LICENSES = MIT,GPL-3.0-only,GPL-3.0-or-later,AGPL-3.0-only,AGPL-3.0-or-later + +[repository.pull-request] +DEFAULT_MERGE_STYLE = squash +DEFAULT_MERGE_MESSAGE_COMMITS_LIMIT = -1 +DEFAULT_MERGE_MESSAGE_SIZE = -1 +DEFAULT_MERGE_MESSAGE_ALL_AUTHORS = true +DEFAULT_MERGE_MESSAGE_OFFICIAL_APPROVERS_ONLY = false +POPULATE_SQUASH_COMMENT_WITH_COMMIT_MESSAGES = true +TEST_CONFLICTING_PATCHES_WITH_GIT_APPLY = true + +[repository.issue] +MAX_PINNED = 5 + +[repository.upload] +ENABLED = false + +; TEMP_PATH = /data/forgejo/uploads +[repository.signing] +DEFAULT_TRUST_MODEL = committer + +[repository.local] +LOCAL_COPY_PATH = /data/forgejo/tmp/local-repo + +[server] +APP_DATA_PATH = /data/forgejo +PROTOCOL = http +DOMAIN = 0.0.0.0 +HTTP_PORT = 3000 +; CHANGE_ME (Your full instance URL) +ROOT_URL = https://example.com/ +DISABLE_SSH = true +OFFLINE_MODE = false +; CHANGE_ME (Your username) +LANDING_PAGE = /awiteb + +; Sqlite3 is enough for personal use +[database] +PATH = /data/forgejo/forgejo.db +DB_TYPE = sqlite3 +HOST = localhost:3306 +NAME = forgejo +USER = root +PASSWD = +LOG_SQL = false +SCHEMA = +SSL_MODE = disable + +[indexer] +ISSUE_INDEXER_PATH = /data/forgejo/indexers/issues.bleve +REPO_INDEXER_ENABLED = true +REPO_INDEXER_REPO_TYPES = sources + +[session] +PROVIDER_CONFIG = /data/forgejo/sessions +PROVIDER = file + +[picture] +ENABLE_FEDERATED_AVATAR = true + +[cache] +ADAPTER = memory +ITEM_TTL = 5h + +[cache.last_commit] +ENABLED = false + +[attachment] +PATH = /data/forgejo/attachments +ALLOWED_TYPES = .patch,.png,.jpg,.jpeg,.gif,.webp,.svg,mp4,.mov,webm,.zip,.gz,.tgz + +[log] +MODE = console +LEVEL = debug +ROOT_PATH = /data/forgejo/log + +[admin] +DISABLE_REGULAR_ORG_CREATION = true + +[security] +INSTALL_LOCK = true +COOKIE_USERNAME = forgejo_user +COOKIE_REMEMBER_NAME = forgejo_incredible +REVERSE_PROXY_LIMIT = 1 +REVERSE_PROXY_TRUSTED_PROXIES = * +PASSWORD_HASH_ALGO = pbkdf2_hi + +[mailer] +ENABLED = false + +[openid] +ENABLE_OPENID_SIGNIN = true +ENABLE_OPENID_SIGNUP = true + +[cron] +ENABLED = false + +[packages] +ENABLED = false + +[api] +ENABLE_SWAGGER = false + +[other] +SHOW_FOOTER_VERSION = false +SHOW_FOOTER_TEMPLATE_LOAD_TIME = false +ENABLE_SITEMAP = false + +[service.explore] +DISABLE_USERS_PAGE = true + +[service] +;; Registration configuration +DISABLE_REGISTRATION = false +REQUIRE_SIGNIN_VIEW = false +REGISTER_EMAIL_CONFIRM = false +ENABLE_NOTIFY_MAIL = false +ALLOW_ONLY_EXTERNAL_REGISTRATION = false +EMAIL_DOMAIN_BLOCKLIST = gmail.com,yahoo.com,icloud.com,hotmail.com +;; Captcha configuration +ENABLE_CAPTCHA = true +REQUIRE_CAPTCHA_FOR_LOGIN = true +REQUIRE_EXTERNAL_REGISTRATION_CAPTCHA = true +;; Repository/Organization configuration +AUTO_WATCH_NEW_REPOS = false +DEFAULT_ALLOW_CREATE_ORGANIZATION = false +DEFAULT_ORG_MEMBER_VISIBLE = true +;; Profile configuration +DEFAULT_KEEP_EMAIL_PRIVATE = false +DEFAULT_USER_VISIBILITY = private +; CHANGE_ME (after you have created your account, you can remove `public` from the list) +; Before you remove `public` from the list, make sure you change your account visibility to `public` +ALLOWED_USER_VISIBILITY_MODES = private,public +DEFAULT_ENABLE_TIMETRACKING = true +USER_LOCATION_MAP_URL = https://www.openstreetmap.org/ +NO_REPLY_ADDRESS = noreply.localhost diff --git a/forgejo/forgejo/public/assets/css/theme-github.css b/forgejo/forgejo/public/assets/css/theme-github.css new file mode 100644 index 0000000..f595761 --- /dev/null +++ b/forgejo/forgejo/public/assets/css/theme-github.css @@ -0,0 +1,556 @@ +/* + This file is written by Rainnny, the original file + location is https://git.rainnny.club/Rainnny/gitea-github-theme/src/branch/master/theme-github.css +*/ +/* Made by Rainnny <3 */ + +.chroma { + background-color: var(--color-code-bg); +} +.chroma .lntd { + vertical-align: top; + border: 0; + margin: 0; + padding: 0; +} +.chroma .lntable { + border-spacing: 0; + border: 0; + width: auto; + margin: 0; + padding: 0; + display: block; + overflow: auto; +} +.chroma .hl { + width: 100%; + display: block; +} +.chroma .lnt, +.chroma .ln { + margin-right: 0.4em; + padding: 0 0.4em; +} +.chroma .gs { + font-weight: var(--font-weight-semibold); +} +.chroma .gl { + text-decoration: underline; +} +.chroma .bp { + color: #fabd2f; +} +.chroma .c, +.chroma .c1, +.chroma .ch, +.chroma .cm { + color: #777e94; +} +.chroma .cp { + color: #8ec07c; +} +.chroma .cpf { + color: #79c0ff; +} +.chroma .cs { + color: #9075cd; +} +.chroma .dl { + color: #79c0ff; +} +.chroma .gd { + color: #fff; + background-color: #5f3737; +} +.chroma .ge { + color: #ddee30; +} +.chroma .gh { + color: #ffaa10; +} +.chroma .gi { + color: #fff; + background-color: #3a523a; +} +.chroma .go { + color: #777e94; +} +.chroma .gp { + color: #ebdbb2; +} +.chroma .gr { + color: #f43; +} +.chroma .gs { + color: #ebdbb2; +} +.chroma .gt { + color: #7ee787; +} +.chroma .gu { + color: #a5d6ff; +} +.chroma .il { + color: #79c0ff; +} +.chroma .k { + color: #ff7b72; +} +.chroma .kc { + color: #79c0ff; +} +.chroma .kd { + color: #ff7b72; +} +.chroma .kn { + color: #ff7b72; +} +.chroma .kp { + color: #5f8700; +} +.chroma .kr { + color: #7ee787; +} +.chroma .kt { + color: #ff7b72; +} +.chroma .m, +.chroma .mb, +.chroma .mf, +.chroma .mh, +.chroma .mi, +.chroma .mo { + color: #79c0ff; +} +.chroma .n { + color: #c9d1d9; +} +.chroma .na { + color: #d2a8ff; +} +.chroma .nb { + color: #a5d6ff; +} +.chroma .nc { + color: #e6edf3; +} +.chroma .nd { + color: #79c0ff; +} +.chroma .ne { + color: #7ee787; +} +.chroma .nf, +.chroma .ni { + color: #d2a8ff; +} +.chroma .nl { + color: #7ee787; +} +.chroma .nn { + color: #e6edf3; +} +.chroma .no { + color: #79c0ff; +} +.chroma .nt { + color: #7ee787; +} +.chroma .nv { + color: #ebdbb2; +} +.chroma .nx { + color: #b6bac5; +} +.chroma .o { + color: #7ee787; +} +.chroma .ow { + color: #5f8700; +} +.chroma .p { + color: #d2d4db; +} +.chroma .s, +.chroma .s1, +.chroma .s2 { + color: #a5d6ff; +} +.chroma .sa { + color: #79c0ff; +} +.chroma .sb { + color: #a5d6ff; +} +.chroma .sc { + color: #79c0ff; +} +.chroma .sd { + color: #777e94; +} +.chroma .se { + color: #7ee787; +} +.chroma .sh { + color: #79c0ff; +} +.chroma .si { + color: #ffaa10; +} +.chroma .sr { + color: #9075cd; +} +.chroma .ss { + color: #7ee787; +} +.chroma .sx { + color: #ffaa10; +} +.chroma .vc { + color: #7ee787; +} +.chroma .vg, +.chroma .vi { + color: #ffaa10; +} +.chroma .w { + color: #7f8699; +} +.CodeMirror.cm-s-default .cm-property, +.CodeMirror.cm-s-paper .cm-property { + color: #a0cc75; +} +.CodeMirror.cm-s-default .cm-header, +.CodeMirror.cm-s-paper .cm-header { + color: #9daccc; +} +.CodeMirror.cm-s-default .cm-quote, +.CodeMirror.cm-s-paper .cm-quote { + color: #090; +} +.CodeMirror.cm-s-default .cm-keyword, +.CodeMirror.cm-s-paper .cm-keyword { + color: #cc8a61; +} +.CodeMirror.cm-s-default .cm-atom, +.CodeMirror.cm-s-paper .cm-atom { + color: #ef5e77; +} +.CodeMirror.cm-s-default .cm-number, +.CodeMirror.cm-s-paper .cm-number { + color: #ff5656; +} +.CodeMirror.cm-s-default .cm-def, +.CodeMirror.cm-s-paper .cm-def { + color: #e4e4e4; +} +.CodeMirror.cm-s-default .cm-variable-2, +.CodeMirror.cm-s-paper .cm-variable-2 { + color: #00bdbf; +} +.CodeMirror.cm-s-default .cm-variable-3, +.CodeMirror.cm-s-paper .cm-variable-3 { + color: #085; +} +.CodeMirror.cm-s-default .cm-comment, +.CodeMirror.cm-s-paper .cm-comment { + color: #8e9ab3; +} +.CodeMirror.cm-s-default .cm-string, +.CodeMirror.cm-s-paper .cm-string { + color: #a77272; +} +.CodeMirror.cm-s-default .cm-string-2, +.CodeMirror.cm-s-paper .cm-string-2 { + color: #f50; +} +.CodeMirror.cm-s-default .cm-meta, +.CodeMirror.cm-s-paper .cm-meta, +.CodeMirror.cm-s-default .cm-qualifier, +.CodeMirror.cm-s-paper .cm-qualifier { + color: #ffb176; +} +.CodeMirror.cm-s-default .cm-builtin, +.CodeMirror.cm-s-paper .cm-builtin { + color: #b7c951; +} +.CodeMirror.cm-s-default .cm-bracket, +.CodeMirror.cm-s-paper .cm-bracket { + color: #997; +} +.CodeMirror.cm-s-default .cm-tag, +.CodeMirror.cm-s-paper .cm-tag { + color: #f1d273; +} +.CodeMirror.cm-s-default .cm-attribute, +.CodeMirror.cm-s-paper .cm-attribute { + color: #bfcc70; +} +.CodeMirror.cm-s-default .cm-hr, +.CodeMirror.cm-s-paper .cm-hr { + color: #999; +} +.CodeMirror.cm-s-default .cm-url, +.CodeMirror.cm-s-paper .cm-url { + color: #c5cfd0; +} +.CodeMirror.cm-s-default .cm-link, +.CodeMirror.cm-s-paper .cm-link { + color: #d8c792; +} +.CodeMirror.cm-s-default .cm-error, +.CodeMirror.cm-s-paper .cm-error { + color: #dbdbeb; +} +:root { + --is-dark-theme: true; + --color-primary: #4b80ca; + --color-primary-contrast: #fff; + --color-primary-dark-1: #739cb3; + --color-primary-dark-2: #40aaff; + --color-primary-dark-3: #92b4c4; + --color-primary-dark-4: #a1bbcd; + --color-primary-dark-5: #cfddc1; + --color-primary-dark-6: #e7eee0; + --color-primary-dark-7: #f8faf6; + --color-primary-light-1: #4b80ca; + --color-primary-light-2: #437aad; + --color-primary-light-3: #415b8b; + --color-primary-light-4: #25425a; + --color-primary-light-5: #223546; + --color-primary-light-6: #131923; + --color-primary-light-7: #06090b; + --color-primary-alpha-10: #3683c019; + --color-primary-alpha-20: #3683c033; + --color-primary-alpha-30: #3683c04b; + --color-primary-alpha-40: #3683c066; + --color-primary-alpha-50: #3683c080; + --color-primary-alpha-60: #3683c099; + --color-primary-alpha-70: #3683c0b3; + --color-primary-alpha-80: #3683c0cc; + --color-primary-alpha-90: #3683c0e1; + --color-primary-hover: var(--color-primary-light-1); + --color-primary-active: var(--color-primary-light-2); + --color-secondary: #2c2f35; + --color-secondary-dark-1: #505665; + --color-secondary-dark-2: #5b6273; + --color-secondary-dark-3: #71798e; + --color-secondary-dark-4: #7f8699; + --color-secondary-dark-5: #8c93a4; + --color-secondary-dark-6: #9aa0af; + --color-secondary-dark-7: #a8adba; + --color-secondary-dark-8: #c4c7d0; + --color-secondary-dark-9: #dfe1e6; + --color-secondary-dark-10: #edeef1; + --color-secondary-dark-11: #fbfbfc; + --color-secondary-dark-12: #eeeff2; + --color-secondary-dark-13: #fbfbfc; + --color-secondary-light-1: #373b46; + --color-secondary-light-2: #292c34; + --color-secondary-light-3: #1c1e23; + --color-secondary-light-4: #0e0f11; + --color-secondary-alpha-10: #2c2f35; + --color-secondary-alpha-20: #2c2f3533; + --color-secondary-alpha-30: #2c2f354b; + --color-secondary-alpha-40: #2c2f3566; + --color-secondary-alpha-50: #2c2f3580; + --color-secondary-alpha-60: #2c2f3599; + --color-secondary-alpha-70: #2c2f35b3; + --color-secondary-alpha-80: #2c2f35cc; + --color-secondary-alpha-90: #2c2f35e1; + --color-red: #da3737; + --color-orange: #f17a2b; + --color-yellow: #f3c640; + --color-olive: #c8df36; + --color-green: #3bc75b; + --color-teal: #69d4cf; + --color-blue: #4b80ca; + --color-violet: #754ad3; + --color-purple: #b65dd4; + --color-pink: #e04b9f; + --color-brown: #a86d45; + --color-black: #141516; + --color-grey: #797c85; + --color-gold: #d4b74c; + --color-white: #ffffff; + --color-red-light: #d15a5a; + --color-orange-light: #f6a066; + --color-yellow-light: #eaaf03; + --color-olive-light: #abc016; + --color-green-light: #93b373; + --color-teal-light: #00b6ad; + --color-blue-light: #4e96cc; + --color-violet-light: #9b79e4; + --color-purple-light: #ba6ad5; + --color-pink-light: #d74397; + --color-brown-light: #b08061; + --color-black-light: #3f4555; + --color-red-dark-1: #c23636; + --color-orange-dark-1: #f38236; + --color-yellow-dark-1: #b88a03; + --color-olive-dark-1: #839311; + --color-green-dark-1: #7a9e55; + --color-teal-dark-1: #00837c; + --color-blue-dark-1: #347cb3; + --color-violet-dark-1: #7b4edb; + --color-purple-dark-1: #a742c9; + --color-pink-dark-1: #be297d; + --color-brown-dark-1: #94674a; + --color-black-dark-1: #292d38; + --color-red-dark-2: #ad3030; + --color-orange-dark-2: #f16e17; + --color-yellow-dark-2: #a37a02; + --color-olive-dark-2: #74820f; + --color-green-dark-2: #6c8c4c; + --color-teal-dark-2: #00746e; + --color-blue-dark-2: #2e6e9f; + --color-violet-dark-2: #6733d6; + --color-purple-dark-2: #9834b9; + --color-pink-dark-2: #a9246f; + --color-brown-dark-2: #835b42; + --color-black-dark-2: #252832; + --color-console-bg: #11171f; + --color-ansi-black: var(--color-black); + --color-ansi-red: var(--color-red); + --color-ansi-green: var(--color-green); + --color-ansi-yellow: var(--color-yellow); + --color-ansi-blue: var(--color-blue); + --color-ansi-magenta: var(--color-pink); + --color-ansi-cyan: var(--color-teal); + --color-ansi-white: var(--color-console-fg-subtle); + --color-ansi-bright-black: var(--color-black-light); + --color-ansi-bright-red: var(--color-red-light); + --color-ansi-bright-green: var(--color-green-light); + --color-ansi-bright-yellow: var(--color-yellow-light); + --color-ansi-bright-blue: var(--color-blue-light); + --color-ansi-bright-magenta: var(--color-pink-light); + --color-ansi-bright-cyan: var(--color-teal-light); + --color-ansi-bright-white: var(--color-console-fg); + --color-grey: #505665; + --color-grey-light: #a1a6b7; + --color-gold: #b1983b; + --color-white: #fff; + --color-diff-removed-word-bg: #6f3333; + --color-diff-added-word-bg: #3c653c; + --color-diff-removed-row-bg: #3c2626; + --color-diff-moved-row-bg: #818044; + --color-diff-added-row-bg: #283e2d; + --color-diff-removed-row-border: #634343; + --color-diff-moved-row-border: #bcca6f; + --color-diff-added-row-border: #314a37; + --color-diff-inactive: #353846; + --color-error-border: #a04141; + --color-error-bg: #522; + --color-error-bg-active: #744; + --color-error-bg-hover: #633; + --color-error-text: #f9cbcb; + --color-success-border: #458a57; + --color-success-bg: #284034; + --color-success-text: #6cc664; + --color-warning-border: #bb9d00; + --color-warning-bg: #3a3a30; + --color-warning-text: #fbbd08; + --color-info-border: #306090; + --color-info-bg: #26354c; + --color-info-text: #38a8e8; + --color-red-badge: #db2828; + --color-red-badge-bg: #db28281a; + --color-red-badge-hover-bg: #db28284d; + --color-green-badge: #21ba45; + --color-green-badge-bg: #21ba451a; + --color-green-badge-hover-bg: #21ba454d; + --color-yellow-badge: #fbbd08; + --color-yellow-badge-bg: #fbbd081a; + --color-yellow-badge-hover-bg: #fbbd084d; + --color-orange-badge: #f2711c; + --color-orange-badge-bg: #f2711c1a; + --color-orange-badge-hover-bg: #f2711c4d; + --color-git: #f05133; + --color-body: #0d1117; + --color-box-header: #161b22; + --color-box-body: #11171f; + --color-box-body-highlight: #262b36; + --color-text-dark: #dbe0ea; + --color-text: #bbc0ca; + --color-text-light: #a6aab5; + --color-text-light-1: rgb(125, 133, 144); + --color-text-light-2: #8a8e99; + --color-text-light-3: #707687; + --color-footer: #010409; + --color-timeline: #4c525e; + --color-input-text: #d5dbe6; + --color-input-background: #2c2f35; + --color-input-toggle-background: #454a57; + --color-input-border: #2c2f35; + --color-input-border-hover: #505667; + --color-header-wrapper: #0d1117; + --color-header-wrapper-transparent: #20243000; + --color-light: #00000028; + --color-light-mimic-enabled: rgba( + 0, + 0, + 0, + calc(40 / 255 * 222 / 255 / var(--opacity-disabled)) + ); + --color-light-border: #ffffff28; + --color-hover: #ffffff19; + --color-active: #ffffff24; + --color-menu: #0d1117; + --color-card: #0d1117; + --color-markup-table-row: #ffffff06; + --color-markup-code-block: #ffffff16; + --color-button: #1e252e; + --color-code-bg: #0d1117; + --color-code-sidebar-bg: #232834; + --color-shadow: #00000060; + --color-secondary-bg: #2c2f35; + --color-text-focus: #fff; + --color-expand-button: #3c404d; + --color-placeholder-text: #8a8e99; + --color-editor-line-highlight: var(--color-primary-light-5); + --color-project-board-bg: var(--color-secondary-light-2); + --color-caret: var(--color-text); + --color-reaction-bg: #ffffff12; + --color-reaction-hover-bg: var(--color-primary-light-4); + --color-reaction-active-bg: var(--color-primary-light-5); + --color-tooltip-text: #fff; + --color-tooltip-bg: #000000f0; + --color-nav-bg: #010409; + --color-nav-hover-bg: #383c47; + --color-label-text: #dfe3ec; + --color-label-bg: #7c84974b; + --color-label-hover-bg: #7c8497a0; + --color-label-active-bg: #7c8497; + --color-accent: var(--color-primary-light-1); + --color-small-accent: var(--color-primary-light-5); + --color-active-line: #534d1b; + accent-color: var(--color-accent); + color-scheme: dark; +} +.emoji[aria-label="check\ mark"], +.emoji[aria-label="currency\ exchange"], +.emoji[aria-label="TOP\ arrow"], +.emoji[aria-label="END\ arrow"], +.emoji[aria-label="ON! arrow"], +.emoji[aria-label="SOON\ arrow"], +.emoji[aria-label="heavy dollar sign"], +.emoji[aria-label="copyright"], +.emoji[aria-label="registered"], +.emoji[aria-label="trade\ mark"], +.emoji[aria-label="multiply"], +.emoji[aria-label="plus"], +.emoji[aria-label="minus"], +.emoji[aria-label="divide"], +.emoji[aria-label="curly\ loop"], +.emoji[aria-label="double curly loop"], +.emoji[aria-label="wavy\ dash"], +.emoji[aria-label="paw\ prints"], +.emoji[aria-label="musical\ note"], +.emoji[aria-label="musical\ notes"] { + filter: invert() hue-rotate(180deg); +} + +.repository.file.list #repo-files-table tbody .svg.octicon-file-directory-fill, +.repository.file.list #repo-files-table tbody .svg.octicon-file-submodule { + color: #7d8590; +}