Skip to content

Instantly share code, notes, and snippets.

@aroman
Last active August 29, 2015 14:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aroman/a6f62393b8087904c8d4 to your computer and use it in GitHub Desktop.
Save aroman/a6f62393b8087904c8d4 to your computer and use it in GitHub Desktop.
let Promise = require('bluebird');
function showReposWithSomeFile() {
gh.request('GET /user/repos')
.map(repo => {
let someFileContents = gh.request('GET /repos/:owner/:repo/contents/:path', {
owner: repo.owner.login,
repo: repo.name,
path: 'someFile',
});
return {
someFileContents,
repo: {
name: repo.name,
owner: repo.owner.login
}
}
})
.filter([someFileContents, repo] => {
return appHubFileContents.state === 'fulfilled';
})
.each(repo => {
// Do something with the repos that have 'someFile' in them.
})
.catch(next);
}
@petkaantonov
Copy link

function showReposWithSomeFile() {
  gh.request('GET /user/repos')
  .map(repo => {
    return gh.request('GET /repos/:owner/:repo/contents/:path', {
       owner: repo.owner.login,
       repo: repo.name,
       path: 'someFile',
     }).then(contents => ({
        repo: repo.name,
        owner: repo.owner.login,
        contents: contents
     })).reflect();
  })
  .filter(promise => promise.isFulfilled())
  .map(promise => promise.value())
  .each(data => {
    // contents = data.contents
    // repo = data.repo
    // etc
  })
  .catch(next);  
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment