Giter Club home page Giter Club logo

apps.github22's Introduction

GitHub Integration for Rocket.Chat

Banner (1)

Untitled (70 ร— 36in) (70 ร— 20in) (1)

The GitHub Rocket.Chat App provides a seamless integration between GitHub and Rocket.Chat and improves collaboration between developers. The application allows users to search and share Issues and Pull Request, Subscribe to Repository Events, create New Issues, Review and Merge Pull Requests and do much more right from Rocket.Chat.

๐Ÿš€ Features ๐Ÿš€

  • Quick and Easy Setup
  • Login to GitHub with one click using built-in OAth2 mechanism
  • Subscribe to Repository Events and get notified about new issues, pull requests, code pushes etc
  • Review and Merge Pull Requests right from Rocket.Chat Channels
  • Create new Issues from Rocket.Chat
  • Search Issues and Pull Request using extensive filters and share them on Rocket.Chat

๐Ÿ’ก Usage ๐Ÿ’ก

Open Main Modal for Quick Access to Different Features

To open the main modal and access various features, use the command: /github.

Main Modal Features:

  • Quick access to GitHub search
  • Create new issues
  • Manage repository subscriptions
  • Assign issues to users

The app can be accessed with any of the following slash commands: /gh or /github.

Command List

  • See Helper Message / Command List โ†’ /github help
  • Login to GitHub โ†’ /github login
  • Logout from GitHub โ†’ /github logout
  • View your GitHub Profile and Issues โ†’ /github me
  • View/Add/Delete/Update Repository Subscriptions โ†’ /github subscribe
  • Subscribe to all repository events โ†’ /github Username/RepositoryName subscribe
  • Unsubscribe to all repository events โ†’ /github Username/RepositoryName unsubscribe
  • Add New Issues to GitHub Repository โ†’ /github issue
  • Search Issues and Pull Request โ†’ /github search
  • Assign and Share GitHub issues โ†’ /github issues
  • Review a Pull Request โ†’ /github Username/RepositoryName pulls pullNumber
  • See Interactive Button interface to fetch repository data โ†’ /github Username/RepositoryName
  • Get details of a Repository โ†’ /github Username/RepositoryName repo
  • Get Issues of a Repository โ†’ /github Username/RepositoryName issues
  • Get Contributors of a Repository โ†’ /github Username/RepositoryName contributors
  • Get Recent Pull Request of a Repository โ†’ /github Username/RepositoryName pulls
  • Add a new repository for pull request review reminders -> /github reminder create
  • Get a list of repositories for which you've set up pull request review reminders -> /github reminder list

๐Ÿš€ Contributing ๐Ÿš€

๐Ÿ–ฅ๏ธ Quick Setup ๐Ÿ–ฅ๏ธ

Gitpod ๐ŸŠ

Start developing and make changes to your code via a single click Anytime-Anywhere!

Open in Gitpod

Using Thrust for quickly setup your Rocket.Chat workspace & hot-reload for develping and deploying Github App, no need to worry about setting up any Rocket.Chat server before hand.

Manual Setup ๐Ÿณ

  1. Rocket.Chat Apps Run on a Rocket.Chat server. If you dont have a server setup, please go through this setup and setup a development environment and setup you server
  2. To start with development on Rocket.Chat Apps, you need to install the Rocket.Chat Apps Engline CLI. Enter the following commands :
  3.   npm install -g @rocket.chat/apps-cli
    

    Check if the CLI has been installed

    rc-apps -v
    # @rocket.chat/apps-cli/1.4.0 darwin-x64 node-v10.15.3
    
  4. Clone the GitHub Repository
  5.    git clone https://github.com/RocketChat/Apps.Github22
    
  6. Enter the App.Github22 directory and install dependecies
  7.   cd Apps.Github22
      cd github
      npm install
    
  8. In order to install Rocket.Chat Apps on your development server, the server must be in development mode. Enable Apps development mode by navigating to Administration > General > Apps and click on the True radio button over the Enable development mode..
  9. Build and Upload your application by running the following inside the apps directory (/App.Github22/github)
  10. rc-apps deploy --url http://localhost:3000 --username <username> --password <password>
    

    Where: http://localhost:3000 is your local server URL (if you are running in another port, change the 3000 to the appropriate port). username is the username of your admin user. password is the password of your admin user. If you want to update the app deployed in your Rocket.Chat instance after making changes to it, you can run:

    rc-apps deploy --url http://localhost:3000 --username user_username --password user_password --update
    

The Application is now installed on the server. You can verify this by checking the installed applications from the administration panel. Enter /github or /github help in the message input box of any channel on the server to know about different features and how to trigger them using different slash commands.

๐Ÿ–ฅ๏ธ Application Setup ๐Ÿ–ฅ๏ธ

The GitHub App uses the GitHub OAth2 and you must setup a GitHub OAuth App to unlock the full potential of the GitHub App.

  1. The First Step is to setup a GitHub Oauth2 App. To setup the GitHub Oauth App Follow These Steps
  2. The callback URL must be set to the url of your server as shown below. (Note : There is an issue of trailing slashes with RocketChat OathClient, so incase the authentication does not work, go to Administration Panel and try removing the trailing '/' at the end of the hosted url. This issue might not occur as it will be fixed in the future.)
    OAuth Example
  3. Once the GitHub OAuth app is setup, open the GitHub Application Settings and enter the GitHub App OAuth Client Id and Client Secret over here.
    OAuth Setting Example

The users can login to GitHub by entering the slash command /github login and then clicking on the Login button.

Users are logged out after a week but the users can also logout at any time by entering /github logout.

apps.github22's People

Contributors

ayush3160 avatar chinma-yyy avatar henit-chobisa avatar jeffreythecoder avatar kanishbodhwani avatar nabhag8848 avatar prince-mendiratta avatar ronlek avatar samad-yar-khan avatar sing-li avatar vipindevelops 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

apps.github22's Issues

Spelling Errors

Description:

  • During the development of the app, there were some spelling errors which went unnoticed. These include spelling errors like Subsciption, Reqeust etc.
  • There should ideally be no spelling errors in the app.

[BUG (style) ] remove unwanted await in sync operation and add required await

Description:

  • There are lot of places where there is await within the SYNC operation. specially when getting the userInfo, interactionData from context and creating the messageBuilder (textSender) which needs to be removed as await is only for async operation/ function-calls.
  • Similarly there are places where await are missing in async calls which needs to fix.

Steps to reproduce:

  1. look into file changes

Expected behavior:

  • remove await from sync and add missing await in async operation.

GitHub App Main Modal

Why do we need this ?

As a GitHub App developer

I need to:
Add a GitHub Home Modal which is triggered by /gh or /github command and has buttons which can redirect users to different features/modals of the app
So That:
Users do not have to memorize the slash commands for all the features

Acceptance Criteria

  • Add GitHub Home Modal which is triggered by /github or /gh command.
  • GitHub Home Modal should have action buttons to trigger all the different features/modals in the app.
  • Conditional Rendering of action buttons which require authentication,

Further Comments / References

image

Improve profile share message

Why do we need this ?

The current message blocks in the profile share modal consume lot of unwanted space which results in a bad UI experience. So modify to make it minimalistic.

As a GitHub App developer

I need to:

So That:

Acceptance Criteria

  • Improve the profile share message

Further Comments / References

Adding `/gh` as a short slash command for `/github`

Why do we need this ?

  • When I was testing the app, writing /github again n again was kinda annoying.
  • GitHub itself uses gh for GitHub CLI
  • People who are familiar with github cli, would really appreciate, as it is very handy and requires less time to get used to.

As a GitHub App developer

I need to:

  • Break the Github Slash Command into a separate command utility.
  • Creating an additional Slash Command named gh.

So That:

  • The main Github Slash Command and the gh Slash Command share the same command utility service.
  • Sharing the same, both work in the same way also, it gives us an ability to add extra features just in command utility which will be directly implemented in both the slash commands.

Acceptance Criteria

  • Breaking Github Slash Command into several command utility methods, such as handleSingularParams, handleDualParams, parsed by main method, resolveCommand.
  • Creating gh Slash Command class with typically implements Slash Command interface.
  • Attaching the main command Utility class with the main slash command classes

Bot does not return repo details on a private repo

Description:

The app installed and I logged in but when using the bot, it doesn't seem to return any details

Steps to reproduce:

Install and add OAuth
Login to GitHub
run DarinDev1000/southwest-flight-list

Expected behavior:

Details to return like a public repo

Actual behavior:

Screen Shot 2022-08-18 at 5 52 19 PM

Rocket.Chat Server Setup Information:

  • Version of Rocket.Chat Server: 5/0/3
  • Operating System: ubuntu 22.04
  • Deployment Method: docker

Rocket.Chat Client Setup Information

  • Desktop App Version:
  • Browser Version:
  • Operating System:
  • Android App Version:
  • IOS Application Version:

Additional context

[BUG] Interactive Buttons Giving Unexpected Results When Provided Repository in Command doesn't exist

Description:

  • By executing /github Username/RepositoryName and if the Provided Username/RepositoryName doesn't exist. Interacting with Actions Buttons giving unexpected outputs. Specially when interacting with Overview Action Button giving undefined in several places more precisely in following:

     1. Username/Repository
     2. Number of Stars
     3. Number of Issues
     4. Number of Forks
     5. Description
    
  • User might make Typo when using commands and this would lead to above unexpected result.

For Example:

  • By executing /github Rocket.Chat/Rocket.Chat and then interacting with the Overview Button Specially will lead to problem specified above as there is no Username/Org matching Rocket.Chat.

Steps to reproduce:

  1. Run command /github Username/RepositoryName by having Fake username/repository which doesn't exist in Github.
  2. Interact with Action Buttons Specially Overview.
  3. check the undefined results.

Expected behavior:

  • What we actually can do, Check if the repository exist before showing the action buttons. Only show the Action Buttons if the repository exists and now instead of sending Hey {username}! via bot everytime before we show the Buttons.Now, if the repository doesn't exist we will avoid showing ActionButtons and Send the message Hey { username } ! Provided username and/or repository doesn't exist . and in case of everything goes fine meaning repository exist will show the Buttons as well as the text Hey {username}!.

Screenshot from 2022-12-05 21-01-09

Actual behavior:

  • As discussed in the Description section, you can see the the undefined results at several places.

Screenshot from 2022-12-04 15-12-39

Note:

  • Willing to work on the issue.

[Feature] Create New GitHub Issues from Rocket.Chat

Why do we need this ?

As a GitHub App developer

I need to: Create a new-issue feature which calls the GitHub issues API

So That: people can have discussions on recurring issues or feature and raise them directly from Rocket.Chat Channels without switching to GitHub. This can be a time saver.

Acceptance Criteria

  • Add slash command to open a new issues modal with input fields required to create an issue
  • Send Authenticated request to GitHub API to create a new issue
  • Handle edge cases with non authenticated developers
  • Repository owners can Add Assignees and Labels to the issue.

[Feature] Create New GitHub Issues from Rocket.Chat

Why do we need this ?

As a GitHub App developer

I need to: Create a new-issue feature which calls the GitHub issues API

So That: people can have discussions on recurring issues or feature and raise them directly from Rocket.Chat Channels without switching to GitHub. This can be a time saver.

Acceptance Criteria

  • Add slash command to open a new issues modal with input fields required to create an issue
  • Send Authenticated request to GitHub API to create a new issue
  • Handle edge cases with non authenticated developers
  • Repository owners can Add Assignees and Labels to the issue.

Expand Pull Request Links

Why do we need this ?

As a GitHub App developer

I need to:

Add a listener for channels messages and extend pull request links and extend the message with ActionBlock with buttons

So That:

Users can review, merge and comment on PRs right from Rocket.Chat

Acceptance Criteria

  • Add Listener for channel messages for GitHub Pull Request links
  • Extend messages containing PR link with action blocks so that users to perform actions from the message itself.

Further Comments / References

Implement Auth using GitHub API and RC App scheduler

As a GitHub app developer
I Need to: make use of GitHub Auth API and RC Apps scheduler
So That: I can get an access token for auth-based GitHub actions.

Acceptance Criteria

  • Design user-flow for fetching auth token using GitHub API (optionally use Figma/excalidraw for this).
  • Have the user hit the GitHub API URL with expiry time set.
  • Store the access token received into the persistent storage.
  • Start a scheduler with interval = TTL for the expiry token to remove it from the persistent storage.
  • Add documentation to the wiki for the entire auth mechanism and user-flow.

Action Button for Helper message

Why do we need this ?

As a GitHub App developer

I need to: Execute various app commands frequently

So That: Add an button attachment to the helper message which executes some basic commands for the user and also create a command to show buttons for executing commands

Acceptance Criteria

  • Add Message action buttons to helper message
  • Create a /github action command which will show all buttons for the features provided by the app

Further Comments / References

Screencast.from.16-03-23.08.23.51.PM.IST.webm

[BUG] Description Under Overview Action Showing `null` when Repo has No Description

Description:

  • By executing /github Username/RepositoryName for the Repository having No description and then interacting with overview ActionButton we get Overview of the provided repo. Now there might be the case that description of the repo is not provided by the owner in such cases description field from Github API returns null and thus description field in RocketChat renders as null value in text.

  • Now, Instead of rendering null, we can provide the description field as No description provided.

Steps to reproduce:

  1. Run command /github Username/RepositoryName for the repository having no description.
  2. Tap Overview Button
  3. Look at the description field showing null

Expected behavior:

  • If the description is not there in repository meaning is equal to type null, provide the text: No description provided
    Expected Description field

Actual behavior:

  • The description field as you can see are null and there are redundant backticks in the text which also needs to be removed.
    Description Field Null
    Null Field

Additional context

  • Redundant Backticks as mentioned and you can see in above Screenshot also needs to be removed.

Note:

  • Willing to work on the issue.

[CHORE] Add License

Description

  • Add an appropriate OpenSource License to let know Rocket.Chat Apps Developers they can use the Code. As we were planning to have the github-readme-stat-project on our cyclic account, we would never get an idea or privileged to use the project without MIT License. Thus we need this.

Pull Request Review : Merge And Comment on Pull Requests

Why do we need this ?

As a GitHub App developer

I need to: Integrate the GitHub Pulls and GitHub Comments APIs with pullDetailsModal and introduce addPullCommentModal

So That: Rocket.Chat users can Merge PRs and comments on PRs from Rocket.Chat Channels/Rooms

Acceptance Criteria

  • Enable Functionality to merge PRs
  • Handle user permissions for the repository
  • Handle cases for non authorized users
  • Enable users to comment to PRs
  • Add Documentation and User Flow to Wiki

[BUG] Creating a new Gitpod workspace throws fatal dependency error

Description:

Whenever you create a new Gitpod instance workspace using the Gitpod button on the README or clone the app locally and install the app on local server, it throws a dependency error.
image

Steps to reproduce:

Gitpod

  1. Go to https://github.com/RocketChat/Apps.Github22#-gitpod--
  2. Click on the "Open in Gitpod" button.
  3. Wait as the workspace initialises and the docker containers fire up.
  4. Once the dependencies are installed and the workflow tries to install the app on the server, it throws a dependency error and is unable to proceed.
  5. This error is fatal as this blocks the app from being installed on the server.

Locally

  1. Clone the repo
  2. Run rpm install.
  3. Start up the local server.
  4. Try to install the app using rc-apps deploy --url http://localhost:3000 --username <username> --password <password>.
  5. Notice that the dependency error is thrown.

Expected behavior:

App is installed successfully.

Actual behavior:

A dependency error is shown that prevents the app from being installed.

Rocket.Chat Server Setup Information:

  • Version of Rocket.Chat Server: 6.0.1
  • Operating System: MacOS 13.2
  • Deployment Method: Manual Hosting, docker

Additional context

This bug can be fixed by adding @rocket.chat/ui-kit as a dev dependency in the package.json. If you can confirm this is indeed a valid issue, I'll send in a PR with the require changes.

cc @samad-yar-khan

Deprecated Apps-engine Version

Description:

The App-Engine version in the package.json is old and does not have the required OAuth2 modules required by the MarketPlace.

Steps to reproduce:

  • Compile the app using rc-apps package --no-compile.
  • Push it to market place for testing and submission.

Expected behavior:

  • App Should compile successfully.

Actual behavior:

  • Apps does not compile and returns error stating that the OAuth2 modules are not found.

Additional context

  • We were publishing the app on the market place but the compiling tests are failing due to the old App-engine version which do not have the supporting OAuth2 modules.

[BUG] helperMessage visible to all the users in the room

Description:

  • When running /github help or whenever we are getting the helpermessage. it is being send as message instead of notify.As we know the Messages are visible to all the users in room but notifyUser is visible to only that user during the session.

Steps to reproduce:

  1. run /github help or run with params which doesn't exist.

Expected behavior:

  • Should to notifyUser instead of Message

Actual behavior:

  • Currently sending as Message and visible to all.

Github login does not work

Description:

Steps to reproduce:

  1. Write the command /github login in any chat window

Expected behavior:

It should login to my github account

Actual behavior:

Its redirecting to a 404 not found page
error

[BUG] subscribeall command isn't providing loginInfo to non authorised user

Description:

  • When non authorised user running /github username/repo subscribe it isn't providing the loginInfo and not letting user know about the same.

Steps to reproduce:

  1. Run /github username/repo subscribe when not loggedIn

Expected behavior:

  • should provide the loginInfo

Actual behavior:

  • isn't providing the login info

Fix contribution graph image from /github me command

Description:

When using the /github me command the user is prompted to share the contribution graph image but the contribution graph endpoint does not provide contribution graph image URL and hence the image block is always in loading state.

Steps to reproduce:

  1. Run the app locally
  2. Login through /github login
  3. Type /github me

Expected behavior:

Show user information with contribution graph image and

Actual behavior:

Contribution Graph image URL is not retrieved from the endpoint provided and the image is stuck in loading state

Document approach to extend UIKit to support ACE

As a GitHub app developer
I Need to: document initial approach to extend UIKit to support ACE editor
So That: I can highlight code syntax directly within the app.

Acceptance Criteria
Documentation with following sections:

  • Context: Explain context of the problem.
  • Approaches Tried: Explain what approaches have been tried and tested.
  • Blockers: Any blockers in the way of implementing this and how they can be resolved.
  • Decision: What approach was chosen to be the solution.

[FEAT] Send Notification with `Login` ActionBlock When User Not logged In

Why do we need this ?

As a GitHub App developer

I need to:

  • Alter/Add Extra information to the Block Notification Send when user runs commands (list mentioned) which needs authentication while not being loggedin.

Command List:

- View your GitHub Profile and Issues -> /github me
- View/Add/Delete/Update Repository Subscriptions -> /github subscribe
- Subscribe to all repository events -> /github Username/RepositoryName subscribe
- Unsubscribe to all repository events -> /github Username/RepositoryName unsubscribe
- Add New Issues to GitHub Repository -> /github issue
- Assign and Share Issues -> /github issues
  • So Currently when we run above command for eg for subscribing events we get Notification that Login to subscribe to repository events ! /github login but what we want is and will more helpful: We send Login ActionButton attaching to that same Block while having the Message You must be LoggedIn to subscribe repository events. Login to Github.

So That: We will save the key strokes for users to not run command /github login

Glimpses of what should look like:

LoginFeatExtend

Acceptance Criteria

  • Alter and Add to same Notify Block with LoginButtons for all commands mention

Further Comments / References

  • Also to Note we will have different messages the one that i mention was just for the subscribe event.
  • To note we also have ActionsButtons within Modal which needs authentications dont forget to look for same.

Additional comments

  • Apart from that we have one know bug (when writing this issue): When we run /github Username/RepositoryName subscribe without loggedin we ain't getting any message if we are not loggedIn. which has/ have been fixed #63. which currently provides the simple loginInfo make sure to change it when merging this.

[BUG] share profile with property filter sharing all properties after `share` pressed once

Description:

  • When running /github me we have the share profile button when sharing the profile for the second time with filter property (any number of property) its sharing whole profile instead of that only filter properties. For this we have planned to instead close the modal once the share button is clicked.

Steps to reproduce:

  1. run `/github me` and click share profile
  2. filter property and `press share` to chat button two times
  3. check the second response to channel.

Expected behavior:

  • Close the modal once its shared thus to reduce complexity and as user would never won't to share the profile for the second time in the same channel at a same time.

Actual behavior:

  • sharing the profile for the second time with filter property (any number of property) its sharing whole profile instead of that only filter properties.
    BugIssue

Synchronising Rocket Chat Emoji Reactions on Issues with Github Issues.

As a GitHub App developer

I need to:
When we execute gh issues RocketChat/Apps.Github22 {issue} it shows the issue associated, but when we react on the particular issue in Rocket Chat, the same reactions ( whichever are valid to github ) should also be updated in Github as well.

Example:
If I share an issue on Rocket.Chat with the help of rc's Github App, if someone react on the issue on rocket chat itself, all those reactions which are provided by Github (total 6 now) can be seen in Github as well and rest are ignored.
image
image

It can be seen that the clown emoji is not present in the github issues rest all rocket.chat reactions are synced with Github.

So That:
We can have a better judgement on the severity of an issue or maybe any other motivation associated with it and we can provide better issue handling to our clients, as giving reactions from chat is 100x faster than giving reactions from the github website.

[BUG] missing i18n for english causing the description of command with extra removable string

Description:

  • When running any command /github, it shows the description of the command with the id of an App in form apps-<appid>-DESCRIPTION and the cause of the same is we don't have provided any i18n string of any language. Thus we need the i18n translation for english language for the Description and Params of command (i18nDescription && i18nParamsExample) under gh and github command class.

Steps to reproduce:

  1. run `/github`
  2. check the output with the description

Expected behavior:

  • Provide i18n for both, by creating folder i18n and naming the file en.json to resolve the issue

Actual behavior:

Screenshot from 2023-03-20 13-29-20

Markdown render while listing all issues of repository

Description:

When sharing issues /github username/reponame issues using this command the Issues titles are hyperlinked using markdown. But if the title contains [BUG] or any other square bracket including title then it renders it as plain text

Steps to reproduce:

  1. Run /github username/reponame issues

For example take this GitHub app repository only

Expected behavior:

Title to render with issue hyperlinked

Actual behavior:

image

Rocket.Chat Server Setup Information:

  • Version of Rocket.Chat Server:
  • Operating System:
  • Deployment Method:

Rocket.Chat Client Setup Information

  • Desktop App Version:
  • Browser Version:
  • Operating System:
  • Android App Version:
  • IOS Application Version:

Additional context

Displaying Issues in Contextual Bar Provided Better UX than Modal View

Why do we need this ?

We have a button in UserProfileView, which tends to open user's issues, with it's states of mentioned / created and open / close, but the supporting SurfaceView that lists the issues is a ModalView which is not the best solution to display list like data, hence I request to switch to Contextual Bar View, which doesn't block user's activity while working on any chat and keeps the issues handy in contextual bar.

As a GitHub App developer
I need to switch the UserIssuesModal from ModalViewParam to ContextualBarViewParam as UserIssuesContextualBar and change all the update actions from modal to contextual bar. Along with that, also need to update the view that it supports leading to IssuesViewModal and also IssueAssignModal

Acceptance Criteria

  • Replace UserIssuesModal with UserIssuesContextualBar under a new Directory with Contextual Bars.
  • Update ContextualBar Actions that updated the Current Modal to updating the current contextual bar.

Hooks integration to fetch issues and PRs.

As a GitHub app developer
I Need to: create webhooks for GitHub API
So That: I can fetch issues and PRs directly within Rocket.Chat

Acceptance Criteria

  • Document the approach taken with diagrams for user flow.

Slash command not working

Description:

The slash command /github issues with "S" when sent, nothing happens

Steps to reproduce:

  • Install the app
  • Authenticate
  • run /github issues

Expected behavior:

SOmething

Actual behavior:

Nothing, just gives list of commands

Uploading 13.02.2023_18.12.37_REC.mp4โ€ฆ

Rocket.Chat Server Setup Information

Latest atm

[Feature] Issue Assignee Feature

Why do we need this ?

As a GitHub App developer

I need to: Map the Rocket.Chat user names to GitHub user names and integrate the issues assigning API and enhance the features provided by the ToDo App

So That: Users can assign and keep track of issues and tasks status from Rocket.Chat channels . This will boost the productivity of developer teams using Rocket.Chat apps and enhance collaboration between developers.

Acceptance Criteria

  • Add Issue Assigning and Issue Updating functionality to the existing GitHubSDK
  • Only users with push rights to the repository should see the Assign button.
  • Add Functionality to share multiple issues in the channel.
  • Add Checks for authentication before adding and assigning tasks.
  • Add documentation and useflow for this feature in the GitHub wiki.

Further Comments / References

Profile share modal not closing on submit

Description:

When the user uses /github me to show the profile and moves to the response view modal where the user selects the params to share the modal does not close and the user may get confused if it is working or not and may spam the button resulting in the bombardment of message blocks.

Steps to reproduce:

  1. Use /github me
  2. Click on share profile
  3. Chose params and click share to chat

Expected behavior:

The details should be shared to the channel and the modal should close

Actual behavior:

The details are share to the channel and the modal is not closing.

Rocket.Chat Server Setup Information:

  • Version of Rocket.Chat Server:
  • Operating System:
  • Deployment Method:

Rocket.Chat Client Setup Information

  • Desktop App Version:
  • Browser Version:
  • Operating System:
  • Android App Version:
  • IOS Application Version:

Additional context

Expand Repository Links

Why do we need this ?

As a GitHub App developer

I need to:

Add a listener for channels messages and extend repository links and extend the message with ActionBlock with buttons

So That:

Users can star the repo, open a new issue or navigate to issues or pull requests

Acceptance Criteria

  • Add Listener for channel messages for GitHub Repository links
  • Extend messages containing repository link with action blocks so that users to perform mentioned actions from the message itself.

Further Comments / References

Add a permanent user feedback link to the settings page

Why do we need this ?

As a GitHub App developer

I need to:

  • See where to give feedback regarding the app

So That:

  • We can make it better overtime and resolve any bugs

Acceptance Criteria

  • Add a feedback section to the Apps settings page
  • Settings Page should redirect to our Github Issues Page

Further Comments / References

[BUG] : Emoji in the helper list

Description:

Emoji instead of indented number in the helper list.

Steps to reproduce:

  1. Login.
  2. Enter any channel.
  3. type /github in the input field.

Expected behavior:

Screenshot 2023-02-20 at 8 11 40 PM

Actual behavior:

Screenshot 2023-02-20 at 8 08 59 PM

Comment on Issues

Why do we need this ?

As a GitHub App developer

I need to:

Add new modals to view issue details, issue comments and to add new comments to issue

So That:

Users can perform all the tasks related to GitHub Issues right from Rocket.Chat

Acceptance Criteria

  • Make new modals to view issue details, issue comments and add new comments to an issue
  • The user interaction should be similar to pull comments comments
  • Make a check for authenticated users before giving access to any of these modals

Further Comments / References

  • Pull Request Comments PR - PR 18

Contribute to Fuselage UIKit for input size block in modal.

As a GitHub app developer
I Need to: contribute to multi-line input block for modal in Fuselage and Apps Engine
So That: I can display formatted code within Rocket.Chat.

Acceptance Criteria

  • Propose new change to include size.
  • Raise PRs contributing to Fuselage and Apps-Engine with expected changes.

Slash command misbehaves when fully typed

Description:

When you manually type the /github <something> slash command without using the suggestion, when you press enter you get github appended to the command again.

Steps to reproduce:

  1. Install and configure the app
  2. In any channel, type for example the slash command /github me completely without taking any suggestion
  3. Press enter

Expected behavior:

Normal user info should show or whatever the command is meant for should show

Actual behavior:

You get github appended to the slash command

Rocket.Chat Server Setup Information:

  • Version of Rocket.Chat Server: 6.0.1
  • Operating System: Windows
  • Deployment Method: Docker on AWS

Rocket.Chat Client Setup Information

Desktop app on windows

Additional context

See the screen recording below. I used an onscreen keyboard so you can see everything completely.

Github.app.slash.command.error.mp4

[FEATURE-REQUEST] Create Issues from Messages with Action Buttons

Why do we need this ?

Many of the times, customers tend to share their queries directly in the chat, such as reporting a bug or something like a feature request, adding an action button in the list of actions beside a message that pops up a modal which helps in opening an issue can be a very good addition for a user convenience.

As a GitHub App developer

Add an action button that triggers the New Issue Modal, providing the message as a template to the modal.

Acceptance Criteria

  • Register the action button, in Command's Main Function.
  • Make Action Handler to the Button and check for auth.
  • Modify the New User Modal, for shared support for both SlashCommandContext and also with Action Button Context
  • Launch the Modal with message.text as data.template for the NewIssueModal

[Feature] GitHub Search integration enabling users to search for Issues and Pull Request

Why do we need this ?

As a GitHub App developer

I need to: Add a search feature which enables users to query issues and pull requests

So That: users can search for relevant Pull Requests and Issues right from Rocket.Chat and share them in the desired channel, enhancing the communication and collaboration between developers.

Acceptance Criteria

  • Enable user to trigger a search modal using /github search.
  • Enable user to enter search queries and fetch relevant results.
  • User Should be able to view and select the relevant search results in a another search view modal.
  • Users should be able to send selected search result in the desired room.
  • Add documentation to the wiki for the GitHub search mechanism and user-flow
  • Handle non authenticated users edge cases. (GitHub Search API requires OAuth Token)

Further Comments / Referances

  • GSoC Proposal mentioned the search result to be fetched directly in chat but viewing them in a modal and sending relevant results to the channels seems like a better user experience.
  • Wireframes for the Search Modal Mentioned in the Google Summer of Code Proposal :
    image

Introducing `Quick Gist` feature for sharing Gist through Rocket Chat

Why do we need this ?

Github Gist was an awesome feature introduced by Github for sharing code snippets quickly. It would be very convenient for the users to quickly share the most recent gist by a single command /gh gist 1.

Goals

  • Adding a Modal where a user can see his previous Gist in a order of their creation from latest -> Oldest.
  • Adding a a new DualParamCommand and a new TrippleParamCommand so that we can work around with two types of issues.
    • When the user don't know which gist to share, he can browse through all his previous Gist and send the desired one from them.
    • When the user quickly want to share the most recent or gist after that, he can use the gist followed by a number, which targets the gist according to the order of creation.

Acceptance Criteria

  • Creation of Gist Modal for displaying the existing gist created by the User.
  • Creation of DualParamCommand and a new TrippleParamCommand for executing gist feature.
  • Making IGist and IGistFile Interfaces for structuring the data according to the SDK.
  • Adding method for fetching Gist in GithubSDK.

Expand Code Links

Why do we need this ?

As a GitHub App developer

I need to:
Add a listener for room messages and extend GitHub Code links like - https://github.com/RocketChat/Apps.Github22/blob/main/github/definitions/githubIssueData.ts#L4-L9
So That:
Users can see the linked code segment ins the sent message.

Acceptance Criteria

  • Add listener for room messages which contain GitHub Code Segment link
  • Extend the message to contain the linked code.

Further Comments / References

Application Crashing on entering wrong pull request number

Description:

Application is crashing when entering wrong pull request number to view the Pull request Details modal. If a user is entering wrong pull request number or invalid pull request in the /github Username/RepositoryName pulls pullNumber command then the Rocket.Chat server is crashing.

Steps to reproduce:

  1. Enter the command /github Username/RepositoryName pulls pullNumber with some wrong PR number.
  2. Notice application is crashing

Expected behavior:

A invalid-message modal should open in case of any wrong input.

Additional context

Rocket.Chat.-.1.April.2023.1.mp4

Document code formatting and syntax highlighting design decision

The ability to format code and syntax highlight code in different programming language is absolutely essential to the usability of a modern Github App (circa 2022).

Limitations of the current "apps engine", its rigid binding to a very "chat dedicated" UIKit and Fuselage, makes it especially difficult to add this usable feature.

[Feature] Improve User Experience

Why do we need this ?

As a GitHub App developer

I need to: Add a more comprehensive README.md file which includes user documentation, instructions, features guide and contribution guide

So That: Users can easily setup the GitHub App on their server, contribute to the project and start using the Application as quickly as possible. This will improve out-of-the-box user experience.

Acceptance Criteria

  • Add Project Description and Details.
  • Add a comprehensive and attractive user guide.
  • Add project setup details and contributor guide.
  • Make README Attractive and more welcoming

Further Comments / References

GitHub Profile

Why do we need this ?

As a GitHub App developer

I need to:

Add a new GitHub Profile modal which can be triggered using /gh me or /gh profile command, which can be uses to fetch users details inside Rocket.Chat

So That:

Users can share their profile, their own repositories, starred repositories etc to Rocket.Chat channels

Acceptance Criteria

  • Add new slash command which triggers the UserProfileModal
  • Add new UserProfileModal and supporting modals to view relevant data - repositories, activity, starred repos etc inside Rocket.Chat
  • Add functionality to share the fetched results to Rocket.Chat channels similar to GitHub Search and Share
  • Add the new function to fetch users data in the GitHubSDK

Further Comments / References

Helper Message Markdown Not Rendering

Description:

Whenever someone enters the command /gh help, the helper message shows up in backticks but the message is not properly rendered inside a markdown block. The message is displayed as plain text.

Steps to reproduce:

  1. Enter /gh help in the input message box
  2. Helper Message shows up in plain text.

Expected behavior:

  • Helper message should be displayed in markdown format as a block of text.

Actual behavior:

  • We get plain text

image

Github login authentication problem from rocket chat

Description:

Steps to reproduce:

  1. run /github login
  2. Click the "GitHub login" button which will redirect to a page

Expected behavior:

Actual behavior:

image

Rocket.Chat Server Setup Information:

Used gitpod for environment setup and running the application

  • Version of Rocket.Chat Server: 6.1.5
  • Operating System: Ubuntu 22.04.2 LTS

Rocket.Chat Client Setup Information

  • Desktop App Version: 6.1.5
  • Browser Version: Google Chrome Version 112.0.5615.138 (Official Build) (64-bit)
  • Operating System: Windows 10 Home

[FEATURE] Capability to see and share User's recent activity

Why do we need this ?

As we know, most of the customers for the GitHub App would be developer teams, the following feature would be a very helpful conversation booster for them, one can easily see his own GitHub activity for the last week or month and can share it with teams, along with that the feature has a very good scope while approaching people in Open-Source, making it very easy to share a log of your last week's activity without having to recollect and share from GitHub. ๐Ÿณ

Acceptance Criteria

  • Add Function for Fetching GitHub Activity Data
  • Added Shared Interfaces and Data Parsing from Activity API Calls
  • Add Activity Contextual Bar and List Items
  • Implement Sorting Mechanisms for Activity Contextual Menu
  • Implement Necessary Triggers for Opening Activity Contextual Bar

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.