mirror of
https://github.com/resume/resume.github.com.git
synced 2024-09-11 20:27:10 +03:00
Add contributions repos
This commit is contained in:
parent
4bfb1800e9
commit
b7794c4582
@ -285,6 +285,10 @@ noscript {
|
|||||||
|
|
||||||
#doc2 { padding-bottom: 70px }
|
#doc2 { padding-bottom: 70px }
|
||||||
|
|
||||||
|
.contributions {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 59.9em) {
|
@media screen and (max-width: 59.9em) {
|
||||||
#inner {
|
#inner {
|
||||||
padding: 5 5 5 5;
|
padding: 5 5 5 5;
|
||||||
|
@ -63,7 +63,7 @@ var github_user_repos = function(username, callback, page_number, prev_data) {
|
|||||||
data = (prev_data ? prev_data : []);
|
data = (prev_data ? prev_data : []);
|
||||||
|
|
||||||
if (page_number > 1) {
|
if (page_number > 1) {
|
||||||
url += '&page=' + page_number;
|
url += '&page=' + page_number;
|
||||||
}
|
}
|
||||||
$.getJSON(url, function(repos) {
|
$.getJSON(url, function(repos) {
|
||||||
data = data.concat(repos.data);
|
data = data.concat(repos.data);
|
||||||
@ -75,6 +75,25 @@ var github_user_repos = function(username, callback, page_number, prev_data) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var github_user_issues = function(username, callback, page_number, prev_data) {
|
||||||
|
var page = (page_number ? page_number : 1),
|
||||||
|
url = 'https://api.github.com/search/issues?q=type:pr+is:merged+author:' + username + '&per_page=500&callback=?'
|
||||||
|
data = (prev_data ? prev_data : []);
|
||||||
|
|
||||||
|
if (page_number > 1) {
|
||||||
|
url += '&page=' + page_number;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.getJSON(url, function(repos) {
|
||||||
|
data = data.concat(repos.data.items);
|
||||||
|
if (repos.data.total_count == 500) {
|
||||||
|
github_user_issues(username, callback, page + 1, data);
|
||||||
|
} else {
|
||||||
|
callback(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
var github_user_orgs = function(username, callback) {
|
var github_user_orgs = function(username, callback) {
|
||||||
$.getJSON('https://api.github.com/users/' + username + '/orgs?callback=?', callback);
|
$.getJSON('https://api.github.com/users/' + username + '/orgs?callback=?', callback);
|
||||||
}
|
}
|
||||||
@ -133,7 +152,7 @@ var run = function() {
|
|||||||
maxLanguages = 9,
|
maxLanguages = 9,
|
||||||
starred = github_user_starred_resume(username);
|
starred = github_user_starred_resume(username);
|
||||||
|
|
||||||
if (! starred || starred === 'api_limit' || starred === 'not_found') {
|
if (!starred || starred === 'api_limit' || starred === 'not_found') {
|
||||||
if (starred === 'api_limit') {
|
if (starred === 'api_limit') {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: 'views/api_limit.html',
|
url: 'views/api_limit.html',
|
||||||
@ -432,6 +451,59 @@ var run = function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
github_user_issues(username, function(data) {
|
||||||
|
var sorted = [],
|
||||||
|
repos = {};
|
||||||
|
|
||||||
|
$.each(data, function(i, issue) {
|
||||||
|
if(repos[issue.repository_url] === undefined) {
|
||||||
|
repos[issue.repository_url] = { popularity: 1 }
|
||||||
|
} else {
|
||||||
|
repos[issue.repository_url].popularity += 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$.each(repos, function(repo, obj) {
|
||||||
|
sorted.push({ repo: repo, popularity: obj.popularity});
|
||||||
|
})
|
||||||
|
|
||||||
|
function sortByPopularity(a, b) {
|
||||||
|
return b.popularity - a.popularity;
|
||||||
|
};
|
||||||
|
|
||||||
|
sorted.sort(sortByPopularity);
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: 'views/contrib.html',
|
||||||
|
dataType: 'html',
|
||||||
|
success: function(response) {
|
||||||
|
if (sorted.length > 0) {
|
||||||
|
$('#contrib-jobs').html('');
|
||||||
|
var view, template, html, repoUrl, repoName, commitsUrl;
|
||||||
|
$.each(sorted, function(index, repo) {
|
||||||
|
repoUrl = repo.repo.replace(/https:\/\/api\.github\.com\/repos/, 'https://github.com');
|
||||||
|
repoName = repo.repo.replace(/https:\/\/api\.github\.com\/repos\//, '');
|
||||||
|
commitsUrl = repoUrl + '/commits?author=' + username;
|
||||||
|
view = {
|
||||||
|
count: repo.popularity,
|
||||||
|
username: username,
|
||||||
|
repoUrl: repoUrl,
|
||||||
|
repoName: repoName,
|
||||||
|
commitsUrl: commitsUrl
|
||||||
|
};
|
||||||
|
|
||||||
|
template = response;
|
||||||
|
html = Mustache.to_html(template, view);
|
||||||
|
|
||||||
|
$('#contrib-jobs').append($(html));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$('#contributions').remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
github_user_orgs(username, function(response) {
|
github_user_orgs(username, function(response) {
|
||||||
var sorted = [];
|
var sorted = [];
|
||||||
|
|
||||||
|
6
views/contrib.html
Normal file
6
views/contrib.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<div class="contributions">
|
||||||
|
<h2>
|
||||||
|
<a href="{{repoUrl}}">{{repoName}}</a>
|
||||||
|
</h2>
|
||||||
|
<p>{{username}} has contributed for <a href="{{repoUrl}}">{{repoName}}</a> with <a href="{{commitsUrl}}">{{count}} commit(s)</a></p>
|
||||||
|
</div>
|
@ -53,31 +53,40 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/website}}
|
{{/website}}
|
||||||
<div class="yui-gf" id="mylanguages">
|
<div class="yui-gf" id="mylanguages">
|
||||||
<div class="yui-u first">
|
<div class="yui-u first">
|
||||||
<h2>Languages</h2>
|
<h2>Languages</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="yui-u" id="content-languages">
|
<div class="yui-u" id="content-languages">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div id="repositories" class="yui-gf">
|
<div id="repositories" class="yui-gf">
|
||||||
<div class="yui-u first">
|
<div class="yui-u first">
|
||||||
<h2>Popular Repositories</h2>
|
<h2>Popular Repositories</h2>
|
||||||
</div><!--// .yui-u -->
|
</div><!--// .yui-u -->
|
||||||
|
|
||||||
<div class="yui-u" id="jobs">
|
<div class="yui-u" id="jobs">
|
||||||
<span>Loading information...</span><img src="images/loader.gif" />
|
<span>Loading information...</span><img src="images/loader.gif" />
|
||||||
</div><!--// .yui-u -->
|
</div><!--// .yui-u -->
|
||||||
</div><!--// .yui-gf -->
|
</div><!--// .yui-gf -->
|
||||||
|
|
||||||
<div class="yui-gf" id="organizations">
|
<div id="contributions" class="yui-gf">
|
||||||
|
<div class="yui-u first">
|
||||||
|
<h2>Contributions</h2>
|
||||||
|
</div><!--// .yui-u -->
|
||||||
|
|
||||||
|
<div class="yui-u" id="contrib-jobs">
|
||||||
|
<span>Loading information...</span><img src="images/loader.gif" />
|
||||||
|
</div><!--// .yui-u -->
|
||||||
|
</div><!--// .yui-gf -->
|
||||||
|
|
||||||
|
<div class="yui-gf" id="organizations">
|
||||||
<div class="yui-u first">
|
<div class="yui-u first">
|
||||||
<h2>Organizations</h2>
|
<h2>Organizations</h2>
|
||||||
</div><!--// .yui-u -->
|
</div><!--// .yui-u -->
|
||||||
|
|
||||||
<div class="yui-u" id="orgs">
|
<div class="yui-u" id="orgs">
|
||||||
<span>Loading information...</span><img src="images/loader.gif" />
|
<span>Loading information...</span><img src="images/loader.gif" />
|
||||||
</div><!--// .yui-u -->
|
</div><!--// .yui-u -->
|
||||||
</div><!--// .yui-gf -->
|
</div><!--// .yui-gf -->
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user