gitlab-triage 1.42.2 → 1.43.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.git-blame-ignore-revs +43 -0
  3. data/.gitignore +0 -1
  4. data/.gitlab-ci.yml +56 -54
  5. data/.rubocop.yml +27 -0
  6. data/.rubocop_todo.yml +47 -434
  7. data/.ruby-version +1 -1
  8. data/.tool-versions +1 -1
  9. data/Gemfile +2 -0
  10. data/Gemfile.lock +239 -0
  11. data/Guardfile +2 -0
  12. data/Rakefile +2 -0
  13. data/bin/gitlab-triage +1 -0
  14. data/gitlab-triage.gemspec +8 -8
  15. data/lib/gitlab/triage/action/base.rb +5 -3
  16. data/lib/gitlab/triage/action.rb +2 -0
  17. data/lib/gitlab/triage/api_query_builders/base_query_param_builder.rb +2 -0
  18. data/lib/gitlab/triage/api_query_builders/date_query_param_builder.rb +3 -1
  19. data/lib/gitlab/triage/api_query_builders/multi_query_param_builder.rb +2 -0
  20. data/lib/gitlab/triage/api_query_builders/single_query_param_builder.rb +2 -0
  21. data/lib/gitlab/triage/command_builders/base_command_builder.rb +2 -0
  22. data/lib/gitlab/triage/command_builders/cc_command_builder.rb +2 -0
  23. data/lib/gitlab/triage/command_builders/comment_command_builder.rb +2 -0
  24. data/lib/gitlab/triage/command_builders/label_command_builder.rb +3 -1
  25. data/lib/gitlab/triage/command_builders/move_command_builder.rb +2 -0
  26. data/lib/gitlab/triage/command_builders/remove_label_command_builder.rb +2 -0
  27. data/lib/gitlab/triage/command_builders/status_command_builder.rb +2 -0
  28. data/lib/gitlab/triage/command_builders/text_content_builder.rb +2 -2
  29. data/lib/gitlab/triage/engine.rb +8 -3
  30. data/lib/gitlab/triage/errors/network.rb +2 -0
  31. data/lib/gitlab/triage/errors.rb +2 -0
  32. data/lib/gitlab/triage/expand_condition/expansion.rb +2 -0
  33. data/lib/gitlab/triage/expand_condition/list.rb +3 -1
  34. data/lib/gitlab/triage/expand_condition/sequence.rb +3 -1
  35. data/lib/gitlab/triage/expand_condition.rb +2 -0
  36. data/lib/gitlab/triage/filters/assignee_member_conditions_filter.rb +2 -0
  37. data/lib/gitlab/triage/filters/author_member_conditions_filter.rb +2 -0
  38. data/lib/gitlab/triage/filters/base_conditions_filter.rb +3 -3
  39. data/lib/gitlab/triage/filters/branch_date_filter.rb +2 -0
  40. data/lib/gitlab/triage/filters/branch_protected_filter.rb +2 -0
  41. data/lib/gitlab/triage/filters/discussions_conditions_filter.rb +2 -0
  42. data/lib/gitlab/triage/filters/issue_date_conditions_filter.rb +2 -0
  43. data/lib/gitlab/triage/filters/member_conditions_filter.rb +4 -4
  44. data/lib/gitlab/triage/filters/merge_request_date_conditions_filter.rb +2 -0
  45. data/lib/gitlab/triage/filters/name_conditions_filter.rb +2 -0
  46. data/lib/gitlab/triage/filters/no_additional_labels_conditions_filter.rb +2 -0
  47. data/lib/gitlab/triage/filters/ruby_conditions_filter.rb +2 -0
  48. data/lib/gitlab/triage/filters/votes_conditions_filter.rb +2 -0
  49. data/lib/gitlab/triage/graphql_network.rb +2 -0
  50. data/lib/gitlab/triage/graphql_queries/query_builder.rb +5 -3
  51. data/lib/gitlab/triage/graphql_queries/query_param_builders/array_param_builder.rb +2 -0
  52. data/lib/gitlab/triage/graphql_queries/query_param_builders/base_param_builder.rb +2 -0
  53. data/lib/gitlab/triage/graphql_queries/query_param_builders/date_param_builder.rb +3 -1
  54. data/lib/gitlab/triage/limiters/base_limiter.rb +2 -0
  55. data/lib/gitlab/triage/limiters/date_field_limiter.rb +2 -0
  56. data/lib/gitlab/triage/network.rb +2 -0
  57. data/lib/gitlab/triage/network_adapters/base_adapter.rb +2 -0
  58. data/lib/gitlab/triage/network_adapters/graphql_adapter.rb +2 -0
  59. data/lib/gitlab/triage/network_adapters/httparty_adapter.rb +2 -0
  60. data/lib/gitlab/triage/network_adapters/test_adapter.rb +3 -1
  61. data/lib/gitlab/triage/option_parser.rb +2 -0
  62. data/lib/gitlab/triage/options.rb +2 -0
  63. data/lib/gitlab/triage/param_builders/date_param_builder.rb +2 -0
  64. data/lib/gitlab/triage/policies/base_policy.rb +1 -1
  65. data/lib/gitlab/triage/resource/base.rb +3 -0
  66. data/lib/gitlab/triage/resource/instance_version.rb +2 -0
  67. data/lib/gitlab/triage/resource/milestone.rb +2 -0
  68. data/lib/gitlab/triage/rest_api_network.rb +2 -0
  69. data/lib/gitlab/triage/retryable.rb +2 -0
  70. data/lib/gitlab/triage/ui.rb +2 -0
  71. data/lib/gitlab/triage/url_builders/url_builder.rb +2 -0
  72. data/lib/gitlab/triage/utils.rb +2 -0
  73. data/lib/gitlab/triage/validators/limiter_validator.rb +3 -3
  74. data/lib/gitlab/triage/validators/params_validator.rb +3 -3
  75. data/lib/gitlab/triage/version.rb +1 -1
  76. data/lib/gitlab/triage.rb +2 -0
  77. metadata +16 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d705552fab77f42d9e1ebda9904fe44eb20e492fbafd90974d9128a386f6a13
4
- data.tar.gz: a2f2ee59444bed7c6a1f9216f166bf5c859e805bbd2ab67d18e6d39defbd6f41
3
+ metadata.gz: e9477540c0d56866682afeb01649483e1b1d1eb7401906e7d2b74459426f9cbd
4
+ data.tar.gz: f68223b942d7617c0caadd7c928f192c751573c6fd2df012afec95650c7e25c9
5
5
  SHA512:
6
- metadata.gz: 410ee77b0892b8ab5de4bf8f143e1dd4b6a0957288f2b4022e562fb8cdd1f8b1c089b3466a9140dc4cab1aa6e46ff3f1eea7689953691deac905191d7390f863
7
- data.tar.gz: 0dd940ceca61a8966f1feb4d9c9442e06f71538fed657703720b7e118674900419c1af26e4d479b59f97dbc8386b94e90ebb95bdee8a86138406a355bb2c5783
6
+ metadata.gz: bc6d78e35535fa13116db621b8d7e32ceed744d1d020d5d38e52ece77363d70f01bbc5aa9eaaa8e02fc13e0f4bee1677392d145bf7c9f1eb21d4df109e5d95e6
7
+ data.tar.gz: 351c4c8e9a2cbf255682391a3911f0049d9bca0ab247ef96eae9e576f3d0e811792b4a4154bed4efa60836b1ad1b93284b8b94f3beec54a286d075cc65db799c
@@ -0,0 +1,43 @@
1
+ # This file contains revisions to be ignored by git blame.
2
+ # These revisions are expected to be formatting-only changes.
3
+ #
4
+ # Calling `git blame --ignore-revs-file .git-blame-ignore-revs` will
5
+ # tell git blame to ignore changes made by these revisions when
6
+ # assigning blame, as if the change never happened.
7
+ #
8
+ # You can enable this as a default for your local repository by running
9
+ # `git config blame.ignoreRevsFile .git-blame-ignore-revs`
10
+ # This will probably be automatically picked by your IDE
11
+ # (VSCode+GitLens and JetBrains products are confirmed to this)
12
+ #
13
+ # Important: if you are switching to the branch without this file,
14
+ # `git blame` will fail with an error
15
+ #
16
+ # Guidelines:
17
+ # - Only large automated refactorings are expected to be included in this file.
18
+ # Do not add a new revision just because it is deemed trivial or unimportant
19
+ # - When adding a single revision, use inline comments to link relevant issues and merge requests
20
+ # Example:
21
+ #
22
+ # # d4a8b7307acc2dc8a8833ccfa65426ad28b3ffc9 # https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/60
23
+ #
24
+ # - When adding multiple revisions precede each addition (this could be multiple revisions) with a link to
25
+ # line with word START and link to relevant issue/MR/epic and conclude with line END and link to the
26
+ # same issue/MR/epic
27
+ # Example:
28
+ # # START https://gitlab.com/gitlab-org/issues/12345
29
+ # 6f0bd2d8a1e6cd2e794cd39976e9756e0c85ac66
30
+ # d53974df11dbc22cbea9dc7dcbc9896c25979a27
31
+ # ... <rest of the list>
32
+ # # END https://gitlab.com/gitlab-org/issues/12345
33
+ # - Please append new lines to the end of the file, no matter of real chronological
34
+ # order of revisions
35
+ # - Since this is using hashes for reformatting it might be a good idea to update
36
+ # this file in separate MR when relevant changes already landed in master. By
37
+ # utilizing this manner you will be safe from random rebase/squash issues
38
+ # - Only put full 40-character hashes on this list
39
+
40
+ # START https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage/-/issues/340
41
+ 49e0b4f890c4f38ae586c6b1bdca5ff3b0c04af1
42
+ aba491f68f0d4a6c088deb6cb281755d6c7a7f0b
43
+ # END https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage/-/issues/340
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  /.rspec
4
4
  /.bundle/
5
5
  /.yardoc
6
- /Gemfile.lock
7
6
  /_yardoc/
8
7
  /coverage/
9
8
  /pkg/
data/.gitlab-ci.yml CHANGED
@@ -5,23 +5,29 @@ stages:
5
5
  - deploy
6
6
 
7
7
  default:
8
- image: ruby:3.0
9
8
  tags:
10
9
  - gitlab-org
10
+
11
+ .ruby-cache: &ruby-cache
11
12
  cache:
12
13
  key:
13
14
  files:
14
- - Gemfile
15
- - gitlab-triage.gemspec
15
+ - Gemfile.lock
16
16
  paths:
17
17
  - vendor/ruby
18
- - Gemfile.lock
19
18
  policy: pull
19
+
20
+ .use-ruby:
21
+ image: ruby:3.2
22
+ <<: *ruby-cache
23
+ variables:
24
+ BUNDLE_FROZEN: "true"
25
+ BUNDLE_PATH: "vendor"
20
26
  before_script:
21
27
  - ruby --version
22
- - gem install bundler --no-document --version 2.0.2
28
+ - gem install bundler --no-document
23
29
  - bundle --version
24
- - bundle install --jobs $(nproc) --path=vendor --retry 3 --quiet
30
+ - bundle install --jobs $(nproc) --retry 3 --quiet
25
31
  - bundle check
26
32
 
27
33
  workflow:
@@ -33,23 +39,11 @@ workflow:
33
39
  # For tags, create a pipeline.
34
40
  - if: '$CI_COMMIT_TAG'
35
41
 
36
- .use-docker-in-docker:
37
- image: docker:${DOCKER_VERSION}
38
- services:
39
- - docker:${DOCKER_VERSION}-dind
40
- variables:
41
- DOCKER_VERSION: "19.03.0"
42
- DOCKER_DRIVER: overlay2
43
- DOCKER_HOST: tcp://docker:2375
44
- DOCKER_TLS_CERTDIR: ""
45
- tags:
46
- # See https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/7019 for tag descriptions
47
- - gitlab-org-docker
48
-
49
42
  ###################
50
43
  ## Prepare stage ##
51
44
  ###################
52
45
  setup-test-env:
46
+ extends: .use-ruby
53
47
  stage: prepare
54
48
  script:
55
49
  - echo "Setup done!"
@@ -63,6 +57,7 @@ setup-test-env:
63
57
  ## Test stage ##
64
58
  ################
65
59
  rubocop:
60
+ extends: .use-ruby
66
61
  stage: test
67
62
  needs: ["setup-test-env"]
68
63
  dependencies: ["setup-test-env"]
@@ -73,43 +68,26 @@ rubocop:
73
68
  paths:
74
69
  - .cache/rubocop_cache/
75
70
 
76
- # We need to copy this job's definition from the Code-Quality.gitlab-ci.yml
77
- # template because `only` is set without `refs`, so it takes precedence over default workflow rules.
78
- # See https://gitlab.com/gitlab-org/gitlab-ce/issues/66767.
79
- code_quality:
80
- extends: .use-docker-in-docker
81
- stage: test
82
- allow_failure: true
83
- variables:
84
- DOCKER_TLS_CERTDIR: ""
85
- before_script: []
86
- script:
87
- - |
88
- if ! docker info &>/dev/null; then
89
- if [ -z "$DOCKER_HOST" -a "$KUBERNETES_PORT" ]; then
90
- export DOCKER_HOST='tcp://localhost:2375'
91
- fi
92
- fi
93
- - docker run
94
- --env SOURCE_CODE="$PWD"
95
- --volume "$PWD":/code
96
- --volume /var/run/docker.sock:/var/run/docker.sock
97
- "registry.gitlab.com/gitlab-org/security-products/codequality:12-0-stable" /code
98
- artifacts:
99
- reports:
100
- codequality: gl-code-quality-report.json
101
- expire_in: 1 week
102
-
103
71
  specs:
72
+ extends: .use-ruby
104
73
  needs: ["setup-test-env"]
105
74
  stage: test
106
75
  script:
107
76
  - bundle exec rake spec
77
+ image: $RUBY_IMAGE
78
+ parallel:
79
+ matrix:
80
+ - RUBY_IMAGE:
81
+ - ruby:3.0
82
+ - ruby:3.1
83
+ - ruby:3.2
84
+ - ruby:3.3
108
85
 
109
86
  ##################
110
87
  ## Triage stage ##
111
88
  ##################
112
89
  dry-run:gitlab-triage:
90
+ extends: .use-ruby
113
91
  needs: ["setup-test-env"]
114
92
  stage: triage
115
93
  script:
@@ -129,11 +107,35 @@ dry-run:custom:
129
107
  allow_failure: true
130
108
 
131
109
  include:
132
- - template: Security/Dependency-Scanning.gitlab-ci.yml
133
- - template: Security/License-Scanning.gitlab-ci.yml
134
- - template: Security/SAST.gitlab-ci.yml
135
- - template: Security/Secret-Detection.gitlab-ci.yml
136
- - project: 'gitlab-org/quality/pipeline-common'
137
- file:
138
- - '/ci/danger-review.yml'
139
- - '/ci/gem-release.yml'
110
+ - component: gitlab.com/components/code-quality/code-quality@~latest
111
+ - component: gitlab.com/components/sast/sast@~latest
112
+ - component: gitlab.com/components/secret-detection/secret-detection@~latest
113
+ - component: gitlab.com/gitlab-org/components/danger-review/danger-review@~latest
114
+ - component: gitlab.com/gitlab-org/components/gem-release/gem-release@~latest
115
+ - template: Jobs/Dependency-Scanning.gitlab-ci.yml
116
+
117
+ .component-general-rules: &component-general-rules
118
+ rules:
119
+ - if: '$CI_MERGE_REQUEST_IID'
120
+ - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
121
+
122
+ code_quality:
123
+ # We explicitly set dependencies here as the component sets them to []
124
+ # This allows us to get the cache from the setup job that includes the Gemfile.lock
125
+ dependencies: ["setup-test-env"]
126
+ tags:
127
+ - gitlab-org-docker
128
+ # We explicitly override allow_failure here as the component sets it to true
129
+ # Can be moved to a component input after: https://gitlab.com/components/code-quality/-/merge_requests/8
130
+ allow_failure: false
131
+ <<: *ruby-cache
132
+ <<: *component-general-rules
133
+
134
+ semgrep-sast:
135
+ <<: *component-general-rules
136
+
137
+ gemnasium-dependency_scanning:
138
+ <<: *component-general-rules
139
+
140
+ secret_detection:
141
+ <<: *component-general-rules
data/.rubocop.yml CHANGED
@@ -24,3 +24,30 @@ GitlabSecurity/PublicSend:
24
24
  # FIXME: this is not an entirely good practice and we should aim to correct these!
25
25
  # See https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage/-/issues/342
26
26
  - 'spec/**/*.rb'
27
+
28
+ # rationale: no easy autocorrection, makes the specs fail.
29
+ # should be possible to fix with some additional work, but
30
+ # the gains do not seem to be worth the effort.
31
+ RSpec/Rails/TravelAround:
32
+ Enabled: false
33
+
34
+ # rationale: we upload via CI - so this is currently not supported in our workflow.
35
+ # context: https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage/-/merge_requests/313#note_1601520801
36
+ Gemspec/RequireMFA:
37
+ Enabled: false
38
+
39
+ # rationale: it's okay to have empty blocks in specs
40
+ Lint/EmptyBlock:
41
+ Exclude:
42
+ - 'spec/**/*.rb'
43
+
44
+ # rationale: these files do not seem overly harmful to violate this rule,
45
+ # but overall, seems good to keep enabled
46
+ RSpec/IndexedLet:
47
+ Exclude:
48
+ - 'spec/integration/select_issues_by_weight_spec.rb'
49
+ - 'spec/integration/select_merge_requests_by_source_branch_spec.rb'
50
+
51
+ # rationale: Maybe we should? For now, let's keep it disabled and revisit at a later point.
52
+ Rails/Output:
53
+ Enabled: false