Skip to content

Release/0.2.0#32

Merged
briandominick merged 20 commits into
mainfrom
release/0.2.0
Aug 7, 2025
Merged

Release/0.2.0#32
briandominick merged 20 commits into
mainfrom
release/0.2.0

Conversation

@briandominick

Copy link
Copy Markdown
Contributor

No description provided.

- Fix broken link from lib/examples/README.adoc to examples/README.adoc
- Link now correctly points to the actual examples directory
- Resolves issue #6

Closes #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.
* 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.
@briandominick briandominick requested a review from Copilot July 17, 2025 18:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 --tokenv option
  • 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}'"

Comment thread lib/issuer/issue.rb
@@ -60,14 +62,20 @@ class Issue
# @param defaults [Hash] Default values to apply when issue data is missing properties
#
def initialize issue_data, defaults={}

Copilot AI Jul 17, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Method definition should not use parentheses. Change to: def initialize issue_data, defaults={}

Copilot generated this review using guidance from repository custom instructions.
raise Issuer::Error, "GitHub API error: #{e.message}"
end

def create_issue_rest repo, issue_params

Copilot AI Jul 17, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Method definition should not use parentheses. Change to: def create_issue_rest repo, issue_params

Copilot generated this review using guidance from repository custom instructions.
raise Issuer::Error, "GitHub API error: #{e.message}"
end

def create_issue_with_type repo, issue_params

Copilot AI Jul 17, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Method definition should not use parentheses. Change to: def create_issue_with_type repo, issue_params

Copilot generated this review using guidance from repository custom instructions.
create_issue_rest(repo, fallback_params)
end

def find_milestone repo, milestone_title

Copilot AI Jul 17, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Method definition should not use parentheses. Change to: def find_milestone repo, milestone_title

Copilot generated this review using guidance from repository custom instructions.
@client.rate_limit
end

def get_issue_types repo

Copilot AI Jul 17, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Method definition should not use parentheses. Change to: def get_issue_types repo

Copilot generated this review using guidance from repository custom instructions.
user(login: $login) {
id
}
}

Copilot AI Jul 17, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Method definition should not use parentheses. Change to: def execute_graphql_query query, variables = {}

Copilot generated this review using guidance from repository custom instructions.
Comment thread lib/issuer/issue.rb
# # 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

Copilot AI Jul 17, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Method definition should not use parentheses. Change to: def apply_tag_logic cli_append_tags, cli_default_tags

Copilot generated this review using guidance from repository custom instructions.
@briandominick

Copy link
Copy Markdown
Contributor Author

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.
@briandominick briandominick merged commit 5a57422 into main Aug 7, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants