The easiest way to collaborate over any Github / Gitlab hosted projects.
rocketchat / rc4github Goto Github PK
View Code? Open in Web Editor NEWOne Rocket.Chat Team for every Github repository.
License: MIT License
One Rocket.Chat Team for every Github repository.
License: MIT License
When a user switches between channels, the client-side unmounts the iframe for the current channel and mounts a new iframe with a new URL path for the new channel. This results in re-rendering the whole iframe component and its content leading to slow loading of the channel and repeated network calls to the Rocket chat server.
The time to load worsens when using RC4GIT on the network rather than local.
Ideally, the switch must be instant without the loader.
When a user logins for the first time, iframe login works fine, but if the user logs out and then try to login immediately then the iframe login fails and would require the user to logout again to work.
In short for every login after one logout, it requires the user to logout and then login again.
Iframe logout from client side solves this issue.
When Clicking on the header control buttons or the user profile, the embedded layout breaks to the normal layout.
The watchers count for any repo is incorrect. GitHub changed their API to have subscription_count
to represent the number of watchers and the watchers_count
to represent the number of stars on that repo.
Github OAuth apps don't provide a more fine-grained approach over permissions. For example, there is no read-only scope to read private repositories. Moreover, accessing collaborators requires a write access to the repositories.
For this reason we plan on migrating to GitHub Apps. There would be 4 GitHub Apps for the following purposes:
No access
for all permissions. ( This would also allow read-only access to public repositories.)Currently in the "Demo Mode", there are three pieces of data displayed:
And these numbers are magic number constants.
It would be a good incremental step to realize these numbers by:
Notifications feature implementation
In the future, we plan on making communities have custom names instead of naming them corresponding to the repository associated with them as we now do. For this we need to change the naming convention of communities on the RocketChat server.
In the updated naming convention we plan on appending the user/org name to channel names instead of prepending them as we do currently.
For example, instead of RonLek_RC4Community
, the communities would be renamed on the RC server to RC4Community_RonLek
.
This step would:
RC4Community_RonLek_Other
.To simplify channel creation as per the current use case creation of communities should not be required to create channels. Each channel should internally be linked either to the username or the org to which the repo corresponding to the channel belongs.
Also, since community creation is no longer needed currently we need to revert back #51. In the future communities would be needed when custom naming of channels is introduced.
Further from this point - channels would be renamed as communities. These would appear under their respective top-levels on the sidebar. Linking of each community to the repository would be optional in the future. For this we need to set a custom field for each community so that we can distinguish communities linked to repositories (and which repositories) from those that aren't.
Now, in the create community dialog instead of having a Select Community
select, we intend to segregate repositories by their top-levels in the drop down itself.
Currently the config webhook button is shown all the time when the activity pane is visible. This should be changed to following:
On signing up on RC4Git every user would create a community to create channels within it.
Creating a community for the user by default (that is a community corresponding to their GitHub username) would enable ease of access to directly create a channel thereby reducing the number of steps in the flow to create a channel for a newly signed up user.
This would also allow us to place a direct "Create Channel" button on /home
thereby improving the user-experience for a new user.
When creating an existing room, the alert gives a message stating “Error Creating Room”. This type of vague error may confuse the user, as it doesn’t display the exact reason.
Adding systematic error control with specific alerts would help the User experience beyond imagination. I would study each case of exception that may befall while creating the rooms and prepare custom alerts for each of them.
This happens for the case when the room associated with a private repo on GitHub is public and the user doesn't have the permissions to view the private repo on GitHub.
A Repo Info tab for each channel linked to a repository is needed. The Repo Info tab would show information pertaining to that particular repository like total PRs, issues, watchers, stars and repository description.
There are a variety of new configurations which are required to be set on the Rocket chat server to work with RC4Communities.
All of these configurations must be automatically set when a new deployment is done on a new machine.
Many browsers (like Mozilla Firefox) don't understand the web-kit
widths which breaks the UI for different browser based users. For this we need to make the CSS widths cross-browser compatible.
Reference: https://stackoverflow.com/a/26276254/8316412
Hey, this is my first issue.
I found that in the file client/src/components/Login/index.js
, the line to import 'githubClientID' from 'constants.js' file is: import { githubClientID } from "./../../utils/constants";
.
However there is no 'constants.js' file in the utils folder. It should be replaced with 'constants-example.js' instead.
This is the case for other files in the 'components' folder as well.
This is causing problems in running the docker image file as well on my local computer.
A Create Channel button on the home page shown after login should be placed. This would allow users to create a channel directly (since a username community would already be created on sign up) and sort of provide with a flow towards starting to use RC4Git.
In order to follow the principle of least privileges, bare minimum permissions required for accessing private repos read-only and configuring activity for repos is webhook.
A user info tab corresponding to each channel is needed. This would should the number of users online within the channel.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.