Release/0.2.0#32
Conversation
Fix examples link in README (#6)
* Bump version to 0.1.1 for patch development * Ignore local AI scratch path * Fix gemspec to correctly package executable and ensure RubyGems installation works * Disable automated RubyGems and DockerHub publishing for manual release process * Update Gemfile.lock to fix CI dependency issues
- Remove branch restriction that limited CI tests to PRs against main branch - CI tests now run on ALL pull requests, regardless of target branch - Ensures proper testing for feature branches against release branches - Publishing steps remain commented out for manual publishing only This allows the development workflow using release branches to have proper CI validation for all pull requests.
Enable CI tests for all pull requests
* add: GitHub issue types support with GraphQL integration - Add 'type' field to Issue model with defaults support - Create GitHub API client with GraphQL query support using HTTP requests - Add hybrid API approach: GraphQL for issues with types, REST for others - Implement case-insensitive type matching (bug, BUG, Bug all work) - Add graceful fallback from GraphQL to REST API on errors - Add type label fallback: creates 'type:<type>' label when GraphQL fails - Support type field in GitHub site adapter parameter conversion - Remove redundant repository field from dry-run output formatting - Add type display in formatted output when present * doc: add issue types support to IMYML documentation - Add 'type' field to IMYML format examples and property reference - Document type field in defaults and individual issue records * test: add comprehensive test coverage for issue types feature - Add 11 new tests in issue_spec.rb for type field behavior and site integration - Add 4 tests for type model support (defaults, preferences, nil handling) - Add 4 tests for GitHub site adapter type parameter conversion - Add 3 tests for dry-run display formatting with types - Add 2 tests in ops_spec.rb for case-insensitive type matching logic
* add: tag removal functionality with - prefix at issue level - Enable removal of default/appended tags using - prefix in issue tags - Process removal tags only at issue level, not in defaults - Remove tags from final tag list after applying default logic - Add comprehensive example file demonstrating removal functionality Fixes #4 * test: add comprehensive tests for tag removal functionality - Test removal of single and multiple tags from defaults - Test removal of tags from appended (+) tags - Test removal of non-existing tags (no-op behavior) - Test combined removal with regular and appended tags - Verify removal only works at issue level, not in defaults All tests pass and cover edge cases for - prefix tag removal feature. * doc: add tag removal example to README - Add example showing - prefix for removing default/appended tags - Demonstrate removal functionality in main IMYML format example - Show how to remove tags like -bug and -enhancement at issue level Completes documentation for tag removal feature from issue #4 Resolves issue #4
…25) - Add wrap_line_with_indentation method to handle terminal width-aware line wrapping - Modify formatted_output method to use proper line wrapping instead of simple indentation - Wrapped lines now maintain consistent 12-space indentation instead of wrapping to left margin - Respects COLUMNS environment variable for terminal width detection (defaults to 80) - Preserves original line breaks while wrapping long lines at word boundaries - Add comprehensive tests for both single long lines and multi-line content wrapping Fixes #8
* Adds dynamic (version-specific) URLs for GemDocs documentation links. * Cleans up numerous typos. * Fixes markup syntax errors. * Removes literals from reference term listings. * Clarifies --tags usage.
There was a problem hiding this comment.
Pull Request Overview
This PR implements release version 0.2.0 with significant new features including issue type support, tag removal functionality, and improved CLI messaging. The changes extend the IMYML format to support issue types, enable tag removal with - prefix notation, and add GraphQL API support for GitHub issue types.
Key changes include:
- Added issue type support throughout the codebase with GraphQL API integration
- Implemented tag removal functionality using
-prefix notation - Enhanced CLI help text and deprecated
--tokenvoption - Updated documentation and examples for new features
Reviewed Changes
Copilot reviewed 14 out of 16 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| lib/issuer/issue.rb | Added type field support and tag removal logic with - prefix |
| lib/issuer/sites/github.rb | Integrated new GitHub API client and added type parameter handling |
| lib/issuer/apis/github/client.rb | Added GraphQL support for issue types with REST API fallback |
| specs/tests/rspec/*.rb | Added comprehensive test coverage for new features |
| lib/issuer/cli.rb | Updated help text and deprecated --tokenv option |
| README.adoc | Updated documentation with new features and corrected typos |
| examples/tag-removal-example.yml | Added example demonstrating tag removal functionality |
Comments suppressed due to low confidence (9)
lib/issuer/apis/github/client.rb:25
- Method definition should not use parentheses. Change to: def create_issue repo, issue_params
def create_issue repo, issue_params
lib/issuer/apis/github/client.rb:222
- Method definition should not use parentheses. Change to: def detect_github_token custom_env_var
def default_token_env_vars
lib/issuer/apis/github/client.rb:240
- Method definition should not use parentheses. Change to: def resolve_issue_type repo, type_name
def resolve_issue_type(repo, type_name)
lib/issuer/apis/github/client.rb:246
- Method definition should not use parentheses. Change to: def get_repository_id owner, name
def get_repository_id(owner, name)
lib/issuer/apis/github/client.rb:259
- Method definition should not use parentheses. Change to: def resolve_label_ids repo, label_names
def resolve_label_ids(repo, label_names)
lib/issuer/apis/github/client.rb:266
- Method definition should not use parentheses. Change to: def get_user_id username
def get_user_id(username)
lib/issuer/issue.rb:400
- Method definition should not use parentheses. Change to: def wrap_line_with_indentation line, indent_size
def wrap_line_with_indentation(line, indent_size)
lib/issuer/sites/github.rb:234
- Method definition should not use parentheses. Change to: def convert_issue_to_site_params issue, proj, dry_run: false, post_validation: false
puts "⚠️ Warning: Milestone '#{issue.vrsn}' not found even after validation for issue '#{issue.summ}'"
| @@ -60,14 +62,20 @@ class Issue | |||
| # @param defaults [Hash] Default values to apply when issue data is missing properties | |||
| # | |||
| def initialize issue_data, defaults={} | |||
There was a problem hiding this comment.
Method definition should not use parentheses. Change to: def initialize issue_data, defaults={}
| raise Issuer::Error, "GitHub API error: #{e.message}" | ||
| end | ||
|
|
||
| def create_issue_rest repo, issue_params |
There was a problem hiding this comment.
Method definition should not use parentheses. Change to: def create_issue_rest repo, issue_params
| raise Issuer::Error, "GitHub API error: #{e.message}" | ||
| end | ||
|
|
||
| def create_issue_with_type repo, issue_params |
There was a problem hiding this comment.
Method definition should not use parentheses. Change to: def create_issue_with_type repo, issue_params
| create_issue_rest(repo, fallback_params) | ||
| end | ||
|
|
||
| def find_milestone repo, milestone_title |
There was a problem hiding this comment.
Method definition should not use parentheses. Change to: def find_milestone repo, milestone_title
| @client.rate_limit | ||
| end | ||
|
|
||
| def get_issue_types repo |
There was a problem hiding this comment.
Method definition should not use parentheses. Change to: def get_issue_types repo
| user(login: $login) { | ||
| id | ||
| } | ||
| } |
There was a problem hiding this comment.
Method definition should not use parentheses. Change to: def execute_graphql_query query, variables = {}
| # # Issue has tags: ['+urgent', 'bug', '-needs:docs'] | ||
| # issue.apply_tag_logic(['cli-tag'], ['default-tag', 'needs:docs']) | ||
| # # Result: ['urgent', 'cli-tag', 'bug', 'default-tag'] (needs:docs removed) | ||
| def apply_tag_logic cli_append_tags, cli_default_tags |
There was a problem hiding this comment.
Method definition should not use parentheses. Change to: def apply_tag_logic cli_append_tags, cli_default_tags
|
I have manually replaced all cases of method def lines containing parentheses. |
Uses GitHub issues from DocOps/issuer as source. Generate a draft at docs/releasehx/<version>.yml and edit, then generate a Markdown draft from that and use the Markdown in the GitHub release form.
ae53bf0 to
d8bfc40
Compare
No description provided.