{"id":15554167,"url":"https://github.com/srinitude/guidepost","last_synced_at":"2025-05-07T13:05:41.558Z","repository":{"id":56571452,"uuid":"185283345","full_name":"srinitude/guidepost","owner":"srinitude","description":"Harness your knowledge base in your Rails applications","archived":false,"fork":false,"pushed_at":"2020-10-31T14:51:02.000Z","size":68,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T13:05:35.567Z","etag":null,"topics":["knowledge-base","rails","ruby","ruby-on-rails","s3","zendesk"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/srinitude.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["srinitude"]}},"created_at":"2019-05-06T23:00:03.000Z","updated_at":"2024-05-08T02:44:32.000Z","dependencies_parsed_at":"2022-08-15T21:10:31.275Z","dependency_job_id":null,"html_url":"https://github.com/srinitude/guidepost","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srinitude%2Fguidepost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srinitude%2Fguidepost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srinitude%2Fguidepost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srinitude%2Fguidepost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srinitude","download_url":"https://codeload.github.com/srinitude/guidepost/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252883208,"owners_count":21819160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["knowledge-base","rails","ruby","ruby-on-rails","s3","zendesk"],"created_at":"2024-10-02T14:50:56.485Z","updated_at":"2025-05-07T13:05:41.538Z","avatar_url":"https://github.com/srinitude.png","language":"Ruby","funding_links":["https://github.com/sponsors/srinitude"],"categories":[],"sub_categories":[],"readme":"# Guidepost\n\n[![Gem Version](https://badge.fury.io/rb/guidepost.svg)](https://badge.fury.io/rb/guidepost)\n\n## Purpose\n\nYour knowledge base is an incredibly important component of your company, providing value to your customers, employees, and other stakeholders! The purpose of this project is to help you gain more control over it.\n\n## Current Use Cases\n\n* [Back up your knowledge base to S3](#back-up-your-knowledge-base-to-s3)\n* [Import your knowledge base into your application](#import-your-knowledge-base-into-your-application)\n* [Search your knowledge base with keywords](#search-your-knowledge-base-with-keywords)\n\n## Table of Contents\n\n* [Prerequisites/Requirements](#prerequisites-requirements)\n* [Knowledge Base Providers](#knowledge-base-providers)\n* [Storage Services](#storage-services)\n* [Installation](#installation)\n* [Environment Variables](#environment-variables)\n* [Usage](#usage)\n* [Contact](#contact)\n* [Roadmap](#roadmap)\n* [License](#license)\n\n### Prerequisites/Requirements\n\n* Rails 4.2+\n* Ruby 2.5+\n\n### Knowledge Base Providers\n\n* Zendesk\n\n### Storage Services\n\n* Amazon Simple Storage Service (Amazon S3)\n\n### Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'guidepost'\n```\n\nAnd then execute:\n\n    $ bundle\n\n### Environment Variables\n\nMake sure to have certain environmental variables set, preferrably in your `.bash_profile` or in your `.bashrc`! The prefix of each environment variable needs to be the uppercased version of the name of your project that you will use to initialize your `Guidepost::Provider` (i.e. Zendesk in this case, since this is the only provider currently supported):\n\n#### Zendesk\n\n```ruby\n# The email associated with your Zendesk subdomain\nENV[\"#{YOUR_PROJECT_NAME}_GUIDEPOST_ZENDESK_EMAIL\"]\n\n# The password token associated with your Zendesk subdomain\nENV[\"#{YOUR_PROJECT_NAME}_GUIDEPOST_ZENDESK_PASSWORD_TOKEN\"]\n```\n\n#### S3\n\n```ruby\n# The access key associated with your AWS account\nENV[\"#{YOUR_PROJECT_NAME}_GUIDEPOST_AWS_ACCESS_KEY_ID\"]\n\n# The secret key associated with your AWS account\nENV[\"#{YOUR_PROJECT_NAME}_GUIDEPOST_AWS_SECRET_ACCESS_KEY\"]\n\n# The AWS region associated with this project\nENV[\"#{YOUR_PROJECT_NAME}_GUIDEPOST_AWS_REGION\"]\n\n# The name of the S3 bucket you want to upload your backups to\nENV[\"#{YOUR_PROJECT_NAME}_GUIDEPOST_S3_BUCKET_NAME\"]\n```\n\n### Usage\n\n#### Back up your knowledge base to S3\n\n##### Implement the backup functionality in your code\n\n```ruby\n# The subdomain of your Zendesk account\nsubdomain = \"spotify\"\n\n# The name you want to give to your project (name your environment variables accordingly)\nproject_name = \"employee-portal\"\n\nzendesk = Guidepost::Provider::Zendesk.new(subdomain: subdomain, project_name: project_name)\nzendesk.backup_all_articles(sideload: true)\n```\n\n##### Run a script outside of your codebase\n\n    $ rake zendesk_guide:backup_articles[spotify,employee-portal]\n\n#### Import your knowledge base into your application\n\n\n##### Generate all of the necessary model and migration files\n\n    $ rails g guidepost:models\n\n##### Perform all of the schema migrations\n\n    $ rails g guidepost:migrate\n\n##### Run a script outside of your codebase\n\n    $ rake zendesk_guide:import_guides_into_database[spotify,employee-portal]\n\n#### Search your knowledge base with keywords\n\n```ruby\n# The subdomain of your Zendesk account\nsubdomain = \"spotify\"\n\n# The name you want to give to your project (name your environment variables accordingly)\nproject_name = \"employee-portal\"\n\n# The keyword(s) you're searching for in articles\nquery = \"analytics\"\n\nzendesk = Guidepost::Provider::Zendesk.new(subdomain: subdomain, project_name: project_name)\nzendesk.search(query: query)\n```\n\n## Contact\n\nIf you find and want to address any security issues with the project, email [me](mailto:srinitude@gmail.com.com)! For anything else, like bug identifications or feature requests, feel free to file a Github issue or tweet me [@srinitude](https://twitter.com/srinitude).\n\n## Roadmap\n\n* Tests\n* More robust documentation\n* More relevant use cases\n\n## License\n\nGuidepost is released under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrinitude%2Fguidepost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrinitude%2Fguidepost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrinitude%2Fguidepost/lists"}