https://github.com/miharekar/neo4hub
Importer from GitHub API to Neo4j
https://github.com/miharekar/neo4hub
Last synced: 3 months ago
JSON representation
Importer from GitHub API to Neo4j
- Host: GitHub
- URL: https://github.com/miharekar/neo4hub
- Owner: miharekar
- License: mit
- Created: 2015-05-23T13:13:32.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-01-13T11:50:25.000Z (almost 10 years ago)
- Last Synced: 2025-06-13T08:49:57.181Z (4 months ago)
- Language: Ruby
- Size: 12.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# neo4hub
Importer from [GitHub API](https://developer.github.com/v3/) to [Neo4j](http://neo4j.com/) with [Neo4j.rb](http://neo4jrb.io/).
Used for my [RubyC](http://rubyc.eu/) and [Rails Remote Conf](https://railsremoteconf.com/) talks.
# Some examples
## Popularity
```
MATCH (o:Organization)-[m:MEMBER]->()
RETURN o, COUNT(m) as c
ORDER BY c DESC
LIMIT 5MATCH ()-[f:FOLLOWS]->(u:User)
RETURN u, COUNT(f) as c
ORDER BY c DESC
LIMIT 5MATCH (r:Repository)-[f:FORK]->()
RETURN r, count(f) as c
ORDER BY c DESC
LIMIT 5MATCH (t:User{login:'tenderlove'})<--(u:User)-->(m:User{login:'mrfoto'})
RETURN t, u, m
```## Organizations
```
MATCH (rs:Organization{login:'RubySlovenia'})-->(m:User)
RETURN rs, mMATCH (rs:Organization{login:'RubySlovenia'})-->(m)<--(f:User)
RETURN m, fMATCH (rs:Organization{login:'RubySlovenia'})-->(m)<--(f:User)
RETURN f.loginMATCH (rs:Organization{login:'RubySlovenia'})-->(m)<--(f:User)
RETURN COUNT(f)
```## Shortest paths
```
MATCH (yehuda:User{login:'wycats'}), (jacek:User{login:'ncr'}), p = allShortestPaths((yehuda)-[*]-(jacek))
RETURN pMATCH (yehuda:User{login:'wycats'}), (jacek:User{login:'ncr'}), p = shortestPath((yehuda)-[*]-(jacek))
RETURN p
```## Misc
### Source repos of @RubySlovenia members
```
MATCH (o:Organization{login:'RubySlovenia'})-->(u)-->(r:Repository{source:true})
RETURN u, rMATCH (o:Organization{login:'RubySlovenia'})-->(u)-->(r:Repository{source:true})
RETURN u.name, collect(r.name), count(r) AS c
ORDER BY c DESC
```### Who forked Rails
```
MATCH (r:Repository{full_name:'rails/rails'})-[:FORK]->(f)<-[:OWNS]-(u:User)
RETURN r, f, u
```### Friday hug
```
MATCH (tenderlove:User{login:'tenderlove'})-->(f:User)-->(tenderlove)
RETURN f, tenderlove
```### Most repos/forks
```
MATCH (u:User)-[o:OWNS]->(r:Repository{source:true})
RETURN u.name, u.login, COUNT(o) as c
ORDER BY c DESC
LIMIT 10MATCH (u:User)-[o:OWNS]->(r:Repository{source:false})
RETURN u.name, u.login, COUNT(o) as c
ORDER BY c DESC
LIMIT 10
```