• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / da06f62a-2e8b-4995-ae49-246e33b0661f

03 Nov 2025 07:07PM UTC coverage: 91.368% (-0.03%) from 91.4%
da06f62a-2e8b-4995-ae49-246e33b0661f

Pull #2126

circleci

bess
Bump tar in the npm_and_yarn group across 1 directory

Bumps the npm_and_yarn group with 1 update in the / directory: [tar](https://github.com/isaacs/node-tar).


Updates `tar` from 7.5.1 to 7.5.2
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.1...v7.5.2)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Pull Request #2126: Bump tar from 7.5.1 to 7.5.2 in the npm_and_yarn group across 1 directory

2826 of 3093 relevant lines covered (91.37%)

486.76 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/app/models/project_validator.rb
1
class ProjectValidator < ActiveModel::Validator
5✔
2
    def validate(project)
5✔
3
        @schema = TigerdataSchema.new(namespace: "tigerdata", type: "tigerdata:project")
1,162✔
4

5
        # we need this because this method references the metadata_json which is not updated until the project is saved
6
        project.metadata = project.metadata_model
1,162✔
7

8
        # Required fields, always validate
9
        validate_role(project:, netid: project.metadata_model.data_manager, role: "Data Manager")
1,162✔
10
        validate_role(project:, netid: project.metadata_model.data_sponsor, role: "Data Sponsor")
1,162✔
11

12
        # Validate if present
13
        project.metadata_model.data_user_read_only&.each { |read_only| validate_role(project:, netid: read_only, role: "Data User Read Only")}
1,388✔
14
        project.metadata_model.data_user_read_write&.each { |read_write| validate_role(project:, netid: read_write, role: "Data User Read Write")}
1,223✔
15

16
        # validate all required fields
17
        required_metadata_field_errors = []
1,162✔
18
        required_metadata = required_attributes(project:)
1,162✔
19
        if required_metadata.values.include?(nil)
1,162✔
20
            required_keys.each do |attr|
7✔
21
                value = required_metadata[attr]
49✔
22
                required_metadata_field_errors << "Missing metadata value for #{attr}" if value.nil? && project.metadata_json.include?(attr)
49✔
23
            end
24
        end
25
        if required_metadata_field_errors.count > 0
1,162✔
26
            project.errors.add :base, "Invalid Project Metadata it does not match the schema #{TigerdataSchema::SCHEMA_VERSION}\n #{required_metadata_field_errors.join(", ")}"
7✔
27
        end
28
    end
29

30
    private
5✔
31

32
    def validate_role(project:, netid:, role:)
5✔
33
        if netid.blank?
2,611✔
34
            project.errors.add :base, "Missing netid for role #{role}"
5✔
35
        elsif User.where(uid: netid).empty?
2,606✔
36
            project.errors.add :base, "Invalid netid: #{netid} for role #{role}"
42✔
37
        end
38
    end
39

40
    def required_field_labels
5✔
41
        @schema.required_project_schema_fields.pluck(:name)
28,317✔
42
    end
43

44
    def required_keys
5✔
45
        tableized = required_field_labels.map { |v| v.underscore }
226,536✔
46
        tableized
28,317✔
47
    end
48

49
    def required_attributes(project:)
5✔
50
        project.metadata_json.select { |k, _v| required_keys.include?(k) }
29,472✔
51
    end
52

53
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc