Using Git with Kiln

Kiln, our best-in-class DVCS hosting solution, supports both Git and Mercurial. Just go into your existing Kiln On Demand account and create a new repository, selecting Git as your version control system. If you don’t have a Kiln On Demand account, you can sign up for a 7 day free trial and check it out.

Integrating GitHub with Manuscript On Demand

Manuscript can be notified by GitHub Web Hooks whenever an incoming changeset comment mentions a case. To configure a repository to post to Manuscript

  • visit Avatar Menu > Source Control
  • click the “Look no further!” link within the GitHub banner
  • click “Add New Repository”
  • authorize Manuscript to have access to your GitHub repositories. This will take you to a GitHub page to complete the authorization process. Once this is complete, you will be returned to the next step in Manuscript. Make sure you are logged in with the correct GitHub Account or you will not see the repositories you want to add.
  • Select the checkboxes for the repositories you wish to integrate
  • Your selections will be confirmed. Success!

 

Now you can refer to your Manuscript cases in your GitHub commits (just add “case <number>” in the commit message), and your cases will now show your commits.

 

Integrating GitHub Enterprise with Manuscript On Demand

There’s no Manuscript specific integration with GitHub Enterprise, but because Manuscript is built on the engine of FogBugz, we can take advantage of an old FogBugz GitHub service.

First, go to your repository in Github. Click “Settings” in the right sidebar, then click “Webhooks & Services”. From there, click “Add Service” and select FogBugz from the list. Here are the instructions as posted there:

    1. From the Manuscript Admin menu, select Source Control.
    2. Click ‘Create New Repository’.
    3. An option pane will pop up. Select ‘Other (custom)’. Enter a name for
      the repository. The name does not have to be the same as the github repo
      name. Click Next.
    4. Set the ‘Diff URL’ field to be:
      https://github.com/[github_username]/[github_reponame]/commit/^R2
    5. Set the ‘Log URL’ field to be:
      https://github.com/[github_username]/[github_reponame]/commits/^FILE
    6. There’s a URL printed at the top of the configuration screen. Make
      note of the number following ixRepository= That is the ID that needs
      to be filled in for the fb_repoid field.

    In GitHub -> Admin -> Service Hook after selecting “FogBugz” from the list:

    1. Set your Cvssubmit Url. Example: https://manuscript.server.com/cvsSubmit.asp
    2. Set “Fb Version” to “8”.
    3. Set “Fb Repoid” to the number following “ixRepository=” from step 6 above.

    Once the integration is complete and you push some new changes to your GitHub repository referencing FogBugz Cases, you will see Checkins on the Case page. For example:

 

It is technically possible to get the fancy in-line integration up and running with a little bit of work “under the hood”… you’ll transplant the GitHub configuration to your Enterprise installation and we’ll help clean up and loose ends on the Manuscript side. Let us know if you are interested and we’ll get you hooked up!

Integrating Generic Git with Manuscript On Demand

To begin configuring the generic Git integration, navigate to  Avatar Menu -> Source Control. Choose Create New Repository, select Git, and give your repository reference a Name. Click Next to proceed.

Click on the Generic Git tab. Download both scripts and place them in the .git/hooks directory of your master repository. Make sure these scripts are executable by the git daemon. Optionally, you can configure the path to git-instaweb  to enable links to logs and diffs using git-instaweb. Otherwise, you can disable this feature by unchecking Enable links to logs and diffs using git-instaweb.

Using the Integration

When you commit changes to Git, just include the keywords “BugzID: XYZ” where XYZ is a case number in your commit message and the configuration you just set up will link the case to the changeset in Git.  The commit messages are not case sensitive.