class GitPivotalTrackerIntegration::Command::Configuration
A class that exposes configuration that commands can use
Constants
- GITHUB_API_OAUTH_TOKEN
- GITHUB_API_REPO_TOKEN
- KEY_API_TOKEN
- KEY_PROJECT_ID
- KEY_STORY_ID
Public Instance Methods
Returns the user's Pivotal Tracker API token. If this token has not been configured, prompts the user for the value. The value is checked for in the inherited Git configuration, but is stored in the global Git configuration so that it can be used across multiple repositories.
@return [String] The user's Pivotal Tracker API token
# File lib/git-pivotal-tracker-integration/command/configuration.rb, line 31 def api_token api_token = GitPivotalTrackerIntegration::Util::Git.get_config KEY_API_TOKEN, :inherited if api_token.empty? api_token = ask('Pivotal API Token (found at https://www.pivotaltracker.com/profile): ').strip GitPivotalTrackerIntegration::Util::Git.set_config KEY_API_TOKEN, api_token, :global puts end api_token end
# File lib/git-pivotal-tracker-integration/command/configuration.rb, line 85 def github token = GitPivotalTrackerIntegration::Util::Git.get_config GITHUB_API_OAUTH_TOKEN if (token.empty?) token = ask("Github OAuth Token (help.github.com/articles/creating-an-access-token-for-command-line-use): ").strip GitPivotalTrackerIntegration::Util::Git.set_config(GITHUB_API_OAUTH_TOKEN, token, :local) end repo = GitPivotalTrackerIntegration::Util::Git.repo_name ::Github.new(:oauth_token => token) end
Returns the Pivotal Tracker project id for this repository. If this id has not been configuration, prompts the user for the value. The value is checked for in the inherited Git configuration, but is stored in the local Git configuration so that it is specific to this repository.
@return [String] The repository's Pivotal Tracker project id
# File lib/git-pivotal-tracker-integration/command/configuration.rb, line 49 def project_id project_id = GitPivotalTrackerIntegration::Util::Git.get_config KEY_PROJECT_ID, :inherited if project_id.empty? project_id = choose do |menu| menu.prompt = 'Choose project associated with this repository: ' PivotalTracker::Project.all.sort_by { |project| project.name }.each do |project| menu.choice(project.name) { project.id } end end GitPivotalTrackerIntegration::Util::Git.set_config KEY_PROJECT_ID, project_id, :local puts end project_id end
Returns the story associated with the current development branch
@param [PivotalTracker::Project] project the project the story belongs to @return [PivotalTracker::Story] the story associated with the current development branch
# File lib/git-pivotal-tracker-integration/command/configuration.rb, line 72 def story(project) story_id = GitPivotalTrackerIntegration::Util::Git.get_config KEY_STORY_ID, :branch project.stories.find story_id.to_i end
Stores the story associated with the current development branch
@param [PivotalTracker::Story] story the story associated with the current development branch @return [void]
# File lib/git-pivotal-tracker-integration/command/configuration.rb, line 81 def story=(story) GitPivotalTrackerIntegration::Util::Git.set_config KEY_STORY_ID, story.id, :branch end