jekyll-gitlab-metadata 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 198ab0f4d17975ba66b79e053066ca48744a1d95ff7cf65e0e75cdb22e2585d8
4
+ data.tar.gz: cd57e11177bb7f40e596d35b24956dca2e966338bfcbde31382e7e36649157c2
5
+ SHA512:
6
+ metadata.gz: f6e856e584841d44a7f4ef539fd6ed9f4ad8a02e18b7d489ca093e19b4858957ae528e7fe4de9a9e6b95222aabf55c8ad94cc65af299a7d326001ed57c49da93
7
+ data.tar.gz: 204700596449d3d4c8eb1452e45d4766c0b2bf083744efa4510ba8e5037c677858e7c7edb12149221b009b1e1307e0b761f9723463a60e4ad28b7b0a4b4a1912
@@ -0,0 +1,8 @@
1
+ require_relative 'jekyll-gitlab-metadata/metadata_drop'
2
+
3
+ github_interop = ['true', 'yes'].include?((ENV['GITLAB_PAGES_GITHUB_INTEROP'] || 'true').downcase)
4
+
5
+ Jekyll::Hooks.register :site, :after_init do |site|
6
+ site.config['gitlab'] = Jekyll::GitlabMetadata::MetadataDrop.new
7
+ site.config['github'] = site.config['gitlab'] if github_interop
8
+ end
@@ -0,0 +1,181 @@
1
+ require 'uri'
2
+
3
+ require 'jekyll'
4
+
5
+ module Jekyll
6
+ module GitlabMetadata
7
+ class MetadataDrop < Jekyll::Drops::Drop
8
+ def initialize
9
+ super(nil)
10
+
11
+ if ENV['CI_REPOSITORY_URL']
12
+ clone_uri = URI(ENV['CI_REPOSITORY_URL'])
13
+ clone_uri.password = nil
14
+ clone_uri.user = nil
15
+
16
+ @clone_url = clone_uri.to_s.freeze
17
+ else
18
+ @clone_url = ''
19
+ end
20
+ end
21
+
22
+ def environment
23
+ Jekyll.env
24
+ end
25
+
26
+ def pages_env
27
+ environment
28
+ end
29
+
30
+ def hostname
31
+ ENV['GITLAB_HOST'] || 'gitlab.com'
32
+ end
33
+
34
+ def pages_hostname
35
+ ENV['GITLAB_PAGES_HOST'] || 'gitlab.io'
36
+ end
37
+
38
+ def api_url
39
+ "https://#{hostname}/api/v4"
40
+ end
41
+
42
+ def help_url
43
+ "https://#{hostname}/help"
44
+ end
45
+
46
+ def public_repositories
47
+ raise NotImplementedError
48
+ end
49
+
50
+ def organization_members
51
+ raise NotImplementedError
52
+ end
53
+
54
+ def project_title
55
+ ENV['CI_PROJECT_NAME'] || ''
56
+ end
57
+
58
+ def project_tagline
59
+ '' # raise NotImplementedError
60
+ end
61
+
62
+ def owner_name
63
+ ENV['CI_PROJECT_NAMESPACE'] || ''
64
+ end
65
+
66
+ def owner_url
67
+ "https://#{hostname}/#{owner_name}"
68
+ end
69
+
70
+ def owner_gravatar_url
71
+ raise NotImplementedError
72
+ end
73
+
74
+ def repository_url
75
+ ENV['CI_PROJECT_URL'] || ''
76
+ end
77
+
78
+ def repository_nwo
79
+ ENV['CI_PROJECT_PATH'] || ''
80
+ end
81
+
82
+ def repository_name
83
+ repository_nwo.split('/').last
84
+ end
85
+
86
+ def zip_url
87
+ "#{typeless_archive_url}.zip"
88
+ end
89
+
90
+ def tar_url
91
+ "#{typeless_archive_url}.tar.gz"
92
+ end
93
+
94
+ def clone_url
95
+ @clone_url
96
+ end
97
+
98
+ def releases_url
99
+ "#{repository_url}/tags"
100
+ end
101
+
102
+ def issues_url
103
+ "#{repository_url}/issues"
104
+ end
105
+
106
+ def wiki_url
107
+ "#{repository_url}/wiki"
108
+ end
109
+
110
+ def language
111
+ raise NotImplementedError
112
+ end
113
+
114
+ def is_user_page
115
+ repository_name == "#{pages_hostname}/#{owner_name}"
116
+ end
117
+
118
+ def is_project_page
119
+ !is_user_page
120
+ end
121
+
122
+ def show_downloads
123
+ ['true', 'yes'].include?((ENV['GITLAB_PAGES_SHOW_DOWNLOADS'] || 'true').downcase)
124
+ end
125
+
126
+ def url
127
+ "#{pages_protocol}://#{owner_name}.#{pages_hostname}#{baseurl}"
128
+ end
129
+
130
+ def baseurl
131
+ "/#{repository_name}"
132
+ end
133
+
134
+ def contributors
135
+ raise NotImplementedError
136
+ end
137
+
138
+ def releases
139
+ raise NotImplementedError
140
+ end
141
+
142
+ def latest_release
143
+ raise NotImplementedError
144
+ end
145
+
146
+ def private
147
+ ENV['CI_PROJECT_VISIBILITY'] == 'private'
148
+ end
149
+
150
+ def license
151
+ raise NotImplementedError
152
+ end
153
+
154
+ def source
155
+ raise NotImplementedError
156
+ end
157
+
158
+ def versions
159
+ raise NotImplementedError
160
+ end
161
+
162
+ def build_revision
163
+ ENV['CI_COMMIT_SHA'] || ''
164
+ end
165
+
166
+ private
167
+
168
+ def fallback_data
169
+ {}
170
+ end
171
+
172
+ def typeless_archive_url
173
+ "#{repository_url}/-/archive/#{build_revision}/#{repository_name}-#{build_revision}"
174
+ end
175
+
176
+ def pages_protocol
177
+ ENV['GITLAB_PAGES_PROTOCOL'] || 'https'
178
+ end
179
+ end
180
+ end
181
+ end
@@ -0,0 +1,5 @@
1
+ module Jekyll
2
+ module GitlabMetadata
3
+ VERSION = '0.8.0'.freeze
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-gitlab-metadata
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.0
5
+ platform: ruby
6
+ authors:
7
+ - Benjamin Dobell
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-06-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.16'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.16'
41
+ description: Jekyll plugin for injecting the site.gitlab namespace when built with
42
+ GitLab CI
43
+ email:
44
+ - contact@glassechidna.com.au
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - lib/jekyll-gitlab-metadata.rb
50
+ - lib/jekyll-gitlab-metadata/metadata_drop.rb
51
+ - lib/jekyll-gitlab-metadata/version.rb
52
+ homepage: https://gitlab.com/glassechidna/jekyll-gitlab-metadata
53
+ licenses:
54
+ - MIT
55
+ metadata: {}
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubyforge_project:
72
+ rubygems_version: 2.7.3
73
+ signing_key:
74
+ specification_version: 4
75
+ summary: Jekyll plugin for injecting site.gitlab
76
+ test_files: []