Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 46ccb91

Browse files
Functionality to validate a user's token
1 parent 1541ce0 commit 46ccb91

File tree

7 files changed

+48
-6
lines changed

7 files changed

+48
-6
lines changed

octorun/src/api.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ function ApiWrapper() {
1717

1818
ApiWrapper.prototype.verifyUser = function (callback) {
1919
this.octokit.users.get({}, function (error, result) {
20-
callback(error, (!result) ? null : result.data.login);
20+
callback(error, (!result) ? null : {
21+
login: result.data.login,
22+
name: result.data.name || '',
23+
});
2124
});
2225
};
2326

octorun/src/bin/app-login.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
var commander = require("commander");
22
var package = require('../../package.json')
33
var authentication = require('../authentication')
4-
54
var endOfLine = require('os').EOL;
65

76
commander

octorun/src/bin/app-organizations.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var commander = require("commander");
22
var package = require('../../package.json')
33
var ApiWrapper = require('../api')
4+
var endOfLine = require('os').EOL;
45

56
commander
67
.version(package.version)
@@ -10,10 +11,12 @@ var apiWrapper = new ApiWrapper();
1011
apiWrapper.getOrgs(function (error, result) {
1112
if (error) {
1213
process.stdout.write(error);
14+
process.stdout.write(endOfLine);
1315
process.exit(-1);
1416
}
1517
else {
1618
process.stdout.write(result);
19+
process.stdout.write(endOfLine);
1720
process.exit();
1821
}
1922
});

octorun/src/bin/app-publish.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var commander = require("commander");
22
var package = require('../../package.json')
33
var ApiWrapper = require('../api')
4+
var endOfLine = require('os').EOL;
45

56
commander
67
.version(package.version)
@@ -13,6 +14,7 @@ commander
1314
if(!commander.repository)
1415
{
1516
process.stdout.write("repository required");
17+
process.stdout.write(endOfLine);
1618
commander.help();
1719
process.exit(-1);
1820
return;
@@ -29,10 +31,12 @@ apiWrapper.publish(commander.repository, commander.description, private, command
2931
function (error, result) {
3032
if (error) {
3133
process.stdout.write(error);
34+
process.stdout.write(endOfLine);
3235
process.exit(-1);
3336
}
3437
else {
3538
process.stdout.write(result);
39+
process.stdout.write(endOfLine);
3640
process.exit();
3741
}
3842
});

octorun/src/bin/app-usage.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,13 @@ if (fileContents && host) {
5353
process.stdout.write("Success");
5454
process.stdout.write(endOfLine);
5555
process.stdout.write(d);
56+
process.stdout.write(endOfLine);
5657
}
5758
else {
5859
process.stdout.write("Error");
5960
process.stdout.write(endOfLine);
6061
process.stdout.write(d);
62+
process.stdout.write(endOfLine);
6163
}
6264
});
6365

octorun/src/bin/app-validate.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ try {
1919
else {
2020
process.stdout.write("Success");
2121
process.stdout.write(endOfLine);
22-
process.stdout.write(result);
22+
process.stdout.write(result.name);
23+
process.stdout.write(endOfLine);
24+
process.stdout.write(result.login);
25+
process.stdout.write(endOfLine);
2326
process.exit();
2427
}
2528
});

src/GitHub.Api/Application/ApiClient.cs

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,17 @@ private async Task GetOrganizationInternal(Action<Organization[]> onSuccess, Act
244244
await ValidateKeychain();
245245
await ValidateCurrentUserInternal();
246246

247+
var uriString = keychain.Connections.First().Host;
248+
var keychainAdapter = await keychain.Load(uriString);
249+
250+
var octorunTask = new OctorunTask(taskManager.Token, nodeJsExecutablePath, octorunScriptPath, "organizations",
251+
user: keychainAdapter.Credential.Username, userToken: keychainAdapter.Credential.Token)
252+
.Configure(processManager);
253+
254+
var ret = await octorunTask.StartAsAsync();
255+
256+
logger.Trace("Return: {0}", string.Join(";", ret.ToArray()));
257+
247258
throw new NotImplementedException();
248259

249260
// var organizations = await githubClient.Organization.GetAllForCurrent();
@@ -273,9 +284,24 @@ private async Task<GitHubUser> GetCurrentUserInternal()
273284
logger.Trace("Getting Current User");
274285
await ValidateKeychain();
275286

276-
throw new NotImplementedException();
287+
var uriString = keychain.Connections.First().Host;
288+
var keychainAdapter = await keychain.Load(uriString);
289+
290+
var octorunTask = new OctorunTask(taskManager.Token, nodeJsExecutablePath, octorunScriptPath, "validate",
291+
user: keychainAdapter.Credential.Username, userToken: keychainAdapter.Credential.Token)
292+
.Configure(processManager);
293+
294+
var ret = await octorunTask.StartAsAsync();
295+
296+
if (ret.Count == 3 && ret[0] == "Success")
297+
{
298+
return new GitHubUser {
299+
Name = ret[1],
300+
Login = ret[2]
301+
};
302+
}
277303

278-
//return (await githubClient.User.Current()).ToGitHubUser();
304+
throw new ApiClientException("Error validating current user");
279305
}
280306
catch (KeychainEmptyException)
281307
{
@@ -318,9 +344,11 @@ private async Task<bool> LoadKeychainInternal()
318344

319345
//TODO: ONE_USER_LOGIN This assumes only ever one user can login
320346
var uriString = keychain.Connections.First().Host;
347+
321348
var keychainAdapter = await keychain.Load(uriString);
349+
logger.Trace("LoadKeychainInternal: Loaded");
322350

323-
throw new NotImplementedException();
351+
return keychainAdapter.Credential.Token != null;
324352
}
325353

326354
logger.Trace("LoadKeychainInternal: No keys to load");

0 commit comments

Comments
 (0)