1
0
Fork 0
mirror of https://github.com/mastodon/mastodon.git synced 2024-08-20 21:08:15 -07:00
This commit is contained in:
Matt Jankowski 2024-07-31 14:07:11 +00:00 committed by GitHub
commit 85f85b52d2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 25 additions and 16 deletions

View file

@ -112,6 +112,8 @@ module Mastodon
end end
end end
config.x.mastodon = config_for(:mastodon)
config.to_prepare do config.to_prepare do
Doorkeeper::AuthorizationsController.layout 'modal' Doorkeeper::AuthorizationsController.layout 'modal'
Doorkeeper::AuthorizedApplicationsController.layout 'admin' Doorkeeper::AuthorizedApplicationsController.layout 'admin'

8
config/mastodon.yml Normal file
View file

@ -0,0 +1,8 @@
shared:
source:
base_url: <%= ENV.fetch('SOURCE_BASE_URL', nil) %>
repository: <%= ENV.fetch('GITHUB_REPOSITORY', 'mastodon/mastodon') %>
tag: <%= ENV.fetch('SOURCE_TAG', nil) %>
version:
metadata: <%= ENV.fetch('MASTODON_VERSION_METADATA', nil) %>
prerelease: <%= ENV.fetch('MASTODON_VERSION_PRERELEASE', nil) %>

View file

@ -21,11 +21,11 @@ module Mastodon
end end
def prerelease def prerelease
ENV['MASTODON_VERSION_PRERELEASE'].presence || default_prerelease configuration.version[:prerelease] || default_prerelease
end end
def build_metadata def build_metadata
ENV.fetch('MASTODON_VERSION_METADATA', nil) configuration.version[:metadata]
end end
def to_a def to_a
@ -44,16 +44,16 @@ module Mastodon
end end
def repository def repository
ENV.fetch('GITHUB_REPOSITORY', 'mastodon/mastodon') configuration.source[:repository]
end end
def source_base_url def source_base_url
ENV.fetch('SOURCE_BASE_URL', "https://github.com/#{repository}") configuration.source[:base_url] || "https://github.com/#{repository}"
end end
# specify git tag or commit hash here # specify git tag or commit hash here
def source_tag def source_tag
ENV.fetch('SOURCE_TAG', nil) configuration.source[:tag]
end end
def source_url def source_url
@ -67,5 +67,9 @@ module Mastodon
def user_agent def user_agent
@user_agent ||= "Mastodon/#{Version} (#{HTTP::Request::USER_AGENT}; +http#{Rails.configuration.x.use_https ? 's' : ''}://#{Rails.configuration.x.web_domain}/)" @user_agent ||= "Mastodon/#{Version} (#{HTTP::Request::USER_AGENT}; +http#{Rails.configuration.x.use_https ? 's' : ''}://#{Rails.configuration.x.web_domain}/)"
end end
def configuration
Rails.configuration.x.mastodon
end
end end
end end

View file

@ -65,11 +65,12 @@ describe InstancePresenter do
end end
describe '#source_url' do describe '#source_url' do
context 'with the GITHUB_REPOSITORY env variable set' do context 'with the github repository configured' do
around do |example| around do |example|
ClimateControl.modify GITHUB_REPOSITORY: 'other/repo' do original = Rails.configuration.x.mastodon.source[:repository]
example.run Rails.configuration.x.mastodon.source[:repository] = 'other/repo'
end example.run
Rails.configuration.x.mastodon.source[:repository] = original
end end
it 'uses the env variable to build a repo URL' do it 'uses the env variable to build a repo URL' do
@ -77,13 +78,7 @@ describe InstancePresenter do
end end
end end
context 'without the GITHUB_REPOSITORY env variable set' do context 'without the github repository configured' do
around do |example|
ClimateControl.modify GITHUB_REPOSITORY: nil do
example.run
end
end
it 'defaults to the core mastodon repo URL' do it 'defaults to the core mastodon repo URL' do
expect(instance_presenter.source_url).to eq('https://github.com/mastodon/mastodon') expect(instance_presenter.source_url).to eq('https://github.com/mastodon/mastodon')
end end