Code Monkey home page Code Monkey logo

octobot's People

Contributors

amandapouget avatar bblancha avatar briangreenery avatar connyay avatar cwill747 avatar dependabot[bot] avatar despreston avatar grosa1 avatar guieut avatar justfalter avatar knownsubset avatar martin-randall-tanium avatar matthauck avatar nathtumlin-tanium avatar thomsavage avatar tomemelko avatar trevershick avatar watsoncj avatar ysdanielkim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

octobot's Issues

Support customizable release branch patterns

Currently backport labels require that release branches start with "release/". They may also have restrictions on looking for numeric release branches as well. This should be configurable per repo.

versions: display link to jira Version after successful creation.

In many workflows, the next step after creating a new Jira Version/Release is to add links to that release in documentation or comms.
Right now after collapsing a version, users need to go back into jira to get the link to the new release.
It would let them skip a step if Octobot showed the link directly on the Success page.

Review request to group doesn't display group name in status

When I submit review request to a group (ex: console-developers), Octobot doesn't handle the status : Pull Request submitted for review to (tanium/tux-console)

Bonus: Would be nice to display the group name, or even better tag everyone in the group so they get a notification

Create default user/repo config if none exists.

The admin web UI currently requires the user and repo config files to exist and have correct formatting before the "add <item>" button appears.

Octobot should create a users/repos config file with acceptable defaults if no file exists at startup, or if the file exists but is empty.

This functionality should make implementation of #153 slightly easier.

Propagate labels to backport PRs

If a source PR has labels, apply all labels excluding backport labels to backport PRs.
These labels might be useful for controlling build processes (enabling/disabling nodes), or other organizational purposes.

Deduplicate slack messages

Octobot sometimes ends up sending dupliclate slack messages that we can do a bit better deduplicating. One example: the github webhook API sends three separate events if a PR is simultaneously assigned to three people.

Idea: move slack messaging into a single thread that waits a bit before sending things out to try to catch duplicates.

Maybe make github -> slack mapping explicit always

Currently we guess at slack usernames based on github usernames: "matt-hauck" we guess is "matt.hauck". While this was nice for easy deploying, it is probably not super helpful in the general case and also results in lack of clarity about who is setup for messaging and who is not. Maybe we should remove this.

Slack messages have been taking a long time to come through

Moving them to a single worker thread has had some adverse effects: primarily that the messages are not being processes fast enough. This is probably because there is a single slack worker thread, and because we wait for each response to finish before issuing another one.

  • Add more threads maybe
  • Make the requests asynchronous

Octobot doesn't update Jira ticket with fix version when merging into a main branch named `main`

Since renaming master to main, Octobot stopped setting a fix-version when merging into the branch.
Looking at the codebase, I can see that is_main_branch assumes the main branch to be named master, develop, or have the release branch prefix.

My suggestion: add a repo config option for a regular expression that is to be used for matching the main branch of a repository, and have it default to ^(main|master|develop)$.

Remove failed-backport label after successful backport

Often a backport fails because there's some other commit that needs to be backported first.
In that case, I typically toggle the backport label on/off to tell octobot to try the backport again.
In that case, it would make sense for octobot to clear the failed-backport label.

Octobot fails to build using "python build.py"

I'm unable to get octobot to build using python build.py, but it's failing. I see errors in two spots:

Failing to findsrc/lib.rs ... Unsure of what to make of this, as the container creation continues afterward

   Compiling octobot v0.1.0 (/usr/src/app)
error: couldn't read src/lib.rs: No such file or directory (os error 2)

error: aborting due to previous error

error: could not compile `octobot`.
warning: build failed, waiting for other jobs to finish...
error: build failed
Removing intermediate container 22cc0d8ae188
 ---> 7c45f8ba7d0b
Step 13/17 : RUN cargo build --release; exit 0

Failing while linking:

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.1lp4lrb0f184098k.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.22wtbdbg5ni5493h.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.2488gg2yykzlw3av.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.27hijqfo72kzfkav.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.2rka4dag30kdfk5c.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.33s3mt0g8fn5edsd.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.377620foo6g9eont.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.3mf4iiwkh8ji0rna.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.3z1hngtcejcbh54t.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.43oewbi7p0m8p8kn.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.4ehuh8b0ssmljak.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.4eklxpcuap6pjt0n.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.4voka3hllbot1dwc.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.4wjmybu4raz95p2c.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.51gs80q3bjrp2hb9.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.52270bqclfamvm9j.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.cztrjn2976nbcvo.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.e65e7bhthr9urub.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.hx2tm608dz0itle.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.jklzf8d5r9cff03.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.o9aksso4sv63t20.rcgu.o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.oxv4gz1i1h81clu.rcgu.o" "-o" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19" "/usr/src/app/target/debug/deps/octobot_passwd-ce026d7ee9d74c19.5dafivi1b0pbi7x3.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/usr/src/app/target/debug/deps" "-L" "/usr/src/app/target/debug/build/backtrace-sys-ea506c0ecb483b73/out" "-L" "/usr/src/app/target/debug/build/ring-282d4719a7ed499f/out" "-L" "/usr/src/app/target/debug/build/rust-crypto-3f0f4fdb7c23703f/out" "-L" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/usr/src/app/target/debug/deps/librpassword-db2b4ea6a09859da.rlib" "/usr/src/app/target/debug/deps/liboctobot-1b690e00f50d29af.rlib" "/usr/src/app/target/debug/deps/libtokio_rustls-d1beaecc6cc8ee21.rlib" "/usr/src/app/target/debug/deps/librustls-1abd8845347fbfed.rlib" "/usr/src/app/target/debug/deps/libsct-4ca3c502fbf17398.rlib" "/usr/src/app/target/debug/deps/libwebpki-4153261d02a72f94.rlib" "/usr/src/app/target/debug/deps/libjsonwebtoken-3fcd3c175cc923a9.rlib" "/usr/src/app/target/debug/deps/libchrono-611aa96179d17ebc.rlib" "/usr/src/app/target/debug/deps/libnum_integer-0f0be27910b61e93.rlib" "/usr/src/app/target/debug/deps/libnum_traits-de8e4d932392db56.rlib" "/usr/src/app/target/debug/deps/libbase64-090d1174b32af6e3.rlib" "/usr/src/app/target/debug/deps/libsafemem-167e44e982d5a64f.rlib" "/usr/src/app/target/debug/deps/libopenldap-25055fccdd77c937.rlib" "/usr/src/app/target/debug/deps/libreqwest-b358f27bcb2208f6.rlib" "/usr/src/app/target/debug/deps/libuuid-99eaf6a4bb37cc05.rlib" "/usr/src/app/target/debug/deps/libserde_urlencoded-a8cf096818683eee.rlib" "/usr/src/app/target/debug/deps/libdtoa-8f557dac8050bc69.rlib" "/usr/src/app/target/debug/deps/libserde_json-64783692140f9281.rlib" "/usr/src/app/target/debug/deps/libryu-380961f19cdf4a45.rlib" "/usr/src/app/target/debug/deps/libmime_guess-1c873ac810354db4.rlib" "/usr/src/app/target/debug/deps/libphf-73d61889d7496de0.rlib" "/usr/src/app/target/debug/deps/libphf_shared-740e150bff3f939e.rlib" "/usr/src/app/target/debug/deps/libunicase-e9174cdcef9b616d.rlib" "/usr/src/app/target/debug/deps/libsiphasher-465dbbc988712d47.rlib" "/usr/src/app/target/debug/deps/libmime-6003fd5873a846c7.rlib" "/usr/src/app/target/debug/deps/libunicase-170da0b61ac3531e.rlib" "/usr/src/app/target/debug/deps/libflate2-82025cbbb1e168cb.rlib" "/usr/src/app/target/debug/deps/libminiz_oxide_c_api-bbd837d517e01b62.rlib" "/usr/src/app/target/debug/deps/libminiz_oxide-056f47256effd964.rlib" "/usr/src/app/target/debug/deps/libadler32-f080593a2d17ab9a.rlib" "/usr/src/app/target/debug/deps/libcrc-5857b937db159a93.rlib" "/usr/src/app/target/debug/deps/libcrc32fast-b0a1edf6f658a284.rlib" "/usr/src/app/target/debug/deps/libhyper_tls-03fad2f1bcbbf0f4.rlib" "/usr/src/app/target/debug/deps/libnative_tls-9ed6c816bf8b7657.rlib" "/usr/src/app/target/debug/deps/libopenssl_probe-737eaa0fa0033a5f.rlib" "/usr/src/app/target/debug/deps/libopenssl-90c658a9a798f548.rlib" "/usr/src/app/target/debug/deps/libopenssl_sys-bdbaecc6bde0e66d.rlib" "/usr/src/app/target/debug/deps/libforeign_types-ec6ff16a564295ee.rlib" "/usr/src/app/target/debug/deps/libforeign_types_shared-7c96e2f113846ce7.rlib" "/usr/src/app/target/debug/deps/libhyper-54b4694647d74307.rlib" "/usr/src/app/target/debug/deps/libwant-b748df49560153b9.rlib" "/usr/src/app/target/debug/deps/libtry_lock-5f1ed79c2d0214f4.rlib" "/usr/src/app/target/debug/deps/libtokio-1c4e8873e7dee72b.rlib" "/usr/src/app/target/debug/deps/libtokio_trace_core-24a2896b9c0f9e45.rlib" "/usr/src/app/target/debug/deps/libtokio_uds-3ea9167e111dbba2.rlib" "/usr/src/app/target/debug/deps/libmio_uds-daab6a37a8f458c3.rlib" "/usr/src/app/target/debug/deps/libtokio_udp-1bc11f5b8b5b37c4.rlib" "/usr/src/app/target/debug/deps/libtokio_timer-9d7e544ab3732597.rlib" "/usr/src/app/target/debug/deps/libtokio_tcp-b15da060c857b440.rlib" "/usr/src/app/target/debug/deps/libtokio_reactor-d741bc11b80b47f5.rlib" "/usr/src/app/target/debug/deps/libtokio_sync-83c5cda7725a2c74.rlib" "/usr/src/app/target/debug/deps/libparking_lot-ec1dd3e54b1264c9.rlib" "/usr/src/app/target/debug/deps/libparking_lot_core-0fbcc3b5a92f4a7e.rlib" "/usr/src/app/target/debug/deps/liblock_api-e1e38b068dbf4714.rlib" "/usr/src/app/target/debug/deps/libowning_ref-89c848f04dc5b899.rlib" "/usr/src/app/target/debug/deps/libstable_deref_trait-164fe8ec5e782f93.rlib" "/usr/src/app/target/debug/deps/libtokio_fs-af0c37cec7effc47.rlib" "/usr/src/app/target/debug/deps/libtokio_threadpool-70c8d5c9a259ac8a.rlib" "/usr/src/app/target/debug/deps/librand-ad95c1e1972cb2a2.rlib" "/usr/src/app/target/debug/deps/librand_xorshift-39ff54e85ecea627.rlib" "/usr/src/app/target/debug/deps/librand_pcg-2240bde706cdbf07.rlib" "/usr/src/app/target/debug/deps/librand_hc-6684657266b57e47.rlib" "/usr/src/app/target/debug/deps/librand_chacha-740a118732eb8d00.rlib" "/usr/src/app/target/debug/deps/librand_isaac-df40fd426b2007f4.rlib" "/usr/src/app/target/debug/deps/librand_core-abbd1175bf08781c.rlib" "/usr/src/app/target/debug/deps/librand_os-7405437f476875d8.rlib" "/usr/src/app/target/debug/deps/librand_jitter-e7bec4e4163c2796.rlib" "/usr/src/app/target/debug/deps/librand_core-e78d0c37f81639ae.rlib" "/usr/src/app/target/debug/deps/libcrossbeam_queue-9c8d825b3cccfba5.rlib" "/usr/src/app/target/debug/deps/libcrossbeam_deque-f314112facacc1d6.rlib" "/usr/src/app/target/debug/deps/libcrossbeam_epoch-56f066db6877dab4.rlib" "/usr/src/app/target/debug/deps/libscopeguard-b8bc80607c5cd4c0.rlib" "/usr/src/app/target/debug/deps/libmemoffset-89962ea93857544e.rlib" "/usr/src/app/target/debug/deps/libarrayvec-461b454249e1827c.rlib" "/usr/src/app/target/debug/deps/libnodrop-75f98521131d35db.rlib" "/usr/src/app/target/debug/deps/libtokio_current_thread-5e2c1f9f23891632.rlib" "/usr/src/app/target/debug/deps/libtokio_executor-2a738b112b02369c.rlib" "/usr/src/app/target/debug/deps/libcrossbeam_utils-e684ca3d7dac4717.rlib" "/usr/src/app/target/debug/deps/libtokio_codec-21741d5bb7b250b3.rlib" "/usr/src/app/target/debug/deps/libmio-5925bbdbfc8cf088.rlib" "/usr/src/app/target/debug/deps/liblazycell-eb4403d25e372747.rlib" "/usr/src/app/target/debug/deps/libnet2-f0a9284a62429d76.rlib" "/usr/src/app/target/debug/deps/libhttparse-439c701aec052076.rlib" "/usr/src/app/target/debug/deps/libh2-e54858bf11fc7f14.rlib" "/usr/src/app/target/debug/deps/libindexmap-aab4fd314b4d4c22.rlib" "/usr/src/app/target/debug/deps/libstring-5851f5fdb5eac619.rlib" "/usr/src/app/target/debug/deps/libslab-5ea91c94d3974c1f.rlib" "/usr/src/app/target/debug/deps/libtokio_io-20ac931ce44c30c8.rlib" "/usr/src/app/target/debug/deps/libfutures_cpupool-4b569d9734a3ddff.rlib" "/usr/src/app/target/debug/deps/libnum_cpus-92791a427d4c9cba.rlib" "/usr/src/app/target/debug/deps/libhttp-90c8eeb0a1b20af5.rlib" "/usr/src/app/target/debug/deps/libitoa-e69d746cf1403762.rlib" "/usr/src/app/target/debug/deps/libfnv-303abd85c763d7e3.rlib" "/usr/src/app/target/debug/deps/libfutures-a66ff0ab48c7118c.rlib" "/usr/src/app/target/debug/deps/libbytes-4336f006b12be1b5.rlib" "/usr/src/app/target/debug/deps/libiovec-cd33e778f2d02269.rlib" "/usr/src/app/target/debug/deps/libbase64-0dc17b208229220e.rlib" "/usr/src/app/target/debug/deps/libbyteorder-235de35dad194112.rlib" "/usr/src/app/target/debug/deps/liburl-7e8102c2249657da.rlib" "/usr/src/app/target/debug/deps/libpercent_encoding-2cf0c3b07360ed5c.rlib" "/usr/src/app/target/debug/deps/libidna-bb1b05da9a420839.rlib" "/usr/src/app/target/debug/deps/libunicode_normalization-dad32f9d02ead919.rlib" "/usr/src/app/target/debug/deps/libsmallvec-ab1d05c1b45972a0.rlib" "/usr/src/app/target/debug/deps/libunicode_bidi-a143b425be023ab1.rlib" "/usr/src/app/target/debug/deps/libmatches-b1903b662ca90c7e.rlib" "/usr/src/app/target/debug/deps/libunidiff-422edca6d0820f3e.rlib" "/usr/src/app/target/debug/deps/libencoding_rs-ddaae043a26f4010.rlib" "/usr/src/app/target/debug/deps/libregex-f592e94b12c6c204.rlib" "/usr/src/app/target/debug/deps/libutf8_ranges-fc059ea282902d70.rlib" "/usr/src/app/target/debug/deps/libregex_syntax-b3086920b98a4180.rlib" "/usr/src/app/target/debug/deps/libucd_util-4dec9ecd656bfe7c.rlib" "/usr/src/app/target/debug/deps/libthread_local-5a78408fb9811a5c.rlib" "/usr/src/app/target/debug/deps/libaho_corasick-e4ed35ddfe7dd401.rlib" "/usr/src/app/target/debug/deps/librusqlite-fad6fbb92bececd8.rlib" "/usr/src/app/target/debug/deps/libmemchr-d621f830b37fbb26.rlib" "/usr/src/app/target/debug/deps/libtime-429ce1bd811ee33a.rlib" "/usr/src/app/target/debug/deps/libfallible_streaming_iterator-b26d868ad3395c8e.rlib" "/usr/src/app/target/debug/deps/libfallible_iterator-154833e26b6ffde8.rlib" "/usr/src/app/target/debug/deps/liblru_cache-52fd28c098422325.rlib" "/usr/src/app/target/debug/deps/liblinked_hash_map-851580ce4df3a3a7.rlib" "/usr/src/app/target/debug/deps/liblibsqlite3_sys-0743caabb566237f.rlib" "/usr/src/app/target/debug/deps/libbitflags-249d56a0cdef692c.rlib" "/usr/src/app/target/debug/deps/liblog-7581c05268768fe3.rlib" "/usr/src/app/target/debug/deps/libtoml-507253e129955117.rlib" "/usr/src/app/target/debug/deps/libserde-092a8ddf821a6c37.rlib" "/usr/src/app/target/debug/deps/libfailure-571056644aada951.rlib" "/usr/src/app/target/debug/deps/libbacktrace-c94dd9d64e13143a.rlib" "/usr/src/app/target/debug/deps/libbacktrace_sys-6982afdf8d0c2f9a.rlib" "/usr/src/app/target/debug/deps/librustc_demangle-98fef6bb2b4f6ea4.rlib" "/usr/src/app/target/debug/deps/libcfg_if-55324d9a6283ffd6.rlib" "/usr/src/app/target/debug/deps/librustc_serialize-874d4000f23a33a0.rlib" "/usr/src/app/target/debug/deps/libring-0ed8a531e02fa47f.rlib" "/usr/src/app/target/debug/deps/libspin-9a9e511eda1ee355.rlib" "/usr/src/app/target/debug/deps/liblazy_static-5c808ee881cba7b0.rlib" "/usr/src/app/target/debug/deps/libuntrusted-d546845b7c09bba0.rlib" "/usr/src/app/target/debug/deps/liblibc-b560bbf34f5b2d4f.rlib" "-Wl,--start-group" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-fae576517123aa4e.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-a72070139220275e.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-093434daf7d99801.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-24daf38551b7a03b.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-36d70d9746402ce9.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-7acfc843240167a8.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-eb2e0f5fe057b8b3.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-75e9ddd83715a368.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-af51e7c6fd7d1248.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-27f2a77b2995d98c.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-ad10152c26711a1e.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-291bd2456cb6c9fe.rlib" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-fc6e9071307a3016.rlib" "-Wl,--end-group" "/root/.rustup/toolchains/1.39.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-ebe4001ded7f33e7.rlib" "-Wl,-Bdynamic" "-llber" "-lldap_r" "-lssl" "-lcrypto" "-lsqlite3" "-lutil" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: collect2: fatal error: ld terminated with signal 9 [Killed]
          compilation terminated.

build-fail.log

Octobot marks chore PR as "Skipped JIRA check" when JIRA is preset

If a chore PR has a JIRA present in one of the commits, it can be marked as passing the JIRA check. This would give a better experience to devs, showing that the JIRA has been processed by octobot and JIRAs will be updated correctly

If a chore PR does not have a JIRA present in one of the commits, the current behavior is fine, although it could be reworded as, for example, "Ignored JIRA check".

"Pull request submitted for review" Slack notifications omit unresolved names

If a PR is submitted for review to users (or groups) that can't be mapped to Slack usernames, the Slack channel notifications omit those names entirely instead of falling back to the GitHub user/group name. Other notifications, like PR comments or approvals, show the GitHub name.

e.g., if none of the GitHub names can be mapped to Slack usernames, the notification is just:

Pull Request submitted for review to ย (repository/name)

vs.

Pull Request submitted for review to johnsmith (repository/name)

Add option to configure jira transition to project config

Right now there is a octobot has a project setting to enable jira transitions, but once its enable, you are required to add "Fixes JIRA_ID" to get it to actually tranistion the ticket.

For protect, we want to just automatically tranistion PR's ticket, and its awkward to add that "fixes x" bit, since all the PR's have the format "Prot-1234 fixes something..."

It would be nice if we had the ability to either specify the regex that is used to pick up these transitions, or just have a flag to "always transition" vs "require "Fixed" prefex"

octobot does not backport an empty commit

today I had a need to backport an empty commit to two release branches to trigger builds

I made an empty commit to my develop branch, and added my backport-3.2 and backport-3.1 labels like normal

it appears that octobot didn't cherry-pick that merged commit, and it should maybe add the --allow-empty flag to the cherry-pick command when creating the backport PRs

Support concurrent access to admin web UI

The admin web UI is not very friendly to multiple concurrent users. Easy to have people stepping on each others toes. Would be better to add/remove entries one at a time rather than doing a wholesale replace each time.

Add an explicit setting for avoiding slack direct messages

Currently, users achieve peace and quiet from slack direct messages by entering in their slack user as "DO NOT DISTURB". This has the unfortunate consequence of making slack comments into the reviews channel look funny, as in "DO NOT DISTURB commented, saying..."

We should add an explicit flag to not direct messages

Add mechanism for moving state to 'verified' on merge.

Certain workflows call for doing additional manual testing while a change is in PR, before that PR can be merged.
In these workflows, it is preferable to immediately move a jira to state "verified", once the PR is merged.

A user should be able to write a comment or add a label that causes octobot to verify tickets that would normally be moved to resolved state when the PR is merged.

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.