outliner 1.0.0 → 1.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f21fefa59fb5ff2a67d87273bcaa82096ba5b1166a42ffa6802003b422c991f
4
- data.tar.gz: 14f75297d7f94c001e0f7a43dde6d29f146f575f662e10b614b3e94a1f2d4339
3
+ metadata.gz: f9c33ead5965c7d3343b0cb626eb725655e4e618938451363c314496648a41e6
4
+ data.tar.gz: 910e51e24b3e976454f302ca3f348bcfe2405758f34fcbc16c6e5aba08b13f6e
5
5
  SHA512:
6
- metadata.gz: 83dae751c834a29fe279ef18fbe1d6fcc20062466b9bdfd61411dd189aadb6367c16b3fc92dade5087ecfdf86de81e2e4e8cb6db88fea0eb6a1d24f1fcbc142b
7
- data.tar.gz: 437a5728107aa019ef6e031fde94f3078d332cc096a294d3ce563a8a6a862d0eebd29a44f3ba8fe5a97cc2ee23507c3a39c125790cf9cbd250b50dcf7da7d7b8
6
+ metadata.gz: a223dfcc0f99b2071559b842ceba71db4992c99af1601a9c7e7e8b40758614e69eed123f045ae48ab69e0c8e73542daaf63e05bade507986bc05d9631c4d047a
7
+ data.tar.gz: 459b25c411aec74177ee55eca5290f1a89a3614747f6ff48b89ebab83fa6a8f72b6b392b76e5eadf74170656c7f78e621bcaa27ea4d4b1eb1eb1353dc2ed0b59
data/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## 1.0.1 - 2020-04-26
11
+
12
+ ### Changed
13
+
14
+ - Dependency Updates
15
+
10
16
  ## 1.0.0 - 2020-04-26
11
17
 
12
18
  ### Changed
data/Dockerfile CHANGED
@@ -1,12 +1,18 @@
1
- FROM ruby:2.7-alpine
1
+ FROM ruby:3.3-alpine3.19
2
+
3
+ RUN apk add --no-cache git openssh-client rsync && \
4
+ echo -e "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
5
+ mkdir /root/.ssh
2
6
 
3
7
  WORKDIR /outliner
4
8
  COPY . /outliner/
5
9
 
6
- RUN gem install bundler && \
10
+ RUN echo "gem: --no-ri --no-rdoc" > ~/.gemrc && \
11
+ apk add --no-cache alpine-sdk && \
12
+ gem update --system && \
13
+ gem install bundler && \
7
14
  bundle install && \
8
- apk add --no-cache git openssh-client rsync && \
9
- echo -e "StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
10
- mkdir /root/.ssh
15
+ apk del --no-cache alpine-sdk && \
16
+ rm ~/.gemrc
11
17
 
12
18
  ENTRYPOINT ["/outliner/entrypoint.sh"]
data/Gemfile.lock CHANGED
@@ -1,42 +1,45 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- outliner (0.2.2)
4
+ outliner (1.0.2)
5
5
  httparty (~> 0.17)
6
+ rake (>= 12.3)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
- addressable (2.7.0)
11
- public_suffix (>= 2.0.2, < 5.0)
12
- crack (0.4.3)
13
- safe_yaml (~> 1.0.0)
14
- hashdiff (1.0.1)
15
- httparty (0.18.0)
16
- mime-types (~> 3.0)
11
+ addressable (2.8.6)
12
+ public_suffix (>= 2.0.2, < 6.0)
13
+ bigdecimal (3.1.6)
14
+ crack (1.0.0)
15
+ bigdecimal
16
+ rexml
17
+ hashdiff (1.1.0)
18
+ httparty (0.21.0)
19
+ mini_mime (>= 1.0.0)
17
20
  multi_xml (>= 0.5.2)
18
- mime-types (3.3.1)
19
- mime-types-data (~> 3.2015)
20
- mime-types-data (3.2019.1009)
21
- minitest (5.8.5)
21
+ json (2.7.1)
22
+ mini_mime (1.1.5)
23
+ minitest (5.22.2)
22
24
  multi_xml (0.6.0)
23
- public_suffix (4.0.4)
24
- rake (10.5.0)
25
- safe_yaml (1.0.5)
26
- webmock (3.6.2)
27
- addressable (>= 2.3.6)
25
+ public_suffix (5.0.4)
26
+ rake (13.1.0)
27
+ rexml (3.2.6)
28
+ webmock (3.23.0)
29
+ addressable (>= 2.8.0)
28
30
  crack (>= 0.3.2)
29
31
  hashdiff (>= 0.4.0, < 2.0.0)
30
32
 
31
33
  PLATFORMS
32
34
  ruby
35
+ x86_64-linux
33
36
 
34
37
  DEPENDENCIES
35
38
  bundler (~> 2.0)
36
- minitest (~> 5.8.4)
39
+ json (~> 2.7)
40
+ minitest (~> 5.8)
37
41
  outliner!
38
- rake (~> 10.0)
39
- webmock (~> 3.6.0)
42
+ webmock (~> 3.6)
40
43
 
41
44
  BUNDLED WITH
42
- 2.1.4
45
+ 2.5.4
data/README.md CHANGED
@@ -28,6 +28,13 @@ require 'outliner'
28
28
  client = Outliner.new('https://knowledge.example.com')
29
29
  pp client.auth_info
30
30
  pp client.collections_list(offset: 0, limit: 10)
31
+ # This works around a 302 redirect bug in httparty
32
+ begin
33
+ r = @client.fileOperations__redirect({id: FILE_OPERATION_ID}, format: nil, no_follow: true)
34
+ rescue HTTParty::RedirectionTooDeep => e
35
+ # Download this using response = HTTParty.get e.response.header['location'] if needed
36
+ pp e.response.header['location']
37
+ end
31
38
  ```
32
39
 
33
40
  ### Import
data/exe/outliner-export CHANGED
@@ -20,13 +20,30 @@ local_directory = ARGV[0]
20
20
  CLIENT = Outliner::Client.new ENV['OUTLINE_BASE_URI']
21
21
 
22
22
  # Download the complete zip
23
- response = CLIENT.collections_exportAll(download: true)
23
+ response = CLIENT.collections__export_all(format: "outline-markdown")
24
+
25
+ raise 'Failed to trigger export_all action' if not response['success']
26
+
27
+ file_operation_id = response['data']['fileOperation']['id']
28
+ fop_info_response = nil
29
+ i = 0
30
+ loop do
31
+ i += 1
32
+ raise 'Timed out waiting for the file export operation to complete' if i > 20
33
+ sleep(2*i)
34
+ fop_info_response = CLIENT.fileOperations__info(id: file_operation_id)
35
+ raise 'Failed to query export file operation info' if not fop_info_response['ok']
36
+ break if fop_info_response['data']['state'] == 'complete'
37
+ end
24
38
 
25
- # Extract it to a tempfle
26
- file = Tempfile.new('download.zip')
27
- File.open(file.path, 'w') { |f| f.write(response.body) }
39
+ begin
40
+ fop_redirect_response = CLIENT.fileOperations__redirect({id: file_operation_id}, {no_follow: true})
41
+ rescue HTTParty::RedirectionTooDeep => e
42
+ response = HTTParty.get e.response.header['location']
43
+ file = Tempfile.new('download.zip')
44
+ File.open(file.path, 'w') { |f| f.write(response.body) }
45
+ `unzip -o "#{file.path}" -d "#{local_directory}"`
46
+ file.unlink
47
+ end
28
48
 
29
- `unzip -o "#{file.path}" -d "#{local_directory}"`
30
49
 
31
- # Delete tempfile
32
- file.unlink
data/exe/outliner-import CHANGED
@@ -28,7 +28,7 @@ def create_documents_recursively(directory, collection_id, parent_document_id =
28
28
  }
29
29
 
30
30
  params[:parentDocumentId] = parent_document_id if parent_document_id
31
- CLIENT.documents_create(params)
31
+ CLIENT.documents__create(params)
32
32
  puts "[-] #{file}"
33
33
  end
34
34
 
@@ -42,7 +42,7 @@ def create_documents_recursively(directory, collection_id, parent_document_id =
42
42
  publish: true,
43
43
  parentDocumentId: parent_document_id
44
44
  }
45
- response = CLIENT.documents_create(params)
45
+ response = CLIENT.documents__create(params)
46
46
  create_documents_recursively(dir, collection_id, response['data']['id'])
47
47
  end
48
48
  Dir.chdir cwd
@@ -65,7 +65,7 @@ begin
65
65
  rescue StandardError? => e
66
66
  # If we fail, print an error, and delete the collection
67
67
  puts "[E] Import failed with error: #{e.message}"
68
- CLIENT.collections_delete(id: root_collection_id)
68
+ CLIENT.collections__delete(id: root_collection_id)
69
69
  puts '[E] Deleted collection, please report the issue or retry'
70
70
  exit 1
71
71
  end
@@ -11,27 +11,28 @@ module Outliner
11
11
  end
12
12
 
13
13
  def find_or_create_collection(name)
14
- collections = self.collections_list(limit: 100)['data']
14
+ collections = self.collections__list(limit: 100)['data']
15
15
  collections.filter!{|c|c['name'] == name}
16
16
  if collections.size >= 1
17
17
  collections[0]['id']
18
18
  else
19
- self.collections_create(name: name, description: 'Imported Collection')['data']['id']
19
+ self.collections__create(name: name, description: 'Imported Collection')['data']['id']
20
20
  end
21
21
  end
22
22
 
23
- def method_missing(method_name, params = {})
24
- method_name = '/' + method_name.to_s.sub('_', '.')
25
- body = {token: @token}.merge(params).to_json
23
+ def method_missing(method_name, params = {}, options = {})
24
+ method_name = "/#{method_name.to_s.sub('__', '.')}"
25
+
26
26
  options = {
27
- body: body,
27
+ body: params.to_json,
28
28
  headers: {
29
- 'Accept'=>'application/json',
30
- 'Content-Type': 'application/json',
31
- 'User-Agent': "Outliner/#{Outliner::VERSION}"
29
+ 'Accept' => 'application/json',
30
+ 'Content-Type' => 'application/json',
31
+ 'User-Agent' => "Outliner/#{Outliner::VERSION}",
32
+ 'Authorization' => "Bearer #{@token}"
32
33
  },
33
- format: :json
34
- }
34
+ format: :json,
35
+ }.merge!(options)
35
36
 
36
37
  self.class.post(method_name, options)
37
38
  end
@@ -1,3 +1,3 @@
1
1
  module Outliner
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.2"
3
3
  end
data/outliner.gemspec CHANGED
@@ -23,10 +23,11 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_dependency "httparty", "~> 0.17"
26
+ spec.add_dependency "httparty", "~> 0.21"
27
+ spec.add_dependency "json", "~> 2.7"
27
28
 
28
- spec.add_development_dependency "bundler", "~> 2.0"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
- spec.add_development_dependency "webmock", "~> 3.6.0"
31
- spec.add_development_dependency "minitest", "~> 5.8.4"
29
+ spec.add_development_dependency "bundler", "~> 2.1"
30
+ spec.add_dependency "rake", ">= 13.1"
31
+ spec.add_development_dependency "webmock", "~> 3.23"
32
+ spec.add_development_dependency "minitest", "~> 5.22"
32
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: outliner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nemo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-26 00:00:00.000000000 Z
11
+ date: 2024-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -16,71 +16,85 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.17'
19
+ version: '0.21'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.17'
26
+ version: '0.21'
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
28
+ name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.0'
34
- type: :development
33
+ version: '2.7'
34
+ type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.0'
40
+ version: '2.7'
41
41
  - !ruby/object:Gem::Dependency
42
- name: rake
42
+ name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '2.1'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10.0'
54
+ version: '2.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '13.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '13.1'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: webmock
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: 3.6.0
75
+ version: '3.23'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: 3.6.0
82
+ version: '3.23'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: minitest
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 5.8.4
89
+ version: '5.22'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 5.8.4
83
- description:
96
+ version: '5.22'
97
+ description:
84
98
  email:
85
99
  - outliner@captnemo.in
86
100
  executables:
@@ -114,7 +128,7 @@ metadata:
114
128
  homepage_uri: https://github.com/captn3m0/outliner
115
129
  source_code_uri: https://github.com/captn3m0/outliner
116
130
  changelog_uri: https://github.com/captn3m0/outliner/blob/master/CHANGELOG.md
117
- post_install_message:
131
+ post_install_message:
118
132
  rdoc_options: []
119
133
  require_paths:
120
134
  - lib
@@ -129,8 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
143
  - !ruby/object:Gem::Version
130
144
  version: '0'
131
145
  requirements: []
132
- rubygems_version: 3.1.2
133
- signing_key:
146
+ rubygems_version: 3.3.25
147
+ signing_key:
134
148
  specification_version: 4
135
149
  summary: A simple HTTParty based client for outline knowledge base.
136
150
  test_files: []