Is there any way to refer a external and custom issue tracker from github? - github

It is possible integrate github with a custom application that track issues? This custom issue tracker is developed by people that is not involved with github development, but can code some plugin or feature that provides a pattern to refer a external issue.
The pattern can be #I or something like this.
Thoughts?

As far as I'm aware, most popular enterprise solutions are building integrations with GitHub repositories via webhooks (if they don't already offer them). If this is a in-house custom solution you will have to build that integration yourself.
You'll need to register a webhook for each repository and you will have to know how to associate events from different repositories with different issues.
With the webhook set-up you'll be able to inspect pull requests, pushes to different branches, etc. and you can use whatever syntax you want to refer to issue ids in your issue tracker. If your repository is also public facing and has issues (and pull requests) turned on, you will definitely not want to overlap usage of #numerical_id with your own issue tracker. In that case, you will want to choose something like ^ or & or % which isn't currently claimed by anyone else. What you choose for that, though, is entirely up to you.

Related

How to achieve Github organization and repository policy-as-code/infrastructure-as-code?

The motivation is that we're starting to feel policy drift and maintenance headaches because of non-programmable (or non-codified) repository and or organization settings.
For example we might need to remove a specific team from accessing 50/100 repos. Or we might need to enable a new github feature (like auto-merge) for all of those repos. Sometimes the codeowner forgets to enable linear history and a contributor merge-commits.
At scale, clicking buttons doesn't work.
The best solution I can come up with is a script that makes idempotent calls to the Github API. Another partial solution might be to start using monorepos.
Is there any better way to solve the problem I'm facing?

Are there best-practice guidelines for maintaining a repository?

Are there best-practice guidelines for maintaining a GitHub repository? I've contributed to many open source projects and used GitHub for projects that I work on solo, but now I'm working with a team of six developers, including myself, to build a system, and I've been placed in charge of maintaining the repository. Nothing is to get merged into our main branch without my approval. As little as I know about maintaining a GitHub repository, of those within the organization (two team members are consultants) I've the most experience with the process.
But I've never maintained a GitHub repository, and while I'm doing OK, I know that there must be a body of knowledge out there of how to handle this correctly. I just haven't been able to find it.
One hurdle I've been jumping over repeatedly, for example, is merge conflicts. Usually they're minor, but not always. Is there some known system available that allows me to enforce who has the ability to edit which files at any given time, for example?
And yes, I realize this may not be the best Stack Exchange forum, but none of the others seemed more suited to the topic.
The Cloud Native Computing Foundation (CNCF) serves as the vendor-neutral home for many of the fastest-growing open source projects, including Kubernetes, Prometheus, and Envoy.
As such, it can be used as a starting point for your own project: see contribute.cncf.io/maintainers/github/, which offers:
template, to be usre you have your README, LICENSE and other important files.
labels, to better classify your issues
Add also a clear "release and maintenance policy", and you should be in good shape.

Tracking Issues across multiple repositories

We often have epic stories which span multiple repositories. I am looking for a mechanism to track all the work that is associated with a single story. GitHub has Issues which is a close to the solution I seek. The problem with Issues is they do not span multiple repositories. On deployment day I still need to scan ~10 repositories (there are 100 repo's, 10 are commonly used) to discover which ones have commits related to the story.
As a manual workaround I create multiple Issues. One Issue for each repository. Then I manually list the Issue#'s related to the epic story in Jira.
Is there a tool or alternative technique I can use to automatically combine these issues and treat them as one?
It would be a bit unusual to use both JIRA and GitHub Issues together. JIRA offers virtually everything that GitHub Issues does and more.
This guide from GitHub shows how you can integrate JIRA directly with GitHub, skipping Issues altogether. When properly configured you will see links to GitHub in mentioned JIRA issues. You can also trigger JIRA workflow changes based on keywords in your commit messages, much like GitHub Issues does out of the box.

How to track deployments?

What is a good way to track deployments of our code base? I would like to be able to see when a version was deployed on a specific server, who released it, what issues were solved by it, etcetera.
Currently we have a deployment tool that generates an issue in our issue tracker with all this information. This makes it easy to link the release issue against related issues, but it also pollutes our issue database.
We also want to start with Continuous Integration internally, which would mean there would be a ton more release issues.
Are there better ways of tracking releases?
Our technology stack is PHP (Symfony2) using Phing as a build system, a custom, web-based deployment tool, Mantis for bugtracking and Bitbucket for repository hosting.
You can use something like Beanstalk or dploy.io to deploy your apps. It will give you an ability to manage deploy permissions, see a timeline of all deployments (who deployed what and when), trigger deployments with a single click and notify your team via email and integrations when something is deployed.
You can get an idea from this screenshot:
http://cl.ly/image/3C1v1w2C3K2v
P.S. I work at Wildbit, company that makes both products.
You should check out my company's product BuildMaster, it was designed to solve every problem you've listed.
At this time we do not yet have the first-class integration with Mantis, but it can be added pretty easily via extensibility in the same way as the other bug/issue trackers we integrate with. It could be either built by your team if you are interested in that or our team contingent on an Enterprise edition purchase.

Github Issue Management (general issue)

Using Github's Issue Tracker, how can one create an issue tied to an organization (and not just a specific repository)?
For example, the issue might affect several repositories or the company as a whole, or the person creating the issue might not know which repository it affects.
One hackish way is to have a catch-all/generic repository where people put the general/company-wide issues, but is that the only way? (ideally this could be done in github and not in another site/service since the overall needs are not much).
Yup, creating a generic repo and storing the issues there is the only way. There's no way to create an issue for an entire organization.