bundler-cache: true
- name: Run brakeman
run: bundle exec brakeman -q
+ annotate_models:
+ env:
+ RAILS_ENV: test
+ name: Rails Annotate Models
+ runs-on: ubuntu-22.04
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v4
+ - name: Setup ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: ${{ env.ruby }}
+ bundler-cache: true
+ - name: Setup database
+ run: |
+ sudo systemctl start postgresql
+ sudo -u postgres createuser -s $(id -un)
+ createdb openstreetmap
+ cp config/github.database.yml config/database.yml
+ bundle exec rails db:test:load
+ - name: Run Annotate Models
+ run: bundle exec rails annotate_models
+ - name: Fail if model annotations are out of date
+ run: git diff --exit-code
# Gems useful for development
group :development do
- gem "annotate"
gem "better_errors"
gem "binding_of_caller"
gem "debug_inspector"
gem "simplecov-lcov", :require => false
gem "webmock"
end
+
+group :development, :test do
+ gem "annotate"
+end
#
# Indexes
#
-# index_changeset_comments_on_created_at (created_at)
+# index_changeset_comments_on_author_id_and_created_at (author_id,created_at)
+# index_changeset_comments_on_changeset_id_and_created_at (changeset_id,created_at)
+# index_changeset_comments_on_created_at (created_at)
#
# Foreign Keys
#
# id :bigint(8) not null, primary key
# user_id :bigint(8) not null
# friend_user_id :bigint(8) not null
+# created_at :datetime
#
# Indexes
#
-# friends_user_id_idx (user_id)
-# user_id_idx (friend_user_id)
+# index_friends_on_user_id_and_created_at (user_id,created_at)
+# user_id_idx (friend_user_id)
#
# Foreign Keys
#
#
# Indexes
#
-# index_note_comments_on_body (to_tsvector('english'::regconfig, body)) USING gin
-# index_note_comments_on_created_at (created_at)
-# note_comments_note_id_idx (note_id)
+# index_note_comments_on_author_id_and_created_at (author_id,created_at)
+# index_note_comments_on_body (to_tsvector('english'::regconfig, body)) USING gin
+# index_note_comments_on_created_at (created_at)
+# note_comments_note_id_idx (note_id)
#
# Foreign Keys
#
+# == Schema Information
+#
+# Table name: oauth_applications
+#
+# id :bigint(8) not null, primary key
+# owner_type :string not null
+# owner_id :bigint(8) not null
+# name :string not null
+# uid :string not null
+# secret :string not null
+# redirect_uri :text not null
+# scopes :string default(""), not null
+# confidential :boolean default(TRUE), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+# Indexes
+#
+# index_oauth_applications_on_owner_type_and_owner_id (owner_type,owner_id)
+# index_oauth_applications_on_uid (uid) UNIQUE
+#
+# Foreign Keys
+#
+# fk_rails_... (owner_id => users.id)
+#
class Oauth2Application < Doorkeeper::Application
belongs_to :owner, :polymorphic => true
#
# Table name: oauth_nonces
#
-# id :bigint not null, primary key
+# id :bigint(8) not null, primary key
# nonce :string
# timestamp :integer
# created_at :datetime
#
# Table name: relations
#
-# relation_id :bigint(8) default(0), not null, primary key
+# relation_id :bigint(8) not null, primary key
# changeset_id :bigint(8) not null
# timestamp :datetime not null
# version :bigint(8) not null, primary key
#
# Table name: relation_members
#
-# relation_id :bigint(8) default(0), not null, primary key
+# relation_id :bigint(8) not null, primary key
# member_type :enum not null
# member_id :bigint(8) not null
# member_role :string not null
#
# Table name: relation_tags
#
-# relation_id :bigint(8) default(0), not null, primary key
+# relation_id :bigint(8) not null, primary key
# k :string default(""), not null, primary key
# v :string default(""), not null
# version :bigint(8) not null, primary key
#
# Table name: ways
#
-# way_id :bigint(8) default(0), not null, primary key
+# way_id :bigint(8) not null, primary key
# changeset_id :bigint(8) not null
# timestamp :datetime not null
# version :bigint(8) not null, primary key
#
# Table name: way_tags
#
-# way_id :bigint(8) default(0), not null, primary key
+# way_id :bigint(8) not null, primary key
# k :string not null, primary key
# v :string not null
# version :bigint(8) not null, primary key
#
# Table name: gpx_file_tags
#
-# gpx_id :bigint(8) default(0), not null
+# gpx_id :bigint(8) not null
# tag :string not null
# id :bigint(8) not null, primary key
#
# home_lat :float
# home_lon :float
# home_zoom :integer default(3)
-# nearby :integer default(50)
# pass_salt :string
# email_valid :boolean default(FALSE), not null
# new_email :string
# NOTE: only doing this in development as some production environments (Heroku)
# NOTE: are sensitive to local FS writes, and besides -- it's just not proper
# NOTE: to have a dev-mode tool do its thing in production.
-if Rails.env.development?
+if Rails.env.development? || Rails.env.test?
task :set_annotation_options => :environment do
# You can override any of these by setting an environment variable of the
# same name.