Coder Social home page Coder Social logo

bugbite's Introduction

ci coverage

Bugbite

Library and tools for bug, issue, and ticket mangling.

  • bugbite: core library
  • bite (bugbite-cli): CLI client
  • chew (bugbite-tui): TUI client

bugbite's People

Contributors

dependabot[bot] avatar radhermit avatar

bugbite's Issues

search: support logical `AND` and `OR` queries against field values

In general, I think it would be easiest if AND queries were specified by comma-separated values and OR queries by multiple option usage.

For example, bite s --cc user1,user2 would search for bugs with both user1 and user2 in the CC list while bite s --cc user1 --cc user2 would search for bugs with user1 or user2 in the CC list.

consider migrating to an external doc format

Currently the man pages are built directly from clap's long_help content, but it might be preferable long term to write them externally (probably using asciidoc) so that custom content is easier to add and the related program binaries (when built in the default fashion) don't have to include all the doc-related text.

Having them external should also make it easier to generate different output formats from them including man pages, HTML, etc.

add generic clap support for reading a given argument from stdin or regular args

The clap-stdin supports this to an extent, but it doesn't appear to support pulling vectors of arguments which we require. However, its approach can probably be copied and extended.

Also to note, it's currently difficult to use custom containers beyond Vec for struct fields with clap so multi-arg stdin support parsing probably is easiest to do when the command is running and not internally by clap.

support auto-compress of attachments

Atm the gentoo bugzilla supports attachment with a maximum size of 1024kb.

Would be great if when the size of the attachment is greater than 1024kb (e.g. $BUGBITE_MAX_ATTACHMENT_SIZE variable), bite compress it and attachs it as compressed.
That should be done in presence of, for example, --auto-compress-attachment option.

This scenario has two possible way:

  1. the size of the compressed log is less then 1024kb, then suitable for the attachment.
  2. the size of the compressed log is still greater then 1024kb, then NOT suitable for the attachment.
    In such case(2), another option like --cut-compressed-log-lines $N can help where N are the lines you want to attach. This should be a way to post at least the latest $N lines of the log.

Atm, for compress logs I'm using xz, and I verified that it gives the best ratio compression. With the recent changes in xz, I'm using: xz -k -z -9 -T 1 -M 3000000000 "${BUILD_LOG}"
but I suppose that apart -z we can use something like $BUGBITE_XZ_OPTS

attach: support pulling relevant compression option defaults from the config

It could be useful to be able to override the default compression type via config option without having to specify an explicit compression type in the related --compress <type> option for every call.

This would probably require collapsing the type argument to a enum value while running instead of internally via clap parsing since the config object wouldn't be available in that context.

add config file support for defining connection aliases

It would handy if the core library supported loading connection configuration for simple TOML files so user's can define their own connection aliases beyond the bundled ones that can be used by both the cli and tui tools.

support caching `modify` and `creation` requests to be submitted at a later time

It should be possible to serialize modification and creation requests and then later submit them.

This could be useful for several reasons, for example semi or fully automated testing that generates bug reports could cache changes and submit them all at once after a manual review or at other opportune times.

In addition, it would be possible to work offline on bugs and then push changes later. This would probably be more handy on the TUI side.

determine how to handle deserializing and displaying custom field values

One possibility is manually writing extensions/plugins for certain bundled connections.

Another option is include support for a cached field mapping that can be automatically updated.

The main issue with displaying the fields is either the field names have to be hardcoded or they have to be pulled from a given service at some point, preferably done a single time and cached somehow.

alter the search output when the -F/--fields option is specified

Currently the output support is very rudimentary but it should be auto-modified when fields are requested.

It might also be interesting to support flattening vector types relating to IDs for output when they are the only field specified. This would allow for commands such as: bite s -c 1d -F depends-on | bite s --id - which would query for all open dependencies of bugs created in the last day. Alternatively the allowed input types for ID fields could be extended to allow CSV input which could be output in those situations.

refactor bug creation to support a builder design pattern

It would be useful to simplify bug creation in native rust using a builder pattern similar to the following:

let id = service.create()
    .summary("summary")
    .component("Component")
    .product("Product")
    .description("description")
    .await?;

modify: support changing personal bug tags

Unfortunately the REST API currently doesn't support this, but the older web service API variants do so it's probably easiest to use a JSON-RPC method for the specific call required.

'bite create' can inizialize a variable with the bug number

When you file a bug, is very likely that you need the bug number to make further operations (attach logs, do more comments, cc people and so on).

So would be very useful that given a variable (like BUGBITE_CREATED_BUG), bite unsets it before file the bug and then fills it with the bug number if the creation succeded.

That should work only for creation, at least for bugzilla service.

RUSTSEC-2024-0336: `rustls::ConnectionCommon::complete_io` could fall into an infinite loop based on network input

Details
Package rustls
Version 0.22.3
URL GHSA-6g7w-8wpp-frhj
Patched Versions >=0.23.5 OR >=0.22.4, <0.23.0 OR >=0.21.11, <0.22.0
Aliases GHSA-6g7w-8wpp-frhj

If a close_notify alert is received during a handshake, complete_io
does not terminate.

Callers which do not call complete_io are not affected.

rustls-tokio and rustls-ffi do not call complete_io
and are not affected.

rustls::Stream and rustls::StreamOwned types use
complete_io and are affected.

RUSTSEC-2024-0332: Degradation of service in h2 servers with CONTINUATION Flood

Details
Package h2
Version 0.4.3
URL n/a
Patched Versions ^0.3.26 OR >=0.4.4

An attacker can send a flood of CONTINUATION frames, causing h2 to process them indefinitely.
This results in an increase in CPU usage.

Tokio task budget helps prevent this from a complete denial-of-service, as the server can still
respond to legitimate requests, albeit with increased latency.

More details at "https://seanmonstar.com/blog/hyper-http2-continuation-flood/.

Patches available for 0.4.x and 0.3.x versions.

support parsing datetime ranges for search parameters

For various parameters that support datetime ranges, it would be handy to support parsing rust-like ranges using datetime shorthand such as 1w..1d or 1d.. in addition to more specific values. This should probably be implemented in the library since other both the cli and tui apps could make use of it.

move `bite show` functionality into a separate application

A separate cli application could be built by bugbite itself to query compatible configs known to it. That way if other frontends are developed, bite doesn't need to be installed to use more general bugbite-specific functionality.

support modifying comment tags

Bugzilla supports comment tags to mark comments as spam or obsolete and it would be nice to support modifying them via the command line.

generate and host online documentation

Since bugbite-cli is moving to using asciidoc for its documentation, it would be useful to generate HTML from it to create online versions of the man pages and other documentation.

support parsing number ranges for search parameters

For various parameters that support ranges, it would be handy to support parsing rust-like ranges such as 1..10 and 1.. instead of implicitly converting to ranges. This should probably be implemented in the library since other both the cli and tui apps could make use of it.

add config file support

Users should be able to define their own connections and other related options in a config file loaded at runtime.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.