teleflow 2.0.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.
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Teleflow
4
+ class Api
5
+ # Module Teleflow::Api::Tenants provides an API for managing tenants in the Teleflow application.
6
+ #
7
+ # This module includes methods for creating, retrieving, updating and deleting tenant.
8
+ #
9
+ # For more information on the tenants feature (https://docs.teleflow.khulnasoft.com/tenants/introduction),
10
+ # for API documentation see https://docs.teleflow.khulnasoft.com/api-reference/tenants/get-tenants.
11
+ module Tenants
12
+ # Create a tenant
13
+ #
14
+ # @bodyparams:
15
+ # @param `identifier` [String] - A unique value, and can be used later when pointing to this tenant during trigger calls.
16
+ # @param `name` [String] - A human-readable name of the tenant.
17
+ # @param `data` [Hash] - A custom data object that can store information about the tenant.
18
+ #
19
+ # @return [Hash] data - The list of information with respect to the created tenant are successfully returned.
20
+ # @return [number] status - The status code. Returns 200 if the tenant has been successfully created.
21
+ def create_tenant(body)
22
+ post("/tenants", body: body)
23
+ end
24
+
25
+ # Returns a list of tenant that can be paginated using the `page` query parameter and
26
+ # set the number of tenants to be with the `limit` query parameter
27
+ #
28
+ # @queryparams:
29
+ # @param `page` [Integer(optional)] - Number of page for the pagination.
30
+ # @param `limit` [Integer(optional)] - Size of page for the pagination.
31
+ #
32
+ # @return [Hash] data - The list of tenants that match the criteria of the query params are successfully returned.
33
+ # @return [Boolean] hasMore - To specify if the list have more items to fetch
34
+ # @return [number] page - The current page of the paginated response
35
+ # @return [number] pageSize - The number of size of each page
36
+ # @return [number] status
37
+ # - Returns 200 if successful
38
+ def tenants(query = {})
39
+ get("/tenants", query: query)
40
+ end
41
+
42
+ # Get a tenant by the tenant identifier
43
+ #
44
+ # @pathparams
45
+ # @param `identifier` [String]
46
+ #
47
+ # @return [Hash] data -The retrieved topic.
48
+ # @return [number] status
49
+ # - Returns 200 if successful
50
+ def tenant(identifier)
51
+ get("/tenants/#{identifier}")
52
+ end
53
+
54
+ # Update a tenant
55
+ #
56
+ # @pathparams
57
+ # @param `identifier` [String]
58
+ #
59
+ # @bodyparams:
60
+ # @param `identifier` [String] - A unique value, and can be used later when pointing to this tenant during trigger calls.
61
+ # @param `name` [String] - A human-readable name of the tenant.
62
+ # @param `data` [Hash] - A custom data object that can store information about the tenant. This data can be later accessed inside workflows.
63
+ #
64
+ # @return [Hash] data - The list of information with respect to the created tenant are successfully returned.
65
+ # @return [number] status - The status code. Returns 200 if the tenant has been successfully created.
66
+ def update_tenant(identifier, body)
67
+ patch("/tenants/#{identifier}", body: body)
68
+ end
69
+
70
+ # Using a previously create identifier during the tenant ceation, will cancel any active or pending workflows.
71
+ # This is useful to cancel active digests, delays etc...
72
+ #
73
+ # @pathparams:
74
+ # @param `identifier` [String] - identifier of the tenant
75
+ #
76
+ # @return [number] status - The status code. Returns 200 if the event has been successfully cancelled.
77
+ def delete_tenant(identifier)
78
+ delete("/tenants/#{identifier}")
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,115 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Teleflow
4
+ class Api
5
+ # Module Teleflow::Api::Topics provides an API for managing topics in the Teleflow application.
6
+ #
7
+ # This module includes methods for creating and retrieving and updating topic.
8
+ # It also includes methods for subscriber addition and removal.
9
+ #
10
+ # For more information on the Teleflow API(https://api-teleflow.khulnasoft.com/api#/Topics), see https://docs.teleflow.khulnasoft.com/api/topic-creation/.
11
+ module Topics
12
+ # Create a topic
13
+ #
14
+ # @bodyparams:
15
+ # @param `key` [String] User defined custom key and provided by the user that will be an unique identifier for the Topic created.
16
+ # @param `name` [String] User defined custom name and provided by the user that will name the Topic created.
17
+ #
18
+ # @return [number] status - The status code. Returns 201 if the topic has been successfully created.
19
+ def create_topic(body)
20
+ post("/topics", body: body)
21
+ end
22
+
23
+ # Returns a list of topics that can be paginated using the `page` query parameter and
24
+ # filtered by the topic key with the `key` query parameter
25
+ #
26
+ # @queryparams:
27
+ # @param `page` [Integer(optional)] Number of page for the pagination.
28
+ # @param `pageSize` [Integer(optional)] Size of page for the pagination.
29
+ # @param `key` [String(optional)] Topic key.
30
+ #
31
+ # @return [Hash] The list of topics that match the criteria of the query params are successfully returned.
32
+ # @return [number] status
33
+ # - Returns 200 if successful
34
+ def topics(query = {})
35
+ get("/topics", query: query)
36
+ end
37
+
38
+ # Add subscribers to a topic by key
39
+ #
40
+ # @pathparams
41
+ # @param `topic_key` [String]
42
+
43
+ # @bodyparams:
44
+ # @param `subscribers` [Array] List of subscriber identifiers that will be associated to the topic
45
+ #
46
+ # @return [number] status - The status code. Returns 204 if successfully add subscribers to a topic by key.
47
+ def add_subscribers(topic_key, body)
48
+ post("/topics/#{topic_key}/subscribers", body: body)
49
+ end
50
+
51
+ # Remove subscribers from a topic
52
+ #
53
+ # @pathparams
54
+ # @param `topic_key` [String]
55
+
56
+ # @bodyparams:
57
+ # @param `subscribers` [Array] List of subscriber identifiers that will be removed to the topic
58
+ #
59
+ # @return [number] status - The status code. Returns 204 if successfully remove subscribers to a topic by key.
60
+ def remove_subscribers(topic_key, body)
61
+ post("/topics/#{topic_key}/subscribers/removal", body: body)
62
+ end
63
+
64
+ # Check topic subsriber
65
+ # Check if a subscriber belongs to a certain topic
66
+ #
67
+ # @pathparams
68
+ # @param `topic_key` [String]
69
+ # @param `externalSubscriberId` [String] The id of the subscriber created on `/subscribers` endpoint
70
+ #
71
+ # @return [number] status - The status code. Returns 200 if subscriber was added to the topic.
72
+ def subscriber_topic(topic_key, externalSubscriberId)
73
+ get("/topics/#{topic_key}/subscribers/#{externalSubscriberId}")
74
+ end
75
+
76
+ # Get a topic by its topic key
77
+ #
78
+ # @pathparams
79
+ # @param `topic_key` [String]
80
+ #
81
+ # @return [Hash] The retrieved topic.
82
+ # @return [number] status
83
+ # - Returns 200 if successful
84
+ def topic(topic_key)
85
+ get("/topics/#{topic_key}")
86
+ end
87
+
88
+ # Rename a topic by providing a new name
89
+ #
90
+ # @pathparams
91
+ # @param `topic_key` [String]
92
+ #
93
+ # @bodyparams:
94
+ # @param `name` [String] User defined custom name and provided by the user to rename the topic.
95
+ #
96
+ # @return [Hash] Updated topic enitiy.
97
+ # @return [number] status
98
+ # - Returns 200 if successful
99
+ def rename_topic(topic_key, body)
100
+ patch("/topics/#{topic_key}", body: body)
101
+ end
102
+
103
+ # Delete topic
104
+ # Delete a topic by its topic key if it has no subscribers
105
+ #
106
+ # @pathparams
107
+ # @param `topic_key` [String]
108
+ #
109
+ # @return [number] status - The status code. Returns 204 if successfully deleted topic.
110
+ def delete_topic(topic_key)
111
+ delete("/topics/#{topic_key}")
112
+ end
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "teleflow/api/blueprints"
4
+ require "teleflow/api/changes"
5
+ require "teleflow/api/connection"
6
+ require "teleflow/api/environments"
7
+ require "teleflow/api/events"
8
+ require "teleflow/api/execution_details"
9
+ require "teleflow/api/feeds"
10
+ require "teleflow/api/inbound_parse"
11
+ require "teleflow/api/integrations"
12
+ require "teleflow/api/layouts"
13
+ require "teleflow/api/messages"
14
+ require "teleflow/api/notification_groups"
15
+ require "teleflow/api/notification_templates"
16
+ require "teleflow/api/notification"
17
+ require "teleflow/api/organizations"
18
+ require "teleflow/api/subscribers"
19
+ require "teleflow/api/tenants"
20
+ require "teleflow/api/topics"
21
+ require_relative "version"
22
+
23
+ module Teleflow
24
+ class Client
25
+ include HTTParty
26
+ include Teleflow::Api::Blueprints
27
+ include Teleflow::Api::Changes
28
+ include Teleflow::Api::Connection
29
+ include Teleflow::Api::Environments
30
+ include Teleflow::Api::Events
31
+ include Teleflow::Api::ExecutionDetails
32
+ include Teleflow::Api::Feeds
33
+ include Teleflow::Api::InboundParse
34
+ include Teleflow::Api::Integrations
35
+ include Teleflow::Api::Layouts
36
+ include Teleflow::Api::Messages
37
+ include Teleflow::Api::NotificationGroups
38
+ include Teleflow::Api::NotificationTemplates
39
+ include Teleflow::Api::Notification
40
+ include Teleflow::Api::Organizations
41
+ include Teleflow::Api::Subscribers
42
+ include Teleflow::Api::Tenants
43
+ include Teleflow::Api::Topics
44
+
45
+ format :json
46
+
47
+ attr_accessor :enable_retry, :max_retries, :initial_delay, :max_delay, :idempotency_key
48
+
49
+ # @param `access_token` [String]
50
+ # @param `idempotency_key` [String]
51
+ # @param `enable_retry` [Boolean]
52
+ # @param `retry_config` [Hash]
53
+ # - max_retries [Integer]
54
+ # - initial_delay [Integer]
55
+ # - max_delay [Integer]
56
+ def initialize(access_token: nil, idempotency_key: nil, enable_retry: false, retry_config: {}, backend_url: "https://api-teleflow.khulnasoft.com/v1")
57
+ raise ArgumentError, "Api Key cannot be blank or nil" if access_token.blank?
58
+
59
+ @idempotency_key = idempotency_key.blank? ? UUID.new.generate : idempotency_key
60
+
61
+ @enable_retry = enable_retry
62
+ @access_token = access_token.to_s.strip
63
+ @retry_attempts = 0
64
+
65
+ retry_config = defaults_retry_config.merge(retry_config)
66
+ @max_retries = retry_config[:max_retries]
67
+ @initial_delay = retry_config[:initial_delay]
68
+ @max_delay = retry_config[:max_delay]
69
+
70
+ self.class.base_uri(backend_url)
71
+
72
+ self.class.default_options.merge!(headers: {
73
+ "Authorization" => "ApiKey #{@access_token}",
74
+ "User-Agent" => "teleflow/ruby/#{Teleflow::VERSION}"
75
+ }
76
+ )
77
+
78
+ # Configure the exponential backoff - specifying initial and maximal delays, default is 4s and 60s respectively
79
+ if @enable_retry
80
+ @retry_config = retry_config
81
+ @backoff = ExponentialBackoff.new(@initial_delay, @max_delay)
82
+ end
83
+ rescue ArgumentError => e
84
+ puts "Error initializing Teleflow client: #{e.message}"
85
+ end
86
+
87
+ private
88
+
89
+ # @retun [Hash]
90
+ # - max_retries [Integer]
91
+ # - initial_delay [Integer]
92
+ # - max_delay [Integer]
93
+ def defaults_retry_config
94
+ { max_retries: 1, initial_delay: 4, max_delay: 60 }
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Teleflow
4
+ VERSION = "2.0.0"
5
+ end
data/lib/teleflow.rb ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/core_ext/hash"
4
+ require "exponential_backoff"
5
+ require "httparty"
6
+ require_relative "teleflow/version"
7
+ require_relative "teleflow/client"
8
+ require "uuid"
9
+
10
+ module Teleflow
11
+ # class Error < StandardError; end
12
+ # Your code goes here...
13
+ end
data/sig/teleflow.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module Teleflow
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
data/techstack.md ADDED
@@ -0,0 +1,125 @@
1
+ <!--
2
+ &lt;--- Readme.md Snippet without images Start ---&gt;
3
+ ## Tech Stack
4
+ nxpkg/teleflow-ruby is built on the following main stack:
5
+
6
+ - [Ruby](https://www.ruby-lang.org) – Languages
7
+ - [RSpec](https://rspec.info/) – Testing Frameworks
8
+ - [RuboCop](http://batsov.com/rubocop/) – Code Review
9
+ - [Shell](https://en.wikipedia.org/wiki/Shell_script) – Shells
10
+ - [GitHub Actions](https://github.com/features/actions) – Continuous Integration
11
+
12
+ Full tech stack [here](/techstack.md)
13
+
14
+ &lt;--- Readme.md Snippet without images End ---&gt;
15
+
16
+ &lt;--- Readme.md Snippet with images Start ---&gt;
17
+ ## Tech Stack
18
+ nxpkg/teleflow-ruby is built on the following main stack:
19
+
20
+ - <img width='25' height='25' src='https://img.stackshare.io/service/989/ruby.png' alt='Ruby'/> [Ruby](https://www.ruby-lang.org) – Languages
21
+ - <img width='25' height='25' src='https://img.stackshare.io/service/2539/logo.png' alt='RSpec'/> [RSpec](https://rspec.info/) – Testing Frameworks
22
+ - <img width='25' height='25' src='https://img.stackshare.io/service/2643/rubocop.png' alt='RuboCop'/> [RuboCop](http://batsov.com/rubocop/) – Code Review
23
+ - <img width='25' height='25' src='https://img.stackshare.io/service/4631/default_c2062d40130562bdc836c13dbca02d318205a962.png' alt='Shell'/> [Shell](https://en.wikipedia.org/wiki/Shell_script) – Shells
24
+ - <img width='25' height='25' src='https://img.stackshare.io/service/11563/actions.png' alt='GitHub Actions'/> [GitHub Actions](https://github.com/features/actions) – Continuous Integration
25
+
26
+ Full tech stack [here](/techstack.md)
27
+
28
+ &lt;--- Readme.md Snippet with images End ---&gt;
29
+ -->
30
+ <div align="center">
31
+
32
+ # Tech Stack File
33
+ ![](https://img.stackshare.io/repo.svg "repo") [nxpkg/teleflow-ruby](https://github.com/nxpkg/teleflow-ruby)![](https://img.stackshare.io/public_badge.svg "public")
34
+ <br/><br/>
35
+ |11<br/>Tools used|01/05/24 <br/>Report generated|
36
+ |------|------|
37
+ </div>
38
+
39
+ ## <img src='https://img.stackshare.io/languages.svg'/> Languages (1)
40
+ <table><tr>
41
+ <td align='center'>
42
+ <img width='36' height='36' src='https://img.stackshare.io/service/989/ruby.png' alt='Ruby'>
43
+ <br>
44
+ <sub><a href="https://www.ruby-lang.org">Ruby</a></sub>
45
+ <br>
46
+ <sub></sub>
47
+ </td>
48
+
49
+ </tr>
50
+ </table>
51
+
52
+ ## <img src='https://img.stackshare.io/devops.svg'/> DevOps (5)
53
+ <table><tr>
54
+ <td align='center'>
55
+ <img width='36' height='36' src='https://img.stackshare.io/service/1046/git.png' alt='Git'>
56
+ <br>
57
+ <sub><a href="http://git-scm.com/">Git</a></sub>
58
+ <br>
59
+ <sub></sub>
60
+ </td>
61
+
62
+ <td align='center'>
63
+ <img width='36' height='36' src='https://img.stackshare.io/service/11563/actions.png' alt='GitHub Actions'>
64
+ <br>
65
+ <sub><a href="https://github.com/features/actions">GitHub Actions</a></sub>
66
+ <br>
67
+ <sub></sub>
68
+ </td>
69
+
70
+ <td align='center'>
71
+ <img width='36' height='36' src='https://img.stackshare.io/service/2539/logo.png' alt='RSpec'>
72
+ <br>
73
+ <sub><a href="https://rspec.info/">RSpec</a></sub>
74
+ <br>
75
+ <sub>v3.12.0</sub>
76
+ </td>
77
+
78
+ <td align='center'>
79
+ <img width='36' height='36' src='https://img.stackshare.io/service/2643/rubocop.png' alt='RuboCop'>
80
+ <br>
81
+ <sub><a href="http://batsov.com/rubocop/">RuboCop</a></sub>
82
+ <br>
83
+ <sub>v1.46.0</sub>
84
+ </td>
85
+
86
+ <td align='center'>
87
+ <img width='36' height='36' src='https://img.stackshare.io/service/12795/5jL6-BA5_400x400.jpeg' alt='RubyGems'>
88
+ <br>
89
+ <sub><a href="https://rubygems.org/">RubyGems</a></sub>
90
+ <br>
91
+ <sub></sub>
92
+ </td>
93
+
94
+ </tr>
95
+ </table>
96
+
97
+ ## Other (1)
98
+ <table><tr>
99
+ <td align='center'>
100
+ <img width='36' height='36' src='https://img.stackshare.io/service/4631/default_c2062d40130562bdc836c13dbca02d318205a962.png' alt='Shell'>
101
+ <br>
102
+ <sub><a href="https://en.wikipedia.org/wiki/Shell_script">Shell</a></sub>
103
+ <br>
104
+ <sub></sub>
105
+ </td>
106
+
107
+ </tr>
108
+ </table>
109
+
110
+
111
+ ## <img src='https://img.stackshare.io/group.svg' /> Open source packages (4)</h2>
112
+
113
+ ## <img width='24' height='24' src='https://img.stackshare.io/service/12795/5jL6-BA5_400x400.jpeg'/> RubyGems (4)
114
+
115
+ |NAME|VERSION|LAST UPDATED|LAST UPDATED BY|LICENSE|VULNERABILITIES|
116
+ |:------|:------|:------|:------|:------|:------|
117
+ |[activesupport](https://rubygems.org/activesupport)|v6.1.7|10/12/23|unicodeveloper |MIT|N/A|
118
+ |[httparty](https://rubygems.org/httparty)|v0.21.0|10/12/23|unicodeveloper |MIT|N/A|
119
+ |[rake](https://rubygems.org/rake)|v13.0.6|02/28/23|Aman Saini |MIT|N/A|
120
+ |[webmock](https://rubygems.org/webmock)|v3.18.1|03/10/23|Aman Saini |MIT|N/A|
121
+
122
+ <br/>
123
+ <div align='center'>
124
+
125
+ Generated via [Stack File](https://github.com/marketplace/stack-file)
data/techstack.yml ADDED
@@ -0,0 +1,152 @@
1
+ repo_name: nxpkg/teleflow-ruby
2
+ report_id: 64174126c2978ebffd866b5b5a64f248
3
+ version: 0.1
4
+ repo_type: Public
5
+ timestamp: '2024-01-05T09:22:44+00:00'
6
+ requested_by: sumitsaurabh927
7
+ provider: github
8
+ branch: main
9
+ detected_tools_count: 11
10
+ tools:
11
+ - name: Ruby
12
+ description: A dynamic, interpreted, open source programming language with a focus
13
+ on simplicity and productivity
14
+ website_url: https://www.ruby-lang.org
15
+ open_source: true
16
+ hosted_saas: false
17
+ category: Languages & Frameworks
18
+ sub_category: Languages
19
+ image_url: https://img.stackshare.io/service/989/ruby.png
20
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby
21
+ detection_source: Repo Metadata
22
+ - name: Git
23
+ description: Fast, scalable, distributed revision control system
24
+ website_url: http://git-scm.com/
25
+ open_source: true
26
+ hosted_saas: false
27
+ category: Build, Test, Deploy
28
+ sub_category: Version Control System
29
+ image_url: https://img.stackshare.io/service/1046/git.png
30
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby
31
+ detection_source: Repo Metadata
32
+ - name: GitHub Actions
33
+ description: Automate your workflow from idea to production
34
+ website_url: https://github.com/features/actions
35
+ open_source: false
36
+ hosted_saas: true
37
+ category: Build, Test, Deploy
38
+ sub_category: Continuous Integration
39
+ image_url: https://img.stackshare.io/service/11563/actions.png
40
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby/blob/main/.github/workflows/release.yml
41
+ detection_source: ".github/workflows/release.yml"
42
+ last_updated_by: Kolawole Ezekiel
43
+ last_updated_on: 2023-10-09 13:30:34.000000000 Z
44
+ - name: RSpec
45
+ description: Behaviour Driven Development for Ruby
46
+ website_url: https://rspec.info/
47
+ version: 3.12.0
48
+ license: MIT
49
+ open_source: true
50
+ hosted_saas: false
51
+ category: Build, Test, Deploy
52
+ sub_category: Testing Frameworks
53
+ image_url: https://img.stackshare.io/service/2539/logo.png
54
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby/blob/main/Gemfile.lock
55
+ detection_source: Gemfile
56
+ last_updated_by: Aman Saini
57
+ last_updated_on: 2023-02-28 06:58:36.000000000 Z
58
+ - name: RuboCop
59
+ description: A Ruby static code analyzer, based on the community Ruby style guide
60
+ website_url: http://batsov.com/rubocop/
61
+ version: 1.46.0
62
+ license: MIT
63
+ open_source: true
64
+ hosted_saas: false
65
+ category: Build, Test, Deploy
66
+ sub_category: Code Review
67
+ image_url: https://img.stackshare.io/service/2643/rubocop.png
68
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby/blob/main/Gemfile.lock
69
+ detection_source: Gemfile
70
+ last_updated_by: Aman Saini
71
+ last_updated_on: 2023-02-28 06:58:36.000000000 Z
72
+ - name: RubyGems
73
+ description: Easily download, install, and use ruby software packages on your system
74
+ website_url: https://rubygems.org/
75
+ open_source: false
76
+ hosted_saas: false
77
+ category: Build, Test, Deploy
78
+ sub_category: Package Managers
79
+ image_url: https://img.stackshare.io/service/12795/5jL6-BA5_400x400.jpeg
80
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby/blob/main/teleflow.gemspec
81
+ detection_source: teleflow.gemspec
82
+ last_updated_by: Aman Saini
83
+ last_updated_on: 2023-02-28 06:58:36.000000000 Z
84
+ - name: Shell
85
+ description: A shell is a text-based terminal, used for manipulating programs and
86
+ files. Shell scripts typically manage program execution.
87
+ website_url: https://en.wikipedia.org/wiki/Shell_script
88
+ open_source: false
89
+ hosted_saas: false
90
+ category: Languages & Frameworks
91
+ sub_category: Languages
92
+ image_url: https://img.stackshare.io/service/4631/default_c2062d40130562bdc836c13dbca02d318205a962.png
93
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby
94
+ detection_source: Repo Metadata
95
+ - name: activesupport
96
+ description: A toolkit of support libraries and Ruby core extensions extracted from
97
+ the Rails framework
98
+ package_url: https://rubygems.org/activesupport
99
+ version: 6.1.7
100
+ license: MIT
101
+ open_source: true
102
+ hosted_saas: false
103
+ category: Libraries
104
+ sub_category: RubyGems Packages
105
+ image_url: https://img.stackshare.io/package/18817/default_b17f14dbef6c1275120b34d9ec2eff5942499bd5.png
106
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby/blob/main/Gemfile.lock
107
+ detection_source: teleflow.gemspec
108
+ last_updated_by: unicodeveloper
109
+ last_updated_on: 2023-10-12 04:34:34.000000000 Z
110
+ - name: httparty
111
+ description: Makes http fun! Also
112
+ package_url: https://rubygems.org/httparty
113
+ version: 0.21.0
114
+ license: MIT
115
+ open_source: true
116
+ hosted_saas: false
117
+ category: Libraries
118
+ sub_category: RubyGems Packages
119
+ image_url: https://img.stackshare.io/package/18832/default_8c2fa81d8b8e48c679685199823ce30d598d3e87.png
120
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby/blob/main/Gemfile.lock
121
+ detection_source: teleflow.gemspec
122
+ last_updated_by: unicodeveloper
123
+ last_updated_on: 2023-10-12 04:34:34.000000000 Z
124
+ - name: rake
125
+ description: Rake is a Make-like program implemented in Ruby
126
+ package_url: https://rubygems.org/rake
127
+ version: 13.0.6
128
+ license: MIT
129
+ open_source: true
130
+ hosted_saas: false
131
+ category: Libraries
132
+ sub_category: RubyGems Packages
133
+ image_url: https://img.stackshare.io/package/18812/default_f582e4648f4682adb72d2b201218cda7f8e894ac.png
134
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby/blob/main/Gemfile.lock
135
+ detection_source: Gemfile
136
+ last_updated_by: Aman Saini
137
+ last_updated_on: 2023-02-28 06:58:36.000000000 Z
138
+ - name: webmock
139
+ description: WebMock allows stubbing HTTP requests and setting expectations on HTTP
140
+ requests
141
+ package_url: https://rubygems.org/webmock
142
+ version: 3.18.1
143
+ license: MIT
144
+ open_source: true
145
+ hosted_saas: false
146
+ category: Libraries
147
+ sub_category: RubyGems Packages
148
+ image_url: https://img.stackshare.io/package/18824/default_6564ae059af6c4ea7065fd2329370c7a05341cf8.png
149
+ detection_source_url: https://github.com/nxpkg/teleflow-ruby/blob/main/Gemfile.lock
150
+ detection_source: Gemfile
151
+ last_updated_by: Aman Saini
152
+ last_updated_on: 2023-03-10 06:01:34.000000000 Z