From 56e8877d540a7286c6adacdf2b730f34de5f2531 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Mon, 13 Mar 2017 17:58:53 -0400 Subject: [PATCH 01/13] test(velocity): Wrote tests for velocity functions. --- main/index.test.js | 0 main/modules/velocity.test.js | 299 ++++++++++++++++++++++++++++++++++ package.json | 4 +- 3 files changed, 302 insertions(+), 1 deletion(-) delete mode 100644 main/index.test.js create mode 100644 main/modules/velocity.test.js diff --git a/main/index.test.js b/main/index.test.js deleted file mode 100644 index e69de29..0000000 diff --git a/main/modules/velocity.test.js b/main/modules/velocity.test.js new file mode 100644 index 0000000..410744d --- /dev/null +++ b/main/modules/velocity.test.js @@ -0,0 +1,299 @@ +/* ================================================== + VELOCITY +================================================== */ + +import { expect } from 'chai'; +import moment from 'moment'; +import { isEmpty } from 'lodash'; + +import { FORMATS, Velocity } from './velocity.js'; + +const velocity_week = Velocity(FORMATS.WEEK); +const velocity_month = Velocity(FORMATS.MONTH); + +const now = moment(); +const start_of_week = moment(now).startOf('week').hours(0); +const start_of_month = moment(now).startOf('month').hours(0); + +const commits = [ + { + id: '0', + author: 'Author 1', + message: 'Test Message 1', + date: undefined + }, + { + id: '1', + author: 'Author 2', + message: 'Test Message 2', + date: undefined + } +]; + +describe('Velocity', () => { + describe('isDateWithinThisTimeFrame', () => { + it(`${ FORMATS.WEEK }: True when date within time frame.`, done => { + const value = moment(start_of_week).add(1, 'minute'); + + const result = velocity_week.isDateWithinThisTimeFrame(value); + + expect(result).to.equal(true); + + done(); + }); + it(`${ FORMATS.WEEK }: False when date not within time frame.`, done => { + const value = moment(start_of_week).subtract(1, 'week').subtract(1, 'minute'); + + const result = velocity_week.isDateWithinThisTimeFrame(value); + + expect(result).to.equal(false); + + done(); + }); + + /* ========= */ + + it(`${ FORMATS.MONTH }: True when date within time frame.`, done => { + const value = moment(start_of_month).add(1, 'minute'); + + const result = velocity_month.isDateWithinThisTimeFrame(value); + + expect(result).to.equal(true); + + done(); + }); + it(`${ FORMATS.MONTH }: False when date not within time frame.`, done => { + const value = moment(start_of_month).subtract(1, 'month').subtract(1, 'minute'); + + const result = velocity_month.isDateWithinThisTimeFrame(value); + + expect(result).to.equal(false); + + done(); + }); + }); + + describe('isDateWithinLastTimeFrame', () => { + it(`${ FORMATS.WEEK }: True when date within time frame.`, done => { + const value = moment(start_of_week).subtract(1, 'week').add(1, 'minute'); + + const result = velocity_week.isDateWithinLastTimeFrame(value); + + expect(result).to.equal(true); + + done(); + }); + it(`${ FORMATS.WEEK }: False when date not within time frame.`, done => { + const value = moment(start_of_week).subtract(2, 'week').subtract(1, 'minute'); + + const result = velocity_week.isDateWithinLastTimeFrame(value); + + expect(result).to.equal(false); + + done(); + }); + + /* ========= */ + + it(`${ FORMATS.MONTH }: True when date within time frame.`, done => { + const value = moment(start_of_month).subtract(1, 'month').add(1, 'minute'); + + const result = velocity_month.isDateWithinLastTimeFrame(value); + + expect(result).to.equal(true); + + done(); + }); + it(`${ FORMATS.MONTH }: False when date not within time frame.`, done => { + const value = moment(start_of_month).subtract(2, 'month').subtract(1, 'minute'); + + const result = velocity_month.isDateWithinLastTimeFrame(value); + + expect(result).to.equal(false); + + done(); + }); + }); + + describe('groupCommitsByFormat', () => { + it(`${ FORMATS.WEEK }: Empty when commits are empty.`, async () => { + const result = await velocity_week.groupCommitsByFormat([]); + + expect(isEmpty(result.current)).to.equal(true); + expect(isEmpty(result.previous)).to.equal(true); + }); + it(`${ FORMATS.WEEK }: Empty when commits are out of range.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(start_of_week).subtract(1, 'week').subtract(1, 'minute'); + values[1].date = moment(start_of_week).add(1, 'week').add(1, 'minue'); + + const result = await velocity_week.groupCommitsByFormat(values); + + expect(isEmpty(result.current)).to.equal(true); + expect(isEmpty(result.previous)).to.equal(true); + }); + it(`${ FORMATS.WEEK }: Previous values when commits are in last time frame.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(start_of_week).subtract(1, 'week').add(1, 'minute'); + values[1].date = moment(start_of_week).subtract(1, 'minute'); + + const result = await velocity_week.groupCommitsByFormat(values); + + expect(isEmpty(result.current)).to.equal(true); + expect(result.previous.length === 2).to.equal(true); + }); + it(`${ FORMATS.WEEK }: Current values when commits are in current time frame.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(start_of_week).add(1, 'minute'); + values[1].date = moment(now).subtract(1, 'minute'); + + const result = await velocity_week.groupCommitsByFormat(values); + + expect(result.current.length === 2).to.equal(true); + expect(isEmpty(result.previous)).to.equal(true); + }); + it(`${ FORMATS.WEEK }: Current and Previous values when commits are in both time frames.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(start_of_week).subtract(1, 'week').add(1, 'minute'); + values[1].date = moment(now).subtract(1, 'minute'); + + const result = await velocity_week.groupCommitsByFormat(values); + + expect(result.current.length === 1).to.equal(true); + expect(result.previous.length === 1).to.equal(true); + }); + + /* ========= */ + + it(`${ FORMATS.MONTH }: Empty when commits are empty.`, async () => { + const result = await velocity_month.groupCommitsByFormat([]); + + expect(isEmpty(result.current)).to.equal(true); + expect(isEmpty(result.previous)).to.equal(true); + }); + it(`${ FORMATS.MONTH }: Empty when commits are out of range.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(start_of_month).subtract(1, 'month').subtract(1, 'minute'); + values[1].date = moment(start_of_month).add(1, 'month').add(1, 'minue'); + + const result = await velocity_month.groupCommitsByFormat(values); + + expect(isEmpty(result.current)).to.equal(true); + expect(isEmpty(result.previous)).to.equal(true); + }); + it(`${ FORMATS.MONTH }: Previous values when commits are in last time frame.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(start_of_month).subtract(1, 'month').add(1, 'minute'); + values[1].date = moment(start_of_month).subtract(1, 'minute'); + + const result = await velocity_month.groupCommitsByFormat(values); + + expect(isEmpty(result.current)).to.equal(true); + expect(result.previous.length === 2).to.equal(true); + }); + it(`${ FORMATS.MONTH }: Current values when commits are in current time frame.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(start_of_month).add(1, 'minute'); + values[1].date = moment(now).subtract(1, 'minute'); + + const result = await velocity_month.groupCommitsByFormat(values); + + expect(result.current.length === 2).to.equal(true); + expect(isEmpty(result.previous)).to.equal(true); + }); + it(`${ FORMATS.MONTH }: Current and Previous values when commits are in both time frames.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(start_of_month).subtract(1, 'month').add(1, 'minute'); + values[1].date = moment(now).subtract(1, 'minute'); + + const result = await velocity_month.groupCommitsByFormat(values); + + expect(result.current.length === 1).to.equal(true); + expect(result.previous.length === 1).to.equal(true); + }); + }); + + describe('groupCommitsByDay', () => { + it(`${ FORMATS.WEEK }: Days have a count of zero when commits are empty.`, async () => { + const result = await velocity_week.groupCommitsByDay([]); + + expect(Object.keys(result).some(key => result[key].length !== 0)).to.equal(false); + }); + it(`${ FORMATS.WEEK }: Days have correct count when commits are staggered.`, async () => { + const values = [ + ...commits.map(commit => Object.assign({}, commit)), + ...commits.map(commit => Object.assign({}, commit)), + ...commits.map(commit => Object.assign({}, commit)), + Object.assign({}, commits[0]) ]; + + values[0].date = moment(now).day('Monday'); + values[1].date = moment(now).day('Tuesday'); + values[2].date = moment(now).day('Wednsday'); + values[3].date = moment(now).day('Thursday'); + values[4].date = moment(now).day('Friday'); + values[5].date = moment(now).day('Saturday'); + values[6].date = moment(now).day('Sunday'); + + const result = await velocity_week.groupCommitsByDay(values); + + expect(result.Mon.length === 1).to.equal(true); + expect(result.Tue.length === 1).to.equal(true); + expect(result.Wed.length === 1).to.equal(true); + expect(result.Thu.length === 1).to.equal(true); + expect(result.Fri.length === 1).to.equal(true); + expect(result.Sat.length === 1).to.equal(true); + expect(result.Sun.length === 1).to.equal(true); + }); + it(`${ FORMATS.WEEK }: Day has correct count when multiple commits are valid.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(now).day('Monday'); + values[1].date = moment(now).day('Monday'); + + const result = await velocity_week.groupCommitsByDay(values); + + expect(result.Mon.length === 2).to.equal(true); + }); + + /* ========= */ + + it(`${ FORMATS.MONTH }: Days have a count of zero when commits are empty.`, async () => { + const result = await velocity_month.groupCommitsByDay([]); + + expect(Object.keys(result).some(key => result[key].length !== 0)).to.equal(false); + }); + it(`${ FORMATS.MONTH }: Days have correct count when commits are staggered.`, async () => { + const values = [ + ...commits.map(commit => Object.assign({}, commit)), + ...commits.map(commit => Object.assign({}, commit)), + ...commits.map(commit => Object.assign({}, commit)), + Object.assign({}, commits[0]) ]; + + values[0].date = moment(now).date('2'); + values[1].date = moment(now).date('6'); + values[2].date = moment(now).date('14'); + values[3].date = moment(now).date('18'); + values[4].date = moment(now).date('23'); + values[5].date = moment(now).date('29'); + values[6].date = moment(now).date('30'); + + const result = await velocity_month.groupCommitsByDay(values); + + expect(result['2'].length === 1).to.equal(true); + expect(result['6'].length === 1).to.equal(true); + expect(result['14'].length === 1).to.equal(true); + expect(result['18'].length === 1).to.equal(true); + expect(result['23'].length === 1).to.equal(true); + expect(result['29'].length === 1).to.equal(true); + expect(result['30'].length === 1).to.equal(true); + }); + it(`${ FORMATS.MONTH }: Day has correct count when multiple commits are valid.`, async () => { + const values = [ ...commits ]; + values[0].date = moment(now).date('4'); + values[1].date = moment(now).date('4'); + + const result = await velocity_month.groupCommitsByDay(values); + + expect(result['4'].length === 2).to.equal(true); + }); + }); +}); diff --git a/package.json b/package.json index 2ed780a..61792c1 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "clean": "rm -rf dist && mkdir dist", "build": "npm run clean && babel main/ -s -D -d dist/", "debug": "npm run build && node --debug=12345 dist/index.js", - "test": "mocha main/**/*.test.js", + "test": "mocha main/**/*.test.js --compilers js:babel-register", "start": "node dist/index.js" }, "author": "ibarsi", @@ -44,9 +44,11 @@ "babel-cli": "6.9.0", "babel-core": "6.9.0", "babel-preset-latest-minimal": "1.1.2", + "babel-register": "6.23.0", "chai": "3.5.0", "commitizen": "2.9.5", "cz-conventional-changelog": "1.2.0", + "lodash": "4.17.4", "mocha": "3.2.0", "semantic-release": "6.3.2" } From 4efe9427c502bc16209b1ea67b67ac6551a263af Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Mon, 13 Mar 2017 18:28:34 -0400 Subject: [PATCH 02/13] test(helpers): Wrote tests for helper functions. --- main/modules/helpers.test.js | 108 +++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 main/modules/helpers.test.js diff --git a/main/modules/helpers.test.js b/main/modules/helpers.test.js new file mode 100644 index 0000000..fc56524 --- /dev/null +++ b/main/modules/helpers.test.js @@ -0,0 +1,108 @@ +/* ================================================== + VELOCITY +================================================== */ + +import { expect } from 'chai'; +import { isEmpty, isArray } from 'lodash'; + +import { isFile, uniq, wrapSpinner, partial } from './helpers.js'; + +describe('Helpers', () => { + describe('isFile', () => { + it('Expect current file\'s path to be true.', done => { + const result = isFile(__filename); + + expect(result).to.equal(true); + + done(); + }); + it('Expect blank file path to be false.', done => { + const result = isFile(''); + + expect(result).to.equal(false); + + done(); + }); + it('Expect non-existant file path to be false.', done => { + const result = isFile(`${ __filename }.${ Math.random() }`); + + expect(result).to.equal(false); + + done(); + }); + }); + + describe('uniq', () => { + it('Expect empty list to return empty list.', done => { + const result = uniq([]); + + expect(isArray(result) && isEmpty(result)).to.equal(true); + + done(); + }); + it('Expect function to find all unique values.', done => { + const list = [ + { + id: 1, + title: 'Test 1' + }, + { + id: 1, + title: 'Test 1.5' + }, + { + id: 2, + title: 'Test 2' + }, + { + id: 3, + title: 'Test 3' + } + ]; + + const result = uniq(list, item => item.id); + + expect(result.length === 3).to.equal(true); + + done(); + }); + }); + + describe('wrapSpinner', () => { + it('Expect original resolved Promise to be fullfilled.', async () => { + const wrappedPromise = wrapSpinner(value => new Promise(resolve => resolve(value))); + + const result = await wrappedPromise(true); + + expect(result).to.equal(true); + }); + it('Expect original rejected Promise to be caught.', async () => { + const exception = new Error('Test'); + + const wrappedPromise = wrapSpinner(() => new Promise((resolve, reject) => reject(exception))); + + try { + await wrappedPromise(); + } + catch (error) { + expect(error).to.equal(exception); + } + }); + }); + + describe('requestPromise', () => { + /* === TODO === */ + }); + + describe('partial', () => { + it('Expect partially applied function to return correct value.', done => { + const add10 = partial((num1, num2) => num1 + num2, 10); + + const result = add10(20); + + expect(result).to.equal(30); + + done(); + }); + }); +}); From 713dd46ee65139485b380a5298f12afa5b9e176b Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Mon, 13 Mar 2017 22:09:30 -0400 Subject: [PATCH 03/13] - Added some commit tests, slightly improved false-param robustness of code. --- main/modules/commits.js | 17 +++++++++++++++-- main/modules/commits.test.js | 25 +++++++++++++++++++++++++ main/modules/helpers.js | 1 + 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 main/modules/commits.test.js diff --git a/main/modules/commits.js b/main/modules/commits.js index d6a4d04..c3ad378 100644 --- a/main/modules/commits.js +++ b/main/modules/commits.js @@ -53,6 +53,8 @@ function BitBucketCommits(auth) { isAuthorized: auth.isCredsTokenInitialized, authorize: auth.storeCreds, async getCommitsByRepo(repository, owner, takeWhile) { + if (!repository || !owner) { return []; } + const { username, password } = await auth.getCreds(); const options = { @@ -65,7 +67,11 @@ function BitBucketCommits(auth) { } }; - const commits = await _requestPagedResponse(options, response => !response.data.values.map(BitBucketCommit).some(takeWhile) ? response.data.next : undefined); + const commits = await _requestPagedResponse(options, response => { + if (!takeWhile) { return response.data.next; } + + return !response.data.values.map(BitBucketCommit).some(takeWhile) ? response.data.next : undefined; + }); return commits.reduce((acc, value) => acc.concat(value.values), []).map(BitBucketCommit); } @@ -104,6 +110,8 @@ function GitHubCommits(auth) { isAuthorized: auth.isCredsTokenInitialized, authorize: auth.storeCreds, async getCommitsByRepo(repository, owner, takeWhile) { + if (!repository || !owner) { return []; } + const { username, password } = await auth.getCreds(); const options = { @@ -120,7 +128,12 @@ function GitHubCommits(auth) { const branch_commit_results = await Promise.all(branches.data.map(branch => { return _requestPagedResponse(Object.assign({}, options, { url: `${ options.url }?sha=${ branch.name }` - }), response => !response.data.map(GitHubCommit).some(takeWhile) ? nextPageFunc(response) : undefined); + }), + response => { + if (!takeWhile) { return response.data.next; } + + return !response.data.map(GitHubCommit).some(takeWhile) ? nextPageFunc(response) : undefined; + }); })); const github_commits = branch_commit_results.reduce((acc, list) => acc.concat(list), []); diff --git a/main/modules/commits.test.js b/main/modules/commits.test.js new file mode 100644 index 0000000..6f4de12 --- /dev/null +++ b/main/modules/commits.test.js @@ -0,0 +1,25 @@ +/* ================================================== + VELOCITY +================================================== */ + +import { expect } from 'chai'; +import { isEmpty, isArray } from 'lodash'; + +import { TYPES, Commits } from './commits.js'; + +const bitbucket_commits = Commits(TYPES.BITBUCKET); + +describe('Commits', () => { + describe('getCommitsByRepo', () => { + it('Return no results when owner is empty', async () => { + const result = await bitbucket_commits.getCommitsByRepo('test'); + + expect(isArray(result) && isEmpty(result)).to.equal(true); + }); + it('Return no results when repository is empty', async () => { + const result = await bitbucket_commits.getCommitsByRepo(undefined, 'test'); + + expect(isArray(result) && isEmpty(result)).to.equal(true); + }); + }); +}); diff --git a/main/modules/helpers.js b/main/modules/helpers.js index ab1545a..6cf95ac 100644 --- a/main/modules/helpers.js +++ b/main/modules/helpers.js @@ -78,5 +78,6 @@ export default { isFile, uniq, wrapSpinner, + requestPromise, partial }; From bd0123da94739ef84cbc1b4e51377992241fe1d3 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sun, 19 Mar 2017 16:44:37 -0400 Subject: [PATCH 04/13] refactor(dashboard): Inverted dependecy of velocity in dashboard, now param of factory function. --- main/index.js | 4 ++-- main/modules/dashboard.js | 9 +++------ main/modules/velocity.js | 3 +++ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/main/index.js b/main/index.js index 7f99629..df543b1 100644 --- a/main/index.js +++ b/main/index.js @@ -59,8 +59,8 @@ console.log( const data = await wrapSpinner(commits.getCommitsByRepo, 'Pulling commits...')(repository, owner, commit => !velocity.isDateWithinThisTimeFrame(commit.date) && !velocity.isDateWithinLastTimeFrame(commit.date)); - const dashboard = CommitsDashboard(); - await dashboard.render(format, data); + const dashboard = CommitsDashboard(velocity); + await dashboard.render(data); } catch (error) { console.error(chalk.red('=== ERROR ===')); diff --git a/main/modules/dashboard.js b/main/modules/dashboard.js index 807bfb1..60a9a99 100644 --- a/main/modules/dashboard.js +++ b/main/modules/dashboard.js @@ -2,8 +2,6 @@ import { screen } from 'blessed'; import { grid, markdown, log, line } from 'blessed-contrib'; import moment from 'moment'; -import { Velocity } from './velocity'; - // SETTINGS const info_content = @@ -37,12 +35,12 @@ const line_settings = { // PUBLIC -export default function CommitsDashboard() { +export default function CommitsDashboard(velocity) { let dashboard; let layout; return { - async render(format, commits) { + async render(commits) { // INIT if (!dashboard) { @@ -50,13 +48,12 @@ export default function CommitsDashboard() { layout = _initLayout(dashboard); } - const velocity = Velocity(format); const grouped_commits = await velocity.groupCommitsByFormat(commits); // INFO const info_content_formatted = info_content - .replace('{{format}}', format) + .replace('{{format}}', velocity.getFormat()) .replace('{{current_commits}}', grouped_commits.current.length) .replace('{{previous_commits}}', grouped_commits.previous.length); diff --git a/main/modules/velocity.js b/main/modules/velocity.js index 498c223..954aa3a 100644 --- a/main/modules/velocity.js +++ b/main/modules/velocity.js @@ -15,6 +15,9 @@ export function Velocity(format) { const time = _getFormatTimeValue(format); return { + getFormat() { + return format; + }, isDateWithinThisTimeFrame(date) { const now = moment(); const start_of_time = moment(now).startOf(time).hours(0); From eb473ef41dee46e6cb9fafd120ba2d202fc19ae7 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sun, 19 Mar 2017 16:50:56 -0400 Subject: [PATCH 05/13] fix(dashboard): Commit log now sorted by date. closes #22 --- main/modules/dashboard.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/modules/dashboard.js b/main/modules/dashboard.js index 60a9a99..2281a7a 100644 --- a/main/modules/dashboard.js +++ b/main/modules/dashboard.js @@ -60,8 +60,8 @@ export default function CommitsDashboard(velocity) { // LISTING const commit_messages = [ ...grouped_commits.current, ...grouped_commits.previous ] - .map(commit => `(${ moment(commit.date).format('MMM Do') }) ${ commit.author }: ${ commit.message.replace('\n', ' ') }`) - .reverse(); + .sort((a, b) => a.date > b.date) + .map(commit => `(${ moment(commit.date).format('MMM Do') }) ${ commit.author }: ${ commit.message.replace('\n', ' ') }`); // VELOCITY From 47438fc729e92de5e36894c0d9f1409f55563a5a Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sun, 19 Mar 2017 16:55:29 -0400 Subject: [PATCH 06/13] test(velocity): Added tests for new, recently merged function. --- main/modules/velocity.test.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/main/modules/velocity.test.js b/main/modules/velocity.test.js index 410744d..6454d3b 100644 --- a/main/modules/velocity.test.js +++ b/main/modules/velocity.test.js @@ -31,6 +31,26 @@ const commits = [ ]; describe('Velocity', () => { + describe('getFormat', () => { + it(`${ FORMATS.WEEK }: Returns correct format.`, done => { + const result = velocity_week.getFormat(); + + expect(result).to.equal(FORMATS.WEEK); + + done(); + }); + + /* ========= */ + + it(`${ FORMATS.MONTH }: Returns correct format.`, done => { + const result = velocity_month.getFormat(); + + expect(result).to.equal(FORMATS.MONTH); + + done(); + }); + }); + describe('isDateWithinThisTimeFrame', () => { it(`${ FORMATS.WEEK }: True when date within time frame.`, done => { const value = moment(start_of_week).add(1, 'minute'); From 3627eddafed3bff7af115504b2012e0339675738 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sun, 19 Mar 2017 16:56:44 -0400 Subject: [PATCH 07/13] refactor(tests): Move tests into separate folder to reduce clutter in main app. --- main/{ => tests}/modules/commits.test.js | 2 +- main/{ => tests}/modules/helpers.test.js | 2 +- main/{ => tests}/modules/velocity.test.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename main/{ => tests}/modules/commits.test.js (93%) rename main/{ => tests}/modules/helpers.test.js (97%) rename main/{ => tests}/modules/velocity.test.js (99%) diff --git a/main/modules/commits.test.js b/main/tests/modules/commits.test.js similarity index 93% rename from main/modules/commits.test.js rename to main/tests/modules/commits.test.js index 6f4de12..9b49c82 100644 --- a/main/modules/commits.test.js +++ b/main/tests/modules/commits.test.js @@ -5,7 +5,7 @@ import { expect } from 'chai'; import { isEmpty, isArray } from 'lodash'; -import { TYPES, Commits } from './commits.js'; +import { TYPES, Commits } from '../../modules/commits.js'; const bitbucket_commits = Commits(TYPES.BITBUCKET); diff --git a/main/modules/helpers.test.js b/main/tests/modules/helpers.test.js similarity index 97% rename from main/modules/helpers.test.js rename to main/tests/modules/helpers.test.js index fc56524..2732523 100644 --- a/main/modules/helpers.test.js +++ b/main/tests/modules/helpers.test.js @@ -5,7 +5,7 @@ import { expect } from 'chai'; import { isEmpty, isArray } from 'lodash'; -import { isFile, uniq, wrapSpinner, partial } from './helpers.js'; +import { isFile, uniq, wrapSpinner, partial } from '../../modules/helpers.js'; describe('Helpers', () => { describe('isFile', () => { diff --git a/main/modules/velocity.test.js b/main/tests/modules/velocity.test.js similarity index 99% rename from main/modules/velocity.test.js rename to main/tests/modules/velocity.test.js index 6454d3b..d7e4249 100644 --- a/main/modules/velocity.test.js +++ b/main/tests/modules/velocity.test.js @@ -6,7 +6,7 @@ import { expect } from 'chai'; import moment from 'moment'; import { isEmpty } from 'lodash'; -import { FORMATS, Velocity } from './velocity.js'; +import { FORMATS, Velocity } from '../../modules/velocity.js'; const velocity_week = Velocity(FORMATS.WEEK); const velocity_month = Velocity(FORMATS.MONTH); From f76986aa350fcd90d8aa26b695fad082dd5326f4 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sun, 19 Mar 2017 17:57:07 -0400 Subject: [PATCH 08/13] refactor(commits): Replaced request with fetch, re-implemented interaction with repo APIs. --- main/modules/commits.js | 38 +++++++++++++++++++++++++------------- main/modules/helpers.js | 26 -------------------------- package.json | 2 +- 3 files changed, 26 insertions(+), 40 deletions(-) diff --git a/main/modules/commits.js b/main/modules/commits.js index d6a4d04..37bfada 100644 --- a/main/modules/commits.js +++ b/main/modules/commits.js @@ -2,7 +2,9 @@ COMMITS ================================================== */ -import { uniq, requestPromise } from './helpers'; +import fetch, { Headers } from 'node-fetch'; + +import { uniq } from './helpers'; import { Auth } from './auth'; // PUBLIC @@ -58,14 +60,16 @@ function BitBucketCommits(auth) { const options = { url: config.commits_url.replace('{owner}', owner).replace('{repo}', repository), config: { - headers: { + headers: new Headers({ + Accept: 'application/json', 'User-Agent': owner, Authorization: 'Basic ' + new Buffer(`${ username }:${ password }`).toString('base64') - } + }) } }; - const commits = await _requestPagedResponse(options, response => !response.data.values.map(BitBucketCommit).some(takeWhile) ? response.data.next : undefined); + const commits = await _requestPagedResponse(options, + (response, data) => !data.values.map(BitBucketCommit).some(takeWhile) ? data.next : undefined); return commits.reduce((acc, value) => acc.concat(value.values), []).map(BitBucketCommit); } @@ -90,7 +94,7 @@ function GitHubCommits(auth) { }; const nextPageFunc = response => { - const link = response.headers.link; + const link = response.headers.get('link'); if (link && link.indexOf('rel="next"') >= 0) { const next_url = link.substring(0, link.indexOf('rel="next"')); @@ -109,18 +113,21 @@ function GitHubCommits(auth) { const options = { url: config.commits_url.replace('{owner}', owner).replace('{repo}', repository), config: { - headers: { + headers: new Headers({ + Accept: 'application/json', 'User-Agent': owner, Authorization: 'Basic ' + new Buffer(`${ username }:${ password }`).toString('base64') - } + }) } }; - const branches = await requestPromise(config.branches_url.replace('{owner}', owner).replace('{repo}', repository), options.config); - const branch_commit_results = await Promise.all(branches.data.map(branch => { + const branches = await fetch(config.branches_url.replace('{owner}', owner).replace('{repo}', repository), options.config) + .then(response => response.json()); + + const branch_commit_results = await Promise.all(branches.map(branch => { return _requestPagedResponse(Object.assign({}, options, { url: `${ options.url }?sha=${ branch.name }` - }), response => !response.data.map(GitHubCommit).some(takeWhile) ? nextPageFunc(response) : undefined); + }), (response, data) => !data.map(GitHubCommit).some(takeWhile) ? nextPageFunc(response) : undefined); })); const github_commits = branch_commit_results.reduce((acc, list) => acc.concat(list), []); @@ -144,10 +151,15 @@ function GitHubCommit(value) { async function _requestPagedResponse(options, nextPage, values = []) { const { url, config } = options; - const response = await requestPromise(url, config); - const chunked_values = values.concat(response.data); - const next_page_url = nextPage(response); + const response = await fetch(url, config); + + if (response.status !== 200) { throw new Error(`ERROR: ${ response.status } - ${ response.statusText }`); } + + const data = await response.json(); + const chunked_values = values.concat(data); + + const next_page_url = nextPage(response, data); if (next_page_url) { return _requestPagedResponse({ url: next_page_url, config }, nextPage, chunked_values); diff --git a/main/modules/helpers.js b/main/modules/helpers.js index ab1545a..4af4d9d 100644 --- a/main/modules/helpers.js +++ b/main/modules/helpers.js @@ -3,14 +3,8 @@ ================================================== */ import fs from 'fs'; -import req from 'request'; import CLI from 'clui'; -const request = req.defaults({ - encoding: 'utf8', - json: true -}); - // PUBLIC export function isFile(path) { @@ -49,26 +43,6 @@ export function wrapSpinner(promise, message = '') { }); } -export function requestPromise(url, config) { - return new Promise((resolve, reject) => { - request.get(url, config) - .on('response', response => { - if (response.statusCode !== 200) { reject(new Error(response.statusMessage)); } - - let chunk = ''; - - response.on('data', result => { chunk += result; }); - - response.on('end', () => { - resolve({ - data: JSON.parse(chunk), - headers: response.headers - }); - }); - }); - }); -} - // SOURCE: https://gist.github.com/ibarsi/856a0c46e37fb4c951b033995aec55d5 export function partial(func, ...args) { return func.bind(undefined, ...args); diff --git a/package.json b/package.json index 2ed780a..766e6ff 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "figlet": "1.2.0", "inquirer": "3.0.1", "moment": "2.17.1", - "request": "2.79.0" + "node-fetch": "1.6.3" }, "devDependencies": { "babel-cli": "6.9.0", From 0a2c542e4276fa9c3df50b9c496fa1162421f2c4 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sat, 25 Mar 2017 12:52:22 -0400 Subject: [PATCH 09/13] docs(README): Added animated gif to display example usage. closes #23 --- README.md | 4 +++- git-velocity.gif | Bin 0 -> 234081 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 git-velocity.gif diff --git a/README.md b/README.md index 7a79fb2..e9d9bcf 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ [![npm](https://img.shields.io/npm/v/git-velocity.svg?style=flat-square)](https://www.npmjs.com/package/git-velocity) [![Travis branch](https://img.shields.io/travis/ibarsi/git-velocity/master.svg?style=flat-square)](https://travis-ci.org/ibarsi/git-velocity) +![Animated gif showing example usage](./git-velocity.gif) + `git-velocity` is a CLI tool used to calculate commit velocity over time. When invoked, the tool reads your current directory (looking for `package.json`) and attempts to "guess" reasonable defaults for the repository you're wanting to analyze, accepting user input for overrides. Once configured, a dashboard is displayed (courtesy of [blessed-contrib](https://github.com/yaronn/blessed-contrib)) with useful metrics regarding your repository's commit velocity. @@ -24,7 +26,7 @@ A layered line graph, comparing previous vs current commits. Length of time comp ## GETTING STARTED ## After cloning and installing dependencies via `npm install`, you're basically all set and ready to go. -The solution was built using many `ES2015` features that were not implemented during the time, and as such transpilation (via Babel) is required. +The solution was built using many new language features that were not implemented during the time, and as such transpilation (via Babel) is required. There are several `npm scripts` that are configured for development, listed below: diff --git a/git-velocity.gif b/git-velocity.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d5b08d11f9fd261aa86e9c5474dbca0cfbee253 GIT binary patch literal 234081 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�!iY7|w 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

A4jK-wz_pQk~E42fDo9i0immMBxoIh}qo`=>E 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 Date: Sat, 25 Mar 2017 14:31:42 -0400 Subject: [PATCH 10/13] test(package, auth): Added tests for auth functions. Added sinon for mocking. Sinon should now be used for all spies/stubs/mocks from here on out. Header comments were also updated throughout files, as some were missing/malformed. --- main/modules/auth.js | 6 +- main/modules/dashboard.js | 4 + main/modules/helpers.js | 3 +- main/tests/modules/auth.test.js | 117 +++++++++++++++++++++++++++++ main/tests/modules/commits.test.js | 2 +- main/tests/modules/helpers.test.js | 42 ++++++----- package.json | 5 +- 7 files changed, 156 insertions(+), 23 deletions(-) create mode 100644 main/tests/modules/auth.test.js diff --git a/main/modules/auth.js b/main/modules/auth.js index 423faca..909e88a 100644 --- a/main/modules/auth.js +++ b/main/modules/auth.js @@ -5,6 +5,8 @@ import fs from 'fs'; import os from 'os'; +import { isEmpty } from 'lodash'; + import { isFile } from './helpers'; export function Auth(token) { @@ -15,7 +17,9 @@ export function Auth(token) { async getCreds() { return JSON.parse(fs.readFileSync(`${ os.homedir() }/${ token }`, 'utf8')); }, - storeCreds(username, password) { + async storeCreds(username, password) { + if (isEmpty(username) || isEmpty(password)) { throw new Error('Both username and password are required to store credentials.'); } + return new Promise((resolve, reject) => { fs.writeFile( `${ os.homedir() }/${ token }`, diff --git a/main/modules/dashboard.js b/main/modules/dashboard.js index 2281a7a..fb2a8ce 100644 --- a/main/modules/dashboard.js +++ b/main/modules/dashboard.js @@ -1,3 +1,7 @@ +/* ================================================== + DASHBOARD +================================================== */ + import { screen } from 'blessed'; import { grid, markdown, log, line } from 'blessed-contrib'; import moment from 'moment'; diff --git a/main/modules/helpers.js b/main/modules/helpers.js index c7030c6..1355cf7 100644 --- a/main/modules/helpers.js +++ b/main/modules/helpers.js @@ -1,5 +1,5 @@ /* ================================================== - FILE HELPER + HELPER ================================================== */ import fs from 'fs'; @@ -52,6 +52,5 @@ export default { isFile, uniq, wrapSpinner, - requestPromise, partial }; diff --git a/main/tests/modules/auth.test.js b/main/tests/modules/auth.test.js new file mode 100644 index 0000000..d9668a0 --- /dev/null +++ b/main/tests/modules/auth.test.js @@ -0,0 +1,117 @@ +/* ================================================== + AUTH +================================================== */ + +import os from 'os'; +import fs from 'fs'; + +import chai from 'chai'; +import chai_promise from 'chai-as-promised'; +import sinon from 'sinon'; +import sinon_test from 'sinon-test'; +import { isEmpty } from 'lodash'; + +import { Auth } from '../../modules/auth.js'; +import helpers, * as helpers_modules from '../../modules/helpers.js'; + +sinon.test = sinon_test.configureTest(sinon); +sinon.testCase = sinon_test.configureTestCase(sinon); + +chai.use(chai_promise); +const expect = chai.expect; + +const auth = Auth(); + +describe('Auth', () => { + describe('isCredsTokenInitialized', () => { + it('Expect initialized auth token to return true.', sinon.test(async function() { + const homedir_stub = this.stub(os, 'homedir'); + homedir_stub.returns(''); + const isFile_stub = this.stub(helpers, 'isFile'); + const isFile_module_stub = this.stub(helpers_modules, 'isFile'); + isFile_stub.returns(true); + isFile_module_stub.returns(true); + + const result = await auth.isCredsTokenInitialized(); + + expect(result).to.equal(true); + })); + it('Expect un-initialized auth token to return false.', sinon.test(async function() { + const homedir_stub = this.stub(os, 'homedir'); + homedir_stub.returns(''); + const isFile_stub = this.stub(helpers, 'isFile'); + const isFile_module_stub = this.stub(helpers_modules, 'isFile'); + isFile_stub.returns(false); + isFile_module_stub.returns(false); + + const result = await auth.isCredsTokenInitialized(); + + expect(result).to.equal(false); + })); + }); + + describe('getCreds', () => { + it('Expect valid token contents to be returned.', sinon.test(async function() { + const homedir_stub = this.stub(os, 'homedir'); + homedir_stub.returns(''); + const readFileSync_stub = this.stub(fs, 'readFileSync'); + readFileSync_stub.returns({}); + const parse_stub = this.stub(JSON, 'parse'); + parse_stub.returns({ foo: 'bar' }); + + const result = await auth.getCreds(); + + expect(isEmpty(result)).to.equal(false); + expect(result.foo).to.equal('bar'); + })); + it('Expect error if no token exists.', sinon.test(async function() { + const homedir_stub = this.stub(os, 'homedir'); + homedir_stub.returns(''); + const readFileSync_stub = this.stub(fs, 'readFileSync'); + readFileSync_stub.throws(new Error('FAIL')); + + await expect(auth.getCreds()).to.be.rejectedWith(Error); + })); + it('Expect error if token does not contain valid JSON.', sinon.test(async function() { + const homedir_stub = this.stub(os, 'homedir'); + homedir_stub.returns(''); + const readFileSync_stub = this.stub(fs, 'readFileSync'); + readFileSync_stub.returns({}); + const parse_stub = this.stub(JSON, 'parse'); + parse_stub.throws(new Error('FAIL')); + + await expect(auth.getCreds()).to.be.rejectedWith(Error); + })); + }); + + describe('storeCreds', () => { + it('Expect no error when storing valid creds.', sinon.test(async function() { + const homedir_stub = this.stub(os, 'homedir'); + homedir_stub.returns(''); + const writeFile_stub = this.stub(fs, 'writeFile'); + writeFile_stub.callsArgWith(2, undefined); + const stringify_stub = this.stub(JSON, 'stringify'); + stringify_stub.returns(''); + + const result = await auth.storeCreds('foo', 'bar'); + + expect(isEmpty(result)).to.equal(true); + })); + it('Expect error when storing creds without a username.', sinon.test(async function() { + await expect(auth.getCreds(undefined, 'bar')).to.be.rejectedWith(Error); + })); + it('Expect error when storing creds without a password.', sinon.test(async function() { + await expect(auth.getCreds('foo')).to.be.rejectedWith(Error); + })); + it('Expect error when writeFile fails.', sinon.test(async function() { + const homedir_stub = this.stub(os, 'homedir'); + homedir_stub.returns(''); + const writeFile_stub = this.stub(fs, 'writeFile'); + writeFile_stub.callsArgWith(2, new Error('FAIL')); + const stringify_stub = this.stub(JSON, 'stringify'); + stringify_stub.returns(''); + + await expect(auth.storeCreds('foo', 'bar')).to.be.rejectedWith(Error); + })); + }); +}); diff --git a/main/tests/modules/commits.test.js b/main/tests/modules/commits.test.js index 9b49c82..4d93b05 100644 --- a/main/tests/modules/commits.test.js +++ b/main/tests/modules/commits.test.js @@ -1,5 +1,5 @@ /* ================================================== - VELOCITY + COMMITS ================================================== */ import { expect } from 'chai'; diff --git a/main/tests/modules/helpers.test.js b/main/tests/modules/helpers.test.js index 2732523..9137d03 100644 --- a/main/tests/modules/helpers.test.js +++ b/main/tests/modules/helpers.test.js @@ -1,35 +1,45 @@ /* ================================================== - VELOCITY + HELPERS ================================================== */ +import fs from 'fs'; + import { expect } from 'chai'; import { isEmpty, isArray } from 'lodash'; +import sinon from 'sinon'; +import sinon_test from 'sinon-test'; import { isFile, uniq, wrapSpinner, partial } from '../../modules/helpers.js'; +sinon.test = sinon_test.configureTest(sinon); +sinon.testCase = sinon_test.configureTestCase(sinon); + describe('Helpers', () => { describe('isFile', () => { - it('Expect current file\'s path to be true.', done => { - const result = isFile(__filename); + it('Expect valid file path to be true.', sinon.test(function() { + const statSync_stub = this.stub(fs, 'statSync'); + statSync_stub.returns({ isFile: () => true }); + + const result = isFile('./real/file/path.js'); expect(result).to.equal(true); + })); + it('Expect non-existant file path to be blank.', sinon.test(function() { + const statSync_stub = this.stub(fs, 'statSync'); + statSync_stub.returns({ isFile: () => false }); - done(); - }); - it('Expect blank file path to be false.', done => { - const result = isFile(''); + const result = isFile('./fake/file/path.js'); expect(result).to.equal(false); + })); + it('Expect exception to return false.', sinon.test(function() { + const statSync_stub = this.stub(fs, 'statSync'); + statSync_stub.throws(new Error('FAIL')); - done(); - }); - it('Expect non-existant file path to be false.', done => { - const result = isFile(`${ __filename }.${ Math.random() }`); + const result = isFile(); expect(result).to.equal(false); - - done(); - }); + })); }); describe('uniq', () => { @@ -90,10 +100,6 @@ describe('Helpers', () => { }); }); - describe('requestPromise', () => { - /* === TODO === */ - }); - describe('partial', () => { it('Expect partially applied function to return correct value.', done => { const add10 = partial((num1, num2) => num1 + num2, 10); diff --git a/package.json b/package.json index affec5a..ddd83de 100644 --- a/package.json +++ b/package.json @@ -46,10 +46,13 @@ "babel-preset-latest-minimal": "1.1.2", "babel-register": "6.23.0", "chai": "3.5.0", + "chai-as-promised": "6.0.0", "commitizen": "2.9.5", "cz-conventional-changelog": "1.2.0", "lodash": "4.17.4", "mocha": "3.2.0", - "semantic-release": "6.3.2" + "semantic-release": "6.3.2", + "sinon": "2.1.0", + "sinon-test": "1.0.1" } } From 7fc1d4887481c9f5777b0a16ff1eb74de09ae444 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sat, 25 Mar 2017 15:40:47 -0400 Subject: [PATCH 11/13] test(package, commits): Added tests for commits. Added `isomorphic-fetch` package in place of `node- From here on out, `isomorphic-fetch` should be imported on any page where the global `fetch` function is required. closes #19 --- main/modules/commits.js | 2 +- main/tests/data/branch_github_data.json | 9 + main/tests/data/branches_github_data.json | 16 + main/tests/data/commits_bitbucket_data.json | 2459 +++++++++++++++++++ main/tests/data/commits_github_data.json | 2152 ++++++++++++++++ main/tests/modules/commits.test.js | 115 +- package.json | 5 +- 7 files changed, 4751 insertions(+), 7 deletions(-) create mode 100644 main/tests/data/branch_github_data.json create mode 100644 main/tests/data/branches_github_data.json create mode 100644 main/tests/data/commits_bitbucket_data.json create mode 100644 main/tests/data/commits_github_data.json diff --git a/main/modules/commits.js b/main/modules/commits.js index 439c1c1..956d9f8 100644 --- a/main/modules/commits.js +++ b/main/modules/commits.js @@ -2,7 +2,7 @@ COMMITS ================================================== */ -import fetch, { Headers } from 'node-fetch'; +import 'isomorphic-fetch'; import { uniq } from './helpers'; import { Auth } from './auth'; diff --git a/main/tests/data/branch_github_data.json b/main/tests/data/branch_github_data.json new file mode 100644 index 0000000..65eb1f1 --- /dev/null +++ b/main/tests/data/branch_github_data.json @@ -0,0 +1,9 @@ +[ + { + "name": "master", + "commit": { + "sha": "1", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/1" + } + } +] \ No newline at end of file diff --git a/main/tests/data/branches_github_data.json b/main/tests/data/branches_github_data.json new file mode 100644 index 0000000..1a99192 --- /dev/null +++ b/main/tests/data/branches_github_data.json @@ -0,0 +1,16 @@ +[ + { + "name": "master", + "commit": { + "sha": "1", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/1" + } + }, + { + "name": "develop", + "commit": { + "sha": "2", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/2" + } + } +] \ No newline at end of file diff --git a/main/tests/data/commits_bitbucket_data.json b/main/tests/data/commits_bitbucket_data.json new file mode 100644 index 0000000..3f87edb --- /dev/null +++ b/main/tests/data/commits_bitbucket_data.json @@ -0,0 +1,2459 @@ +{ + "pagelen": 30, + "values": [ + { + "hash": "91b42f7b7ed847f7b51a64f3c226445960bdbbcf", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/91b42f7b7ed847f7b51a64f3c226445960bdbbcf" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/91b42f7b7ed847f7b51a64f3c226445960bdbbcf/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/91b42f7b7ed847f7b51a64f3c226445960bdbbcf" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/91b42f7b7ed847f7b51a64f3c226445960bdbbcf" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/91b42f7b7ed847f7b51a64f3c226445960bdbbcf" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/91b42f7b7ed847f7b51a64f3c226445960bdbbcf/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/91b42f7b7ed847f7b51a64f3c226445960bdbbcf/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "72f6b7a5525bcdf68da00c33e4320ce327de6703", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/72f6b7a5525bcdf68da00c33e4320ce327de6703" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/72f6b7a5525bcdf68da00c33e4320ce327de6703" + } + } + } + ], + "date": "2017-03-24T21:20:33+00:00", + "message": "Added LIVE build and publish configuration, enabled Node production mode for prod/server builds.\n", + "type": "commit" + }, + { + "hash": "882a60bfe9f08c76de21685bc2a1aaf76f0bb6ed", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/882a60bfe9f08c76de21685bc2a1aaf76f0bb6ed" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/882a60bfe9f08c76de21685bc2a1aaf76f0bb6ed/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/882a60bfe9f08c76de21685bc2a1aaf76f0bb6ed" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/882a60bfe9f08c76de21685bc2a1aaf76f0bb6ed" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/882a60bfe9f08c76de21685bc2a1aaf76f0bb6ed" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/882a60bfe9f08c76de21685bc2a1aaf76f0bb6ed/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/882a60bfe9f08c76de21685bc2a1aaf76f0bb6ed/statuses" + } + }, + "author": { + "raw": "Mohammad Assi ", + "user": { + "username": "massi1", + "display_name": "Mohammad Assi", + "type": "user", + "uuid": "{89b5ea2d-00b9-46b5-a351-c3257ad2b16b}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/massi1" + }, + "html": { + "href": "https://bitbucket.org/massi1/" + }, + "avatar": { + "href": "https://bitbucket.org/account/massi1/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "fedcbfc3827d0ec9f79ea30e7096ef5f3329238e", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fedcbfc3827d0ec9f79ea30e7096ef5f3329238e" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/fedcbfc3827d0ec9f79ea30e7096ef5f3329238e" + } + } + } + ], + "date": "2017-03-24T21:17:15+00:00", + "message": "[CPA-368] - Contact Us - BE\n", + "type": "commit" + }, + { + "hash": "fedcbfc3827d0ec9f79ea30e7096ef5f3329238e", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fedcbfc3827d0ec9f79ea30e7096ef5f3329238e" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fedcbfc3827d0ec9f79ea30e7096ef5f3329238e/comments" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/fedcbfc3827d0ec9f79ea30e7096ef5f3329238e" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/fedcbfc3827d0ec9f79ea30e7096ef5f3329238e" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fedcbfc3827d0ec9f79ea30e7096ef5f3329238e/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fedcbfc3827d0ec9f79ea30e7096ef5f3329238e/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "dfc0473f337a0f24f79bb924bd724391e1f49384", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/dfc0473f337a0f24f79bb924bd724391e1f49384" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/dfc0473f337a0f24f79bb924bd724391e1f49384" + } + } + }, + { + "hash": "72f6b7a5525bcdf68da00c33e4320ce327de6703", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/72f6b7a5525bcdf68da00c33e4320ce327de6703" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/72f6b7a5525bcdf68da00c33e4320ce327de6703" + } + } + } + ], + "date": "2017-03-24T20:58:24+00:00", + "message": "Resolved merge conflicts with [develop].\n", + "type": "commit" + }, + { + "hash": "72f6b7a5525bcdf68da00c33e4320ce327de6703", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/72f6b7a5525bcdf68da00c33e4320ce327de6703" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/72f6b7a5525bcdf68da00c33e4320ce327de6703/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/72f6b7a5525bcdf68da00c33e4320ce327de6703" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/72f6b7a5525bcdf68da00c33e4320ce327de6703" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/72f6b7a5525bcdf68da00c33e4320ce327de6703" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/72f6b7a5525bcdf68da00c33e4320ce327de6703/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/72f6b7a5525bcdf68da00c33e4320ce327de6703/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "1c2d5cae8c5d3188b1eee8292432ef70c1822def", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c2d5cae8c5d3188b1eee8292432ef70c1822def" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/1c2d5cae8c5d3188b1eee8292432ef70c1822def" + } + } + } + ], + "date": "2017-03-24T20:56:38+00:00", + "message": "REFACTOR\n- Removed redundant settings keys from APP_SETTINGS.\n", + "type": "commit" + }, + { + "hash": "dfc0473f337a0f24f79bb924bd724391e1f49384", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/dfc0473f337a0f24f79bb924bd724391e1f49384" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/dfc0473f337a0f24f79bb924bd724391e1f49384/comments" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/dfc0473f337a0f24f79bb924bd724391e1f49384" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/dfc0473f337a0f24f79bb924bd724391e1f49384" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/dfc0473f337a0f24f79bb924bd724391e1f49384/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/dfc0473f337a0f24f79bb924bd724391e1f49384/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "beaccfd714dc531f1aa92ea0608ed8d967810d9f", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/beaccfd714dc531f1aa92ea0608ed8d967810d9f" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/beaccfd714dc531f1aa92ea0608ed8d967810d9f" + } + } + }, + { + "hash": "740a215bf0b9beb7ab9a92ea464779c11f7c5c20", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/740a215bf0b9beb7ab9a92ea464779c11f7c5c20" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/740a215bf0b9beb7ab9a92ea464779c11f7c5c20" + } + } + } + ], + "date": "2017-03-24T20:35:18+00:00", + "message": "Resolved merge conflicts.\n", + "type": "commit" + }, + { + "hash": "beaccfd714dc531f1aa92ea0608ed8d967810d9f", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/beaccfd714dc531f1aa92ea0608ed8d967810d9f" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/beaccfd714dc531f1aa92ea0608ed8d967810d9f/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/beaccfd714dc531f1aa92ea0608ed8d967810d9f" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/beaccfd714dc531f1aa92ea0608ed8d967810d9f" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/beaccfd714dc531f1aa92ea0608ed8d967810d9f" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/beaccfd714dc531f1aa92ea0608ed8d967810d9f/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/beaccfd714dc531f1aa92ea0608ed8d967810d9f/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "d39abdb5f235105f1b61f5cc4d8b96d4d993eca0", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0" + } + } + } + ], + "date": "2017-03-24T20:17:25+00:00", + "message": "[CPA-135]\n- Added axios, POST contact us form submissions to our BE API.\n", + "type": "commit" + }, + { + "hash": "740a215bf0b9beb7ab9a92ea464779c11f7c5c20", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/740a215bf0b9beb7ab9a92ea464779c11f7c5c20" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/740a215bf0b9beb7ab9a92ea464779c11f7c5c20/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/740a215bf0b9beb7ab9a92ea464779c11f7c5c20" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/740a215bf0b9beb7ab9a92ea464779c11f7c5c20" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/740a215bf0b9beb7ab9a92ea464779c11f7c5c20" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/740a215bf0b9beb7ab9a92ea464779c11f7c5c20/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/740a215bf0b9beb7ab9a92ea464779c11f7c5c20/statuses" + } + }, + "author": { + "raw": "Mohammad Assi ", + "user": { + "username": "massi1", + "display_name": "Mohammad Assi", + "type": "user", + "uuid": "{89b5ea2d-00b9-46b5-a351-c3257ad2b16b}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/massi1" + }, + "html": { + "href": "https://bitbucket.org/massi1/" + }, + "avatar": { + "href": "https://bitbucket.org/account/massi1/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "d39abdb5f235105f1b61f5cc4d8b96d4d993eca0", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0" + } + } + } + ], + "date": "2017-03-24T19:40:06+00:00", + "message": "[CPA-368] - Contact Us - Added error message list\n", + "type": "commit" + }, + { + "hash": "d39abdb5f235105f1b61f5cc4d8b96d4d993eca0", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0/comments" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/d39abdb5f235105f1b61f5cc4d8b96d4d993eca0/statuses" + } + }, + "author": { + "raw": "Mohammad Assi ", + "user": { + "username": "massi1", + "display_name": "Mohammad Assi", + "type": "user", + "uuid": "{89b5ea2d-00b9-46b5-a351-c3257ad2b16b}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/massi1" + }, + "html": { + "href": "https://bitbucket.org/massi1/" + }, + "avatar": { + "href": "https://bitbucket.org/account/massi1/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "2c9ccd128a5743a43c21abcfcd6d9c6128e383a7", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7" + } + } + }, + { + "hash": "345d0ef3f64d390495eec3b2611aaec20d445e1e", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/345d0ef3f64d390495eec3b2611aaec20d445e1e" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/345d0ef3f64d390495eec3b2611aaec20d445e1e" + } + } + } + ], + "date": "2017-03-24T18:21:24+00:00", + "message": "MERGE - Resolved confilicts\n", + "type": "commit" + }, + { + "hash": "2c9ccd128a5743a43c21abcfcd6d9c6128e383a7", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/2c9ccd128a5743a43c21abcfcd6d9c6128e383a7/statuses" + } + }, + "author": { + "raw": "Mohammad Assi ", + "user": { + "username": "massi1", + "display_name": "Mohammad Assi", + "type": "user", + "uuid": "{89b5ea2d-00b9-46b5-a351-c3257ad2b16b}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/massi1" + }, + "html": { + "href": "https://bitbucket.org/massi1/" + }, + "avatar": { + "href": "https://bitbucket.org/account/massi1/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "319d54230e5bf353f4fddda2340024fcbfdf98ec", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/319d54230e5bf353f4fddda2340024fcbfdf98ec" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/319d54230e5bf353f4fddda2340024fcbfdf98ec" + } + } + } + ], + "date": "2017-03-24T18:13:18+00:00", + "message": "[CPA-368] - Contact Us - BE\n", + "type": "commit" + }, + { + "hash": "345d0ef3f64d390495eec3b2611aaec20d445e1e", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/345d0ef3f64d390495eec3b2611aaec20d445e1e" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/345d0ef3f64d390495eec3b2611aaec20d445e1e/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/345d0ef3f64d390495eec3b2611aaec20d445e1e" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/345d0ef3f64d390495eec3b2611aaec20d445e1e" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/345d0ef3f64d390495eec3b2611aaec20d445e1e" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/345d0ef3f64d390495eec3b2611aaec20d445e1e/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/345d0ef3f64d390495eec3b2611aaec20d445e1e/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "ddcf168a969ad9fd42965595e182828b819291c6", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/ddcf168a969ad9fd42965595e182828b819291c6" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/ddcf168a969ad9fd42965595e182828b819291c6" + } + } + } + ], + "date": "2017-03-24T18:12:09+00:00", + "message": "[CPA-135]\n- Render CSRF token in contact us form through React.\n", + "type": "commit" + }, + { + "hash": "ddcf168a969ad9fd42965595e182828b819291c6", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/ddcf168a969ad9fd42965595e182828b819291c6" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/ddcf168a969ad9fd42965595e182828b819291c6/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/ddcf168a969ad9fd42965595e182828b819291c6" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/ddcf168a969ad9fd42965595e182828b819291c6" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/ddcf168a969ad9fd42965595e182828b819291c6" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/ddcf168a969ad9fd42965595e182828b819291c6/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/ddcf168a969ad9fd42965595e182828b819291c6/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "92ffa0f2b3299028d25246c65057378ff01ec7c5", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/92ffa0f2b3299028d25246c65057378ff01ec7c5" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/92ffa0f2b3299028d25246c65057378ff01ec7c5" + } + } + } + ], + "date": "2017-03-24T17:47:34+00:00", + "message": "[CPA-135]\n- Implemented remove file feature in file input component.\n- Styled file input component.\n", + "type": "commit" + }, + { + "hash": "92ffa0f2b3299028d25246c65057378ff01ec7c5", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/92ffa0f2b3299028d25246c65057378ff01ec7c5" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/92ffa0f2b3299028d25246c65057378ff01ec7c5/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/92ffa0f2b3299028d25246c65057378ff01ec7c5" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/92ffa0f2b3299028d25246c65057378ff01ec7c5" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/92ffa0f2b3299028d25246c65057378ff01ec7c5" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/92ffa0f2b3299028d25246c65057378ff01ec7c5/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/92ffa0f2b3299028d25246c65057378ff01ec7c5/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "1c2d5cae8c5d3188b1eee8292432ef70c1822def", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c2d5cae8c5d3188b1eee8292432ef70c1822def" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/1c2d5cae8c5d3188b1eee8292432ef70c1822def" + } + } + } + ], + "date": "2017-03-24T17:15:51+00:00", + "message": "Resolved merge conflicts with revert.\n", + "type": "commit" + }, + { + "hash": "1c2d5cae8c5d3188b1eee8292432ef70c1822def", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c2d5cae8c5d3188b1eee8292432ef70c1822def" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c2d5cae8c5d3188b1eee8292432ef70c1822def/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/1c2d5cae8c5d3188b1eee8292432ef70c1822def" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/1c2d5cae8c5d3188b1eee8292432ef70c1822def" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/1c2d5cae8c5d3188b1eee8292432ef70c1822def" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c2d5cae8c5d3188b1eee8292432ef70c1822def/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c2d5cae8c5d3188b1eee8292432ef70c1822def/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "66a885089ad50562953b8317f85ed5b0b80d8962", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/66a885089ad50562953b8317f85ed5b0b80d8962" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/66a885089ad50562953b8317f85ed5b0b80d8962" + } + } + } + ], + "date": "2017-03-24T16:16:06+00:00", + "message": "Removed missing files from solution.\n", + "type": "commit" + }, + { + "hash": "66a885089ad50562953b8317f85ed5b0b80d8962", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/66a885089ad50562953b8317f85ed5b0b80d8962" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/66a885089ad50562953b8317f85ed5b0b80d8962/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/66a885089ad50562953b8317f85ed5b0b80d8962" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/66a885089ad50562953b8317f85ed5b0b80d8962" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/66a885089ad50562953b8317f85ed5b0b80d8962" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/66a885089ad50562953b8317f85ed5b0b80d8962/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/66a885089ad50562953b8317f85ed5b0b80d8962/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "8e10a02e757d5fbd48e864f30d0abb97e83b082b", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/8e10a02e757d5fbd48e864f30d0abb97e83b082b" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/8e10a02e757d5fbd48e864f30d0abb97e83b082b" + } + } + } + ], + "date": "2017-03-24T16:05:59+00:00", + "message": "Ran full FE build.\n", + "type": "commit" + }, + { + "hash": "8e10a02e757d5fbd48e864f30d0abb97e83b082b", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/8e10a02e757d5fbd48e864f30d0abb97e83b082b" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/8e10a02e757d5fbd48e864f30d0abb97e83b082b/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/8e10a02e757d5fbd48e864f30d0abb97e83b082b" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/8e10a02e757d5fbd48e864f30d0abb97e83b082b" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/8e10a02e757d5fbd48e864f30d0abb97e83b082b" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/8e10a02e757d5fbd48e864f30d0abb97e83b082b/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/8e10a02e757d5fbd48e864f30d0abb97e83b082b/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "025c9f8812def7db11b860fed031ceacdbd7b019", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/025c9f8812def7db11b860fed031ceacdbd7b019" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/025c9f8812def7db11b860fed031ceacdbd7b019" + } + } + } + ], + "date": "2017-03-24T16:02:50+00:00", + "message": "Fixed filtering bug when zero results on events listing.\n", + "type": "commit" + }, + { + "hash": "025c9f8812def7db11b860fed031ceacdbd7b019", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/025c9f8812def7db11b860fed031ceacdbd7b019" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/025c9f8812def7db11b860fed031ceacdbd7b019/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/025c9f8812def7db11b860fed031ceacdbd7b019" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/025c9f8812def7db11b860fed031ceacdbd7b019" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/025c9f8812def7db11b860fed031ceacdbd7b019" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/025c9f8812def7db11b860fed031ceacdbd7b019/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/025c9f8812def7db11b860fed031ceacdbd7b019/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "7b1b4afde6f87f819f0f449791a65573413f8eb4", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7b1b4afde6f87f819f0f449791a65573413f8eb4" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/7b1b4afde6f87f819f0f449791a65573413f8eb4" + } + } + } + ], + "date": "2017-03-24T15:51:04+00:00", + "message": "Removed unimplemented contact us form fields for intermediate release.\n", + "type": "commit" + }, + { + "hash": "7b1b4afde6f87f819f0f449791a65573413f8eb4", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7b1b4afde6f87f819f0f449791a65573413f8eb4" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7b1b4afde6f87f819f0f449791a65573413f8eb4/comments" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/7b1b4afde6f87f819f0f449791a65573413f8eb4" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/7b1b4afde6f87f819f0f449791a65573413f8eb4" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7b1b4afde6f87f819f0f449791a65573413f8eb4/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7b1b4afde6f87f819f0f449791a65573413f8eb4/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "49952e0d1bbfde56b48cffb5fdda26f0eab22eaf", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf" + } + } + }, + { + "hash": "1c3a033e6a71f64f0fafedf2b99aae06abb01153", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c3a033e6a71f64f0fafedf2b99aae06abb01153" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/1c3a033e6a71f64f0fafedf2b99aae06abb01153" + } + } + } + ], + "date": "2017-03-24T15:47:54+00:00", + "message": "Resolved merge conflicts with [feat-contactus].\n", + "type": "commit" + }, + { + "hash": "1c3a033e6a71f64f0fafedf2b99aae06abb01153", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c3a033e6a71f64f0fafedf2b99aae06abb01153" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c3a033e6a71f64f0fafedf2b99aae06abb01153/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/1c3a033e6a71f64f0fafedf2b99aae06abb01153" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/1c3a033e6a71f64f0fafedf2b99aae06abb01153" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/1c3a033e6a71f64f0fafedf2b99aae06abb01153" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c3a033e6a71f64f0fafedf2b99aae06abb01153/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1c3a033e6a71f64f0fafedf2b99aae06abb01153/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "319d54230e5bf353f4fddda2340024fcbfdf98ec", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/319d54230e5bf353f4fddda2340024fcbfdf98ec" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/319d54230e5bf353f4fddda2340024fcbfdf98ec" + } + } + } + ], + "date": "2017-03-24T15:00:02+00:00", + "message": "[CPA-135]\n- Created basic file input component.\n", + "type": "commit" + }, + { + "hash": "677fb3cc22038445603eb947c1569f0bc7ce26af", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/677fb3cc22038445603eb947c1569f0bc7ce26af" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/677fb3cc22038445603eb947c1569f0bc7ce26af/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/677fb3cc22038445603eb947c1569f0bc7ce26af" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/677fb3cc22038445603eb947c1569f0bc7ce26af" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/677fb3cc22038445603eb947c1569f0bc7ce26af" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/677fb3cc22038445603eb947c1569f0bc7ce26af/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/677fb3cc22038445603eb947c1569f0bc7ce26af/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "04e98d675d52c4451857eed9fce801fa8f9ea627", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/04e98d675d52c4451857eed9fce801fa8f9ea627" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/04e98d675d52c4451857eed9fce801fa8f9ea627" + } + } + } + ], + "date": "2017-03-24T13:58:25+00:00", + "message": "[CPA-156]\n- Modified analytics to support standard `data-*` tags.\n", + "type": "commit" + }, + { + "hash": "04e98d675d52c4451857eed9fce801fa8f9ea627", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/04e98d675d52c4451857eed9fce801fa8f9ea627" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/04e98d675d52c4451857eed9fce801fa8f9ea627/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/04e98d675d52c4451857eed9fce801fa8f9ea627" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/04e98d675d52c4451857eed9fce801fa8f9ea627" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/04e98d675d52c4451857eed9fce801fa8f9ea627" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/04e98d675d52c4451857eed9fce801fa8f9ea627/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/04e98d675d52c4451857eed9fce801fa8f9ea627/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "5811aa629b9c68942d328470919aa31bf14544f4", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5811aa629b9c68942d328470919aa31bf14544f4" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/5811aa629b9c68942d328470919aa31bf14544f4" + } + } + } + ], + "date": "2017-03-23T22:29:54+00:00", + "message": "[CPA-156]\n- Added autotracker to capture GA events and page views.\n", + "type": "commit" + }, + { + "hash": "5811aa629b9c68942d328470919aa31bf14544f4", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5811aa629b9c68942d328470919aa31bf14544f4" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5811aa629b9c68942d328470919aa31bf14544f4/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/5811aa629b9c68942d328470919aa31bf14544f4" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/5811aa629b9c68942d328470919aa31bf14544f4" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/5811aa629b9c68942d328470919aa31bf14544f4" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5811aa629b9c68942d328470919aa31bf14544f4/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5811aa629b9c68942d328470919aa31bf14544f4/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5" + } + } + } + ], + "date": "2017-03-23T21:01:04+00:00", + "message": "Revert \"[CPA-138]\"\n\nThis reverts commit 82190d3cb6b253b8e9f6f48d698d7fe371d7dd98.\n", + "type": "commit" + }, + { + "hash": "5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5/comments" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/5f1dd9b24d3ecef34ba5fb8aee355377cba0a4a5/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "82190d3cb6b253b8e9f6f48d698d7fe371d7dd98", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98" + } + } + }, + { + "hash": "49952e0d1bbfde56b48cffb5fdda26f0eab22eaf", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf" + } + } + } + ], + "date": "2017-03-23T21:00:15+00:00", + "message": "Merge branch 'develop' into feat-analytics\n\n* develop:\n [CPA-346] - Enabled rich text for form label inputs.\n [CPA-358] - Added scroll bars to desktop navigation.\n", + "type": "commit" + }, + { + "hash": "49952e0d1bbfde56b48cffb5fdda26f0eab22eaf", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/49952e0d1bbfde56b48cffb5fdda26f0eab22eaf/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "42607afc102abf81cedaa69a1292001fa595bbaf", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/42607afc102abf81cedaa69a1292001fa595bbaf" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/42607afc102abf81cedaa69a1292001fa595bbaf" + } + } + } + ], + "date": "2017-03-23T18:21:08+00:00", + "message": "[CPA-346]\n- Enabled rich text for form label inputs.\n", + "type": "commit" + }, + { + "hash": "42607afc102abf81cedaa69a1292001fa595bbaf", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/42607afc102abf81cedaa69a1292001fa595bbaf" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/42607afc102abf81cedaa69a1292001fa595bbaf/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/42607afc102abf81cedaa69a1292001fa595bbaf" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/42607afc102abf81cedaa69a1292001fa595bbaf" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/42607afc102abf81cedaa69a1292001fa595bbaf" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/42607afc102abf81cedaa69a1292001fa595bbaf/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/42607afc102abf81cedaa69a1292001fa595bbaf/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "319d54230e5bf353f4fddda2340024fcbfdf98ec", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/319d54230e5bf353f4fddda2340024fcbfdf98ec" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/319d54230e5bf353f4fddda2340024fcbfdf98ec" + } + } + } + ], + "date": "2017-03-23T18:14:58+00:00", + "message": "[CPA-358]\n- Added scroll bars to desktop navigation.\n", + "type": "commit" + }, + { + "hash": "82190d3cb6b253b8e9f6f48d698d7fe371d7dd98", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/82190d3cb6b253b8e9f6f48d698d7fe371d7dd98/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "319d54230e5bf353f4fddda2340024fcbfdf98ec", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/319d54230e5bf353f4fddda2340024fcbfdf98ec" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/319d54230e5bf353f4fddda2340024fcbfdf98ec" + } + } + } + ], + "date": "2017-03-23T17:57:40+00:00", + "message": "[CPA-138]\n- Added Google Tag Manager init code.\n", + "type": "commit" + }, + { + "hash": "319d54230e5bf353f4fddda2340024fcbfdf98ec", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/319d54230e5bf353f4fddda2340024fcbfdf98ec" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/319d54230e5bf353f4fddda2340024fcbfdf98ec/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/319d54230e5bf353f4fddda2340024fcbfdf98ec" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/319d54230e5bf353f4fddda2340024fcbfdf98ec" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/319d54230e5bf353f4fddda2340024fcbfdf98ec" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/319d54230e5bf353f4fddda2340024fcbfdf98ec/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/319d54230e5bf353f4fddda2340024fcbfdf98ec/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "1f88f2e3410beb74779576df0a86f0d77260ab87", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1f88f2e3410beb74779576df0a86f0d77260ab87" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/1f88f2e3410beb74779576df0a86f0d77260ab87" + } + } + } + ], + "date": "2017-03-23T16:05:02+00:00", + "message": "REFACTOR\n- Moved text area resize logic to CSS.\n", + "type": "commit" + }, + { + "hash": "1f88f2e3410beb74779576df0a86f0d77260ab87", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1f88f2e3410beb74779576df0a86f0d77260ab87" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1f88f2e3410beb74779576df0a86f0d77260ab87/comments" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/1f88f2e3410beb74779576df0a86f0d77260ab87" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/1f88f2e3410beb74779576df0a86f0d77260ab87" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1f88f2e3410beb74779576df0a86f0d77260ab87/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/1f88f2e3410beb74779576df0a86f0d77260ab87/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1" + } + } + }, + { + "hash": "23e741642c6534f24636c7144293307322493462", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/23e741642c6534f24636c7144293307322493462" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/23e741642c6534f24636c7144293307322493462" + } + } + } + ], + "date": "2017-03-23T14:46:14+00:00", + "message": "Merge branch 'develop' into feat-contactus\n\n* develop:\n REFACTOR - Removed old dangling comment.\n [CPA-359] - Events Cleanup\n [CPA-360] - Cache GenerateAssetTag Results\n", + "type": "commit" + }, + { + "hash": "23e741642c6534f24636c7144293307322493462", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/23e741642c6534f24636c7144293307322493462" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/23e741642c6534f24636c7144293307322493462/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/23e741642c6534f24636c7144293307322493462" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/23e741642c6534f24636c7144293307322493462" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/23e741642c6534f24636c7144293307322493462" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/23e741642c6534f24636c7144293307322493462/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/23e741642c6534f24636c7144293307322493462/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "0a4b67d567c4d6867a21e5ef7aed2393cae89bd3", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/0a4b67d567c4d6867a21e5ef7aed2393cae89bd3" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/0a4b67d567c4d6867a21e5ef7aed2393cae89bd3" + } + } + } + ], + "date": "2017-03-23T14:45:58+00:00", + "message": "REFACTOR\n- Removed old dangling comment.\n", + "type": "commit" + }, + { + "hash": "fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/fd6d1c6aad0dacf950a9b9c24fab562e6c4988f1/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "7136e0c377866ffd384c2e9902b881d062d418e0", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7136e0c377866ffd384c2e9902b881d062d418e0" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/7136e0c377866ffd384c2e9902b881d062d418e0" + } + } + } + ], + "date": "2017-03-23T14:42:00+00:00", + "message": "[CPA-135]\n- Added ReCaptcha to contact us form.\n", + "type": "commit" + }, + { + "hash": "7136e0c377866ffd384c2e9902b881d062d418e0", + "repository": { + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao" + }, + "avatar": { + "href": "https://bitbucket.org/trapeze/cpao/avatar/32/" + } + }, + "type": "repository", + "name": "CPAO", + "full_name": "trapeze/cpao", + "uuid": "{389e2f8a-5903-4020-985e-60eea7125456}" + }, + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7136e0c377866ffd384c2e9902b881d062d418e0" + }, + "comments": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7136e0c377866ffd384c2e9902b881d062d418e0/comments" + }, + "patch": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/patch/7136e0c377866ffd384c2e9902b881d062d418e0" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/7136e0c377866ffd384c2e9902b881d062d418e0" + }, + "diff": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/diff/7136e0c377866ffd384c2e9902b881d062d418e0" + }, + "approve": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7136e0c377866ffd384c2e9902b881d062d418e0/approve" + }, + "statuses": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/7136e0c377866ffd384c2e9902b881d062d418e0/statuses" + } + }, + "author": { + "raw": "Igor Barsi ", + "user": { + "username": "ibarsi", + "display_name": "Igor Barsi", + "type": "user", + "uuid": "{bd6c615e-c7cd-4ace-a484-a13dd70a9307}", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/users/ibarsi" + }, + "html": { + "href": "https://bitbucket.org/ibarsi/" + }, + "avatar": { + "href": "https://bitbucket.org/account/ibarsi/avatar/32/" + } + } + } + }, + "parents": [ + { + "hash": "dc1646e255ba0e0c9e801b724a53f3d1357790b7", + "type": "commit", + "links": { + "self": { + "href": "https://api.bitbucket.org/2.0/repositories/trapeze/cpao/commit/dc1646e255ba0e0c9e801b724a53f3d1357790b7" + }, + "html": { + "href": "https://bitbucket.org/trapeze/cpao/commits/dc1646e255ba0e0c9e801b724a53f3d1357790b7" + } + } + } + ], + "date": "2017-03-22T23:33:05+00:00", + "message": "[CPA-135]\n- Filter dropdowns by selected parent.\n", + "type": "commit" + } + ] +} \ No newline at end of file diff --git a/main/tests/data/commits_github_data.json b/main/tests/data/commits_github_data.json new file mode 100644 index 0000000..b10c4c7 --- /dev/null +++ b/main/tests/data/commits_github_data.json @@ -0,0 +1,2152 @@ +[ + { + "sha": "3415da538a15b2b7179611c0f3a700faeaa954ff", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi92@gmail.com", + "date": "2017-03-07T01:34:23Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2017-03-07T01:34:23Z" + }, + "message": "Merge pull request #21 from ibarsi/develop\n\nfix(config): Added `.npmconfig` to ignore source files and ensure dis…", + "tree": { + "sha": "4ba3934f170934eb4a70c112440bd87e7f1c4884", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/4ba3934f170934eb4a70c112440bd87e7f1c4884" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/3415da538a15b2b7179611c0f3a700faeaa954ff", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/3415da538a15b2b7179611c0f3a700faeaa954ff", + "html_url": "https://github.com/ibarsi/git-velocity/commit/3415da538a15b2b7179611c0f3a700faeaa954ff", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/3415da538a15b2b7179611c0f3a700faeaa954ff/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "avatar_url": "https://avatars0.githubusercontent.com/u/19864447?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "4485751f77a141acaf484037df95e5c9aa7201c6", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4485751f77a141acaf484037df95e5c9aa7201c6", + "html_url": "https://github.com/ibarsi/git-velocity/commit/4485751f77a141acaf484037df95e5c9aa7201c6" + }, + { + "sha": "a0651300153dbd8562022c3d9f8a23ab3874ee13", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/a0651300153dbd8562022c3d9f8a23ab3874ee13", + "html_url": "https://github.com/ibarsi/git-velocity/commit/a0651300153dbd8562022c3d9f8a23ab3874ee13" + } + ] + }, + { + "sha": "a0651300153dbd8562022c3d9f8a23ab3874ee13", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-07T01:31:21Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-07T01:31:21Z" + }, + "message": "fix(config): Added `.npmconfig` to ignore source files and ensure dist files are published.\n\ncloses #20", + "tree": { + "sha": "4ba3934f170934eb4a70c112440bd87e7f1c4884", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/4ba3934f170934eb4a70c112440bd87e7f1c4884" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/a0651300153dbd8562022c3d9f8a23ab3874ee13", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/a0651300153dbd8562022c3d9f8a23ab3874ee13", + "html_url": "https://github.com/ibarsi/git-velocity/commit/a0651300153dbd8562022c3d9f8a23ab3874ee13", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/a0651300153dbd8562022c3d9f8a23ab3874ee13/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "4485751f77a141acaf484037df95e5c9aa7201c6", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4485751f77a141acaf484037df95e5c9aa7201c6", + "html_url": "https://github.com/ibarsi/git-velocity/commit/4485751f77a141acaf484037df95e5c9aa7201c6" + } + ] + }, + { + "sha": "4485751f77a141acaf484037df95e5c9aa7201c6", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi92@gmail.com", + "date": "2017-03-05T21:57:13Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2017-03-05T21:57:13Z" + }, + "message": "Merge pull request #18 from ibarsi/develop\n\nDevelop", + "tree": { + "sha": "da79321a407b3a8552888d3f0c9381165e26a938", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/da79321a407b3a8552888d3f0c9381165e26a938" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/4485751f77a141acaf484037df95e5c9aa7201c6", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4485751f77a141acaf484037df95e5c9aa7201c6", + "html_url": "https://github.com/ibarsi/git-velocity/commit/4485751f77a141acaf484037df95e5c9aa7201c6", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4485751f77a141acaf484037df95e5c9aa7201c6/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "avatar_url": "https://avatars0.githubusercontent.com/u/19864447?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "a24578bbead1ae1d4ff5e135fb898c04dc1f9567", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/a24578bbead1ae1d4ff5e135fb898c04dc1f9567", + "html_url": "https://github.com/ibarsi/git-velocity/commit/a24578bbead1ae1d4ff5e135fb898c04dc1f9567" + }, + { + "sha": "7d1eca803ff363e10cff16aed0b46d84a3f7c109", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/7d1eca803ff363e10cff16aed0b46d84a3f7c109", + "html_url": "https://github.com/ibarsi/git-velocity/commit/7d1eca803ff363e10cff16aed0b46d84a3f7c109" + } + ] + }, + { + "sha": "7d1eca803ff363e10cff16aed0b46d84a3f7c109", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-05T21:41:59Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-05T21:41:59Z" + }, + "message": "Merge branch 'master' into develop\n\n* master:", + "tree": { + "sha": "da79321a407b3a8552888d3f0c9381165e26a938", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/da79321a407b3a8552888d3f0c9381165e26a938" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/7d1eca803ff363e10cff16aed0b46d84a3f7c109", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/7d1eca803ff363e10cff16aed0b46d84a3f7c109", + "html_url": "https://github.com/ibarsi/git-velocity/commit/7d1eca803ff363e10cff16aed0b46d84a3f7c109", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/7d1eca803ff363e10cff16aed0b46d84a3f7c109/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "ba2052d65f4e7cf24f17792478a3367062846c19", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/ba2052d65f4e7cf24f17792478a3367062846c19", + "html_url": "https://github.com/ibarsi/git-velocity/commit/ba2052d65f4e7cf24f17792478a3367062846c19" + }, + { + "sha": "a24578bbead1ae1d4ff5e135fb898c04dc1f9567", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/a24578bbead1ae1d4ff5e135fb898c04dc1f9567", + "html_url": "https://github.com/ibarsi/git-velocity/commit/a24578bbead1ae1d4ff5e135fb898c04dc1f9567" + } + ] + }, + { + "sha": "ba2052d65f4e7cf24f17792478a3367062846c19", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-05T21:41:36Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-05T21:41:36Z" + }, + "message": "fix(auth): Auth IO now platform agnostic.\n\n- Updated `.gitignore`, added /dist folder.\n\ncloses #13", + "tree": { + "sha": "da79321a407b3a8552888d3f0c9381165e26a938", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/da79321a407b3a8552888d3f0c9381165e26a938" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/ba2052d65f4e7cf24f17792478a3367062846c19", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/ba2052d65f4e7cf24f17792478a3367062846c19", + "html_url": "https://github.com/ibarsi/git-velocity/commit/ba2052d65f4e7cf24f17792478a3367062846c19", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/ba2052d65f4e7cf24f17792478a3367062846c19/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "9381a66957211003546b24b1815a4f2d5af71af3", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/9381a66957211003546b24b1815a4f2d5af71af3", + "html_url": "https://github.com/ibarsi/git-velocity/commit/9381a66957211003546b24b1815a4f2d5af71af3" + } + ] + }, + { + "sha": "a24578bbead1ae1d4ff5e135fb898c04dc1f9567", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi92@gmail.com", + "date": "2017-03-05T21:09:17Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2017-03-05T21:09:17Z" + }, + "message": "Merge pull request #16 from ibarsi/develop\n\nDevelop", + "tree": { + "sha": "6c4c8d5edd3f902f9a95705e1b3d4ef97d67e013", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/6c4c8d5edd3f902f9a95705e1b3d4ef97d67e013" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/a24578bbead1ae1d4ff5e135fb898c04dc1f9567", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/a24578bbead1ae1d4ff5e135fb898c04dc1f9567", + "html_url": "https://github.com/ibarsi/git-velocity/commit/a24578bbead1ae1d4ff5e135fb898c04dc1f9567", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/a24578bbead1ae1d4ff5e135fb898c04dc1f9567/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "avatar_url": "https://avatars0.githubusercontent.com/u/19864447?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4", + "html_url": "https://github.com/ibarsi/git-velocity/commit/adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4" + }, + { + "sha": "9381a66957211003546b24b1815a4f2d5af71af3", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/9381a66957211003546b24b1815a4f2d5af71af3", + "html_url": "https://github.com/ibarsi/git-velocity/commit/9381a66957211003546b24b1815a4f2d5af71af3" + } + ] + }, + { + "sha": "9381a66957211003546b24b1815a4f2d5af71af3", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-05T21:07:49Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-05T21:07:49Z" + }, + "message": "fix(dashboard): New lines in commit messages are now displayed in the commit log.\n\ncloses #17", + "tree": { + "sha": "6c4c8d5edd3f902f9a95705e1b3d4ef97d67e013", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/6c4c8d5edd3f902f9a95705e1b3d4ef97d67e013" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/9381a66957211003546b24b1815a4f2d5af71af3", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/9381a66957211003546b24b1815a4f2d5af71af3", + "html_url": "https://github.com/ibarsi/git-velocity/commit/9381a66957211003546b24b1815a4f2d5af71af3", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/9381a66957211003546b24b1815a4f2d5af71af3/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "48167c2cbbd90a06743a42e84eaacb4f26c3ce98", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/48167c2cbbd90a06743a42e84eaacb4f26c3ce98", + "html_url": "https://github.com/ibarsi/git-velocity/commit/48167c2cbbd90a06743a42e84eaacb4f26c3ce98" + } + ] + }, + { + "sha": "48167c2cbbd90a06743a42e84eaacb4f26c3ce98", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-05T21:03:14Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-05T21:03:14Z" + }, + "message": "perf(commits): Commit request paging now gets cut off once commit dates pass the current format's ra\n\ncloses #5", + "tree": { + "sha": "bf3830c54951f013a5351bee3158c7522ca78fe0", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/bf3830c54951f013a5351bee3158c7522ca78fe0" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/48167c2cbbd90a06743a42e84eaacb4f26c3ce98", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/48167c2cbbd90a06743a42e84eaacb4f26c3ce98", + "html_url": "https://github.com/ibarsi/git-velocity/commit/48167c2cbbd90a06743a42e84eaacb4f26c3ce98", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/48167c2cbbd90a06743a42e84eaacb4f26c3ce98/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "db8801ebb5495d9a37f86309cd95d5e0db9b389e", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/db8801ebb5495d9a37f86309cd95d5e0db9b389e", + "html_url": "https://github.com/ibarsi/git-velocity/commit/db8801ebb5495d9a37f86309cd95d5e0db9b389e" + } + ] + }, + { + "sha": "db8801ebb5495d9a37f86309cd95d5e0db9b389e", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T21:29:34Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T21:29:34Z" + }, + "message": "refactor(merge): Resolved merge conflicts with [develop].", + "tree": { + "sha": "0110051bb4629a2247db4b2f4b4b4b38a0b907af", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/0110051bb4629a2247db4b2f4b4b4b38a0b907af" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/db8801ebb5495d9a37f86309cd95d5e0db9b389e", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/db8801ebb5495d9a37f86309cd95d5e0db9b389e", + "html_url": "https://github.com/ibarsi/git-velocity/commit/db8801ebb5495d9a37f86309cd95d5e0db9b389e", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/db8801ebb5495d9a37f86309cd95d5e0db9b389e/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "fc77e7dcf0bf9c3859b8c6f2a2967a0c9ce7c08e", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/fc77e7dcf0bf9c3859b8c6f2a2967a0c9ce7c08e", + "html_url": "https://github.com/ibarsi/git-velocity/commit/fc77e7dcf0bf9c3859b8c6f2a2967a0c9ce7c08e" + }, + { + "sha": "f263acfbdc2493c1c7b8974665f3ce979119450e", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/f263acfbdc2493c1c7b8974665f3ce979119450e", + "html_url": "https://github.com/ibarsi/git-velocity/commit/f263acfbdc2493c1c7b8974665f3ce979119450e" + } + ] + }, + { + "sha": "f263acfbdc2493c1c7b8974665f3ce979119450e", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T21:25:18Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T21:25:18Z" + }, + "message": "refactor(all): Swapped verbose async function properties to shorthand syntax.", + "tree": { + "sha": "1f8349aa13664ffb989c0e93e2ddf0b0618fcf9b", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/1f8349aa13664ffb989c0e93e2ddf0b0618fcf9b" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/f263acfbdc2493c1c7b8974665f3ce979119450e", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/f263acfbdc2493c1c7b8974665f3ce979119450e", + "html_url": "https://github.com/ibarsi/git-velocity/commit/f263acfbdc2493c1c7b8974665f3ce979119450e", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/f263acfbdc2493c1c7b8974665f3ce979119450e/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "c6bf49993c6d5c36a8331bac01d78af2805af39a", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c6bf49993c6d5c36a8331bac01d78af2805af39a", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c6bf49993c6d5c36a8331bac01d78af2805af39a" + } + ] + }, + { + "sha": "c6bf49993c6d5c36a8331bac01d78af2805af39a", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T17:16:03Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T17:16:03Z" + }, + "message": "build(babel): Removed babel yearly es6 modules for node-friendly \"latest-minimal\", removed deps no l", + "tree": { + "sha": "de1d594533fe194999b7ab84e3dbd86f64f39724", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/de1d594533fe194999b7ab84e3dbd86f64f39724" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/c6bf49993c6d5c36a8331bac01d78af2805af39a", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c6bf49993c6d5c36a8331bac01d78af2805af39a", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c6bf49993c6d5c36a8331bac01d78af2805af39a", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c6bf49993c6d5c36a8331bac01d78af2805af39a/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4", + "html_url": "https://github.com/ibarsi/git-velocity/commit/adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4" + } + ] + }, + { + "sha": "fc77e7dcf0bf9c3859b8c6f2a2967a0c9ce7c08e", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T17:00:25Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T17:00:25Z" + }, + "message": "refactor(merge): Resolved merge conflicts with [develop].", + "tree": { + "sha": "2e7ee7479968f240295bee1f3c36e8a7d00d5808", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/2e7ee7479968f240295bee1f3c36e8a7d00d5808" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/fc77e7dcf0bf9c3859b8c6f2a2967a0c9ce7c08e", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/fc77e7dcf0bf9c3859b8c6f2a2967a0c9ce7c08e", + "html_url": "https://github.com/ibarsi/git-velocity/commit/fc77e7dcf0bf9c3859b8c6f2a2967a0c9ce7c08e", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/fc77e7dcf0bf9c3859b8c6f2a2967a0c9ce7c08e/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "913f5257ef7c0f25fd36a9626852b2c144127378", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/913f5257ef7c0f25fd36a9626852b2c144127378", + "html_url": "https://github.com/ibarsi/git-velocity/commit/913f5257ef7c0f25fd36a9626852b2c144127378" + }, + { + "sha": "7885ce05f1ff8d2a63b6f7c75a681b62344a60a5", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/7885ce05f1ff8d2a63b6f7c75a681b62344a60a5", + "html_url": "https://github.com/ibarsi/git-velocity/commit/7885ce05f1ff8d2a63b6f7c75a681b62344a60a5" + } + ] + }, + { + "sha": "adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi92@gmail.com", + "date": "2017-03-04T16:55:55Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2017-03-04T16:55:55Z" + }, + "message": "Merge pull request #15 from ibarsi/develop\n\nDevelop", + "tree": { + "sha": "70791d5ccf90e2fd787aef565f2049b3980573a7", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/70791d5ccf90e2fd787aef565f2049b3980573a7" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4", + "html_url": "https://github.com/ibarsi/git-velocity/commit/adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/adfd6c04e4ea9c08cf34e00c801ab7ed8e89d0c4/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "avatar_url": "https://avatars0.githubusercontent.com/u/19864447?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "4d3ba6e0ccad2a411ce462756eabc60d608e5298", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4d3ba6e0ccad2a411ce462756eabc60d608e5298", + "html_url": "https://github.com/ibarsi/git-velocity/commit/4d3ba6e0ccad2a411ce462756eabc60d608e5298" + }, + { + "sha": "7885ce05f1ff8d2a63b6f7c75a681b62344a60a5", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/7885ce05f1ff8d2a63b6f7c75a681b62344a60a5", + "html_url": "https://github.com/ibarsi/git-velocity/commit/7885ce05f1ff8d2a63b6f7c75a681b62344a60a5" + } + ] + }, + { + "sha": "7885ce05f1ff8d2a63b6f7c75a681b62344a60a5", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T16:51:25Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-04T16:51:25Z" + }, + "message": "refactor(all): Implemented babel es2016 + es2017, swapped nested promises and custom \"async\" impleme", + "tree": { + "sha": "70791d5ccf90e2fd787aef565f2049b3980573a7", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/70791d5ccf90e2fd787aef565f2049b3980573a7" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/7885ce05f1ff8d2a63b6f7c75a681b62344a60a5", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/7885ce05f1ff8d2a63b6f7c75a681b62344a60a5", + "html_url": "https://github.com/ibarsi/git-velocity/commit/7885ce05f1ff8d2a63b6f7c75a681b62344a60a5", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/7885ce05f1ff8d2a63b6f7c75a681b62344a60a5/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "87026716988c4afffab91cba5cef4f0e6dd27a64", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/87026716988c4afffab91cba5cef4f0e6dd27a64", + "html_url": "https://github.com/ibarsi/git-velocity/commit/87026716988c4afffab91cba5cef4f0e6dd27a64" + } + ] + }, + { + "sha": "87026716988c4afffab91cba5cef4f0e6dd27a64", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-03T20:22:19Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-03T20:22:19Z" + }, + "message": "refactor(auth, velocity): Replaced partially applied functions in favour of including functions dire", + "tree": { + "sha": "4bb319b66e549397931024fbb75934cf2e4cebfd", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/4bb319b66e549397931024fbb75934cf2e4cebfd" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/87026716988c4afffab91cba5cef4f0e6dd27a64", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/87026716988c4afffab91cba5cef4f0e6dd27a64", + "html_url": "https://github.com/ibarsi/git-velocity/commit/87026716988c4afffab91cba5cef4f0e6dd27a64", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/87026716988c4afffab91cba5cef4f0e6dd27a64/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "80e469390b6767672876ca428ccd0e0223a5fd85", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/80e469390b6767672876ca428ccd0e0223a5fd85", + "html_url": "https://github.com/ibarsi/git-velocity/commit/80e469390b6767672876ca428ccd0e0223a5fd85" + } + ] + }, + { + "sha": "913f5257ef7c0f25fd36a9626852b2c144127378", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-03T02:28:31Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-03T02:28:31Z" + }, + "message": "Merge branch 'develop' into bug-12\n\n* develop:\n fix(dashboard): Display merge commits in the server log and limit to only those commits that are als", + "tree": { + "sha": "5d63de933ff6b29f0d2c5f47fd03f8904110cce0", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/5d63de933ff6b29f0d2c5f47fd03f8904110cce0" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/913f5257ef7c0f25fd36a9626852b2c144127378", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/913f5257ef7c0f25fd36a9626852b2c144127378", + "html_url": "https://github.com/ibarsi/git-velocity/commit/913f5257ef7c0f25fd36a9626852b2c144127378", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/913f5257ef7c0f25fd36a9626852b2c144127378/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "f5f7a044ff2faac4ece53fb25550df5dc08680d4", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/f5f7a044ff2faac4ece53fb25550df5dc08680d4", + "html_url": "https://github.com/ibarsi/git-velocity/commit/f5f7a044ff2faac4ece53fb25550df5dc08680d4" + }, + { + "sha": "80e469390b6767672876ca428ccd0e0223a5fd85", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/80e469390b6767672876ca428ccd0e0223a5fd85", + "html_url": "https://github.com/ibarsi/git-velocity/commit/80e469390b6767672876ca428ccd0e0223a5fd85" + } + ] + }, + { + "sha": "80e469390b6767672876ca428ccd0e0223a5fd85", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-03T02:27:35Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-03T02:27:35Z" + }, + "message": "fix(dashboard): Display merge commits in the server log and limit to only those commits that are als\n\ncloses #14", + "tree": { + "sha": "cd61e29923e8a6504ec8b587b6eed60c46a9050d", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/cd61e29923e8a6504ec8b587b6eed60c46a9050d" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/80e469390b6767672876ca428ccd0e0223a5fd85", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/80e469390b6767672876ca428ccd0e0223a5fd85", + "html_url": "https://github.com/ibarsi/git-velocity/commit/80e469390b6767672876ca428ccd0e0223a5fd85", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/80e469390b6767672876ca428ccd0e0223a5fd85/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "6583839726d14667627db6cd59e6e247b182eb7a", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/6583839726d14667627db6cd59e6e247b182eb7a", + "html_url": "https://github.com/ibarsi/git-velocity/commit/6583839726d14667627db6cd59e6e247b182eb7a" + } + ] + }, + { + "sha": "f5f7a044ff2faac4ece53fb25550df5dc08680d4", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-03T02:15:51Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-03-03T02:15:51Z" + }, + "message": "fix(commits): Implemented cutoff request paging for BitBucket commits.\n\n#12", + "tree": { + "sha": "6e7c7d1ada58d386e6378367591a088bcea37580", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/6e7c7d1ada58d386e6378367591a088bcea37580" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/f5f7a044ff2faac4ece53fb25550df5dc08680d4", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/f5f7a044ff2faac4ece53fb25550df5dc08680d4", + "html_url": "https://github.com/ibarsi/git-velocity/commit/f5f7a044ff2faac4ece53fb25550df5dc08680d4", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/f5f7a044ff2faac4ece53fb25550df5dc08680d4/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "6583839726d14667627db6cd59e6e247b182eb7a", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/6583839726d14667627db6cd59e6e247b182eb7a", + "html_url": "https://github.com/ibarsi/git-velocity/commit/6583839726d14667627db6cd59e6e247b182eb7a" + } + ] + }, + { + "sha": "4d3ba6e0ccad2a411ce462756eabc60d608e5298", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi92@gmail.com", + "date": "2017-02-21T00:04:49Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2017-02-21T00:04:49Z" + }, + "message": "Merge pull request #10 from ibarsi/develop\n\nDevelop", + "tree": { + "sha": "68a86c4171f54f9b8cc077579182e1f1b53412c5", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/68a86c4171f54f9b8cc077579182e1f1b53412c5" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/4d3ba6e0ccad2a411ce462756eabc60d608e5298", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4d3ba6e0ccad2a411ce462756eabc60d608e5298", + "html_url": "https://github.com/ibarsi/git-velocity/commit/4d3ba6e0ccad2a411ce462756eabc60d608e5298", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4d3ba6e0ccad2a411ce462756eabc60d608e5298/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "avatar_url": "https://avatars0.githubusercontent.com/u/19864447?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "98f0b145b285453e07898bc720d50ed332025d88", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/98f0b145b285453e07898bc720d50ed332025d88", + "html_url": "https://github.com/ibarsi/git-velocity/commit/98f0b145b285453e07898bc720d50ed332025d88" + }, + { + "sha": "6583839726d14667627db6cd59e6e247b182eb7a", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/6583839726d14667627db6cd59e6e247b182eb7a", + "html_url": "https://github.com/ibarsi/git-velocity/commit/6583839726d14667627db6cd59e6e247b182eb7a" + } + ] + }, + { + "sha": "6583839726d14667627db6cd59e6e247b182eb7a", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-21T00:03:10Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-21T00:03:10Z" + }, + "message": "style(index): Renamed some vars, adjusted spacing.", + "tree": { + "sha": "68a86c4171f54f9b8cc077579182e1f1b53412c5", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/68a86c4171f54f9b8cc077579182e1f1b53412c5" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/6583839726d14667627db6cd59e6e247b182eb7a", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/6583839726d14667627db6cd59e6e247b182eb7a", + "html_url": "https://github.com/ibarsi/git-velocity/commit/6583839726d14667627db6cd59e6e247b182eb7a", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/6583839726d14667627db6cd59e6e247b182eb7a/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "9e301efd93c93b27abd02ee2e7081f9c4d181f0a", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/9e301efd93c93b27abd02ee2e7081f9c4d181f0a", + "html_url": "https://github.com/ibarsi/git-velocity/commit/9e301efd93c93b27abd02ee2e7081f9c4d181f0a" + } + ] + }, + { + "sha": "9e301efd93c93b27abd02ee2e7081f9c4d181f0a", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T23:36:22Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T23:36:22Z" + }, + "message": "refactor(commits): Moved auth instatiation outside of commit constructors, adhearing to DIP.", + "tree": { + "sha": "21e6126089691f62bc1a7b3f63145e7b532ee254", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/21e6126089691f62bc1a7b3f63145e7b532ee254" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/9e301efd93c93b27abd02ee2e7081f9c4d181f0a", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/9e301efd93c93b27abd02ee2e7081f9c4d181f0a", + "html_url": "https://github.com/ibarsi/git-velocity/commit/9e301efd93c93b27abd02ee2e7081f9c4d181f0a", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/9e301efd93c93b27abd02ee2e7081f9c4d181f0a/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "4c96b028d9206b7cf196ac60ca2c3283cb0ffc61", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4c96b028d9206b7cf196ac60ca2c3283cb0ffc61", + "html_url": "https://github.com/ibarsi/git-velocity/commit/4c96b028d9206b7cf196ac60ca2c3283cb0ffc61" + } + ] + }, + { + "sha": "4c96b028d9206b7cf196ac60ca2c3283cb0ffc61", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T23:27:24Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T23:27:24Z" + }, + "message": "refactor(commits): Extracted auth logic/concerns into separate file, adhearing to SRP.", + "tree": { + "sha": "a062e3835f0fe014c292775a32427b2c72d6a927", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/a062e3835f0fe014c292775a32427b2c72d6a927" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/4c96b028d9206b7cf196ac60ca2c3283cb0ffc61", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4c96b028d9206b7cf196ac60ca2c3283cb0ffc61", + "html_url": "https://github.com/ibarsi/git-velocity/commit/4c96b028d9206b7cf196ac60ca2c3283cb0ffc61", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/4c96b028d9206b7cf196ac60ca2c3283cb0ffc61/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "53eb38576892c1f1f8426d389fc8381019ca7f12", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/53eb38576892c1f1f8426d389fc8381019ca7f12", + "html_url": "https://github.com/ibarsi/git-velocity/commit/53eb38576892c1f1f8426d389fc8381019ca7f12" + } + ] + }, + { + "sha": "53eb38576892c1f1f8426d389fc8381019ca7f12", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T23:13:07Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T23:13:07Z" + }, + "message": "refactor(commits): Combined request pagination logic functions to promote DRY principle, adding next", + "tree": { + "sha": "29b0b9a788b63dffcaf082b488ecfe85f154b48e", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/29b0b9a788b63dffcaf082b488ecfe85f154b48e" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/53eb38576892c1f1f8426d389fc8381019ca7f12", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/53eb38576892c1f1f8426d389fc8381019ca7f12", + "html_url": "https://github.com/ibarsi/git-velocity/commit/53eb38576892c1f1f8426d389fc8381019ca7f12", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/53eb38576892c1f1f8426d389fc8381019ca7f12/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "c30f444efc6c7a37b29fd42c22d1c59ee4cffe24", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c30f444efc6c7a37b29fd42c22d1c59ee4cffe24", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c30f444efc6c7a37b29fd42c22d1c59ee4cffe24" + } + ] + }, + { + "sha": "c30f444efc6c7a37b29fd42c22d1c59ee4cffe24", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T23:00:52Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T23:00:52Z" + }, + "message": "refactor(commits): Created factory function to separate logic instantiation logic between GitHub and", + "tree": { + "sha": "b012a602fd2b34e8b1f01b08b5926b6624682684", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/b012a602fd2b34e8b1f01b08b5926b6624682684" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/c30f444efc6c7a37b29fd42c22d1c59ee4cffe24", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c30f444efc6c7a37b29fd42c22d1c59ee4cffe24", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c30f444efc6c7a37b29fd42c22d1c59ee4cffe24", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c30f444efc6c7a37b29fd42c22d1c59ee4cffe24/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "c33c81aa65a4420afc56eae0ab6df011c5c9f5b6", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c33c81aa65a4420afc56eae0ab6df011c5c9f5b6", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c33c81aa65a4420afc56eae0ab6df011c5c9f5b6" + } + ] + }, + { + "sha": "98f0b145b285453e07898bc720d50ed332025d88", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi92@gmail.com", + "date": "2017-02-20T18:27:16Z" + }, + "committer": { + "name": "GitHub", + "email": "noreply@github.com", + "date": "2017-02-20T18:27:16Z" + }, + "message": "Merge pull request #9 from ibarsi/develop\n\nDevelop", + "tree": { + "sha": "313e82ecab2aadf831ba29db6905711a0a42e977", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/313e82ecab2aadf831ba29db6905711a0a42e977" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/98f0b145b285453e07898bc720d50ed332025d88", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/98f0b145b285453e07898bc720d50ed332025d88", + "html_url": "https://github.com/ibarsi/git-velocity/commit/98f0b145b285453e07898bc720d50ed332025d88", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/98f0b145b285453e07898bc720d50ed332025d88/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "web-flow", + "id": 19864447, + "avatar_url": "https://avatars0.githubusercontent.com/u/19864447?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/web-flow", + "html_url": "https://github.com/web-flow", + "followers_url": "https://api.github.com/users/web-flow/followers", + "following_url": "https://api.github.com/users/web-flow/following{/other_user}", + "gists_url": "https://api.github.com/users/web-flow/gists{/gist_id}", + "starred_url": "https://api.github.com/users/web-flow/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/web-flow/subscriptions", + "organizations_url": "https://api.github.com/users/web-flow/orgs", + "repos_url": "https://api.github.com/users/web-flow/repos", + "events_url": "https://api.github.com/users/web-flow/events{/privacy}", + "received_events_url": "https://api.github.com/users/web-flow/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9" + }, + { + "sha": "c33c81aa65a4420afc56eae0ab6df011c5c9f5b6", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c33c81aa65a4420afc56eae0ab6df011c5c9f5b6", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c33c81aa65a4420afc56eae0ab6df011c5c9f5b6" + } + ] + }, + { + "sha": "c33c81aa65a4420afc56eae0ab6df011c5c9f5b6", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T18:24:10Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T18:24:10Z" + }, + "message": "fix(dashboard): Remove reference to `Cmd-C` key combo.\n\ncloses #8", + "tree": { + "sha": "313e82ecab2aadf831ba29db6905711a0a42e977", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/313e82ecab2aadf831ba29db6905711a0a42e977" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/c33c81aa65a4420afc56eae0ab6df011c5c9f5b6", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c33c81aa65a4420afc56eae0ab6df011c5c9f5b6", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c33c81aa65a4420afc56eae0ab6df011c5c9f5b6", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c33c81aa65a4420afc56eae0ab6df011c5c9f5b6/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "158369041733f1eaaa3098ccbc5946c664110389", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/158369041733f1eaaa3098ccbc5946c664110389", + "html_url": "https://github.com/ibarsi/git-velocity/commit/158369041733f1eaaa3098ccbc5946c664110389" + } + ] + }, + { + "sha": "158369041733f1eaaa3098ccbc5946c664110389", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T18:22:34Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-20T18:22:34Z" + }, + "message": "fix(commits): GitHub commits are now pulled from all branches.\n\ncloses #4", + "tree": { + "sha": "4352eb4da3881b7396666e8140614cd8222f9ee7", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/4352eb4da3881b7396666e8140614cd8222f9ee7" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/158369041733f1eaaa3098ccbc5946c664110389", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/158369041733f1eaaa3098ccbc5946c664110389", + "html_url": "https://github.com/ibarsi/git-velocity/commit/158369041733f1eaaa3098ccbc5946c664110389", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/158369041733f1eaaa3098ccbc5946c664110389/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "5b400c7744dc51c108a62e50f4f6d2339dc7ab03", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/5b400c7744dc51c108a62e50f4f6d2339dc7ab03", + "html_url": "https://github.com/ibarsi/git-velocity/commit/5b400c7744dc51c108a62e50f4f6d2339dc7ab03" + } + ] + }, + { + "sha": "5b400c7744dc51c108a62e50f4f6d2339dc7ab03", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-16T01:26:47Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-16T01:26:47Z" + }, + "message": "fix(index): Added support for both string and object `package.json` repository formats.\n\ncloses #7", + "tree": { + "sha": "67ae541b402c9924d1df71b0d3951dbbbe05b00d", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/67ae541b402c9924d1df71b0d3951dbbbe05b00d" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/5b400c7744dc51c108a62e50f4f6d2339dc7ab03", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/5b400c7744dc51c108a62e50f4f6d2339dc7ab03", + "html_url": "https://github.com/ibarsi/git-velocity/commit/5b400c7744dc51c108a62e50f4f6d2339dc7ab03", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/5b400c7744dc51c108a62e50f4f6d2339dc7ab03/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9" + } + ] + }, + { + "sha": "c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-13T01:03:22Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-13T01:03:22Z" + }, + "message": "feat(build): Added build shield to README, committing as feature to test semantic-release.", + "tree": { + "sha": "f4f3e7931015637c1795f8ee38d680f6b1308426", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/f4f3e7931015637c1795f8ee38d680f6b1308426" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9", + "html_url": "https://github.com/ibarsi/git-velocity/commit/c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/c5bd76bbec3c364da31abe9c6f49cc24f5a1afd9/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "84bd6a4bf4c56c405c4586d88c21edb1b6e8d5cf", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/84bd6a4bf4c56c405c4586d88c21edb1b6e8d5cf", + "html_url": "https://github.com/ibarsi/git-velocity/commit/84bd6a4bf4c56c405c4586d88c21edb1b6e8d5cf" + } + ] + }, + { + "sha": "84bd6a4bf4c56c405c4586d88c21edb1b6e8d5cf", + "commit": { + "author": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-13T00:50:24Z" + }, + "committer": { + "name": "Igor Barsi", + "email": "ibarsi@unioncreative.com", + "date": "2017-02-13T00:50:24Z" + }, + "message": "build(config): Updated travis config as per reccomendations on the semantic-release GitHub page.\n\nhttps://github.com/semantic-release/cli", + "tree": { + "sha": "df09bb247a8a1e63b81fb4caabdd632a2f71999c", + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/trees/df09bb247a8a1e63b81fb4caabdd632a2f71999c" + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/git/commits/84bd6a4bf4c56c405c4586d88c21edb1b6e8d5cf", + "comment_count": 0 + }, + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/84bd6a4bf4c56c405c4586d88c21edb1b6e8d5cf", + "html_url": "https://github.com/ibarsi/git-velocity/commit/84bd6a4bf4c56c405c4586d88c21edb1b6e8d5cf", + "comments_url": "https://api.github.com/repos/ibarsi/git-velocity/commits/84bd6a4bf4c56c405c4586d88c21edb1b6e8d5cf/comments", + "author": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "committer": { + "login": "ibarsi", + "id": 3975937, + "avatar_url": "https://avatars3.githubusercontent.com/u/3975937?v=3", + "gravatar_id": "", + "url": "https://api.github.com/users/ibarsi", + "html_url": "https://github.com/ibarsi", + "followers_url": "https://api.github.com/users/ibarsi/followers", + "following_url": "https://api.github.com/users/ibarsi/following{/other_user}", + "gists_url": "https://api.github.com/users/ibarsi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ibarsi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ibarsi/subscriptions", + "organizations_url": "https://api.github.com/users/ibarsi/orgs", + "repos_url": "https://api.github.com/users/ibarsi/repos", + "events_url": "https://api.github.com/users/ibarsi/events{/privacy}", + "received_events_url": "https://api.github.com/users/ibarsi/received_events", + "type": "User", + "site_admin": false + }, + "parents": [ + { + "sha": "fba1ed4ed2c531ac67e26127920af32f5e3a6984", + "url": "https://api.github.com/repos/ibarsi/git-velocity/commits/fba1ed4ed2c531ac67e26127920af32f5e3a6984", + "html_url": "https://github.com/ibarsi/git-velocity/commit/fba1ed4ed2c531ac67e26127920af32f5e3a6984" + } + ] + } +] \ No newline at end of file diff --git a/main/tests/modules/commits.test.js b/main/tests/modules/commits.test.js index 4d93b05..ef80761 100644 --- a/main/tests/modules/commits.test.js +++ b/main/tests/modules/commits.test.js @@ -3,21 +3,128 @@ ================================================== */ import { expect } from 'chai'; +import sinon from 'sinon'; +import sinon_test from 'sinon-test'; +import fetch_mock from 'fetch-mock'; import { isEmpty, isArray } from 'lodash'; import { TYPES, Commits } from '../../modules/commits.js'; +import bitbucket_commits_data from '../data/commits_bitbucket_data.json'; +import github_commits_data from '../data/commits_github_data.json'; +import github_branch_data from '../data/branch_github_data.json'; +import github_branches_data from '../data/branches_github_data.json'; + +sinon.test = sinon_test.configureTest(sinon); +sinon.testCase = sinon_test.configureTestCase(sinon); const bitbucket_commits = Commits(TYPES.BITBUCKET); +const github_commits = Commits(TYPES.GITHUB); describe('Commits', () => { describe('getCommitsByRepo', () => { - it('Return no results when owner is empty', async () => { - const result = await bitbucket_commits.getCommitsByRepo('test'); + it(`${ TYPES.BITBUCKET } - Return correct results with no pages`, async () => { + fetch_mock.get('https://api.bitbucket.org/2.0/repositories/bar/foo/commits', bitbucket_commits_data); + + const result = await bitbucket_commits.getCommitsByRepo('foo', 'bar'); + + expect(!isEmpty(result)).to.equal(true); + expect(result.length === bitbucket_commits_data.values.length).to.equal(true); + + fetch_mock.restore(); + }); + it(`${ TYPES.BITBUCKET } - Return correct results with 2 pages`, async () => { + fetch_mock.get( + 'https://api.bitbucket.org/2.0/repositories/bar/foo/commits', + Object.assign({}, bitbucket_commits_data, { + next: 'https://api.bitbucket.org/2.0/repositories/bar/foo/commits?page=2' + })); + fetch_mock.get('https://api.bitbucket.org/2.0/repositories/bar/foo/commits?page=2', bitbucket_commits_data); + + const result = await bitbucket_commits.getCommitsByRepo('foo', 'bar'); + + expect(!isEmpty(result)).to.equal(true); + expect(result.length === bitbucket_commits_data.values.length * 2).to.equal(true); + + fetch_mock.restore(); + }); + it(`${ TYPES.BITBUCKET } - Return no results when owner is empty`, async () => { + const result = await bitbucket_commits.getCommitsByRepo('foo'); + + expect(isArray(result) && isEmpty(result)).to.equal(true); + }); + it(`${ TYPES.BITBUCKET } - Return no results when repository is empty`, async () => { + const result = await bitbucket_commits.getCommitsByRepo(undefined, 'bar'); + + expect(isArray(result) && isEmpty(result)).to.equal(true); + }); + + /* ========= */ + + it(`${ TYPES.GITHUB } - Return correct results with one branch, no pages`, async () => { + fetch_mock.get('https://api.github.com/repos/bar/foo/branches', github_branch_data); + fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=master', github_commits_data); + + const result = await github_commits.getCommitsByRepo('foo', 'bar'); + + expect(!isEmpty(result)).to.equal(true); + expect(result.length === github_commits_data.length).to.equal(true); + + fetch_mock.restore(); + }); + it(`${ TYPES.GITHUB } - Return correct results with 2 branches (same commits), no pages`, async () => { + fetch_mock.get('https://api.github.com/repos/bar/foo/branches', github_branches_data); + fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=master', github_commits_data); + fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=develop', github_commits_data); + + const result = await github_commits.getCommitsByRepo('foo', 'bar'); + + expect(!isEmpty(result)).to.equal(true); + expect(result.length === github_commits_data.length).to.equal(true); + + fetch_mock.restore(); + }); + it(`${ TYPES.GITHUB } - Return correct results with 2 branches (different commits), no pages`, async () => { + fetch_mock.get('https://api.github.com/repos/bar/foo/branches', github_branches_data); + fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=master', github_commits_data); + fetch_mock.get( + 'https://api.github.com/repos/bar/foo/commits?sha=develop', + github_commits_data.map(commit => Object.assign({}, commit, { sha: `MODIFIED - ${ commit.sha }` })) + ); + + const result = await github_commits.getCommitsByRepo('foo', 'bar'); + + expect(!isEmpty(result)).to.equal(true); + expect(result.length === github_commits_data.length * 2).to.equal(true); + + fetch_mock.restore(); + }); + it(`${ TYPES.GITHUB } - Return correct results with 2 branches (some overlapping commits), no pages`, async () => { + fetch_mock.get('https://api.github.com/repos/bar/foo/branches', github_branches_data); + fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=master', github_commits_data); + fetch_mock.get( + 'https://api.github.com/repos/bar/foo/commits?sha=develop', + github_commits_data.map((commit, index) => { + return index % 2 === 0 ? Object.assign({}, commit, { sha: `MODIFIED - ${ commit.sha }` }) : commit; + }) + ); + + const result = await github_commits.getCommitsByRepo('foo', 'bar'); + + expect(!isEmpty(result)).to.equal(true); + expect(result.length === github_commits_data.length * 1.5).to.equal(true); + + fetch_mock.restore(); + }); + it(`${ TYPES.GITHUB } - Return correct results with 2 pages`, async () => { + // TODO: IMPLEMENT + }); + it(`${ TYPES.GITHUB } - Return no results when owner is empty`, async () => { + const result = await github_commits.getCommitsByRepo('foo'); expect(isArray(result) && isEmpty(result)).to.equal(true); }); - it('Return no results when repository is empty', async () => { - const result = await bitbucket_commits.getCommitsByRepo(undefined, 'test'); + it(`${ TYPES.GITHUB } - Return no results when repository is empty`, async () => { + const result = await github_commits.getCommitsByRepo(undefined, 'bar'); expect(isArray(result) && isEmpty(result)).to.equal(true); }); diff --git a/package.json b/package.json index ddd83de..404e2fa 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,8 @@ "clui": "0.3.1", "figlet": "1.2.0", "inquirer": "3.0.1", - "moment": "2.17.1", - "node-fetch": "1.6.3" + "isomorphic-fetch": "2.2.1", + "moment": "2.17.1" }, "devDependencies": { "babel-cli": "6.9.0", @@ -49,6 +49,7 @@ "chai-as-promised": "6.0.0", "commitizen": "2.9.5", "cz-conventional-changelog": "1.2.0", + "fetch-mock": "5.9.4", "lodash": "4.17.4", "mocha": "3.2.0", "semantic-release": "6.3.2", From 9d6f9084f0311181c503620073851a3ad7538580 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sat, 25 Mar 2017 15:58:10 -0400 Subject: [PATCH 12/13] test(commits): Stubbed Auth module in commit tests to ensure creds token is not required (currently --- main/tests/modules/commits.test.js | 87 ++++++++++++++++++++++++------ 1 file changed, 72 insertions(+), 15 deletions(-) diff --git a/main/tests/modules/commits.test.js b/main/tests/modules/commits.test.js index ef80761..01fb53b 100644 --- a/main/tests/modules/commits.test.js +++ b/main/tests/modules/commits.test.js @@ -9,6 +9,7 @@ import fetch_mock from 'fetch-mock'; import { isEmpty, isArray } from 'lodash'; import { TYPES, Commits } from '../../modules/commits.js'; +import auth, * as auth_modules from '../../modules/auth.js'; import bitbucket_commits_data from '../data/commits_bitbucket_data.json'; import github_commits_data from '../data/commits_github_data.json'; import github_branch_data from '../data/branch_github_data.json'; @@ -17,22 +18,40 @@ import github_branches_data from '../data/branches_github_data.json'; sinon.test = sinon_test.configureTest(sinon); sinon.testCase = sinon_test.configureTestCase(sinon); -const bitbucket_commits = Commits(TYPES.BITBUCKET); -const github_commits = Commits(TYPES.GITHUB); +const fake_auth = { + getCreds() { + return { + username: '', + password: '' + }; + } +}; describe('Commits', () => { describe('getCommitsByRepo', () => { - it(`${ TYPES.BITBUCKET } - Return correct results with no pages`, async () => { + it(`${ TYPES.BITBUCKET } - Return correct results with no pages`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + fetch_mock.get('https://api.bitbucket.org/2.0/repositories/bar/foo/commits', bitbucket_commits_data); + const bitbucket_commits = Commits(TYPES.BITBUCKET); + const result = await bitbucket_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); expect(result.length === bitbucket_commits_data.values.length).to.equal(true); fetch_mock.restore(); - }); - it(`${ TYPES.BITBUCKET } - Return correct results with 2 pages`, async () => { + })); + it(`${ TYPES.BITBUCKET } - Return correct results with 2 pages`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + fetch_mock.get( 'https://api.bitbucket.org/2.0/repositories/bar/foo/commits', Object.assign({}, bitbucket_commits_data, { @@ -40,50 +59,75 @@ describe('Commits', () => { })); fetch_mock.get('https://api.bitbucket.org/2.0/repositories/bar/foo/commits?page=2', bitbucket_commits_data); + const bitbucket_commits = Commits(TYPES.BITBUCKET); + const result = await bitbucket_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); expect(result.length === bitbucket_commits_data.values.length * 2).to.equal(true); fetch_mock.restore(); - }); + })); it(`${ TYPES.BITBUCKET } - Return no results when owner is empty`, async () => { + const bitbucket_commits = Commits(TYPES.BITBUCKET); + const result = await bitbucket_commits.getCommitsByRepo('foo'); expect(isArray(result) && isEmpty(result)).to.equal(true); }); it(`${ TYPES.BITBUCKET } - Return no results when repository is empty`, async () => { + const bitbucket_commits = Commits(TYPES.BITBUCKET); + const result = await bitbucket_commits.getCommitsByRepo(undefined, 'bar'); expect(isArray(result) && isEmpty(result)).to.equal(true); }); - /* ========= */ + // /* ========= */ + + it(`${ TYPES.GITHUB } - Return correct results with one branch, no pages`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); - it(`${ TYPES.GITHUB } - Return correct results with one branch, no pages`, async () => { fetch_mock.get('https://api.github.com/repos/bar/foo/branches', github_branch_data); fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=master', github_commits_data); + const github_commits = Commits(TYPES.GITHUB); + const result = await github_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); expect(result.length === github_commits_data.length).to.equal(true); fetch_mock.restore(); - }); - it(`${ TYPES.GITHUB } - Return correct results with 2 branches (same commits), no pages`, async () => { + })); + it(`${ TYPES.GITHUB } - Return correct results with 2 branches (same commits), no pages`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + fetch_mock.get('https://api.github.com/repos/bar/foo/branches', github_branches_data); fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=master', github_commits_data); fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=develop', github_commits_data); + const github_commits = Commits(TYPES.GITHUB); + const result = await github_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); expect(result.length === github_commits_data.length).to.equal(true); fetch_mock.restore(); - }); - it(`${ TYPES.GITHUB } - Return correct results with 2 branches (different commits), no pages`, async () => { + })); + it(`${ TYPES.GITHUB } - Return correct results with 2 branches (different commits), no pages`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + fetch_mock.get('https://api.github.com/repos/bar/foo/branches', github_branches_data); fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=master', github_commits_data); fetch_mock.get( @@ -91,14 +135,21 @@ describe('Commits', () => { github_commits_data.map(commit => Object.assign({}, commit, { sha: `MODIFIED - ${ commit.sha }` })) ); + const github_commits = Commits(TYPES.GITHUB); + const result = await github_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); expect(result.length === github_commits_data.length * 2).to.equal(true); fetch_mock.restore(); - }); - it(`${ TYPES.GITHUB } - Return correct results with 2 branches (some overlapping commits), no pages`, async () => { + })); + it(`${ TYPES.GITHUB } - Return correct results with 2 branches (some overlapping commits), no pages`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + fetch_mock.get('https://api.github.com/repos/bar/foo/branches', github_branches_data); fetch_mock.get('https://api.github.com/repos/bar/foo/commits?sha=master', github_commits_data); fetch_mock.get( @@ -108,22 +159,28 @@ describe('Commits', () => { }) ); + const github_commits = Commits(TYPES.GITHUB); + const result = await github_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); expect(result.length === github_commits_data.length * 1.5).to.equal(true); fetch_mock.restore(); - }); + })); it(`${ TYPES.GITHUB } - Return correct results with 2 pages`, async () => { // TODO: IMPLEMENT }); it(`${ TYPES.GITHUB } - Return no results when owner is empty`, async () => { + const github_commits = Commits(TYPES.GITHUB); + const result = await github_commits.getCommitsByRepo('foo'); expect(isArray(result) && isEmpty(result)).to.equal(true); }); it(`${ TYPES.GITHUB } - Return no results when repository is empty`, async () => { + const github_commits = Commits(TYPES.GITHUB); + const result = await github_commits.getCommitsByRepo(undefined, 'bar'); expect(isArray(result) && isEmpty(result)).to.equal(true); From 041068d085970deb5bb44a2fe44afe6f9e5b2bf2 Mon Sep 17 00:00:00 2001 From: Igor Barsi Date: Sat, 25 Mar 2017 16:06:12 -0400 Subject: [PATCH 13/13] test(commits): Added tests for authorization methods. --- main/tests/modules/commits.test.js | 82 +++++++++++++++++++++++++++--- 1 file changed, 74 insertions(+), 8 deletions(-) diff --git a/main/tests/modules/commits.test.js b/main/tests/modules/commits.test.js index 01fb53b..c626da6 100644 --- a/main/tests/modules/commits.test.js +++ b/main/tests/modules/commits.test.js @@ -19,15 +19,81 @@ sinon.test = sinon_test.configureTest(sinon); sinon.testCase = sinon_test.configureTestCase(sinon); const fake_auth = { + async isCredsTokenInitialized() { + return true; + }, + async storeCreds() { + return; + }, getCreds() { return { username: '', password: '' - }; + }; } }; describe('Commits', () => { + describe('isAuthorized', () => { + it(`${ TYPES.BITBUCKET } - Ensure result of isCredsTokenInitialized is returned`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + + const bitbucket_commits = Commits(TYPES.BITBUCKET); + + const result = await bitbucket_commits.isAuthorized(); + + expect(result).to.equal(await fake_auth.isCredsTokenInitialized()); + })); + + /* ========= */ + + it(`${ TYPES.GITHUB } - Ensure result of isCredsTokenInitialized is returned`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + + const github_commits = Commits(TYPES.GITHUB); + + const result = await github_commits.isAuthorized(); + + expect(result).to.equal(await fake_auth.isCredsTokenInitialized()); + })); + }); + + describe('authorize', () => { + it(`${ TYPES.BITBUCKET } - Ensure result of storeCreds is returned`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + + const bitbucket_commits = Commits(TYPES.BITBUCKET); + + const result = await bitbucket_commits.authorize(); + + expect(result).to.equal(await fake_auth.storeCreds()); + })); + + /* ========= */ + + it(`${ TYPES.GITHUB } - Ensure result of storeCreds is returned`, sinon.test(async function() { + const Auth_modules_stub = this.stub(auth_modules, 'Auth'); + Auth_modules_stub.returns(fake_auth); + const Auth_stub = this.stub(auth, 'Auth'); + Auth_stub.returns(fake_auth); + + const github_commits = Commits(TYPES.GITHUB); + + const result = await github_commits.authorize(); + + expect(result).to.equal(await fake_auth.storeCreds()); + })); + }); + describe('getCommitsByRepo', () => { it(`${ TYPES.BITBUCKET } - Return correct results with no pages`, sinon.test(async function() { const Auth_modules_stub = this.stub(auth_modules, 'Auth'); @@ -42,7 +108,7 @@ describe('Commits', () => { const result = await bitbucket_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); - expect(result.length === bitbucket_commits_data.values.length).to.equal(true); + expect(result.length).to.equal(bitbucket_commits_data.values.length); fetch_mock.restore(); })); @@ -64,7 +130,7 @@ describe('Commits', () => { const result = await bitbucket_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); - expect(result.length === bitbucket_commits_data.values.length * 2).to.equal(true); + expect(result.length).to.equal(bitbucket_commits_data.values.length * 2); fetch_mock.restore(); })); @@ -83,7 +149,7 @@ describe('Commits', () => { expect(isArray(result) && isEmpty(result)).to.equal(true); }); - // /* ========= */ + /* ========= */ it(`${ TYPES.GITHUB } - Return correct results with one branch, no pages`, sinon.test(async function() { const Auth_modules_stub = this.stub(auth_modules, 'Auth'); @@ -99,7 +165,7 @@ describe('Commits', () => { const result = await github_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); - expect(result.length === github_commits_data.length).to.equal(true); + expect(result.length).to.equal(github_commits_data.length); fetch_mock.restore(); })); @@ -118,7 +184,7 @@ describe('Commits', () => { const result = await github_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); - expect(result.length === github_commits_data.length).to.equal(true); + expect(result.length).to.equal(github_commits_data.length); fetch_mock.restore(); })); @@ -140,7 +206,7 @@ describe('Commits', () => { const result = await github_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); - expect(result.length === github_commits_data.length * 2).to.equal(true); + expect(result.length).to.equal(github_commits_data.length * 2); fetch_mock.restore(); })); @@ -164,7 +230,7 @@ describe('Commits', () => { const result = await github_commits.getCommitsByRepo('foo', 'bar'); expect(!isEmpty(result)).to.equal(true); - expect(result.length === github_commits_data.length * 1.5).to.equal(true); + expect(result.length).to.equal(github_commits_data.length * 1.5); fetch_mock.restore(); }));

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