gitlab-triage 1.42.2 → 1.43.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.git-blame-ignore-revs +43 -0
  3. data/.gitlab-ci.yml +51 -50
  4. data/.rubocop.yml +27 -0
  5. data/.rubocop_todo.yml +6 -442
  6. data/.ruby-version +1 -1
  7. data/.tool-versions +1 -1
  8. data/Gemfile +2 -0
  9. data/Guardfile +2 -0
  10. data/Rakefile +2 -0
  11. data/bin/gitlab-triage +1 -0
  12. data/gitlab-triage.gemspec +5 -2
  13. data/lib/gitlab/triage/action/base.rb +5 -3
  14. data/lib/gitlab/triage/action.rb +2 -0
  15. data/lib/gitlab/triage/api_query_builders/base_query_param_builder.rb +2 -0
  16. data/lib/gitlab/triage/api_query_builders/date_query_param_builder.rb +3 -1
  17. data/lib/gitlab/triage/api_query_builders/multi_query_param_builder.rb +2 -0
  18. data/lib/gitlab/triage/api_query_builders/single_query_param_builder.rb +2 -0
  19. data/lib/gitlab/triage/command_builders/base_command_builder.rb +2 -0
  20. data/lib/gitlab/triage/command_builders/cc_command_builder.rb +2 -0
  21. data/lib/gitlab/triage/command_builders/comment_command_builder.rb +2 -0
  22. data/lib/gitlab/triage/command_builders/label_command_builder.rb +3 -1
  23. data/lib/gitlab/triage/command_builders/move_command_builder.rb +2 -0
  24. data/lib/gitlab/triage/command_builders/remove_label_command_builder.rb +2 -0
  25. data/lib/gitlab/triage/command_builders/status_command_builder.rb +2 -0
  26. data/lib/gitlab/triage/command_builders/text_content_builder.rb +2 -2
  27. data/lib/gitlab/triage/engine.rb +7 -2
  28. data/lib/gitlab/triage/errors/network.rb +2 -0
  29. data/lib/gitlab/triage/errors.rb +2 -0
  30. data/lib/gitlab/triage/expand_condition/expansion.rb +2 -0
  31. data/lib/gitlab/triage/expand_condition/list.rb +3 -1
  32. data/lib/gitlab/triage/expand_condition/sequence.rb +3 -1
  33. data/lib/gitlab/triage/expand_condition.rb +2 -0
  34. data/lib/gitlab/triage/filters/assignee_member_conditions_filter.rb +2 -0
  35. data/lib/gitlab/triage/filters/author_member_conditions_filter.rb +2 -0
  36. data/lib/gitlab/triage/filters/base_conditions_filter.rb +3 -3
  37. data/lib/gitlab/triage/filters/branch_date_filter.rb +2 -0
  38. data/lib/gitlab/triage/filters/branch_protected_filter.rb +2 -0
  39. data/lib/gitlab/triage/filters/discussions_conditions_filter.rb +2 -0
  40. data/lib/gitlab/triage/filters/issue_date_conditions_filter.rb +2 -0
  41. data/lib/gitlab/triage/filters/member_conditions_filter.rb +4 -4
  42. data/lib/gitlab/triage/filters/merge_request_date_conditions_filter.rb +2 -0
  43. data/lib/gitlab/triage/filters/name_conditions_filter.rb +2 -0
  44. data/lib/gitlab/triage/filters/no_additional_labels_conditions_filter.rb +2 -0
  45. data/lib/gitlab/triage/filters/ruby_conditions_filter.rb +2 -0
  46. data/lib/gitlab/triage/filters/votes_conditions_filter.rb +2 -0
  47. data/lib/gitlab/triage/graphql_network.rb +2 -0
  48. data/lib/gitlab/triage/graphql_queries/query_builder.rb +3 -1
  49. data/lib/gitlab/triage/graphql_queries/query_param_builders/array_param_builder.rb +2 -0
  50. data/lib/gitlab/triage/graphql_queries/query_param_builders/base_param_builder.rb +2 -0
  51. data/lib/gitlab/triage/graphql_queries/query_param_builders/date_param_builder.rb +3 -1
  52. data/lib/gitlab/triage/limiters/base_limiter.rb +2 -0
  53. data/lib/gitlab/triage/limiters/date_field_limiter.rb +2 -0
  54. data/lib/gitlab/triage/network.rb +2 -0
  55. data/lib/gitlab/triage/network_adapters/base_adapter.rb +2 -0
  56. data/lib/gitlab/triage/network_adapters/graphql_adapter.rb +2 -0
  57. data/lib/gitlab/triage/network_adapters/httparty_adapter.rb +2 -0
  58. data/lib/gitlab/triage/network_adapters/test_adapter.rb +3 -1
  59. data/lib/gitlab/triage/option_parser.rb +2 -0
  60. data/lib/gitlab/triage/options.rb +2 -0
  61. data/lib/gitlab/triage/param_builders/date_param_builder.rb +2 -0
  62. data/lib/gitlab/triage/resource/base.rb +3 -0
  63. data/lib/gitlab/triage/resource/instance_version.rb +2 -0
  64. data/lib/gitlab/triage/resource/milestone.rb +2 -0
  65. data/lib/gitlab/triage/rest_api_network.rb +2 -0
  66. data/lib/gitlab/triage/retryable.rb +2 -0
  67. data/lib/gitlab/triage/ui.rb +2 -0
  68. data/lib/gitlab/triage/url_builders/url_builder.rb +2 -0
  69. data/lib/gitlab/triage/utils.rb +2 -0
  70. data/lib/gitlab/triage/validators/limiter_validator.rb +3 -3
  71. data/lib/gitlab/triage/validators/params_validator.rb +3 -3
  72. data/lib/gitlab/triage/version.rb +1 -1
  73. data/lib/gitlab/triage.rb +2 -0
  74. metadata +11 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d705552fab77f42d9e1ebda9904fe44eb20e492fbafd90974d9128a386f6a13
4
- data.tar.gz: a2f2ee59444bed7c6a1f9216f166bf5c859e805bbd2ab67d18e6d39defbd6f41
3
+ metadata.gz: 95d1d38e50b3032593baffe5e3122da139f542294529cadaaffa5e2861d0a428
4
+ data.tar.gz: 83ac90f1c5815c5a39a6cb5d3d84b34112a1a3a72f2dd9a9481291bc171648c3
5
5
  SHA512:
6
- metadata.gz: 410ee77b0892b8ab5de4bf8f143e1dd4b6a0957288f2b4022e562fb8cdd1f8b1c089b3466a9140dc4cab1aa6e46ff3f1eea7689953691deac905191d7390f863
7
- data.tar.gz: 0dd940ceca61a8966f1feb4d9c9442e06f71538fed657703720b7e118674900419c1af26e4d479b59f97dbc8386b94e90ebb95bdee8a86138406a355bb2c5783
6
+ metadata.gz: 8d0aef0429e6892959468c199b0bddbb18ecf02bf864ee038f59b01f35e779a200724e8841b3f603add6267a5a6b3c7746520d10bc48d77c2a6a025e5d3ddaa2
7
+ data.tar.gz: 70ea6376e7855ce5ac2207d0f0dc779d8d4e32eb800192c5d3ec8cbfa546425797087525c6a281bfd5513b4d8d4619cf6a81e7fd2e59b7c48d77972653ca5b37
@@ -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/.gitlab-ci.yml CHANGED
@@ -5,9 +5,10 @@ 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:
@@ -17,9 +18,13 @@ default:
17
18
  - vendor/ruby
18
19
  - Gemfile.lock
19
20
  policy: pull
21
+
22
+ .use-ruby:
23
+ image: ruby:3.2
24
+ <<: *ruby-cache
20
25
  before_script:
21
26
  - ruby --version
22
- - gem install bundler --no-document --version 2.0.2
27
+ - gem install bundler --no-document
23
28
  - bundle --version
24
29
  - bundle install --jobs $(nproc) --path=vendor --retry 3 --quiet
25
30
  - bundle check
@@ -33,23 +38,11 @@ workflow:
33
38
  # For tags, create a pipeline.
34
39
  - if: '$CI_COMMIT_TAG'
35
40
 
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
41
  ###################
50
42
  ## Prepare stage ##
51
43
  ###################
52
44
  setup-test-env:
45
+ extends: .use-ruby
53
46
  stage: prepare
54
47
  script:
55
48
  - echo "Setup done!"
@@ -63,6 +56,7 @@ setup-test-env:
63
56
  ## Test stage ##
64
57
  ################
65
58
  rubocop:
59
+ extends: .use-ruby
66
60
  stage: test
67
61
  needs: ["setup-test-env"]
68
62
  dependencies: ["setup-test-env"]
@@ -73,43 +67,26 @@ rubocop:
73
67
  paths:
74
68
  - .cache/rubocop_cache/
75
69
 
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
70
  specs:
71
+ extends: .use-ruby
104
72
  needs: ["setup-test-env"]
105
73
  stage: test
106
74
  script:
107
75
  - bundle exec rake spec
76
+ image: $RUBY_IMAGE
77
+ parallel:
78
+ matrix:
79
+ - RUBY_IMAGE:
80
+ - ruby:3.0
81
+ - ruby:3.1
82
+ - ruby:3.2
83
+ - ruby:3.3
108
84
 
109
85
  ##################
110
86
  ## Triage stage ##
111
87
  ##################
112
88
  dry-run:gitlab-triage:
89
+ extends: .use-ruby
113
90
  needs: ["setup-test-env"]
114
91
  stage: triage
115
92
  script:
@@ -129,11 +106,35 @@ dry-run:custom:
129
106
  allow_failure: true
130
107
 
131
108
  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'
109
+ - component: gitlab.com/components/code-quality/code-quality@~latest
110
+ - component: gitlab.com/components/sast/sast@~latest
111
+ - component: gitlab.com/components/secret-detection/secret-detection@~latest
112
+ - component: gitlab.com/gitlab-org/components/danger-review/danger-review@~latest
113
+ - component: gitlab.com/gitlab-org/components/gem-release/gem-release@~latest
114
+ - template: Jobs/Dependency-Scanning.gitlab-ci.yml
115
+
116
+ .component-general-rules: &component-general-rules
117
+ rules:
118
+ - if: '$CI_MERGE_REQUEST_IID'
119
+ - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
120
+
121
+ code_quality:
122
+ # We explicitly set dependencies here as the component sets them to []
123
+ # This allows us to get the cache from the setup job that includes the Gemfile.lock
124
+ dependencies: ["setup-test-env"]
125
+ tags:
126
+ - gitlab-org-docker
127
+ # We explicitly override allow_failure here as the component sets it to true
128
+ # Can be moved to a component input after: https://gitlab.com/components/code-quality/-/merge_requests/8
129
+ allow_failure: false
130
+ <<: *ruby-cache
131
+ <<: *component-general-rules
132
+
133
+ semgrep-sast:
134
+ <<: *component-general-rules
135
+
136
+ gemnasium-dependency_scanning:
137
+ <<: *component-general-rules
138
+
139
+ secret_detection:
140
+ <<: *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