checkoff 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 834d9600b69c5f79ba30cbf22a79c66d0a277d517cafe6c2aee32de1c63bb533
4
- data.tar.gz: 5cb97edadfd9aca288f6f1e5d95400c0e291306ffd2f3a76ad003560539b88cb
3
+ metadata.gz: 57e69538d14498144e6587146af712357df75cbc88c9c6ed5aca9179d8c68ad0
4
+ data.tar.gz: a61d58c6cd36f1cab26f8122207f5dfd0744a39bb17429e95b19d8ccd2e65a40
5
5
  SHA512:
6
- metadata.gz: 83050b84c4cc44b0c5992174cfe8f837f985dd361627ed60e81466f9cb14713b87d14508c9d46d997e9887c8944557252a64bd79f3354c04285c852758fd5021
7
- data.tar.gz: '083875c0f26f4309170d036ccec8dc3bb970ddf276916f1744ac0bd1285055de662ac7b29054bceba10fe82baba0ef319731ab32de522fb773a3af824ba687c1'
6
+ metadata.gz: 0cfb597bbd0911486b1b4538ada6ecf9aa708bddc88c14722f554581304093b7278fa7a8204ac3ea96ed48b7ff4cc0b67474839556c05d7f097dff01e3b271d9
7
+ data.tar.gz: e25f408dd5c067c6663a2eec4832c010f40a9423d35f031233c79d232719355a21a3b3232b31c03b0694a4e15b00ad4f3ce243229e8e8a68b6c19cca9dbd5560
data/.circleci/config.yml CHANGED
@@ -1,17 +1,122 @@
1
- version: 2
1
+ ---
2
+ version: 2.1
3
+
4
+ commands:
5
+ set_up_environment:
6
+ description: "Install source environment"
7
+ steps:
8
+ - checkout
9
+ - run: |
10
+ sed -E -e 's/checkoff \([[:digit:]]+.[[:digit:]]+.[[:digit:]]+\)/checkoff (0.1.0)/g' \
11
+ Gemfile.lock > Gemfile.lock.deversioned
12
+ - restore_cache:
13
+ key: gems-v4-{{ checksum "Gemfile.lock.deversioned" }}
14
+ - restore_cache:
15
+ key: ruby-and-python-v4-{{ checksum "fix.sh" }}
16
+ - run:
17
+ name: Initialize packages
18
+ command: |
19
+ export BUNDLE_PATH=vendor/bundle
20
+ './fix.sh'
21
+ - run:
22
+ name: Verify Gemfile.lock
23
+ command: |
24
+ if ! git diff --exit-code Gemfile.lock
25
+ then
26
+ >&2 echo "Please resolve changes to Gemfile.lock after bundle install to avoid caching difficulties"
27
+ exit 1
28
+ fi
29
+ - save_cache:
30
+ key: ruby-and-python-v4-{{ checksum "fix.sh" }}
31
+ paths:
32
+ - "/home/circleci/.rbenv"
33
+ - "/home/circleci/.pyenv"
34
+ - save_cache:
35
+ key: gems-v4-{{ checksum "Gemfile.lock.deversioned" }}
36
+ paths:
37
+ - "vendor/bundle"
38
+ - run:
39
+ name: Download new circleci tool
40
+ command: |
41
+ curl -fLSs \
42
+ https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | sudo bash
43
+ overcommit:
44
+ description: "Run overcommit"
45
+ steps:
46
+ - set_up_environment
47
+ - run:
48
+ name: Download new circleci tool
49
+ command: |
50
+ curl -fLSs \
51
+ https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | sudo bash
52
+ - run:
53
+ name: Run overcommit
54
+ command: |
55
+ export PATH="${HOME}/.pyenv/bin:${PATH}"
56
+ export PATH="${HOME}/.rbenv/bin:${HOME}/.rbenv/shims:${PATH}"
57
+ eval "$(pyenv init -)"
58
+ eval "$(pyenv virtualenv-init -)"
59
+ eval "$(rbenv init -)"
60
+ export BUNDLE_PATH=vendor/bundle
61
+ # Coax overcommit into working
62
+ git config --global user.email "test@test.test"
63
+ git config --global user.name "Test Test"
64
+ bundle exec overcommit --sign
65
+ bundle exec overcommit --sign pre-commit
66
+
67
+ bundle exec overcommit --run
68
+ environment:
69
+ # https://app.circleci.com/pipelines/github/apiology/cookiecutter-pypackage/4/workflows/29074dc8-944c-4600-8aaa-5116575fed90/jobs/4
70
+ "LC_ALL": "C.UTF-8"
71
+ "LANG": "C.UTF-8"
72
+
2
73
  jobs:
74
+ overcommit:
75
+ docker:
76
+ - image: apiology/circleci:latest
77
+ steps:
78
+ - when:
79
+ condition:
80
+ equal: [<< pipeline.git.branch >>, "main"]
81
+ steps:
82
+ - overcommit
83
+ - unless:
84
+ condition:
85
+ equal: [<< pipeline.git.branch >>, "main"]
86
+ steps:
87
+ - run: echo "overcommit only runs on main branch"
3
88
  build:
4
89
  working_directory: ~/checkoff
5
90
  docker:
6
- - image: apiology/circleci-ruby:latest
91
+ - image: apiology/circleci:latest
7
92
  steps:
8
- - checkout
9
- - type: cache-restore
10
- key: checkoff-{{ checksum "checkoff.gemspec" }}-{{ checksum "Gemfile" }}
11
- - run: gem install --no-document bundler
12
- - run: bundle install --path vendor/bundle --jobs=4
13
- - type: cache-save
14
- key: checkoff-{{ checksum "checkoff.gemspec" }}-{{ checksum "Gemfile" }}
15
- paths:
16
- - "vendor/bundle"
17
- - run: bundle exec rake --jobs=4 ci
93
+ - set_up_environment
94
+ - run:
95
+ command: |
96
+ export PATH="${HOME}/.pyenv/bin:${PATH}"
97
+ export PATH="${HOME}/.rbenv/bin:${HOME}/.rbenv/shims:${PATH}"
98
+ eval "$(pyenv init -)"
99
+ eval "$(pyenv virtualenv-init -)"
100
+ eval "$(rbenv init -)"
101
+ export BUNDLE_PATH=vendor/bundle
102
+
103
+ make test
104
+
105
+ workflows:
106
+ version: 2
107
+ weekly:
108
+ triggers:
109
+ - schedule:
110
+ cron: "0 0 * * 6"
111
+ filters:
112
+ branches:
113
+ only:
114
+ - main
115
+ jobs:
116
+ - build
117
+ overcommit:
118
+ jobs:
119
+ - overcommit
120
+ build:
121
+ jobs:
122
+ - build
data/.envrc CHANGED
@@ -1,2 +1,2 @@
1
1
  PATH_add bin
2
- eval $(with-op op-env sh)
2
+ eval $(with-op op-env sh -e ASANA__PERSONAL_ACCESS_TOKEN)
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Overcommit
4
+ module Hook
5
+ module PreCommit
6
+ # CircleCI plugin for Overcommit to validate config file (.circleci/config.yml)
7
+ class CircleCi < Base
8
+ def run
9
+ result = execute(command)
10
+ return :pass if result.success?
11
+
12
+ if result.success?
13
+ :pass
14
+ else
15
+ [:fail, result.stderr]
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
data/.gitignore CHANGED
@@ -1,12 +1,52 @@
1
+ # OSX useful to ignore
2
+ *.DS_Store
3
+ .AppleDouble
4
+ .LSOverride
5
+
6
+ # Thumbnails
7
+ ._*
8
+
9
+ # Files that might appear in the root of a volume
10
+ .DocumentRevisions-V100
11
+ .fseventsd
12
+ .Spotlight-V100
13
+ .TemporaryItems
14
+ .Trashes
15
+ .VolumeIcon.icns
16
+ .com.apple.timemachine.donotpresent
17
+
18
+ # Directories potentially created on remote AFP share
19
+ .AppleDB
20
+ .AppleDesktop
21
+ Network Trash Folder
22
+ Temporary Items
23
+ .apdisk
24
+
25
+ # IntelliJ Idea family of suites
26
+ .idea
27
+ *.iml
28
+ ## File-based project format:
29
+ *.ipr
30
+ *.iws
31
+ ## mpeltonen/sbt-idea plugin
32
+ .idea_modules/
33
+
34
+ # IDE settings
35
+ .vscode/
36
+
37
+ # Installed by fix.sh based on what latest versions are
38
+ /.python-version
39
+
40
+ # Ruby-related
1
41
  /.bundle/
2
42
  /.yardoc
3
- /Gemfile.lock
4
43
  /_yardoc/
5
44
  /doc/
6
45
  /pkg/
7
46
  /spec/reports/
8
47
  /tmp/
9
48
  /coverage/.resultset.json
49
+ /coverage/.resultset.json.lock
10
50
  /coverage/assets/
11
51
  /coverage/index.html
12
52
  /pkg
data/.overcommit.yml CHANGED
@@ -1,3 +1,4 @@
1
+ ---
1
2
  # Use this file to configure the Overcommit hooks you wish to use. This will
2
3
  # extend the default configuration defined in:
3
4
  # https://github.com/sds/overcommit/blob/master/config/default.yml
@@ -19,18 +20,29 @@ PreCommit:
19
20
  RuboCop:
20
21
  enabled: true
21
22
  on_warn: fail # Treat all warnings as failures
22
- #
23
- # TrailingWhitespace:
24
- # enabled: true
25
- # exclude:
26
- # - '**/db/structure.sql' # Ignore trailing whitespace in generated files
27
- #
28
- #PostCheckout:
29
- # ALL: # Special hook name that customizes all hooks of this type
30
- # quiet: true # Change all post-checkout hooks to only display output on failure
31
- #
32
- # IndexTags:
33
- # enabled: true # Generate a tags file with `ctags` each time HEAD changes
23
+ command: ['bundle', 'exec', 'rubocop']
24
+ include:
25
+ - '**/*.gemspec'
26
+ - '**/*.rake'
27
+ - '**/*.rb'
28
+ - '**/*.ru'
29
+ - '**/Gemfile'
30
+ - '**/Rakefile'
31
+ - 'bin/*'
32
+ PythonFlake8:
33
+ enabled: true
34
+ ShellCheck:
35
+ enabled: true
36
+ on_warn: fail
37
+ YamlLint:
38
+ enabled: true
39
+ on_warn: fail
40
+ CircleCi:
41
+ required_executable: 'circleci'
42
+ flags: ['config', 'validate']
43
+ include:
44
+ - '.circleci/config.yml'
45
+ enabled: true
34
46
 
35
47
  PrePush:
36
48
  Minitest:
data/.rubocop.yml CHANGED
@@ -1,30 +1,55 @@
1
- # I like trailing commas in hashes. They let me insert new elements and
2
- # see them as one line in a diff, not two.
3
- Style/TrailingCommaInHashLiteral:
4
- EnforcedStyleForMultiline: comma
1
+ ---
2
+ Layout/LineLength:
3
+ Max: 120
5
4
 
6
- Style/TrailingCommaInArrayLiteral:
7
- EnforcedStyleForMultiline: comma
5
+ Layout/MultilineMethodCallIndentation:
6
+ EnforcedStyle: indented
7
+
8
+ Lint/UnusedMethodArgument:
9
+ AllowUnusedKeywordArguments: true
10
+
11
+ # https://stackoverflow.com/questions/40934345/rubocop-25-line-block-size-and-rspec-tests
12
+ Metrics/BlockLength:
13
+ # Exclude DSLs
14
+ Exclude:
15
+ - 'Rakefile'
16
+ - '*.gemspec'
17
+ - '**/*.rake'
18
+ - 'spec/**/*.rb'
19
+ - 'feature/**/*.rb'
8
20
 
9
21
  # I use keyword arguments for a poor man's dependency injection to cut
10
22
  # down on the magic in my tests.
11
23
  Metrics/ParameterLists:
12
24
  CountKeywordArgs: false
13
25
 
14
- # If I'm using one function name and returning the contents of an
15
- # attribute, that's OK. The alternative would be this, which I find
16
- # confusing and often not really what I mean:
26
+ # Can try removing this after I have a release installed with this
27
+ # fix (probably in rubocop-minitest 0.10.3):
17
28
  #
18
- # attr_reader :something_else
19
- # alias_method :something, :something_else
20
- Style/TrivialAccessors:
21
- ExactNameMatch: true
29
+ # https://github.com/rubocop-hq/rubocop-minitest/pull/116
30
+ Minitest/TestMethodName:
31
+ Enabled: false
32
+
33
+ Naming/HeredocDelimiterNaming:
34
+ Enabled: false
35
+
36
+ Naming/MethodParameterName:
37
+ Enabled: true
38
+ AllowedNames:
39
+ # I don't think things on this list are a terribly hard convention
40
+ # for folks to learn. bbatsov also doesn't care much for this
41
+ # check:
42
+ #
43
+ # https://github.com/rubocop-hq/rubocop/issues/3666
44
+ - e # exception
45
+ - x # cartesian coordinates
46
+ - y # cartesian coordinates
22
47
 
23
48
  #
24
49
  # Add 'XX X' to the standard list
25
50
  #
26
51
  Style/CommentAnnotation:
27
- Keywords:
52
+ Keywords:
28
53
  - "TOD\
29
54
  O"
30
55
  - "FIXM\
@@ -38,167 +63,36 @@ Style/CommentAnnotation:
38
63
  - "XX\
39
64
  X"
40
65
 
41
- # https://stackoverflow.com/questions/40934345/rubocop-25-line-block-size-and-rspec-tests
42
- Metrics/BlockLength:
43
- # Exclude DSLs
44
- Exclude:
45
- - 'Rakefile'
46
- - '*.gemspec'
47
- - '**/*.rake'
48
- - 'spec/**/*.rb'
49
- - 'feature/**/*.rb'
66
+ Style/StringLiterals:
67
+ EnforcedStyle: single_quotes
68
+ SupportedStyles:
69
+ - single_quotes
70
+ - double_quotes
71
+ ConsistentQuotesInMultiline: true
50
72
 
51
- # http://www.betterspecs.org/#single
52
- #
53
- # > in tests that are not isolated (e.g. ones that integrate with a
54
- # > DB, an external webservice, or end-to-end-tests), you take a
55
- # > massive performance hit to do the same setup over and over again,
56
- # > just to set a different expectation in each test. In these sorts
57
- # > of slower tests, I think it's fine to specify more than one
58
- # > isolated behavior.
59
- RSpec/MultipleExpectations:
60
- Exclude:
61
- - 'feature/**/*.rb'
73
+ # I like trailing commas in arrays and hashes. They let me insert new
74
+ # elements and see them as one line in a diff, not two.
75
+ Style/TrailingCommaInArrayLiteral:
76
+ EnforcedStyleForMultiline: comma
62
77
 
63
- Style/StringLiterals:
64
- EnforcedStyle: single_quotes
65
- SupportedStyles:
66
- - single_quotes
67
- - double_quotes
68
- ConsistentQuotesInMultiline: true
78
+ Style/TrailingCommaInHashLiteral:
79
+ EnforcedStyleForMultiline: comma
69
80
 
70
- Layout/BeginEndAlignment: # (new in 0.91)
71
- Enabled: true
72
- Layout/EmptyLinesAroundAttributeAccessor: # (new in 0.83)
73
- Enabled: true
74
- Layout/SpaceAroundMethodCallOperator: # (new in 0.82)
75
- Enabled: true
76
- Lint/BinaryOperatorWithIdenticalOperands: # (new in 0.89)
77
- Enabled: true
78
- Lint/ConstantDefinitionInBlock: # (new in 0.91)
79
- Enabled: true
80
- Lint/DeprecatedOpenSSLConstant: # (new in 0.84)
81
- Enabled: true
82
- Lint/DuplicateElsifCondition: # (new in 0.88)
83
- Enabled: true
84
- Lint/DuplicateRequire: # (new in 0.90)
85
- Enabled: true
86
- Lint/DuplicateRescueException: # (new in 0.89)
87
- Enabled: true
88
- Lint/EmptyConditionalBody: # (new in 0.89)
89
- Enabled: true
90
- Lint/EmptyFile: # (new in 0.90)
91
- Enabled: true
92
- Lint/FloatComparison: # (new in 0.89)
93
- Enabled: true
94
- Lint/IdentityComparison: # (new in 0.91)
95
- Enabled: true
96
- Lint/MissingSuper: # (new in 0.89)
97
- Enabled: true
98
- Lint/MixedRegexpCaptureTypes: # (new in 0.85)
99
- Enabled: true
100
- Lint/OutOfRangeRegexpRef: # (new in 0.89)
101
- Enabled: true
102
- Lint/RaiseException: # (new in 0.81)
103
- Enabled: true
104
- Lint/SelfAssignment: # (new in 0.89)
105
- Enabled: true
106
- Lint/StructNewOverride: # (new in 0.81)
107
- Enabled: true
108
- Lint/TopLevelReturnWithArgument: # (new in 0.89)
109
- Enabled: true
110
- Lint/TrailingCommaInAttributeDeclaration: # (new in 0.90)
111
- Enabled: true
112
- Lint/UnreachableLoop: # (new in 0.89)
113
- Enabled: true
114
- Lint/UselessMethodDefinition: # (new in 0.90)
115
- Enabled: true
116
- Lint/UselessTimes: # (new in 0.91)
117
- Enabled: true
118
- Style/AccessorGrouping: # (new in 0.87)
119
- Enabled: true
120
- Style/BisectedAttrAccessor: # (new in 0.87)
121
- Enabled: true
122
- Style/CaseLikeIf: # (new in 0.88)
123
- Enabled: true
124
- Style/CombinableLoops: # (new in 0.90)
125
- Enabled: true
126
- Style/ExplicitBlockArgument: # (new in 0.89)
127
- Enabled: true
128
- Style/ExponentialNotation: # (new in 0.82)
129
- Enabled: true
130
- Style/GlobalStdStream: # (new in 0.89)
131
- Enabled: true
132
- Style/HashAsLastArrayItem: # (new in 0.88)
133
- Enabled: true
134
- Style/HashEachMethods: # (new in 0.80)
135
- Enabled: true
136
- Style/HashLikeCase: # (new in 0.88)
137
- Enabled: true
138
- Style/HashTransformKeys: # (new in 0.80)
139
- Enabled: true
140
- Style/HashTransformValues: # (new in 0.80)
141
- Enabled: true
142
- Style/KeywordParametersOrder: # (new in 0.90)
143
- Enabled: true
144
- Style/OptionalBooleanParameter: # (new in 0.89)
145
- Enabled: true
146
- Style/RedundantAssignment: # (new in 0.87)
147
- Enabled: true
148
- Style/RedundantFetchBlock: # (new in 0.86)
149
- Enabled: true
150
- Style/RedundantFileExtensionInRequire: # (new in 0.88)
151
- Enabled: true
152
- Style/RedundantRegexpCharacterClass: # (new in 0.85)
153
- Enabled: true
154
- Style/RedundantRegexpEscape: # (new in 0.85)
155
- Enabled: true
156
- Style/RedundantSelfAssignment: # (new in 0.90)
157
- Enabled: true
158
- Style/SingleArgumentDig: # (new in 0.89)
159
- Enabled: true
160
- Style/SlicingWithRange: # (new in 0.83)
161
- Enabled: true
162
- Style/SoleNestedConditional: # (new in 0.89)
163
- Enabled: true
164
- Style/StringConcatenation: # (new in 0.89)
165
- Enabled: true
166
- Minitest/AssertInDelta: # (new in 0.10)
167
- Enabled: true
168
- Minitest/AssertionInLifecycleHook: # (new in 0.10)
169
- Enabled: true
170
- Minitest/AssertKindOf: # (new in 0.10)
171
- Enabled: true
172
- Minitest/AssertOutput: # (new in 0.10)
173
- Enabled: true
174
- Minitest/AssertPathExists: # (new in 0.10)
175
- Enabled: true
176
- Minitest/AssertSilent: # (new in 0.10)
177
- Enabled: true
178
- Minitest/LiteralAsActualArgument: # (new in 0.10)
179
- Enabled: true
180
- Minitest/MultipleAssertions: # (new in 0.10)
181
- Enabled: true
182
- Minitest/RefuteInDelta: # (new in 0.10)
183
- Enabled: true
184
- Minitest/RefuteKindOf: # (new in 0.10)
185
- Enabled: true
186
- Minitest/RefutePathExists: # (new in 0.10)
187
- Enabled: true
188
- Minitest/TestMethodName: # (new in 0.10)
189
- # This gives false positives when non-test methods exist...
190
- Enabled: false
191
- Minitest/UnspecifiedException: # (new in 0.10)
192
- Enabled: true
193
- RSpec/StubbedMock: # (new in 1.44)
194
- Enabled: true
81
+ # If I'm using one function name and returning the contents of an
82
+ # attribute, that's OK. The alternative would be this, which I find
83
+ # confusing and often not really what I mean:
84
+ #
85
+ # attr_reader :something_else
86
+ # alias_method :something, :something_else
87
+ Style/TrivialAccessors:
88
+ ExactNameMatch: true
195
89
 
196
90
  AllCops:
91
+ NewCops: enable
197
92
  TargetRubyVersion: 2.5
198
93
  Exclude:
199
94
  - 'bin/*'
200
95
 
201
96
  require:
202
- - rubocop-rspec
203
- - rubocop-minitest
204
97
  - rubocop-rake
98
+ - rubocop-minitest