diff --git a/.buildpacks b/.buildpacks deleted file mode 100644 index 3450683c..00000000 --- a/.buildpacks +++ /dev/null @@ -1,4 +0,0 @@ -https://github.com/heroku/heroku-buildpack-apt -https://github.com/Scalingo/ffmpeg-buildpack -https://github.com/Scalingo/nodejs-buildpack -https://github.com/Scalingo/ruby-buildpack diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index d332ec13..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,217 +0,0 @@ -version: 2 - -aliases: - - &defaults - docker: - - image: circleci/ruby:2.6.0-stretch-node - environment: &ruby_environment - BUNDLE_APP_CONFIG: ./.bundle/ - DB_HOST: localhost - DB_USER: root - RAILS_ENV: test - PARALLEL_TEST_PROCESSORS: 4 - ALLOW_NOPAM: true - CONTINUOUS_INTEGRATION: true - DISABLE_SIMPLECOV: true - PAM_ENABLED: true - PAM_DEFAULT_SERVICE: pam_test - PAM_CONTROLLED_SERVICE: pam_test_controlled - working_directory: ~/projects/gab-social/ - - - &attach_workspace - attach_workspace: - at: ~/projects/ - - - &persist_to_workspace - persist_to_workspace: - root: ~/projects/ - paths: - - ./gab-social/ - - - &restore_ruby_dependencies - restore_cache: - keys: - - v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }} - - v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}- - - v2-ruby-dependencies- - - - &install_steps - steps: - - checkout - - *attach_workspace - - - restore_cache: - keys: - - v1-node-dependencies-{{ checksum "yarn.lock" }} - - v1-node-dependencies- - - run: yarn install --frozen-lockfile - - save_cache: - key: v1-node-dependencies-{{ checksum "yarn.lock" }} - paths: - - ./node_modules/ - - - *persist_to_workspace - - - &install_system_dependencies - run: - name: Install system dependencies - command: | - sudo apt-get update - sudo apt-get install -y libicu-dev libidn11-dev libprotobuf-dev protobuf-compiler - - - &install_ruby_dependencies - steps: - - *attach_workspace - - - *install_system_dependencies - - - run: ruby -e 'puts RUBY_VERSION' | tee /tmp/.ruby-version - - *restore_ruby_dependencies - - run: bundle install --clean --jobs 16 --path ./vendor/bundle/ --retry 3 --with pam_authentication --without development production && bundle clean - - save_cache: - key: v2-ruby-dependencies-{{ checksum "/tmp/.ruby-version" }}-{{ checksum "Gemfile.lock" }} - paths: - - ./.bundle/ - - ./vendor/bundle/ - - persist_to_workspace: - root: ~/projects/ - paths: - - ./gab-social/.bundle/ - - ./gab-social/vendor/bundle/ - - - &test_steps - steps: - - *attach_workspace - - - *install_system_dependencies - - run: sudo apt-get install -y ffmpeg - - - run: - name: Prepare Tests - command: ./bin/rails parallel:create parallel:load_schema parallel:prepare - - run: - name: Run Tests - command: ./bin/retry bundle exec parallel_test ./spec/ --group-by filesize --type rspec - -jobs: - install: - <<: *defaults - <<: *install_steps - - install-ruby2.6: - <<: *defaults - <<: *install_ruby_dependencies - - install-ruby2.5: - <<: *defaults - docker: - - image: circleci/ruby:2.5.3-stretch-node - environment: *ruby_environment - <<: *install_ruby_dependencies - - install-ruby2.4: - <<: *defaults - docker: - - image: circleci/ruby:2.4.5-stretch-node - environment: *ruby_environment - <<: *install_ruby_dependencies - - build: - <<: *defaults - steps: - - *attach_workspace - - *install_system_dependencies - - run: ./bin/rails assets:precompile - - persist_to_workspace: - root: ~/projects/ - paths: - - ./gab-social/public/assets - - ./gab-social/public/packs-test/ - - test-ruby2.6: - <<: *defaults - docker: - - image: circleci/ruby:2.6.0-stretch-node - environment: *ruby_environment - - image: circleci/postgres:10.6-alpine - environment: - POSTGRES_USER: root - - image: circleci/redis:5.0.3-alpine3.8 - <<: *test_steps - - test-ruby2.5: - <<: *defaults - docker: - - image: circleci/ruby:2.5.3-stretch-node - environment: *ruby_environment - - image: circleci/postgres:10.6-alpine - environment: - POSTGRES_USER: root - - image: circleci/redis:4.0.12-alpine - <<: *test_steps - - test-ruby2.4: - <<: *defaults - docker: - - image: circleci/ruby:2.4.5-stretch-node - environment: *ruby_environment - - image: circleci/postgres:10.6-alpine - environment: - POSTGRES_USER: root - - image: circleci/redis:4.0.12-alpine - <<: *test_steps - - test-webui: - <<: *defaults - docker: - - image: circleci/node:8.15.0-stretch - steps: - - *attach_workspace - - run: ./bin/retry yarn test:jest # : todo : - - check-i18n: - <<: *defaults - steps: - - *attach_workspace - - run: bundle exec i18n-tasks check-normalized - - run: bundle exec i18n-tasks unused - - run: bundle exec i18n-tasks missing -t plural - - run: bundle exec i18n-tasks check-consistent-interpolations - -workflows: - version: 2 - build-and-test: - jobs: - - install - - install-ruby2.6: - requires: - - install - - install-ruby2.5: - requires: - - install - - install-ruby2.6 - - install-ruby2.4: - requires: - - install - - install-ruby2.6 - - build: - requires: - - install-ruby2.6 - - test-ruby2.6: - requires: - - install-ruby2.6 - - build - - test-ruby2.5: - requires: - - install-ruby2.5 - - build - - test-ruby2.4: - requires: - - install-ruby2.4 - - build - - test-webui: - requires: - - install - - check-i18n: - requires: - - install-ruby2.6 diff --git a/.codeclimate.yml b/.codeclimate.yml deleted file mode 100644 index a7045976..00000000 --- a/.codeclimate.yml +++ /dev/null @@ -1,38 +0,0 @@ -version: "2" -checks: - argument-count: - enabled: false - complex-logic: - enabled: false - file-lines: - enabled: false - method-complexity: - enabled: false - method-count: - enabled: false - method-lines: - enabled: false - nested-control-flow: - enabled: false - return-statements: - enabled: false - similar-code: - enabled: false - identical-code: - enabled: false -plugins: - brakeman: - enabled: true - bundler-audit: - enabled: true - eslint: - enabled: true - channel: eslint-5 - rubocop: - enabled: true - channel: rubocop-0-54 - scss-lint: - enabled: true -exclude_patterns: -- spec/ -- vendor/asset diff --git a/.dependabot/config.yml b/.dependabot/config.yml deleted file mode 100644 index b1206b02..00000000 --- a/.dependabot/config.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: 1 - -update_configs: - - package_manager: "ruby:bundler" - directory: "/" - update_schedule: "live" - - - package_manager: "javascript" - directory: "/" - update_schedule: "live" diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index bf918029..00000000 --- a/.dockerignore +++ /dev/null @@ -1,15 +0,0 @@ -.bundle -.env -.env.* -public/system -public/assets -public/packs -node_modules -neo4j -vendor/bundle -.DS_Store -*.swp -*~ -postgres -redis -elasticsearch diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 5f8702cf..00000000 --- a/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -# EditorConfig is awesome: http://EditorConfig.org - -# top-most EditorConfig file -root = true - -# Unix-style newlines with a newline ending every file -[*] -end_of_line = lf -insert_final_newline = true -charset = utf-8 -indent_style = space -indent_size = 2 diff --git a/.env.nanobox b/.env.nanobox deleted file mode 100644 index 73d266db..00000000 --- a/.env.nanobox +++ /dev/null @@ -1,230 +0,0 @@ -# Service dependencies -# You may set REDIS_URL instead for more advanced options -REDIS_HOST=$DATA_REDIS_HOST -REDIS_PORT=6379 -# REDIS_DB=0 - -# You may set DATABASE_URL instead for more advanced options -DB_HOST=$DATA_DB_HOST -DB_USER=$DATA_DB_USER -DB_NAME=gonano -DB_PASS=$DATA_DB_PASS -DB_PORT=5432 - -DATABASE_URL=postgresql://$DATA_DB_USER:$DATA_DB_PASS@$DATA_DB_HOST/gonano - -# Optional ElasticSearch configuration -ES_ENABLED=true -ES_HOST=$DATA_ELASTIC_HOST -ES_PORT=9200 - -# Optimizations -LD_PRELOAD=/data/lib/libjemalloc.so - -# ImageMagick optimizations -MAGICK_TEMPORARY_PATH=/app/tmp -MAGICK_MEMORY_LIMIT=128MiB -MAGICK_MAP_LIMIT=64MiB -MAGICK_TIME_LIMIT=15 -MAGICK_AREA_LIMIT=16MP -MAGICK_WIDTH_LIMIT=8KP -MAGICK_HEIGHT_LIMIT=8KP - -# Federation -# Note: Changing LOCAL_DOMAIN at a later time will cause unwanted side effects, including breaking all existing federation. -# LOCAL_DOMAIN should *NOT* contain the protocol part of the domain e.g https://example.com. -LOCAL_DOMAIN=${APP_NAME}.nanoapp.io - -# Changing LOCAL_HTTPS in production is no longer supported. (Gab Social will always serve https:// links) - -# Use this only if you need to run Gab Social on a different domain than the one used for federation. -# You can read more about this option on https://github.com/tootsuite/documentation/blob/master/Running-GabSocial/Serving_a_different_domain.md -# DO *NOT* USE THIS UNLESS YOU KNOW *EXACTLY* WHAT YOU ARE DOING. -# WEB_DOMAIN=gabsocial.example.com - -# Use this if you want to have several aliases handler@example1.com -# handler@example2.com etc. for the same user. LOCAL_DOMAIN should not -# be added. Comma separated values -# ALTERNATE_DOMAINS=example1.com,example2.com - -# Application secrets -# Generate each with the `rake secret` task (`nanobox run bundle exec rake secret`) -SECRET_KEY_BASE=$SECRET_KEY_BASE -OTP_SECRET=$OTP_SECRET - -# VAPID keys (used for push notifications) -# You can generate the keys using the following command (first is the private key, second is the public one) -# You should only generate this once per instance. If you later decide to change it, all push subscription will -# be invalidated, requiring the users to access the website again to resubscribe. -# -# Generate with `rake gabsocial:webpush:generate_vapid_key` task (`nanobox run bundle exec rake gabsocial:webpush:generate_vapid_key`) -# -# For more information visit https://rossta.net/blog/using-the-web-push-api-with-vapid.html -VAPID_PRIVATE_KEY=$VAPID_PRIVATE_KEY -VAPID_PUBLIC_KEY=$VAPID_PUBLIC_KEY - -# Registrations -# Single user mode will disable registrations and redirect frontpage to the first profile -# SINGLE_USER_MODE=true -# Prevent registrations with following e-mail domains -# EMAIL_DOMAIN_BLACKLIST=example1.com|example2.de|etc -# Only allow registrations with the following e-mail domains -# EMAIL_DOMAIN_WHITELIST=example1.com|example2.de|etc - -# Optionally change default language -# DEFAULT_LOCALE=de - -# E-mail configuration -# Note: Mailgun and SparkPost (https://sparkpo.st/smtp) each have good free tiers -# If you want to use an SMTP server without authentication (e.g local Postfix relay) -# then set SMTP_AUTH_METHOD and SMTP_OPENSSL_VERIFY_MODE to 'none' and -# *comment* SMTP_LOGIN and SMTP_PASSWORD (leaving them blank is not enough). -SMTP_SERVER=$SMTP_SERVER -SMTP_PORT=587 -SMTP_LOGIN=$SMTP_LOGIN -SMTP_PASSWORD=$SMTP_PASSWORD -SMTP_FROM_ADDRESS=notifications@${APP_NAME}.nanoapp.io -#SMTP_DOMAIN= # defaults to LOCAL_DOMAIN -#SMTP_DELIVERY_METHOD=smtp # delivery method can also be sendmail -#SMTP_AUTH_METHOD=plain -#SMTP_CA_FILE=/etc/ssl/certs/ca-certificates.crt -#SMTP_OPENSSL_VERIFY_MODE=peer -#SMTP_ENABLE_STARTTLS_AUTO=true -#SMTP_TLS=true - -# Optional user upload path and URL (images, avatars). Default is :rails_root/public/system. If you set this variable, you are responsible for making your HTTP server (eg. nginx) serve these files. -# PAPERCLIP_ROOT_PATH=/var/lib/gabsocial/public-system -# PAPERCLIP_ROOT_URL=/system - -# Optional asset host for multi-server setups -# CDN_HOST=https://assets.example.com - -# S3 (optional) -# S3_ENABLED=true -# S3_BUCKET= -# AWS_ACCESS_KEY_ID= -# AWS_SECRET_ACCESS_KEY= -# S3_REGION= -# S3_PROTOCOL=http -# S3_HOSTNAME=192.168.1.123:9000 - -# S3 (Minio Config (optional) Please check Minio instance for details) -# S3_ENABLED=true -# S3_BUCKET= -# AWS_ACCESS_KEY_ID= -# AWS_SECRET_ACCESS_KEY= -# S3_REGION= -# S3_PROTOCOL=https -# S3_HOSTNAME= -# S3_ENDPOINT= -# S3_SIGNATURE_VERSION= - -# Swift (optional) -# SWIFT_ENABLED=true -# SWIFT_USERNAME= -# For Keystone V3, the value for SWIFT_TENANT should be the project name -# SWIFT_TENANT= -# SWIFT_PASSWORD= -# Keystone V2 and V3 URLs are supported. Use a V3 URL if possible to avoid -# issues with token rate-limiting during high load. -# SWIFT_AUTH_URL= -# SWIFT_CONTAINER= -# SWIFT_OBJECT_URL= -# SWIFT_REGION= -# Defaults to 'default' -# SWIFT_DOMAIN_NAME= -# Defaults to 60 seconds. Set to 0 to disable -# SWIFT_CACHE_TTL= - -# Optional alias for S3 (e.g. to serve files on a custom domain, possibly using Cloudfront or Cloudflare) -# S3_ALIAS_HOST= - -# Streaming API integration -# STREAMING_API_BASE_URL= - -# Advanced settings -# If you need to use pgBouncer, you need to disable prepared statements: -# PREPARED_STATEMENTS=false - -# Cluster number setting for streaming API server. -# If you comment out following line, cluster number will be `numOfCpuCores - 1`. -# STREAMING_CLUSTER_NUM=1 - -# Docker gabsocial user -# If you use Docker, you may want to assign UID/GID manually. -# UID=1000 -# GID=1000 - -# LDAP authentication (optional) -# LDAP_ENABLED=true -# LDAP_HOST=localhost -# LDAP_PORT=389 -# LDAP_METHOD=simple_tls -# LDAP_BASE= -# LDAP_BIND_DN= -# LDAP_PASSWORD= -# LDAP_UID=cn - -# PAM authentication (optional) -# PAM authentication uses for the email generation the "email" pam variable -# and optional as fallback PAM_DEFAULT_SUFFIX -# The pam environment variable "email" is provided by: -# https://github.com/devkral/pam_email_extractor -# PAM_ENABLED=true -# Fallback Suffix for email address generation (nil by default) -# PAM_DEFAULT_SUFFIX=pam -# Name of the pam service (pam "auth" section is evaluated) -# PAM_DEFAULT_SERVICE=rpam -# Name of the pam service used for checking if an user can register (pam "account" section is evaluated) (nil (disabled) by default) -# PAM_CONTROLLED_SERVICE=rpam - -# Global OAuth settings (optional) : -# If you have only one strategy, you may want to enable this -# OAUTH_REDIRECT_AT_SIGN_IN=true - -# Optional CAS authentication (cf. omniauth-cas) : -# CAS_ENABLED=true -# CAS_URL=https://sso.myserver.com/ -# CAS_HOST=sso.myserver.com/ -# CAS_PORT=443 -# CAS_SSL=true -# CAS_VALIDATE_URL= -# CAS_CALLBACK_URL= -# CAS_LOGOUT_URL= -# CAS_LOGIN_URL= -# CAS_UID_FIELD='user' -# CAS_CA_PATH= -# CAS_DISABLE_SSL_VERIFICATION=false -# CAS_UID_KEY='user' -# CAS_NAME_KEY='name' -# CAS_EMAIL_KEY='email' -# CAS_NICKNAME_KEY='nickname' -# CAS_FIRST_NAME_KEY='firstname' -# CAS_LAST_NAME_KEY='lastname' -# CAS_LOCATION_KEY='location' -# CAS_IMAGE_KEY='image' -# CAS_PHONE_KEY='phone' - -# Optional SAML authentication (cf. omniauth-saml) -# SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback -# SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO -# SAML_IDP_CERT= -# SAML_IDP_CERT_FINGERPRINT= -# SAML_NAME_IDENTIFIER_FORMAT= -# SAML_CERT= -# SAML_PRIVATE_KEY= -# SAML_SECURITY_WANT_ASSERTION_SIGNED=true -# SAML_SECURITY_WANT_ASSERTION_ENCRYPTED=true -# SAML_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true -# SAML_ATTRIBUTES_STATEMENTS_UID="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_EMAIL="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" -# SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.5.4.42" -# SAML_UID_ATTRIBUTE="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED= -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL= - -# Gab Captcha -GAB_CAPTCHA_SECRET_KEY= -GAB_CAPTCHA_CLIENT_KEY= \ No newline at end of file diff --git a/.env.production.sample b/.env.production.sample deleted file mode 100644 index 466c1936..00000000 --- a/.env.production.sample +++ /dev/null @@ -1,237 +0,0 @@ -# Service dependencies -# You may set REDIS_URL instead for more advanced options -# You may also set REDIS_NAMESPACE to share Redis between multiple Gab Social servers -REDIS_HOST=redis -REDIS_PORT=6379 -REDIS_POOL_SIZE=10 -# You may set DATABASE_URL instead for more advanced options -DB_HOST=db -DB_USER=postgres -DB_NAME=postgres -DB_PASS= -DB_PORT=5432 -# Optional ElasticSearch configuration -# You may also set ES_PREFIX to share the same cluster between multiple Mastodon servers (falls back to REDIS_NAMESPACE if not set) -# ES_ENABLED=true -# ES_HOST=es -# ES_PORT=9200 - -# Federation -# Note: Changing LOCAL_DOMAIN at a later time will cause unwanted side effects, including breaking all existing federation. -# LOCAL_DOMAIN should *NOT* contain the protocol part of the domain e.g https://example.com. -LOCAL_DOMAIN=example.com - -# Changing LOCAL_HTTPS in production is no longer supported. (Gab Social will always serve https:// links) - -# Use this only if you need to run Gab Social on a different domain than the one used for federation. -# DO *NOT* USE THIS UNLESS YOU KNOW *EXACTLY* WHAT YOU ARE DOING. -# WEB_DOMAIN=gabsocial.example.com - -# Use this if you want to have several aliases handler@example1.com -# handler@example2.com etc. for the same user. LOCAL_DOMAIN should not -# be added. Comma separated values -# ALTERNATE_DOMAINS=example1.com,example2.com - -# Application secrets -# Generate each with the `RAILS_ENV=production bundle exec rake secret` task (`docker-compose run --rm web rake secret` if you use docker compose) -SECRET_KEY_BASE= -OTP_SECRET= - -# VAPID keys (used for push notifications -# You can generate the keys using the following command (first is the private key, second is the public one) -# You should only generate this once per instance. If you later decide to change it, all push subscription will -# be invalidated, requiring the users to access the website again to resubscribe. -# -# Generate with `RAILS_ENV=production bundle exec rake gabsocial:webpush:generate_vapid_key` task (`docker-compose run --rm web rake gabsocial:webpush:generate_vapid_key` if you use docker compose) -# -# For more information visit https://rossta.net/blog/using-the-web-push-api-with-vapid.html -VAPID_PRIVATE_KEY= -VAPID_PUBLIC_KEY= - -# Registrations -# Single user mode will disable registrations and redirect frontpage to the first profile -# SINGLE_USER_MODE=true -# Prevent registrations with following e-mail domains -# EMAIL_DOMAIN_BLACKLIST=example1.com|example2.de|etc -# Only allow registrations with the following e-mail domains -# EMAIL_DOMAIN_WHITELIST=example1.com|example2.de|etc - -# Optionally change default language -# DEFAULT_LOCALE=de - -# E-mail configuration -# Note: Mailgun and SparkPost (https://sparkpo.st/smtp) each have good free tiers -# If you want to use an SMTP server without authentication (e.g local Postfix relay) -# then set SMTP_AUTH_METHOD and SMTP_OPENSSL_VERIFY_MODE to 'none' and -# *comment* SMTP_LOGIN and SMTP_PASSWORD (leaving them blank is not enough). -SMTP_SERVER=smtp.mailgun.org -SMTP_PORT=587 -SMTP_LOGIN= -SMTP_PASSWORD= -SMTP_FROM_ADDRESS=notifications@example.com -#SMTP_DOMAIN= # defaults to LOCAL_DOMAIN -#SMTP_DELIVERY_METHOD=smtp # delivery method can also be sendmail -#SMTP_AUTH_METHOD=plain -#SMTP_CA_FILE=/etc/ssl/certs/ca-certificates.crt -#SMTP_OPENSSL_VERIFY_MODE=peer -#SMTP_ENABLE_STARTTLS_AUTO=true -#SMTP_TLS=true - -# Optional user upload path and URL (images, avatars). Default is :rails_root/public/system. If you set this variable, you are responsible for making your HTTP server (eg. nginx) serve these files. -# PAPERCLIP_ROOT_PATH=/var/lib/gabsocial/public-system -# PAPERCLIP_ROOT_URL=/system - -# Optional asset host for multi-server setups -# The asset host must allow cross origin request from WEB_DOMAIN or LOCAL_DOMAIN -# if WEB_DOMAIN is not set. For example, the server may have the -# following header field: -# Access-Control-Allow-Origin: https://example.com/ -# CDN_HOST=https://assets.example.com - -# S3 (optional) -# The attachment host must allow cross origin request from WEB_DOMAIN or -# LOCAL_DOMAIN if WEB_DOMAIN is not set. For example, the server may have the -# following header field: -# Access-Control-Allow-Origin: https://192.168.1.123:9000/ -# S3_ENABLED=true -# S3_BUCKET= -# AWS_ACCESS_KEY_ID= -# AWS_SECRET_ACCESS_KEY= -# S3_REGION= -# S3_PROTOCOL=http -# S3_HOSTNAME=192.168.1.123:9000 - -# S3 (Minio Config (optional) Please check Minio instance for details) -# The attachment host must allow cross origin request - see the description -# above. -# S3_ENABLED=true -# S3_BUCKET= -# AWS_ACCESS_KEY_ID= -# AWS_SECRET_ACCESS_KEY= -# S3_REGION= -# S3_PROTOCOL=https -# S3_HOSTNAME= -# S3_ENDPOINT= -# S3_SIGNATURE_VERSION= - -# Swift (optional) -# The attachment host must allow cross origin request - see the description -# above. -# SWIFT_ENABLED=true -# SWIFT_USERNAME= -# For Keystone V3, the value for SWIFT_TENANT should be the project name -# SWIFT_TENANT= -# SWIFT_PASSWORD= -# Some OpenStack V3 providers require PROJECT_ID (optional) -# SWIFT_PROJECT_ID= -# Keystone V2 and V3 URLs are supported. Use a V3 URL if possible to avoid -# issues with token rate-limiting during high load. -# SWIFT_AUTH_URL= -# SWIFT_CONTAINER= -# SWIFT_OBJECT_URL= -# SWIFT_REGION= -# Defaults to 'default' -# SWIFT_DOMAIN_NAME= -# Defaults to 60 seconds. Set to 0 to disable -# SWIFT_CACHE_TTL= - -# Optional alias for S3 (e.g. to serve files on a custom domain, possibly using Cloudfront or Cloudflare) -# S3_ALIAS_HOST= - -# Streaming API integration -# STREAMING_API_BASE_URL= - -# Advanced settings -# If you need to use pgBouncer, you need to disable prepared statements: -# PREPARED_STATEMENTS=false - -# Cluster number setting for streaming API server. -# If you comment out following line, cluster number will be `numOfCpuCores - 1`. -STREAMING_CLUSTER_NUM=1 - -# Docker gabsocial user -# If you use Docker, you may want to assign UID/GID manually. -# UID=1000 -# GID=1000 - -# LDAP authentication (optional) -# LDAP_ENABLED=true -# LDAP_HOST=localhost -# LDAP_PORT=389 -# LDAP_METHOD=simple_tls -# LDAP_BASE= -# LDAP_BIND_DN= -# LDAP_PASSWORD= -# LDAP_UID=cn -# LDAP_SEARCH_FILTER="%{uid}=%{email}" - -# PAM authentication (optional) -# PAM authentication uses for the email generation the "email" pam variable -# and optional as fallback PAM_DEFAULT_SUFFIX -# The pam environment variable "email" is provided by: -# https://github.com/devkral/pam_email_extractor -# PAM_ENABLED=true -# Fallback email domain for email address generation (LOCAL_DOMAIN by default) -# PAM_EMAIL_DOMAIN=example.com -# Name of the pam service (pam "auth" section is evaluated) -# PAM_DEFAULT_SERVICE=rpam -# Name of the pam service used for checking if an user can register (pam "account" section is evaluated) (nil (disabled) by default) -# PAM_CONTROLLED_SERVICE=rpam - -# Global OAuth settings (optional) : -# If you have only one strategy, you may want to enable this -# OAUTH_REDIRECT_AT_SIGN_IN=true - -# Optional CAS authentication (cf. omniauth-cas) : -# CAS_ENABLED=true -# CAS_URL=https://sso.myserver.com/ -# CAS_HOST=sso.myserver.com/ -# CAS_PORT=443 -# CAS_SSL=true -# CAS_VALIDATE_URL= -# CAS_CALLBACK_URL= -# CAS_LOGOUT_URL= -# CAS_LOGIN_URL= -# CAS_UID_FIELD='user' -# CAS_CA_PATH= -# CAS_DISABLE_SSL_VERIFICATION=false -# CAS_UID_KEY='user' -# CAS_NAME_KEY='name' -# CAS_EMAIL_KEY='email' -# CAS_NICKNAME_KEY='nickname' -# CAS_FIRST_NAME_KEY='firstname' -# CAS_LAST_NAME_KEY='lastname' -# CAS_LOCATION_KEY='location' -# CAS_IMAGE_KEY='image' -# CAS_PHONE_KEY='phone' - -# Optional SAML authentication (cf. omniauth-saml) -# SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback -# SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO -# SAML_IDP_CERT= -# SAML_IDP_CERT_FINGERPRINT= -# SAML_NAME_IDENTIFIER_FORMAT= -# SAML_CERT= -# SAML_PRIVATE_KEY= -# SAML_SECURITY_WANT_ASSERTION_SIGNED=true -# SAML_SECURITY_WANT_ASSERTION_ENCRYPTED=true -# SAML_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true -# SAML_ATTRIBUTES_STATEMENTS_UID="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_EMAIL="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" -# SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.16.840.1.113730.3.1.241" -# SAML_ATTRIBUTES_STATEMENTS_FIRST_NAME="urn:oid:2.5.4.42" -# SAML_ATTRIBUTES_STATEMENTS_LAST_NAME="urn:oid:2.5.4.4" -# SAML_UID_ATTRIBUTE="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED= -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL= - -# Use HTTP proxy for outgoing request (optional) -# http_proxy=http://gateway.local:8118 -# Access control for hidden service. -# ALLOW_ACCESS_TO_HIDDEN_SERVICE=true - -# Gab Captcha -GAB_CAPTCHA_SECRET_KEY= -GAB_CAPTCHA_CLIENT_KEY= \ No newline at end of file diff --git a/.env.test b/.env.test deleted file mode 100644 index fa4e1d91..00000000 --- a/.env.test +++ /dev/null @@ -1,5 +0,0 @@ -# Node.js -NODE_ENV=test -# Federation -LOCAL_DOMAIN=cb6e6126.ngrok.io -LOCAL_HTTPS=true diff --git a/.env.vagrant b/.env.vagrant deleted file mode 100644 index 36fe6493..00000000 --- a/.env.vagrant +++ /dev/null @@ -1,7 +0,0 @@ -VAGRANT=true -LOCAL_DOMAIN=gabsocial.local -DB_HOST=/var/run/postgresql/ -DB_MASTER_URL=postgres:///gabsocial_development -DB_SLAVE1_URL=postgres:///gabsocial_development -DB_SLAVE2_URL=postgres:///gabsocial_development -ELASTIC_APM_ENABLED=false diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index d4930e1f..00000000 --- a/.eslintignore +++ /dev/null @@ -1,13 +0,0 @@ -/build/** -/coverage/** -/db/** -/lib/** -/log/** -/node_modules/** -/nonobox/** -/public/** -!/public/embed.js -/spec/** -/tmp/** -/vendor/** -!.eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index e5b812a1..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,209 +0,0 @@ -module.exports = { - root: true, - - env: { - browser: true, - node: true, - es6: true, - }, - - globals: { - ATTACHMENT_HOST: false, - _s: true, - PropTypes: true, - PureComponent: true, - React: { - Component: true, - }, - connect: true, - }, - - parser: 'babel-eslint', - - plugins: [ - 'react', - 'jsx-a11y', - 'import', - 'promise', - ], - - parserOptions: { - sourceType: 'module', - ecmaFeatures: { - experimentalObjectRestSpread: true, - jsx: true, - }, - ecmaVersion: 2018, - }, - - settings: { - react: { - version: 'detect', - }, - 'import/extensions': [ - '.js', - ], - 'import/ignore': [ - 'node_modules', - '\\.(css|scss|json)$', - ], - 'import/resolver': { - node: { - paths: ['app/javascript'], - }, - }, - }, - - rules: { - 'brace-style': 'warn', - 'comma-dangle': ['error', 'always-multiline'], - 'comma-spacing': [ - 'warn', - { - before: false, - after: true, - }, - ], - 'comma-style': ['warn', 'last'], - 'consistent-return': 'error', - 'dot-notation': 'error', - eqeqeq: 'error', - indent: ['warn', 2], - 'jsx-quotes': ['error', 'prefer-single'], - 'no-catch-shadow': 'error', - 'no-cond-assign': 'error', - 'no-console': [ - 'warn', - { - allow: [ - 'error', - 'warn', - ], - }, - ], - 'no-fallthrough': 'error', - 'no-irregular-whitespace': 'error', - 'no-mixed-spaces-and-tabs': 'warn', - 'no-nested-ternary': 'warn', - 'no-trailing-spaces': 'warn', - 'no-undef': 'error', - 'no-unreachable': 'error', - 'no-unused-expressions': 'error', - 'no-unused-vars': [ - 'error', - { - vars: 'all', - args: 'after-used', - ignoreRestSiblings: true, - }, - ], - 'object-curly-spacing': ['error', 'always'], - 'padded-blocks': [ - 'error', - { - classes: 'always', - }, - ], - 'prefer-const': 'error', - quotes: ['error', 'single'], - semi: 'off', - strict: 'off', - 'valid-typeof': 'error', - - 'react/jsx-boolean-value': 'error', - 'react/jsx-closing-bracket-location': ['error', 'line-aligned'], - 'react/jsx-curly-spacing': 'error', - 'react/jsx-equals-spacing': 'error', - 'react/jsx-first-prop-new-line': ['error', 'multiline-multiprop'], - 'react/jsx-indent': ['error', 2], - 'react/jsx-no-bind': 'error', - 'react/jsx-no-duplicate-props': 'error', - 'react/jsx-no-undef': 'error', - 'react/jsx-tag-spacing': 'error', - 'react/jsx-uses-react': 'error', - 'react/jsx-uses-vars': 'error', - 'react/jsx-wrap-multilines': 'error', - 'react/no-multi-comp': 'off', - 'react/no-string-refs': 'error', - 'react/prop-types': 'error', - 'react/self-closing-comp': 'error', - - 'jsx-a11y/accessible-emoji': 'warn', - 'jsx-a11y/alt-text': 'warn', - 'jsx-a11y/anchor-has-content': 'warn', - 'jsx-a11y/anchor-is-valid': [ - 'warn', - { - components: [ - 'Link', - 'NavLink', - ], - specialLink: [ - 'to', - ], - aspect: [ - 'noHref', - 'invalidHref', - 'preferButton', - ], - }, - ], - 'jsx-a11y/aria-activedescendant-has-tabindex': 'warn', - 'jsx-a11y/aria-props': 'warn', - 'jsx-a11y/aria-proptypes': 'warn', - 'jsx-a11y/aria-role': 'warn', - 'jsx-a11y/aria-unsupported-elements': 'warn', - 'jsx-a11y/heading-has-content': 'warn', - 'jsx-a11y/html-has-lang': 'warn', - 'jsx-a11y/iframe-has-title': 'warn', - 'jsx-a11y/img-redundant-alt': 'warn', - 'jsx-a11y/interactive-supports-focus': 'warn', - 'jsx-a11y/label-has-for': 'off', - 'jsx-a11y/mouse-events-have-key-events': 'warn', - 'jsx-a11y/no-access-key': 'warn', - 'jsx-a11y/no-distracting-elements': 'warn', - 'jsx-a11y/no-noninteractive-element-interactions': [ - 'warn', - { - handlers: [ - 'onClick', - ], - }, - ], - 'jsx-a11y/no-onchange': 'warn', - 'jsx-a11y/no-redundant-roles': 'warn', - 'jsx-a11y/no-static-element-interactions': [ - 'warn', - { - handlers: [ - 'onClick', - ], - }, - ], - 'jsx-a11y/role-has-required-aria-props': 'warn', - 'jsx-a11y/role-supports-aria-props': 'off', - 'jsx-a11y/scope': 'warn', - 'jsx-a11y/tabindex-no-positive': 'warn', - - 'import/extensions': [ - 'error', - 'always', - { - js: 'never', - }, - ], - 'import/newline-after-import': 'error', - 'import/no-extraneous-dependencies': [ - 'error', - { - devDependencies: [ - 'config/webpack/**', - ], - }, - ], - 'import/no-unresolved': 'error', - 'import/no-webpack-loader-syntax': 'error', - - 'promise/catch-or-return': 'error', - }, -}; diff --git a/.foreman b/.foreman deleted file mode 100644 index 722b491f..00000000 --- a/.foreman +++ /dev/null @@ -1 +0,0 @@ -procfile: Procfile.dev diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index e69f2a0a..00000000 --- a/.gitattributes +++ /dev/null @@ -1,14 +0,0 @@ -* text=auto eol=lf -*.eot -text -*.gif -text -*.gz -text -*.ico -text -*.jpg -text -*.mp3 -text -*.ogg -text -*.png -text -*.ttf -text -*.webm -text -*.woff -text -*.woff2 -text -spec/fixtures/requests/** -text !eol diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 05acf6cc..00000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1,12 +0,0 @@ -# CODEOWNERS for /gab/social/gab-social - -# Translators - -All previously-credited contributors to Mastodon's translations efforts have -been removed in order to prevent confusion and unintended association with the -Gab Social fork of Mastodon. - -Please visit the Mastodon project on -[GitHub](https://github.com/tootsuite/mastodon/blob/master/AUTHORS.md) for a -complete and up-to-date list of the original contributors to the Mastodon -project from which Gab Social was forked. \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index debfed3d..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -Gab is member-supported software. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index a1befd76..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -name: Bug Report -about: If something isn't working as expected - ---- - - - - - -### Expected behaviour - - - -### Actual behaviour - - - -### Steps to reproduce the problem - - - -### Specifications - - - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 3890729e..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: Feature Request -about: I have a suggestion - ---- - - - - - -### Pitch - - - -### Motivation - - diff --git a/.github/ISSUE_TEMPLATE/support.md b/.github/ISSUE_TEMPLATE/support.md deleted file mode 100644 index fe5aefe6..00000000 --- a/.github/ISSUE_TEMPLATE/support.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -name: Support -about: Ask for help with your deployment - ---- - -We primarily use GitHub as a bug and feature tracker. For usage questions, troubleshooting of deployments and other individual technical assistance, please use one of the resources below: - -- https://gab.com/support \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index f57a694d..00000000 --- a/.gitignore +++ /dev/null @@ -1,62 +0,0 @@ -# See https://help.github.com/articles/ignoring-files for more about ignoring files. -# -# If you find yourself ignoring temporary files generated by your text editor -# or operating system, you probably want to add a global ignore instead: -# git config --global core.excludesfile '~/.gitignore_global' - -# Ignore bundler config and downloaded libraries. -/.bundle -/vendor/bundle - -# Ignore the default SQLite database. -/db/*.sqlite3 -/db/*.sqlite3-journal - -# Ignore all logfiles and tempfiles. -/*.log -/log/* -!/log/.keep -/tmp -coverage -public/system -public/assets -public/packs -public/packs-test -.env -.env.production -node_modules/ -build/ - -# Ignore Vagrant files -.vagrant/ - -# Ignore Capistrano customizations -config/deploy/* - -# Ignore IDE files -.vscode/ -.idea/ - -# Ignore postgres + redis + elasticsearch volume optionally created by docker-compose -postgres -redis -elasticsearch - -# Ignore Apple files -.DS_Store - -# Ignore vim files -*~ -*.swp - -# Ignore npm debug log -npm-debug.log - -# Ignore yarn log files -yarn-error.log -yarn-debug.log - -# Ignore Docker option files -docker-compose.override.yml - -dump.rdb diff --git a/.gitlab/issue_templates/.gitkeep b/.gitlab/issue_templates/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/.gitlab/issue_templates/standard_issue.md b/.gitlab/issue_templates/standard_issue.md deleted file mode 100644 index 6afa5f4e..00000000 --- a/.gitlab/issue_templates/standard_issue.md +++ /dev/null @@ -1,21 +0,0 @@ -### Issue Description ### - - ---- - -### Expected Behavior ### - - ---- - - -### Current Behavior ### - - ---- - -### Steps to Reproduce ### -1. -2. - ---- \ No newline at end of file diff --git a/.gitlab/merge_request_templates/.gitkeep b/.gitlab/merge_request_templates/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/.gitlab/merge_request_templates/test.md b/.gitlab/merge_request_templates/test.md deleted file mode 100644 index 23db1754..00000000 --- a/.gitlab/merge_request_templates/test.md +++ /dev/null @@ -1 +0,0 @@ -# This is a test \ No newline at end of file diff --git a/.haml-lint.yml b/.haml-lint.yml deleted file mode 100644 index 7853d81d..00000000 --- a/.haml-lint.yml +++ /dev/null @@ -1,108 +0,0 @@ -# Whether to ignore frontmatter at the beginning of HAML documents for -# frameworks such as Jekyll/Middleman -skip_frontmatter: false - -exclude: - - 'vendor/**/*' - - 'spec/**/*' - - 'lib/templates/**/*' - - 'app/views/kaminari/**/*' - -linters: - AltText: - enabled: false - - ClassAttributeWithStaticValue: - enabled: true - - ClassesBeforeIds: - enabled: true - - ConsecutiveComments: - enabled: true - - ConsecutiveSilentScripts: - enabled: true - max_consecutive: 2 - - EmptyObjectReference: - enabled: true - - EmptyScript: - enabled: true - - FinalNewline: - enabled: true - present: true - - HtmlAttributes: - enabled: true - - ImplicitDiv: - enabled: true - - LeadingCommentSpace: - enabled: true - - LineLength: - enabled: false - max: 80 - - MultilinePipe: - enabled: true - - MultilineScript: - enabled: true - - ObjectReferenceAttributes: - enabled: true - - RuboCop: - enabled: true - # These cops are incredibly noisy when it comes to HAML templates, so we - # ignore them. - ignored_cops: - - Lint/BlockAlignment - - Lint/EndAlignment - - Lint/Void - - Metrics/BlockLength - - Metrics/LineLength - - Style/AlignParameters - - Style/BlockNesting - - Style/ElseAlignment - - Style/EndOfLine - - Style/FileName - - Style/FinalNewline - - Style/FrozenStringLiteralComment - - Style/IfUnlessModifier - - Style/IndentationWidth - - Style/Next - - Style/TrailingBlankLines - - Style/TrailingWhitespace - - Style/WhileUntilModifier - - RubyComments: - enabled: true - - SpaceBeforeScript: - enabled: true - - SpaceInsideHashAttributes: - enabled: true - style: space - - Indentation: - enabled: true - character: space # or tab - - TagName: - enabled: true - - TrailingWhitespace: - enabled: true - - UnnecessaryInterpolation: - enabled: true - - UnnecessaryStringOutput: - enabled: true diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 9080beae..00000000 --- a/.jshintrc +++ /dev/null @@ -1,23 +0,0 @@ -{ - "bitwise": true, - "browser": true, - "curly": true, - "eqeqeq": true, - "latedef": true, - "noarg": true, - "node": true, - "strict": true, - "undef": true, - "unused": true, - "futurehostile": true, - "esversion": 9, - "mocha": true, - "globals": { - "markdown": true, - "moment": true, - "numeral": true, - "io": true, - "Chart": true, - "twttr": true - } -} diff --git a/.nanoignore b/.nanoignore deleted file mode 100644 index 80e93970..00000000 --- a/.nanoignore +++ /dev/null @@ -1,19 +0,0 @@ -.DS_Store -.git/ -.gitignore - -.bundle/ -.cache/ -config/deploy/* -coverage -docs/ -.env -log/*.log -neo4j/ -node_modules/ -public/assets/ -public/system/ -spec/ -tmp/ -.vagrant/ -vendor/bundle/ diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 45a4fb75..00000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/.profile b/.profile deleted file mode 100644 index c6d57b60..00000000 --- a/.profile +++ /dev/null @@ -1 +0,0 @@ -LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/.apt/lib/x86_64-linux-gnu:/app/.apt/usr/lib/x86_64-linux-gnu/mesa:/app/.apt/usr/lib/x86_64-linux-gnu/pulseaudio diff --git a/.rspec b/.rspec deleted file mode 100644 index 9a8e706d..00000000 --- a/.rspec +++ /dev/null @@ -1,3 +0,0 @@ ---color ---require spec_helper ---format Fuubar diff --git a/.rubocop.yml b/.rubocop.yml deleted file mode 100644 index 6102bcb6..00000000 --- a/.rubocop.yml +++ /dev/null @@ -1,126 +0,0 @@ -AllCops: - TargetRubyVersion: 2.3 - Exclude: - - 'spec/**/*' - - 'db/**/*' - - 'app/views/**/*' - - 'config/**/*' - - 'bin/*' - - 'Rakefile' - - 'node_modules/**/*' - - 'Vagrantfile' - - 'vendor/**/*' - - 'lib/json_ld/*' - - 'lib/templates/**/*' - -Bundler/OrderedGems: - Enabled: false - -Layout/AccessModifierIndentation: - EnforcedStyle: indent - -Layout/EmptyLineAfterMagicComment: - Enabled: false - -Layout/SpaceInsideHashLiteralBraces: - EnforcedStyle: space - -Metrics/AbcSize: - Max: 100 - -Metrics/BlockLength: - Max: 35 - Exclude: - - 'lib/tasks/**/*' - -Metrics/BlockNesting: - Max: 3 - -Metrics/ClassLength: - CountComments: false - Max: 300 - -Metrics/CyclomaticComplexity: - Max: 25 - -Metrics/LineLength: - AllowURI: true - Enabled: false - -Metrics/MethodLength: - CountComments: false - Max: 55 - -Metrics/ModuleLength: - CountComments: false - Max: 200 - -Metrics/ParameterLists: - Max: 5 - CountKeywordArgs: true - -Metrics/PerceivedComplexity: - Max: 20 - -Naming/MemoizedInstanceVariableName: - Enabled: false - -Rails: - Enabled: true - -Rails/HasAndBelongsToMany: - Enabled: false - -Rails/SkipsModelValidations: - Enabled: false - -Rails/HttpStatus: - Enabled: false - -Rails/Exit: - Exclude: - - 'lib/gabsocial/*' - - 'lib/cli.rb' - -Style/ClassAndModuleChildren: - Enabled: false - -Style/CollectionMethods: - Enabled: true - PreferredMethods: - find_all: 'select' - -Style/Documentation: - Enabled: false - -Style/DoubleNegation: - Enabled: true - -Style/FrozenStringLiteralComment: - Enabled: true - -Style/GuardClause: - Enabled: false - -Style/Lambda: - Enabled: false - -Style/PercentLiteralDelimiters: - PreferredDelimiters: - '%i': '()' - '%w': '()' - -Style/PerlBackrefs: - AutoCorrect: false - -Style/RegexpLiteral: - Enabled: false - -Style/SymbolArray: - Enabled: false - -Style/TrailingCommaInArrayLiteral: - EnforcedStyleForMultiline: 'comma' - -Style/TrailingCommaInHashLiteral: - EnforcedStyleForMultiline: 'comma' diff --git a/.ruby-version b/.ruby-version deleted file mode 100644 index 57cf282e..00000000 --- a/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.6.5 diff --git a/.scss-lint.yml b/.scss-lint.yml deleted file mode 100644 index 5d7cc4da..00000000 --- a/.scss-lint.yml +++ /dev/null @@ -1,264 +0,0 @@ -# Linter Documentation: -# https://github.com/brigade/scss-lint/blob/v0.42.2/lib/scss_lint/linter/README.md - -scss_files: 'app/javascript/styles/**/*.scss' - -exclude: - - app/javascript/styles/reset.scss - -linters: - # Reports when you use improper spacing around ! (the "bang") in !default, - # !global, !important, and !optional flags. - BangFormat: - enabled: false - - # Whether or not to prefer `border: 0` over `border: none`. - BorderZero: - enabled: false - - # Reports when you define a rule set using a selector with chained classes - # (a.k.a. adjoining classes). - ChainedClasses: - enabled: false - - # Prefer hexadecimal color codes over color keywords. - # (e.g. `color: green` is a color keyword) - ColorKeyword: - enabled: false - - # Prefer color literals (keywords or hexadecimal codes) to be used only in - # variable declarations. They should be referred to via variables everywhere - # else. - ColorVariable: - enabled: true - - # Which form of comments to prefer in CSS. - Comment: - enabled: false - - # Reports @debug statements (which you probably left behind accidentally). - DebugStatement: - enabled: false - - # Rule sets should be ordered as follows: - # - @extend declarations - # - @include declarations without inner @content - # - properties, @include declarations with inner @content - # - nested rule sets. - DeclarationOrder: - enabled: false - - # `scss-lint:disable` control comments should be preceded by a comment - # explaining why these linters are being disabled for this file. - # See https://github.com/brigade/scss-lint#disabling-linters-via-source for - # more information. - DisableLinterReason: - enabled: true - - # Reports when you define the same property twice in a single rule set. - DuplicateProperty: - enabled: false - - # Separate rule, function, and mixin declarations with empty lines. - EmptyLineBetweenBlocks: - enabled: true - - # Reports when you have an empty rule set. - EmptyRule: - enabled: true - - # Reports when you have an @extend directive. - ExtendDirective: - enabled: false - - # Files should always have a final newline. This results in better diffs - # when adding lines to the file, since SCM systems such as git won't - # think that you touched the last line. - FinalNewline: - enabled: false - - # HEX colors should use three-character values where possible. - HexLength: - enabled: false - - # HEX color values should use lower-case colors to differentiate between - # letters and numbers, e.g. `#E3E3E3` vs. `#e3e3e3`. - HexNotation: - enabled: true - - # Avoid using ID selectors. - IdSelector: - enabled: false - - # The basenames of @imported SCSS partials should not begin with an - # underscore and should not include the filename extension. - ImportPath: - enabled: false - - # Avoid using !important in properties. It is usually indicative of a - # misunderstanding of CSS specificity and can lead to brittle code. - ImportantRule: - enabled: false - - # Indentation should always be done in increments of 2 spaces. - Indentation: - enabled: true - width: 2 - - # Don't write leading zeros for numeric values with a decimal point. - LeadingZero: - enabled: false - - # Reports when you define the same selector twice in a single sheet. - MergeableSelector: - enabled: false - - # Functions, mixins, variables, and placeholders should be declared - # with all lowercase letters and hyphens instead of underscores. - NameFormat: - enabled: false - - # Avoid nesting selectors too deeply. - NestingDepth: - enabled: false - - # Always use placeholder selectors in @extend. - PlaceholderInExtend: - enabled: false - - # Sort properties in a strict order. - PropertySortOrder: - enabled: false - - # Reports when you use an unknown or disabled CSS property - # (ignoring vendor-prefixed properties). - PropertySpelling: - enabled: false - - # Configure which units are allowed for property values. - PropertyUnits: - enabled: false - - # Pseudo-elements, like ::before, and ::first-letter, should be declared - # with two colons. Pseudo-classes, like :hover and :first-child, should - # be declared with one colon. - PseudoElement: - enabled: true - - # Avoid qualifying elements in selectors (also known as "tag-qualifying"). - QualifyingElement: - enabled: false - - # Don't write selectors with a depth of applicability greater than 3. - SelectorDepth: - enabled: false - - # Selectors should always use hyphenated-lowercase, rather than camelCase or - # snake_case. - SelectorFormat: - enabled: false - convention: hyphenated_lowercase - - # Prefer the shortest shorthand form possible for properties that support it. - Shorthand: - enabled: true - - # Each property should have its own line, except in the special case of - # single line rulesets. - SingleLinePerProperty: - enabled: true - allow_single_line_rule_sets: true - - # Split selectors onto separate lines after each comma, and have each - # individual selector occupy a single line. - SingleLinePerSelector: - enabled: true - - # Commas in lists should be followed by a space. - SpaceAfterComma: - enabled: false - - # Properties should be formatted with a single space separating the colon - # from the property's value. - SpaceAfterPropertyColon: - enabled: true - - # Properties should be formatted with no space between the name and the - # colon. - SpaceAfterPropertyName: - enabled: true - - # Variables should be formatted with a single space separating the colon - # from the variable's value. - SpaceAfterVariableColon: - enabled: true - - # Variables should be formatted with no space between the name and the - # colon. - SpaceAfterVariableName: - enabled: false - - # Operators should be formatted with a single space on both sides of an - # infix operator. - SpaceAroundOperator: - enabled: true - - # Opening braces should be preceded by a single space. - SpaceBeforeBrace: - enabled: true - - # Parentheses should not be padded with spaces. - SpaceBetweenParens: - enabled: false - - # Enforces that string literals should be written with a consistent form - # of quotes (single or double). - StringQuotes: - enabled: false - - # Property values, @extend, @include, and @import directives, and variable - # declarations should always end with a semicolon. - TrailingSemicolon: - enabled: true - - # Reports lines containing trailing whitespace. - TrailingWhitespace: - enabled: true - - # Don't write trailing zeros for numeric values with a decimal point. - TrailingZero: - enabled: false - - # Don't use the `all` keyword to specify transition properties. - TransitionAll: - enabled: false - - # Numeric values should not contain unnecessary fractional portions. - UnnecessaryMantissa: - enabled: false - - # Do not use parent selector references (&) when they would otherwise - # be unnecessary. - UnnecessaryParentReference: - enabled: false - - # URLs should be valid and not contain protocols or domain names. - UrlFormat: - enabled: true - - # URLs should always be enclosed within quotes. - UrlQuotes: - enabled: true - - # Properties, like color and font, are easier to read and maintain - # when defined using variables rather than literals. - VariableForProperty: - enabled: false - - # Avoid vendor prefixes. Or rather: don't write them yourself. - VendorPrefix: - enabled: false - - # Omit length units on zero values, e.g. `0px` vs. `0`. - ZeroUnit: - enabled: true diff --git a/.slugignore b/.slugignore deleted file mode 100644 index 5470f6e3..00000000 --- a/.slugignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules/ -.cache/ -docs/ -spec/ diff --git a/.yarnclean b/.yarnclean deleted file mode 100644 index f2de5286..00000000 --- a/.yarnclean +++ /dev/null @@ -1,46 +0,0 @@ -# test directories -__tests__ -test -tests -powered-test - -# asset directories -docs -doc -website -images -# assets - -# examples -example -examples - -# code coverage directories -coverage -.nyc_output - -# build scripts -Makefile -Gulpfile.js -Gruntfile.js - -# configs -.tern-project -.gitattributes -.editorconfig -.*ignore -.eslintrc -.jshintrc -.flowconfig -.documentup.json -.yarn-metadata.json -.*.yml -*.yml - -# misc -*.gz -*.md - -# for specific ignore -!.svgo.yml - diff --git a/AUTHORS.md b/AUTHORS.md index 2c48a4fe..602e880e 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -4,7 +4,7 @@ Gab Social by Gab.com is available on our self-hosted GitLab. ## General Statements -The [Gab Social](https://code.gab.com/gab/social/gab-social) fork is not endorsed by the Mastodon team. Gab is not receiving support from the Mastodon team and has not requested it. There has been no communication between the Mastodon and Gab teams regarding the Gab Social fork. +The [Gab Social](https://code.gab.com/gab/gab-open-source) fork is not endorsed by the Mastodon team. Gab is not receiving support from the Mastodon team and has not requested it. There has been no communication between the Mastodon and Gab teams regarding the Gab Social fork. ## Acknowledgement of accomplishments diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 08e6a95c..2a795af7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,3 @@ You can contribute in the following ways: - Contributing code to Gab Social by fixing bugs or implementing features - Improving the documentation - -## Bug reports - -Bug reports and feature suggestions can be submitted to Gab Social's [GitLab Issues](https://code.gab.com/gab/social/gab-social/issues) tracker. Please make sure that you are not submitting duplicates, and that a similar report or request has not already been resolved or rejected in the past using the search function. Please also use descriptive, concise titles. diff --git a/README.md b/README.md index d4b24240..c5261541 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ To get started developing on Gab, you will need to run a version of it locally. The following instructions assume you are already familiar with using a terminal program. 1. Install [Vagrant](https://www.vagrantup.com/) and [VirtualBox](https://www.virtualbox.org/) if you haven't already. -2. Clone this repository with `git clone https://code.gab.com/gab/social/gab-social.git` +2. Clone this repository 3. Change into the project directory with `cd gab-social` 4. Run `vagrant up` to provision the virtual machine. This will take a while. 5. Finally, run `vagrant ssh -c "cd /vagrant && foreman start"` to start the local web server. diff --git a/app/javascript/gabsocial/components/bundle_column_error.js b/app/javascript/gabsocial/components/bundle_column_error.js index 61b76bd0..3b372731 100644 --- a/app/javascript/gabsocial/components/bundle_column_error.js +++ b/app/javascript/gabsocial/components/bundle_column_error.js @@ -1,10 +1,7 @@ import React from 'react' import PropTypes from 'prop-types' import { defineMessages, FormattedMessage, injectIntl } from 'react-intl' -import { - source_url, - version, -} from '../initial_state' +import { version } from '../initial_state' import { APP_NAME, DEFAULT_REL, @@ -56,7 +53,7 @@ class BundleColumnError extends React.PureComponent {