{"id":15374705,"url":"https://github.com/mrtazz/octonode","last_synced_at":"2026-05-09T05:34:36.828Z","repository":{"id":66811939,"uuid":"2121214","full_name":"mrtazz/octonode","owner":"mrtazz","description":"[Nothing to see because I never found the time to actually work on this] node.js wrapper for the github v3 API","archived":false,"fork":false,"pushed_at":"2011-07-28T22:58:01.000Z","size":96,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-09-05T19:59:59.663Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrtazz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-07-28T22:57:34.000Z","updated_at":"2019-02-14T11:54:25.000Z","dependencies_parsed_at":"2023-02-20T12:01:05.273Z","dependency_job_id":null,"html_url":"https://github.com/mrtazz/octonode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mrtazz/octonode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Foctonode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Foctonode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Foctonode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Foctonode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrtazz","download_url":"https://codeload.github.com/mrtazz/octonode/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrtazz%2Foctonode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32808539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T13:59:33.939Z","updated_at":"2026-05-09T05:34:36.811Z","avatar_url":"https://github.com/mrtazz.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# octonode - nodejs github library\n\n## Description\noctonode is a library for nodejs to access the [github](https://github.com) v3\nAPI.\n\n## Usage\nThe module exposes the objects `User`, `Organisation` and `Repository`\nfor interacting with the respective github entities.\nAll methods take at least a callback function as argument, which is\ncalled with the result data after the method is finished. The callback\nfunction should have the following signature:\n\n    function(status, data)\n    {\n      // do something with the data\n      console.log(data);\n    };\n\nStatus is a string describing whether the function call was a success or\nan error occurred and data is the actual result data. The status strings are\navailable from the octonode module for comparison:\n\n    octonode.status = {\n                        SUCCESS: \"success\", // everything went great\n                        ERROR: \"error\",     // something went wrong\n                        NIMPL: \"notimplemented\" // method not yet implemented\n                      };\n\n\nEvery object provides several method to interact with the entity it represents.\n\n    var octonode = require('octonode');\n\n    var me = octonode.User('mrtazz');\n    // work with email data\n    me.get_email_addresses(callback);\n    me.set_email_addresses(['new@mail.com', 'alsonew@mail.com'], callback);\n    me.set_email_addresses('new@mail.com', callback);\n    me.delete_email_addresses(['new@mail.com', 'alsonew@mail.com'], callback);\n    me.delete_email_addresses('new@mail.com', callback);\n    // follower data\n    me.get_followers(callback);\n    me.get_following(callback);\n    me.is_following('user', callback);\n    me.follow('user', callback);\n    me.unfollow('user', callback);\n    // key data\n    me.get_public_keys(callback);\n    me.get_public_key('id', callback);\n    me.add_public_key('title', 'key', callback);\n    me.update_public_key('title', 'key', callback);\n    me.delete_public_key('id', callback);\n    // public orgs for unauthenticated, private and public for authenticated\n    me.get_organizations(callback);\n    // public repos for unauthenticated, private and public for authenticated\n    me.get_repositories(callback);\n    me.create_repository({name: ''}, callback);\n    me.get_watched_repositories(callback);\n    me.is_watching('repo', callback);\n    me.start_watching('repo', callback);\n    me.stop_watching('repo', callback);\n    me.get_issues(params, callback);\n\n    // organization data\n    var org = octonode.Organisation('TheCompany')\n    org.info(callback);\n    org.update(dict_with_update_properties, callback);\n    org.get_members(callback);\n    org.get_member('user', callback);\n    org.add_member('user', 'team', callback);\n    org.remove_member('user', callback);\n    org.get_public_members(callback);\n    org.is_public_member('user', callback);\n    org.make_member_public('user', callback);\n    org.conceal_member('user', callback);\n    org.get_teams(callback);\n    org.get_team('team', callback);\n    org.create_team({name:'', repo_names:'', permission:''}, callback);\n    org.edit_team({name:'', permission:''}, callback);\n    org.delete_team('name', callback);\n    org.get_team_members('team', callback);\n    org.get_team_member('team', 'user', callback);\n    org.remove_member_from_team('user', 'team', callback);\n    org.get_repositories(callback);\n    org.create_repository({name: ''}, callback);\n    org.get_team_repositories('team', callback);\n    org.get_team_repository('team', 'name', callback);\n    org.add_team_repository('team', 'name', callback);\n    org.remove_team_repository('team', 'name', callback);\n\n    // repository data\n    var repo = octonode.Repository('mrtazz/octonode');\n    // general repo information\n    repo.info(callback);\n    repo.update({name: ''}, callback);\n    repo.get_contributors(callback);\n    repo.get_languages(callback);\n    repo.get_teams(callback);\n    repo.get_tags(callback);\n    repo.get_branches(callback);\n    // collaborator information\n    repo.get_collaborators(callback);\n    repo.has_collaborator('name', callback);\n    repo.add_collaborator('name', callback);\n    repo.remove_collaborator('name', callback);\n    // commit data\n    repo.get_commits(callback);\n    repo.get_commit('sha-id', callback);\n    repo.get_all_comments(callback);\n    repo.get_commit_comments('SHA ID', callback);\n    repo.comment_on_commit({body: '', commit_id: '', line: '', path: '',\n                            position: ''}, callback);\n    repo.get_single_comment('comment id', callback);\n    repo.edit_single_comment('comment id', callback);\n    repo.delete_single_comment('comment id', callback);\n    // downloads\n    repo.get_downloads(callback);\n    repo.get_download(callback);\n    repo.create_download({name: ''}, 'filepath', callback);\n    repo.delete_download(callback);\n    // fork data\n    repo.get_forks(callback);\n    repo.create_fork(callback);\n    // keys\n    repo.get_deploy_keys(callback);\n    repo.get_deploy_key('id', callback);\n    repo.create_deploy_key({title: '', key: ''}, callback);\n    repo.edit_deploy_key({title: '', key: ''}, callback);\n    repo.delete_deploy_key('id', callback);\n    // watcher data\n    repo.get_watchers(callback);\n    // pull requests\n    repo.get_all_pull_request_comments(callback);\n    repo.get_pull_request_comment('id', callback);\n    repo.create_pull_request_comment('id',\n                                     {body:'', commit_id:'', path:'', position:''},\n                                     callback);\n    repo.reply_to_pull_request_comment('id', 'body', callback);\n    repo.edit_pull_request_comment('id', 'body', callback);\n    repo.delete_pull_request_comment('id', callback);\n    repo.get_issues(params, callback);\n    repo.get_issue('id', callback);\n    repo.create_issue({title: ''}, callback);\n    repo.edit_issue({title: ''}, callback);\n    repo.get_issue_comments('issue', callback);\n    repo.get_issue_comment('id', callback);\n    repo.create_issue_comment('id', 'comment', callback);\n    repo.edit_issue_comment('id', 'comment', callback);\n    repo.delete_issue_comment('id', callback);\n    repo.get_issue_events('id', callback);\n    repo.get_events(callback);\n    repo.get_event('id', callback);\n    repo.get_labels(callback);\n    repo.get_label('id', callback);\n    repo.create_label('name', 'color', callback);\n    repo.edit_label('name', 'color', callback);\n    repo.delete_label('id', callback);\n    repo.get_issue_labels('issue', callback);\n    repo.add_labels_to_issue('issue', ['label1', 'label2'], callback);\n    repo.remove_label_from_issue('issue', 'labelid', callback);\n    repo.set_labels_for_issue('issue', ['label1', 'label2'], callback);\n    repo.remove_all_labels_from_issue('issue', callback);\n    repo.get_labels_for_milestone_issues('milestone', callback);\n    repo.get_milestones(callback);\n    repo.get_milestone('id', callback);\n    repo.create_milestone('title', callback);\n    repo.edit_milestone('title', callback);\n    repo.delete_milestone('id', callback);\n    // raw git access\n    repo.get_blob('sha-id', callback);\n    repo.create_blob('content', 'encoding', callback);\n    repo.get_commit('sha-id', callback);\n    repo.create_commit('message', 'tree', [parents], callback);\n    repo.get_reference('ref', callback);\n    repo.get_all_references(callback);\n    repo.create_reference('ref', 'sha', callback);\n    repo.update_reference('ref', 'sha', force, callback);\n\n\n\n\n## Installation\nThe package is available via npm:\n\n    npm install octonode\n\n## Meta\n- [Bugs](https://github.com/mrtazz/octonode/issues)\n- [Stories](https://www.pivotaltracker.com/projects/331351)\n- [CI](http://ci.unwiredcouch.com/job/octonode)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtazz%2Foctonode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrtazz%2Foctonode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtazz%2Foctonode/lists"}