git_lib 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.dependabot/config.yml +10 -0
- data/.github/workflows/gem_release.yml +37 -0
- data/.gitignore +53 -0
- data/.jenkins/Jenkinsfile +72 -0
- data/.jenkins/ruby_build_pod.yml +19 -0
- data/.rspec +3 -0
- data/.rubocop.yml +43 -0
- data/.ruby-version +1 -0
- data/Appraisals +13 -0
- data/CHANGELOG.md +24 -0
- data/Gemfile +21 -0
- data/Gemfile.lock +121 -0
- data/README.md +9 -0
- data/Rakefile +17 -0
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/rails_4.gemfile +21 -0
- data/gemfiles/rails_5.gemfile +21 -0
- data/gemfiles/rails_6.gemfile +21 -0
- data/git_lib.gemspec +25 -0
- data/lib/git/git.rb +186 -0
- data/lib/git/git_branch.rb +35 -0
- data/lib/git/git_commit.rb +23 -0
- data/lib/git/git_conflict.rb +29 -0
- data/lib/git/git_error.rb +14 -0
- data/lib/git/git_test_helpers.rb +38 -0
- data/lib/git/version.rb +5 -0
- data/lib/git_lib.rb +7 -0
- data/spec/lib/git/git_branch_spec.rb +57 -0
- data/spec/lib/git/git_conflict_spec.rb +50 -0
- data/spec/lib/git/git_error_spec.rb +19 -0
- data/spec/lib/git/git_spec.rb +436 -0
- data/spec/spec_helper.rb +30 -0
- metadata +100 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2c3b82cc9214aa0d0faecd8aa639ae16fee57179d0be17aebc365ebebe52e43f
|
4
|
+
data.tar.gz: 24b88e76619b9ab4138ebe07eca7c849f09377a2eec21afe384545d6e674df61
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: eb5e0a487b3adad39dc3bc3d3f3fe94097a143ea0d7fdbccef27d1f5515a4612e98ecd44251d7926b5c4d51aeffd1a0efd819db024564574089dc7428cb9b6f2
|
7
|
+
data.tar.gz: 75f854dba8e98489dc373fd829c8792ba8fc581624f5b5191bce97978dba6eade70e89b42a4b16a20ef76f784f42f8c08984841eb246b6647e0e49b11471db92
|
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
tags:
|
5
|
+
- 'v*'
|
6
|
+
|
7
|
+
name: Create Release
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
name: Create Release
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
steps:
|
14
|
+
- name: Get version from tag
|
15
|
+
id: tag_name
|
16
|
+
shell: bash
|
17
|
+
run: |
|
18
|
+
echo ::set-output name=current_version::${GITHUB_REF#refs/tags/v}
|
19
|
+
- name: Checkout code
|
20
|
+
uses: actions/checkout@v2
|
21
|
+
- name: Get Changelog Entry
|
22
|
+
id: changelog_reader
|
23
|
+
uses: mindsers/changelog-reader-action@v1
|
24
|
+
with:
|
25
|
+
version: ${{ steps.tag_name.outputs.current_version }}
|
26
|
+
path: ./CHANGELOG.md
|
27
|
+
- name: Create Release
|
28
|
+
id: create_release
|
29
|
+
uses: actions/create-release@v1
|
30
|
+
env:
|
31
|
+
GITHUB_TOKEN: ${{ secrets.GEM_RELEASE_GIT_TOKEN }}
|
32
|
+
with:
|
33
|
+
tag_name: ${{ github.ref }}
|
34
|
+
release_name: Release ${{ github.ref }}
|
35
|
+
body: ${{ steps.changelog_reader.outputs.log_entry }}
|
36
|
+
draft: false
|
37
|
+
prerelease: false
|
data/.gitignore
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
/*.pem
|
4
|
+
/.config
|
5
|
+
/coverage/
|
6
|
+
/InstalledFiles
|
7
|
+
/pkg/
|
8
|
+
/spec/reports/
|
9
|
+
/test/tmp/
|
10
|
+
/test/version_tmp/
|
11
|
+
/tmp/
|
12
|
+
*secrets*
|
13
|
+
/shared/
|
14
|
+
|
15
|
+
## Specific to RubyMotion:
|
16
|
+
.dat*
|
17
|
+
.repl_history
|
18
|
+
build/
|
19
|
+
shared/
|
20
|
+
|
21
|
+
## Documentation cache and generated files:
|
22
|
+
/.yardoc/
|
23
|
+
/_yardoc/
|
24
|
+
/doc/
|
25
|
+
/rdoc/
|
26
|
+
|
27
|
+
## Environment normalisation:
|
28
|
+
/.bundle/
|
29
|
+
/vendor/bundle
|
30
|
+
/lib/bundler/man/
|
31
|
+
|
32
|
+
# for a library or gem, you might want to ignore these files since the code is
|
33
|
+
# intended to run in multiple environments; otherwise, check them in:
|
34
|
+
# Gemfile.lock
|
35
|
+
# .ruby-version
|
36
|
+
# .ruby-gemset
|
37
|
+
|
38
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
39
|
+
.rvmrc
|
40
|
+
|
41
|
+
# rubymine
|
42
|
+
.idea
|
43
|
+
|
44
|
+
# mac
|
45
|
+
.DS_Store
|
46
|
+
|
47
|
+
# Ignore all logfiles and tempfiles.
|
48
|
+
/log/*
|
49
|
+
!/log/.keep
|
50
|
+
/tmp
|
51
|
+
/log
|
52
|
+
|
53
|
+
gemfiles/*.lock
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#!/usr/bin/groovy
|
2
|
+
@Library('jenkins-pipeline@v0.4.5')
|
3
|
+
import com.invoca.docker.*;
|
4
|
+
|
5
|
+
pipeline {
|
6
|
+
agent {
|
7
|
+
kubernetes {
|
8
|
+
defaultContainer "ruby"
|
9
|
+
yamlFile ".jenkins/ruby_build_pod.yml"
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
environment {
|
14
|
+
GITHUB_TOKEN = credentials('github_token')
|
15
|
+
BUNDLE_GEM__FURY__IO = credentials('gemfury_deploy_token')
|
16
|
+
}
|
17
|
+
|
18
|
+
stages {
|
19
|
+
stage('Setup') {
|
20
|
+
steps {
|
21
|
+
updateGitHubStatus('clean-build', 'pending', 'Running unit tests...')
|
22
|
+
sh 'bundle install'
|
23
|
+
sh 'bundle exec appraisal install'
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
stage('Appraisals') {
|
28
|
+
parallel {
|
29
|
+
stage('Current') {
|
30
|
+
environment { JUNIT_OUTPUT = 'spec/reports/current/rspec.xml' }
|
31
|
+
steps { sh 'bundle exec rspec' }
|
32
|
+
post { always { junit JUNIT_OUTPUT } }
|
33
|
+
}
|
34
|
+
|
35
|
+
stage('Rails 4') {
|
36
|
+
environment { JUNIT_OUTPUT = 'spec/reports/rails-4/rspec.xml' }
|
37
|
+
steps { sh 'bundle exec appraisal rails-4 rspec' }
|
38
|
+
post { always { junit JUNIT_OUTPUT } }
|
39
|
+
}
|
40
|
+
|
41
|
+
stage('Rails 5') {
|
42
|
+
environment { JUNIT_OUTPUT = 'spec/reports/rails-5/rspec.xml' }
|
43
|
+
steps { sh 'bundle exec appraisal rails-5 rspec' }
|
44
|
+
post { always { junit JUNIT_OUTPUT } }
|
45
|
+
}
|
46
|
+
|
47
|
+
stage('Rails 6') {
|
48
|
+
environment { JUNIT_OUTPUT = 'spec/reports/rails-6/rspec.xml' }
|
49
|
+
steps { sh 'bundle exec appraisal rails-6 rspec' }
|
50
|
+
post { always { junit JUNIT_OUTPUT } }
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
post {
|
57
|
+
success { updateGitHubStatus('clean-build', 'success', 'Unit tests passed') }
|
58
|
+
failure { updateGitHubStatus('clean-build', 'failure', 'Unit tests failed') }
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
void updateGitHubStatus(String context, String status, String description) {
|
63
|
+
gitHubStatus([
|
64
|
+
repoSlug: 'Invoca/git_lib',
|
65
|
+
sha: env.GIT_COMMIT,
|
66
|
+
description: description,
|
67
|
+
context: context,
|
68
|
+
targetURL: env.RUN_DISPLAY_URL,
|
69
|
+
token: env.GITHUB_TOKEN,
|
70
|
+
status: status
|
71
|
+
])
|
72
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
apiVersion: v1
|
3
|
+
kind: Pod
|
4
|
+
metadata:
|
5
|
+
labels:
|
6
|
+
jenkins/git-lib: 'true'
|
7
|
+
namespace: jenkins
|
8
|
+
name: git-lib
|
9
|
+
spec:
|
10
|
+
containers:
|
11
|
+
- name: ruby
|
12
|
+
image: ruby:2.6.1
|
13
|
+
tty: true
|
14
|
+
resources:
|
15
|
+
requests:
|
16
|
+
memory: "100Mi"
|
17
|
+
command:
|
18
|
+
- cat
|
19
|
+
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require: rubocop-rspec
|
2
|
+
|
3
|
+
Metrics/LineLength:
|
4
|
+
Max: 120
|
5
|
+
Style/Lambda:
|
6
|
+
Enabled: false
|
7
|
+
Style/Documentation:
|
8
|
+
Enabled: false
|
9
|
+
Style/IfUnlessModifier:
|
10
|
+
Enabled: false
|
11
|
+
Style/GuardClause:
|
12
|
+
Enabled: false
|
13
|
+
Metrics/MethodLength:
|
14
|
+
Enabled: false
|
15
|
+
Metrics/ClassLength:
|
16
|
+
Enabled: false
|
17
|
+
Metrics/CyclomaticComplexity:
|
18
|
+
Enabled: false
|
19
|
+
Metrics/AbcSize:
|
20
|
+
Enabled: false
|
21
|
+
Metrics/PerceivedComplexity:
|
22
|
+
Enabled: false
|
23
|
+
RSpec/InstanceVariable:
|
24
|
+
Enabled: false
|
25
|
+
RSpec/ExampleLength:
|
26
|
+
Enabled: false
|
27
|
+
RSpec/AnyInstance:
|
28
|
+
Enabled: false
|
29
|
+
Style/RegexpLiteral:
|
30
|
+
Enabled: false
|
31
|
+
Style/WordArray:
|
32
|
+
Enabled: false
|
33
|
+
RSpec/DescribeClass:
|
34
|
+
Enabled: false
|
35
|
+
RSpec/DescribedClass:
|
36
|
+
Enabled: false
|
37
|
+
Style/NumericLiterals:
|
38
|
+
Enabled: false
|
39
|
+
Metrics/ParameterLists:
|
40
|
+
Enabled: false
|
41
|
+
AllCops:
|
42
|
+
Include:
|
43
|
+
- '**/*.rb'
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.6.1
|
data/Appraisals
ADDED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# CHANGELOG for `git_lib`
|
2
|
+
|
3
|
+
Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
4
|
+
|
5
|
+
Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [1.2.0] - 2020-07-13
|
8
|
+
### Added
|
9
|
+
- Add support for Rails 5 and 6.
|
10
|
+
- Add Appraisal and Jenkinsfile to test Rails 4, 5, 6.
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- Modernize gemspec and Gemfile some more.
|
14
|
+
- Allow Activesupport > 4.
|
15
|
+
|
16
|
+
## [1.1.1] - 2020-06-23
|
17
|
+
### Changed
|
18
|
+
- Allow Rails '~> 4.2'.
|
19
|
+
- Clean up gemspec and Gemfile; bundle update.
|
20
|
+
- Add magic frozen_string_literal: true comment everywhere.
|
21
|
+
- Clean up Rakefile.
|
22
|
+
|
23
|
+
[1.2.0]: https://github.com/Invoca/git_lib/compare/v1.1.1...v1.2.0
|
24
|
+
[1.1.1]: https://github.com/Invoca/git_lib/compare/v1.1.0...v1.1.1
|
data/Gemfile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source 'https://rubygems.org'
|
4
|
+
|
5
|
+
gemspec
|
6
|
+
|
7
|
+
gem 'activesupport', '>= 5.2.4.3'
|
8
|
+
gem 'appraisal'
|
9
|
+
gem 'bundler', '~> 1.17'
|
10
|
+
gem 'bundler-audit', require: false
|
11
|
+
gem 'climate_control', '~> 0.2'
|
12
|
+
gem 'coveralls', require: false
|
13
|
+
gem 'fakefs', '~> 0.9', require: 'fakefs/safe'
|
14
|
+
gem 'json', '~> 1.8'
|
15
|
+
gem 'pry'
|
16
|
+
gem 'pry-byebug'
|
17
|
+
gem 'rake'
|
18
|
+
gem 'rspec', '~> 3.5'
|
19
|
+
gem "rspec_junit_formatter"
|
20
|
+
gem 'rubocop', require: false
|
21
|
+
gem 'rubocop-rspec', require: false
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,121 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
git_lib (1.2.0)
|
5
|
+
activesupport (>= 4.2, < 7)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
activesupport (5.2.4.3)
|
11
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
12
|
+
i18n (>= 0.7, < 2)
|
13
|
+
minitest (~> 5.1)
|
14
|
+
tzinfo (~> 1.1)
|
15
|
+
appraisal (2.3.0)
|
16
|
+
bundler
|
17
|
+
rake
|
18
|
+
thor (>= 0.14.0)
|
19
|
+
ast (2.4.1)
|
20
|
+
bundler-audit (0.7.0.1)
|
21
|
+
bundler (>= 1.2.0, < 3)
|
22
|
+
thor (>= 0.18, < 2)
|
23
|
+
byebug (11.1.3)
|
24
|
+
climate_control (0.2.0)
|
25
|
+
coderay (1.1.3)
|
26
|
+
concurrent-ruby (1.1.6)
|
27
|
+
coveralls (0.8.23)
|
28
|
+
json (>= 1.8, < 3)
|
29
|
+
simplecov (~> 0.16.1)
|
30
|
+
term-ansicolor (~> 1.3)
|
31
|
+
thor (>= 0.19.4, < 2.0)
|
32
|
+
tins (~> 1.6)
|
33
|
+
diff-lcs (1.3)
|
34
|
+
docile (1.3.2)
|
35
|
+
fakefs (0.20.1)
|
36
|
+
i18n (1.8.3)
|
37
|
+
concurrent-ruby (~> 1.0)
|
38
|
+
json (1.8.6)
|
39
|
+
method_source (1.0.0)
|
40
|
+
minitest (5.14.1)
|
41
|
+
parallel (1.19.2)
|
42
|
+
parser (2.7.1.3)
|
43
|
+
ast (~> 2.4.0)
|
44
|
+
pry (0.13.1)
|
45
|
+
coderay (~> 1.1)
|
46
|
+
method_source (~> 1.0)
|
47
|
+
pry-byebug (3.9.0)
|
48
|
+
byebug (~> 11.0)
|
49
|
+
pry (~> 0.13.0)
|
50
|
+
rainbow (3.0.0)
|
51
|
+
rake (13.0.1)
|
52
|
+
regexp_parser (1.7.1)
|
53
|
+
rexml (3.2.4)
|
54
|
+
rspec (3.9.0)
|
55
|
+
rspec-core (~> 3.9.0)
|
56
|
+
rspec-expectations (~> 3.9.0)
|
57
|
+
rspec-mocks (~> 3.9.0)
|
58
|
+
rspec-core (3.9.2)
|
59
|
+
rspec-support (~> 3.9.3)
|
60
|
+
rspec-expectations (3.9.2)
|
61
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
62
|
+
rspec-support (~> 3.9.0)
|
63
|
+
rspec-mocks (3.9.1)
|
64
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
65
|
+
rspec-support (~> 3.9.0)
|
66
|
+
rspec-support (3.9.3)
|
67
|
+
rspec_junit_formatter (0.4.1)
|
68
|
+
rspec-core (>= 2, < 4, != 2.12.0)
|
69
|
+
rubocop (0.85.1)
|
70
|
+
parallel (~> 1.10)
|
71
|
+
parser (>= 2.7.0.1)
|
72
|
+
rainbow (>= 2.2.2, < 4.0)
|
73
|
+
regexp_parser (>= 1.7)
|
74
|
+
rexml
|
75
|
+
rubocop-ast (>= 0.0.3)
|
76
|
+
ruby-progressbar (~> 1.7)
|
77
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
78
|
+
rubocop-ast (0.0.3)
|
79
|
+
parser (>= 2.7.0.1)
|
80
|
+
rubocop-rspec (1.40.0)
|
81
|
+
rubocop (>= 0.68.1)
|
82
|
+
ruby-progressbar (1.10.1)
|
83
|
+
simplecov (0.16.1)
|
84
|
+
docile (~> 1.1)
|
85
|
+
json (>= 1.8, < 3)
|
86
|
+
simplecov-html (~> 0.10.0)
|
87
|
+
simplecov-html (0.10.2)
|
88
|
+
sync (0.5.0)
|
89
|
+
term-ansicolor (1.7.1)
|
90
|
+
tins (~> 1.0)
|
91
|
+
thor (1.0.1)
|
92
|
+
thread_safe (0.3.6)
|
93
|
+
tins (1.25.0)
|
94
|
+
sync
|
95
|
+
tzinfo (1.2.7)
|
96
|
+
thread_safe (~> 0.1)
|
97
|
+
unicode-display_width (1.7.0)
|
98
|
+
|
99
|
+
PLATFORMS
|
100
|
+
ruby
|
101
|
+
|
102
|
+
DEPENDENCIES
|
103
|
+
activesupport (>= 5.2.4.3)
|
104
|
+
appraisal
|
105
|
+
bundler (~> 1.17)
|
106
|
+
bundler-audit
|
107
|
+
climate_control (~> 0.2)
|
108
|
+
coveralls
|
109
|
+
fakefs (~> 0.9)
|
110
|
+
git_lib!
|
111
|
+
json (~> 1.8)
|
112
|
+
pry
|
113
|
+
pry-byebug
|
114
|
+
rake
|
115
|
+
rspec (~> 3.5)
|
116
|
+
rspec_junit_formatter
|
117
|
+
rubocop
|
118
|
+
rubocop-rspec
|
119
|
+
|
120
|
+
BUNDLED WITH
|
121
|
+
1.17.3
|
data/README.md
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
# Git Lib
|
2
|
+
The GitLib is a simple wrapper around the Git command line tool.
|
3
|
+
|
4
|
+
## Requirements
|
5
|
+
It requires git version 2.6.2 or greater
|
6
|
+
|
7
|
+
## Code Status
|
8
|
+
[](https://semaphoreci.com/mikeweaver/git_lib)
|
9
|
+
[](https://coveralls.io/github/mikeweaver/git_lib?branch=master)
|