you_track 0.4.2 → 0.4.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +21 -1
- data/lib/you_track/client.rb +3 -0
- data/lib/you_track/client/mock.rb +2 -1
- data/lib/you_track/client/models/user.rb +26 -1
- data/lib/you_track/client/models/users.rb +4 -0
- data/lib/you_track/client/parameter_request.rb +17 -0
- data/lib/you_track/client/requests/create_user.rb +43 -0
- data/lib/you_track/client/requests/get_user.rb +17 -0
- data/lib/you_track/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 889ce5a329ead3fe526595b6ccdedb2e9be2f54d
|
4
|
+
data.tar.gz: 6445d8f1eab01357762bb6a9213000316771a06d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f9b2bc53461f95cf91059abbc490cebb36d0b0f0e78bee3a677b4928fa5affae7570ff74823c0885b520948124ca19647b8d694b6fbf0c2d95ba8d829d93e65
|
7
|
+
data.tar.gz: fa5f0df1b16a46c6a76968c2c3c201d3ee1c536b4c3a01b27ae69036044913c08fc783ef429b755e0fa946262321f7376a75a68fb891903241274df31c6444a4
|
data/.travis.yml
CHANGED
@@ -1,4 +1,24 @@
|
|
1
|
+
---
|
1
2
|
language: ruby
|
2
|
-
before_install: gem install bundler --conservative -v "~> 1.8"
|
3
|
+
before_install: 'gem install bundler --conservative -v "~> 1.8"'
|
4
|
+
|
3
5
|
rvm:
|
4
6
|
- 2.1.5
|
7
|
+
git:
|
8
|
+
depth: 5
|
9
|
+
|
10
|
+
cache:
|
11
|
+
bundler: true
|
12
|
+
|
13
|
+
notifications:
|
14
|
+
email: false
|
15
|
+
webhooks:
|
16
|
+
on_success: always
|
17
|
+
on_failure: always
|
18
|
+
on_start: true
|
19
|
+
|
20
|
+
branches:
|
21
|
+
except:
|
22
|
+
- /^v[\d]+$/
|
23
|
+
|
24
|
+
script: bundle exec rake
|
data/lib/you_track/client.rb
CHANGED
@@ -7,6 +7,7 @@ require_relative "client/mock"
|
|
7
7
|
require_relative "client/model"
|
8
8
|
require_relative "client/request"
|
9
9
|
require_relative "client/login"
|
10
|
+
require_relative "client/parameter_request"
|
10
11
|
|
11
12
|
models = %w(
|
12
13
|
comment
|
@@ -20,6 +21,7 @@ requests = %w(
|
|
20
21
|
apply_issue_command
|
21
22
|
create_issue
|
22
23
|
create_project
|
24
|
+
create_user
|
23
25
|
get_admin_user
|
24
26
|
get_current_user
|
25
27
|
get_issue
|
@@ -27,6 +29,7 @@ requests = %w(
|
|
27
29
|
get_issues
|
28
30
|
get_project_custom_fields
|
29
31
|
get_projects
|
32
|
+
get_user
|
30
33
|
remove_project_fix_version
|
31
34
|
update_issue
|
32
35
|
)
|
@@ -44,7 +44,8 @@ class YouTrack::Client::Mock
|
|
44
44
|
def set_current_user
|
45
45
|
self.data[:users][username] ||= {
|
46
46
|
"email" => "#{username}@example.org",
|
47
|
-
"
|
47
|
+
"login" => username,
|
48
|
+
"full_name" => username,
|
48
49
|
"last_created_project" => SecureRandom.hex(2),
|
49
50
|
}
|
50
51
|
end
|
@@ -1,8 +1,11 @@
|
|
1
1
|
class YouTrack::Client::User < YouTrack::Client::Model
|
2
|
-
identity :id, aliases: ["
|
2
|
+
identity :id, aliases: ["login"]
|
3
3
|
|
4
4
|
attribute :name, alias: "fullName"
|
5
|
+
attribute :email
|
5
6
|
attribute :last_created_project, aliases: ["lastCreatedProject"]
|
7
|
+
attribute :jabber
|
8
|
+
attribute :filter_folder, alias: "filterFolder"
|
6
9
|
|
7
10
|
def admin? # just try to make a request to the admin api and see what happens
|
8
11
|
return @admin if defined?(@admin) # i love how ||= doesn't work when a variable is false
|
@@ -10,4 +13,26 @@ class YouTrack::Client::User < YouTrack::Client::Model
|
|
10
13
|
rescue Faraday::ResourceNotFound
|
11
14
|
@admin = false
|
12
15
|
end
|
16
|
+
|
17
|
+
attr_accessor :password, :username
|
18
|
+
|
19
|
+
def save
|
20
|
+
if new_record?
|
21
|
+
requires :username, :email
|
22
|
+
|
23
|
+
service.create_user(
|
24
|
+
"email" => self.email,
|
25
|
+
"fullName" => self.name,
|
26
|
+
"jabber" => self.jabber,
|
27
|
+
"login" => self.username,
|
28
|
+
"password" => self.password,
|
29
|
+
)
|
30
|
+
|
31
|
+
merge_attributes(
|
32
|
+
:identity => self.username,
|
33
|
+
)
|
34
|
+
else
|
35
|
+
raise NotImplementedError
|
36
|
+
end
|
37
|
+
end
|
13
38
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module YouTrack::Client::ParameterRequest
|
2
|
+
attr_reader :params
|
3
|
+
|
4
|
+
def setup(params)
|
5
|
+
@params = Cistern::Hash.stringify_keys(params)
|
6
|
+
end
|
7
|
+
|
8
|
+
def _mock(params={})
|
9
|
+
setup(params)
|
10
|
+
mock
|
11
|
+
end
|
12
|
+
|
13
|
+
def _real(params={})
|
14
|
+
setup(params)
|
15
|
+
real
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class YouTrack::Client::CreateUser < YouTrack::Client::Request
|
2
|
+
include YouTrack::Client::ParameterRequest
|
3
|
+
|
4
|
+
def self.accepted_parameters
|
5
|
+
# login string Login name of a user to be created. Required
|
6
|
+
@_accepted_parameters ||= [
|
7
|
+
"fullName", # string Full name of a new user.
|
8
|
+
"email", # string New user's e-mail address. Required
|
9
|
+
"jabber", # string Jabber address for a new user.
|
10
|
+
"password", # string Password for the new user.
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
def real
|
15
|
+
service.request(
|
16
|
+
:method => :put,
|
17
|
+
:path => "/admin/user/#{self.identity}",
|
18
|
+
:params => self.accepted_parameters,
|
19
|
+
)
|
20
|
+
end
|
21
|
+
|
22
|
+
def identity
|
23
|
+
params.fetch("login")
|
24
|
+
end
|
25
|
+
|
26
|
+
def accepted_parameters
|
27
|
+
params.fetch("email") # required
|
28
|
+
|
29
|
+
params.slice(*self.class.accepted_parameters)
|
30
|
+
end
|
31
|
+
|
32
|
+
def mock
|
33
|
+
user = accepted_parameters.merge(
|
34
|
+
"filterFolder" => nil, # wtf does this mean
|
35
|
+
"lastCreatedProject" => nil, # not yet
|
36
|
+
"login" => identity,
|
37
|
+
)
|
38
|
+
|
39
|
+
service.data[:users][identity] = user
|
40
|
+
|
41
|
+
service.response(status: 201)
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class YouTrack::Client::GetUser < YouTrack::Client::Request
|
2
|
+
def real(username)
|
3
|
+
service.request(
|
4
|
+
:path => "/user/#{username}",
|
5
|
+
:parser => YouTrack::Parser::UserParser,
|
6
|
+
)
|
7
|
+
end
|
8
|
+
|
9
|
+
def mock(username)
|
10
|
+
service.response(
|
11
|
+
:body => Cistern::Hash.slice(
|
12
|
+
find(:users, username),
|
13
|
+
"login", "filterFolder", "lastCreatedProject", "fullName"
|
14
|
+
)
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|
data/lib/you_track/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: you_track
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Lane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cistern
|
@@ -141,12 +141,14 @@ files:
|
|
141
141
|
- lib/you_track/client/models/projects.rb
|
142
142
|
- lib/you_track/client/models/user.rb
|
143
143
|
- lib/you_track/client/models/users.rb
|
144
|
+
- lib/you_track/client/parameter_request.rb
|
144
145
|
- lib/you_track/client/real.rb
|
145
146
|
- lib/you_track/client/request.rb
|
146
147
|
- lib/you_track/client/requests/add_project_fix_version.rb
|
147
148
|
- lib/you_track/client/requests/apply_issue_command.rb
|
148
149
|
- lib/you_track/client/requests/create_issue.rb
|
149
150
|
- lib/you_track/client/requests/create_project.rb
|
151
|
+
- lib/you_track/client/requests/create_user.rb
|
150
152
|
- lib/you_track/client/requests/get_admin_user.rb
|
151
153
|
- lib/you_track/client/requests/get_current_user.rb
|
152
154
|
- lib/you_track/client/requests/get_issue.rb
|
@@ -154,6 +156,7 @@ files:
|
|
154
156
|
- lib/you_track/client/requests/get_issues.rb
|
155
157
|
- lib/you_track/client/requests/get_project_custom_fields.rb
|
156
158
|
- lib/you_track/client/requests/get_projects.rb
|
159
|
+
- lib/you_track/client/requests/get_user.rb
|
157
160
|
- lib/you_track/client/requests/remove_project_fix_version.rb
|
158
161
|
- lib/you_track/client/requests/update_issue.rb
|
159
162
|
- lib/you_track/parser.rb
|